-
-
[原创]新人遇到的jmp的坑,原来是这样
-
发表于:
2020-1-22 21:51
3558
-
本人刚刚接触逆向,直接上手od,基本操作也都会了,今晚在练习hook时,遇到了这么一坑。od中写好的代码,落实到易语言代码上就崩溃了?排查后发现时jmp跳的地址和我想要的不一样
多方排查,各种查阅资料+问大佬(大佬占了90%的功劳吧)
发现是这样:
在od中,我们要想跳转一个地址,在jmp后面直接写地址,od就能帮我们跳过去,但是在cpu中,cpu并不能直接跳到指定位置
cpu想要完成跳转,必须知道起跳位置(eip),跳的距离才可以。这点体现在硬编码上,而在od中,od会智能帮我们计算出跳转地址,显示在代码窗口中,对于汇编基础不牢固的我,之前完全不知道这一点,这也是od便利性带来的坏处。
同样,通过比对可以发现 jmp XXXX对应的硬编码,两者完全找不到相同的地址数值,也说明了跳转指令是通过距离实现的,而不是给个目标地址直接就能跳过去。
分享我这个糗事主要是要告诉新人们,打好基础!不要做工具小子!不要像我一样汇编用到啥指令就百度一下,也不细看,不然落实代码的时候会坑惨你。
我要去恶补汇编基础了。。。
[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!
最后于 2020-1-22 21:53
被SSH山水画编辑
,原因: