【Reversing.kr】Replace分析
本帖最后由 Macc 于 2015-12-9 20:09 编辑最近在做Reversing.kr那个网站的题目.. 对于一个菜鸟来说除了Easy开头的其他都很费力啊TAT
以前发帖都是求助 第一次发技术贴 各位大牛多多包含..
本文程序在网站revering.kr上有
---------------------------------分割线------------------------------------------------------------
首先看这个程序,查壳发现无壳,用OD载入,然后ctrl+N查找API ,本来是想找GetDlgItemText的,在这个程序里是GetDlgItemInt,这个程序只能输入数字。(这里也可以直接搜索ASCII码,会发现'correct!')
右键-在每个参考上设置断点
然后F9运行程序,输入一组测试数据1234,程序会断在这里
可以发现地址0x00401073处就是我们的目标,然而在0x0040106c处的jmp却直接跳过了目标地址,本来我以为jmp之前的某个指令会跳过这两个jmp,但是跟了很久都无果。
只好继续F8跟。
到这里的时候,发现下面有个jmp 00401071,这不就是目标地址之前的jmp么?但是这里还没有什么用,先F7跟进call 0040466F看看
这里mov了一个0x90到一个地址,0x90代表的机器码就是nop。这里就是把目标地址之前的jmp指令nop掉,然后到目标地址。
就是要把eax里的地址变成0x00401071,此时我的测试数据是1234,地址是0x60160A9D。有什么联系?我也不知道-。-
但是我可以试几个数据来看,测试数据是0的时候,eax里的地址是0x601605cb,1的时候,是0x601605cc,然后不用试了,结论就是0x601605cb+一个值=0x100401071
所以flag=2687109798第一次发帖,有什么错误还望各位大牛指正{:1_932:}
100401071 - 2 - 601605c7 - 2 = A02A0AA6 =KEY: 2687109798
页:
[1]