ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

【pbctf】cosmo

2021-10-13 13:34:42  阅读:180  来源: 互联网

标签:cosmo pbctf old 40C000 high flag low off


 

该程序会根据输入flag是否正确返回结果

 

搜索文本give定位到sub_403066函数

 

往下拉会发现改函数会循环判断输出no或correct,该函数可能为主函数

 

调用字符串no后有两个函数,动态调试后发现一个是print一个是exit

 

修改函数名后反汇编,可以看到函数调用的参数不够直观

 

 

 

根据调用函数之前入栈的寄存器对函数的格式进行更改

 

流程:先判断argc是否为2,判断字符串长度,然后进行循环,每次取两个字符,encode之后的结果与qword_40C000进行对比,

每次都相等后正确

 

 

根据汇编代码可知encode中有三个参数,rsi是输入的值,edx固定为2,最后调用之后的结果传回到rdi中作为下一次的输入

 

encode函数更改格式

 

先看encode函数里主要的循环,常量2赋给v4,64行的if,75行的if均会被跳过

 

high和low分别是取flag的高位和低位

 

75行的if不成立后直接到159行的else,v4是常量2,循环两次,第一次循环中,低位加第一个字符,高位加低位,第二次循环中,低位加第二个字符,高位加低位,然后拼接起来返回,而且整个过程是在mod 0xfff1的情况下运行的

 

最后wp

off_40C000 = [0x14400D3,

              0x42401AA,

              0x8BF028B,

              0x0EFA034F,

              0x16A1040D,

              0x200004EA,

              0x2AE20597,

              0x3721065C,

              0x4507072B,

              0x542F07CD,

              0x651208A2,

              0x77860970,

              0x8B8F0A34,

              0xA0D50ADF,

              0xB75C0B75,

              0xCFA40C5E,

              0xE9440D01,

              0x4520DB2,

              0x20B10E6E]

 

high_old = 0

low_old = 1

flag = ""

 

for i in range(len(off_40C000)):

    low = (off_40C000[i] & 0x0000ffff) >> 16

    high = off_40C000[i] & 0xffff0000

    high = (off_40C000[i] & 0xffff0000) >> 16

    low = (off_40C000[i] & 0x0000ffff)

 

    c1 = (high - high_old - low_old - low) % 0xfff1

    flag += chr(c1)

    c2 = (low - low_old - c1) % 0xfff1

    flag += chr(c2)

 

    high_old = high

    low_old = low

 

print(flag)

 

标签:cosmo,pbctf,old,40C000,high,flag,low,off
来源: https://www.cnblogs.com/bamboo1111/p/15401724.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有