首页
社区
课程
招聘
[原创]新人遇到的jmp的坑,原来是这样
发表于: 2020-1-22 21:51 3558

[原创]新人遇到的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山水画编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1078
活跃值: (330)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
学习拉
2020-1-23 21:21
0
雪    币: 57
活跃值: (2433)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
3
1
跳到的地址-当前hook的地址-5 
就是要他的长度 
2
 或者 直接 mov eax,xxx  jmp eax  xxx就是你要跳的地址 。。 

第一种前者占用5个地址   第二种占用7个地址 但不用计算 比第一种方便 
2020-1-23 22:05
0
雪    币: 6172
活跃值: (4952)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
4
补充下PE知识 写个内存注入。

修复重定位那里,可以加深你的理解。
2020-1-25 12:11
0
游客
登录 | 注册 方可回帖
返回
//