鱼C论坛

 找回密码
 立即注册

[原创]论hook指针操作①

热度 5已有 1577 次阅读2013-6-20 08:55

       想必大家对常规性的dll注入型的WG大概的流程都能略知其三把!今天我们一起谈谈关于hook指针操作的话题吧!
       我们为什么要hook dll类型的WG的指针操作呢?为什么用了hook Api中的WriteProcessMemory()与ReadProcessMemory()而却丝毫无效果呢?如何才能hook dll类型WG指针操作的内容呢?以下我们将一一分析与讨论!
        hook这一词,想必玩过WG的朋友应该都早已耳熟能详了吧!按照我个人的理解,我是这么理解这一词的,意思应该大致就是拦截进行某一函数中参数所传递的内容。
       经过上面我对hook的简单解释后,大家应该也就明白了hook Api中的WriteProcessMemory()与ReadProcessMemory()的大概原理了吧!原理其实大致就是:先获得WriteProcessMemory()函数或ReadProcessMemory()函数的入口地址,然后把入口地址改为我们自己定义的一个函数的入口地址。假设我们定义的函数名为hookwrite(),那么我们只要再函数中实现把真实WriteProcessMemory()中几个我们需要的参数给列出来后,如参数中的地址,读写内容,再放行真实WriteProcessMemory()去正常执行即可!(这类型工具一般是在Ring3模式,即是用户层模式下做成dll注入,效果比较好)。但是为什么某些朋友却使用了无效果列不出参数的内容呢?想必到这里,一些朋友可能脑袋瓜子就卡住了吧!哈哈!其实造成这一情况的可能原因就是你注入的dll类型WG木有使用这两个Api函数来操作内存,(一般情况下exe类型,即非注入式的WG才会调用这两个Api函数),那么那些狡猾的WG作者(尤其是商业挂,搞了一大堆防下断,自校验等等,真TM龌蹉)用什么来操作内存呢?对的,我听见你的声音了,就是dll注入后用指针操作!其实是这样的,WG注入游戏后(一般远线程注入,输入法注入等),相当于一条寄生虫一样寄生在了游戏身上,所以这条寄生虫可以直接改写内存地址中的数值,从而避免了使用那两个古老的Api来操作内存(有利弊)!这就是为什么WG通常会用dll注入的原因之一,其他原因不在我们讨论的范围内,大家有兴趣可以谷歌或百度下!
        看完以上的我简单的阐述,想必大家明白了为什么要hook dll类型WG的指针操作了吧!
说个题外话,其实我们如果想要提取其他WG作者写的WG里的功能dll,一般都可以用XT来查看提取出dll,我们等待他注入游戏后,看看进程的模块信息,然后找到一个你感觉像是WG的一个模块,然后右键定位到该文件,就可以找出dll了,不过作者也不是2B,一般都是搞了什么加壳,自校验等等!所以你一般提出WG里的dll然后直接注入到游戏,一般是行不通的(商业挂一般都这样,免费应该就可以!大家可以试试看!).
       好了!好了!....有点扯远了!我们继续回归我们的主题.继续分析讨论!
       ......
       有时间,有灵感,有思路就继续写!
       下一章传送门!
1

路过

鸡蛋
1

鲜花
3

握手

雷人

刚表态过的朋友 (5 人)

发表评论 评论 (1 个评论)

回复 wmslecz 2013-6-28 21:04
好东西,果断支持

facelist

您需要登录后才可以评论 登录 | 立即注册

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-5-1 05:44

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

返回顶部