前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >汇编hook代码经验总结

汇编hook代码经验总结

作者头像
用户2135432
发布2023-10-21 10:46:42
1790
发布2023-10-21 10:46:42
举报
文章被收录于专栏:猛牛哥的博客猛牛哥的博客

整理自己hook汇编代码的经验。

1、现场的保存和恢复

之前是逐条push和pop,后来在网上看到更简洁的方法:pushad(机器码是:0x60),popad(机器码是0x61),一次性保存和恢复所有寄存器。

2、跳转

有3种方式,一种是call 偏移量,这种方式占5byte,但是需要计算偏移量,本人懒,不到不得已,不想采用此方式。

第二种,call [地址],这种方式占6byte,机器码是:FF 15 地址,实际要call的地址是保存在[地址]这个内存里面的。

第三种,mov eax,地址,call eax,这种方式占7byte。

第四种,mov eax,地址,jmp eax。这种方式占用7byte。使用这种方式时,需要找到一处原代码正好是7byte的指令(可以是多条),跳转后再跳回来之前一定要补上被占用的原代码。

其中,第二种方式用起来较为方便。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2016-07-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档