|
[求助][求助]第五章里KeyFile保护的实例的不解
是哦,看后面代码的时候发现的,CreateFile调用完后,程序代码下面接着 就是ReadFile的调用代码 。 不过书上是说对ReadFile 下断的。 |
|
[求助][求助]第五章里KeyFile保护的实例的不解
在od中,加载后,ctrl+g,查readfile,进入它的函数内,(注意观察 堆栈区)对它下断点,然后按 alt+m 对 ".text"下断点(F2快捷键) //============== Memory map, item 22 Address=00401000 Size=00001000 (4096.) Owner=PacMe 00400000 Section=.text Contains=code Type=Imag 01001002 Access=R Initial access=RWE //=============== 接着按 alt+b ,在 窗口中,把对readfile下的断点 设为 disabled, 然后按F9 运行,,此时在程序领空时,就要查看 哪处代码调用的readfile函数,如果不是,就要在 断点窗口把readfile下的断点 设为 always,然后运行程序(按F9),注意观察 堆栈区,如果代码如下: 0012FC14 00401701 /CALL to ReadFile from PacMe.004016FC 0012FC18 000000A4 |hFile = 000000A4 (window) 0012FC1C 004034FA |Buffer = PacMe.004034FA 0012FC20 00000001 |BytesToRead = 1 0012FC24 00403448 |pBytesRead = PacMe.00403448 0012FC28 00000000 \pOverlapped = NULL 0012FC14 00401701 /CALL to ReadFile from PacMe.004016FC 从这里我知道是从程序代码处调用 的,找到了 转到书上所说的 代码处地址 。 这个过程,是找到readfile函数,然后回到 程序领空,看是谁调用readfile函数的,由于readfile可能是别的调用的,所以我们就要查 下一个 是谁调用 的,直到查到 是我们所关心的调用者为止。 在这个过程中,我用了2次,第3次才转到所需要的 地址处。(我不知道这样找法对不对!) |
|
|
|
[分享]辛苦挂机,转正
................. |
操作理由
RANk
{{ user_info.golds == '' ? 0 : user_info.golds }}
雪币
{{ experience }}
课程经验
{{ score }}
学习收益
{{study_duration_fmt}}
学习时长
基本信息
荣誉称号:
{{ honorary_title }}
能力排名:
No.{{ rank_num }}
等 级:
LV{{ rank_lv-100 }}
活跃值:
在线值:
浏览人数:{{ visits }}
最近活跃:{{ last_active_time }}
注册时间:{{ user_info.create_date_jsonfmt }}
勋章
兑换勋章
证书
证书查询 >
能力值