开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

12
返回列表 发新帖
楼主: Luna0611
收起左侧

[逆向安全] 如何hook小于5个字节的地址

[复制链接]
结帖率:0% (0/2)
 楼主| 发表于 2022-11-7 10:04:03 | 显示全部楼层   安徽省合肥市
asd9988 发表于 2022-11-7 08:56
我似乎可以理解成里面的那个子程序回调里面有东西,(易语言在编译头文件的情况下,会导致这种问题似乎)
本来 ...

我试了两种置入代码的写法,每次都会注释掉一种的。 按照我的理解,hook后执行完自己的代码,还是会跳回到hook的地方继续执行,如果我自己再写一次mov eax,dword ptr ds:[eax+0x10],跳回来时候是不是重复执行了?
回复

使用道具 举报

签到天数: 1 天

发表于 2022-11-7 11:37:58 | 显示全部楼层   浙江省台州市
Luna0611 发表于 2022-11-7 10:04
我试了两种置入代码的写法,每次都会注释掉一种的。 按照我的理解,hook后执行完自己的代码,还是会跳回 ...

感觉没啥必要调回去,你下面call了之后直接返回了,你也可以在这里面写返回
回复

使用道具 举报

结帖率:63% (5/8)
发表于 2022-11-7 11:38:04 | 显示全部楼层   内蒙古自治区乌兰察布市
最简单据说换个地方hook。或者使用Int3异常处理和无痕hook
回复

使用道具 举报

结帖率:0% (0/2)
 楼主| 发表于 2022-11-7 12:41:57 | 显示全部楼层   安徽省合肥市
南风知意 发表于 2022-11-6 20:55
1.附件找个合适地址做个短跳转,再长跳到回调函数
2.hook前面的地址,修复指令即可 ...

address = 集_VXjz + 十六进制 (“598E3A”)
code = { 232 } + 到字节集 (到整数 (取子程序真实地址 (&HOOK_消息回调) - address - 5))
res = 内存.写字节集 (进程_取自进程ID (), address, code)


.子程序 HOOK_消息回调

' mov eax,dword ptr ds:[eax+0x10]
' call eax
置入代码 ({ 139, 64, 16, 255, 208 })

信息框 (“我被hook了”, 0, , )



我现在是这样写的,用了前面的三个字节。现在的情况是注入之后,能弹出“我被hook了”的信息框,但是确定之后,vx就直接崩溃了。麻烦请教一下,我在自己的回调子程序里需要怎么样才能修复,才是正确的?
回复

使用道具 举报

签到天数: 1 天

发表于 2022-11-7 16:07:04 高大上手机用户 | 显示全部楼层   福建省福州市
我记得有一个有一个帖子用的drx硬件hook楼主有时间可以去看一看
回复

使用道具 举报

结帖率:100% (1/1)
发表于 2022-11-7 18:52:14 | 显示全部楼层   四川省宜宾市
Luna0611 发表于 2022-11-7 12:41
address = 集_VXjz + 十六进制 (“598E3A”)
code = { 232 } + 到字节集 (到整数 (取子程序真实地址  ...

你不回跳回去?寄存器不保护?
回复

使用道具 举报

结帖率:0% (0/2)
 楼主| 发表于 2022-11-7 18:57:50 | 显示全部楼层   安徽省合肥市
南风知意 发表于 2022-11-7 18:52
你不回跳回去?寄存器不保护?

我现在是jmp到自己的回调函数中,如果我的回调函数是这么写的:
mov eax,dword ptr ds:[eax+0x10]
call eax

这两句是被我占用的5个字节,OD里面反汇编出来的是这样的:
100036B6    55              push ebp
100036B7    8BEC            mov ebp,esp
100036B9    8B40 10         mov eax,dword ptr ds:[eax+0x10]          ;
100036BC    FFD0            call eax
100036BE    8BE5            mov esp,ebp
100036C0    5D              pop ebp                                  ;
100036C1    C3              retn

看起来很正常。 但是在OD debug时候发现,进入到
push ebp这一行时esp里的数据还是正常的,但是走过这一步之后esp就变了。
导致call eax崩溃。

我理解的
push ebp
mov ebp, esp
是将esp存入ebp保护起来,但是为什么push ebp之后esp里面的数据就变了呢?
回复

使用道具 举报

发表于 2023-5-5 16:39:36 | 显示全部楼层   四川省眉山市
最后这么搞定的 ??????
回复

使用道具 举报

发表于 2023-5-5 16:39:53 | 显示全部楼层   四川省眉山市
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

关闭

精易论坛 - 有你更精彩上一条 /2 下一条

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表