首页
社区
课程
招聘
[原创]第二阶段第一题答案
发表于: 2007-8-29 02:54 6243

[原创]第二阶段第一题答案

2007-8-29 02:54
6243
溢出代码很容易搞
0012FABC    B8 60024000     mov     eax, 400260                      ; ASCII "Failed!"
0012FAC1    C700 4F4B2100   mov     dword ptr [eax], 214B4F
0012FAC7    C740 08 4F4B210>mov     dword ptr [eax+8], 214B4F
0012FACE    33C0            xor     eax, eax
0012FAD0    8BEC            mov     ebp, esp
0012FAD2    83C5 24         add     ebp, 24
0012FAD5  - E9 A9082D00     jmp     ExploitM.00400383
关键是text.txt文件的前八个字节经过计算后eax需要等于0x0D才能保证修改ret的返回地址
加载vc32rtf后可以看到运算其实就是__int64的乘后取余,但由于第一步的相乘后产生了溢出,所以不能直接进行逆运算
由于给定的参数和0x10000000000000000的最大公约数为1,所以可以构造一个64位数使第一步的结果就为0x0D,这样第二步求余时由于0x0D小

于给定的0x5BE6FF82A5164785,所以结果还是0x0D
求解使用的方法为寻找0x78CC02A869948F1B对0x10000000000000000的乘法逆元,e'=90B22DD80D53313
k=e'*d % f
k=0x7590C53F8AD397F7
所以文件的内容为
F7 97 D3 8A 3F C5 90 75 B8 60 02 40 00 C7 00 4F 4B 21 00 C7 40 08 4F 4B 21 00 33 C0 8B EC 83 C5 24 E9 A9 08 2D 00 90 90 90 90 90 90 90 90 90 90 BC FA 12 00

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

上传的附件:
收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 846
活跃值: (221)
能力值: (RANK:570 )
在线值:
发帖
回帖
粉丝
2
你传错东西了, 里面没有TEST。TXT
2007-8-29 08:00
0
游客
登录 | 注册 方可回帖
返回
//