吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 2456|回复: 20
收起左侧

[原创] 软件破解逆向安全之初识HOOK

  [复制链接]
lenvr 发表于 2023-3-22 19:15
什么是HOOK?这是逆向工程里的一个大块,我在这里几句话是一定说不清楚的,如果大家想深入了解,可以去学习一下。我这里简单说一下,hook,中文就是钩子的意思,简单理解为勾住一切事物,来实现我们想要的功能。

外挂中的体现:实时读取数据(例如坐标),修改数据,不执行某处代码,过检测等等。


HOOK的方式可以分为:


直接修改,间接修改(找到空白地址写入自己想要执行的数据,原地址的区域做跳转,空白地址出跳转),直接修改。


接下来我们还是通过植物大战僵尸作为今天的实例,我们要做的是种植物而不掉阳光。


首先我们通过ce找出阳光的第一层偏移

我们看一下阳光减少什么访问了这个地址,

之前说过mov esi,[]是非常值得我们关注的地方,看一下地址

之前说过mov esi,[]是非常值得我们关注的地方,看一下地址

到OD里去跟踪427681这个地址看看附近是什么样的代码。

我们可以看到我们把阳光的值给了esi,然后进行了个比较,这个应该是判断阳光的值够不够买植物,如果够,下面的sub就是减少阳光,所以我们要hook此处,这里直接给nop掉就好。
我么种植物去试试
1.png
这样我们就实现了种植植物不减阳光了,哈哈哈哈哈。

除了这种方式,我们还可以修改内存地址数据或者远程汇编方式进行HOOK,接下来大家可以试试hook增加阳光100,动起手来非常有意思的。

接下来我们通过间接修改来实现一击必杀,原理就是修改数据。

我们先了解一下在游戏中对象的概念。在游戏里,很多物体都可以叫做一个对象,一个人,一个武器都可以。我们实现一击必杀的原理是什么呢?可以改枪械的威力,对象的血量,或者对象受到攻击的位置,不同游戏描述可能不一样但是原理都是一样的。

再次请出我们的受害者植物大战僵尸,我们这回要先找到对象(这里是僵尸)血量发生变化的滴地方,搜索到时候我们是这个思路,植物打到搜减少,没打到搜不变,僵尸血量应该在0-1000之间,我们不断去搜索一下


最后发现了这个,观察了一下,很明显最后一个是僵尸的血量,每次豌豆打会掉20血。我们接着去看看什么地方访问了这个地址。

发现有很多,我们记录一下这里的地址,去od里看看那里可以进行HOOK。我们可以猜测一下减血的代码,应该是先一个sub,然后一个mov赋值,看看能不能找到。跟进第一个地址:发现不是很像我们的猜测,也没什么好改的,看下一个,也没什么,但我们看到54d0c4的时候发现不一般。 image.png 发现和我们想象的差不多啊,我们在这里下个断点,看看各个寄存器的值是什么。植物快打到僵尸的时候断了下来 image.png 看下面可以知道,减数是20,被减数是110,很明显是豌豆的攻击力和僵尸血量,下面call上面的mov就是把血量赋值给对象,这样我们一击必杀的思路就有了,直接hook54d0ba地址,赋值直接给0。这时候我们可能就会想直接把ebp改成0,你可以试试改了之后的效果,程序会直接崩掉。所以我们这里需要简介hook,找到一个00 00 00 00。。。的地址空间,我们在那里进行0的赋值,跳到那里再跳回来,这样就实现了我们的hook。 image.png image.png 我们在这里找到一块,先把54d0ba处的代码改为jmp 此处,然后我们把mov dword ptr ds:[edi+0xC8],0写到这里,再写一个jmp 54d0ba下面自动填充nop的地址,这样我们就已经hook完成了
image.png

image.png
接下来我们试试是不是碰一下僵尸就死。这样就成功了,哈哈哈哈哈。

我们也许会有这样一个疑问,我们只改了一个僵尸的地方为什么全部的僵尸全是一击必杀呢?因为我们改的是一个对象,而所有的僵尸在游戏里都是一个对象,都要经过这一块的代码处理,所以我们改了一处就相当于改了所有的僵尸。

我们注重的是原理,理解了植物大战僵尸,其他的游戏也都是差不多的,多多练习,我们有一天会驰骋于游戏之中的,当然这不是我们的目的。




免费评分

参与人数 7吾爱币 +12 热心值 +7 收起 理由
chenlun886 + 1 + 1 谢谢@Thanks!
Hmily + 7 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
MYCJFD + 1 + 1 我很赞同!
Cave + 1 + 1 热心回复!
xb521314 + 1 + 1 热心回复!
Bob5230 + 1 热心回复!
ovohuang + 1 + 1 谢谢@Thanks!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

wjxlr 发表于 2023-3-23 11:09
楼主高明!学习了
adog 发表于 2023-3-23 12:13
Bob5230 发表于 2023-3-23 12:39
face713 发表于 2023-3-23 14:41
谢谢楼主,这个方法好用
newbbq 发表于 2023-3-23 20:31
好难啊,没有汇编基础,哭
jjghaa1234 发表于 2023-3-23 21:14
感谢楼主分享,深刻学习
ilovn 发表于 2023-3-23 23:33
感谢楼主分享,深刻学习
ola5656 发表于 2023-3-24 01:05
踩坑...等有时间了就来学习下
zerofire 发表于 2023-3-24 09:46
学习了,网上系统学习的资料多数是收费的~
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-5-3 20:47

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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