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

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 19498|回复: 24
收起左侧

[调试逆向] 通过HOOK wow64cpu.dll达到HOOK call fs:[C0]的目的

  [复制链接]
万剑归宗 发表于 2017-4-3 14:28
本帖最后由 万剑归宗 于 2017-4-4 15:24 编辑

首先,本人以前是玩易语言入坑编程的(轻喷)。
偶然间学了点C,直到最近彻底放弃坑语言了。
因为嵌入汇编不方便的原因······················
现在玩VS2015了,废话不多说,进入正题。
********观察一下NT函数,或者User32里面的函数。
会发现老是有函数里面这么写汇编call fs:[000000C0]这是什么鬼?
好吧,用CE调试,单步进去之后,我发现了64位的汇编代码WTF,有趣,接受蹂躏!

在SendInPut+E处下一个硬件断点,然后自己构造汇编代码启动线程。
跟进去通过百度得知mouse_event最后实际调用的就是SendInPut。
我们直接构造一个参数全部是DWORD类型的CALL调用即可。

再打开一个CE从5ff0000处启动线程(CE的bug,先这样做吧,哎)
别忘了下硬件断点,呵呵(我自己都忘了,又重新跑一次)



可以看到已经断下来了,不着急,继续跟踪

发现一堆我无法解释的,为什么出现在32位进程中的64位汇编代码

通过多次试验,我发现代码从这里就走回到了32位代码里

那好,知道他的流程就开始做HOOK了一般来说我们都是从头部做HOOK。
假如说某个call fs:[000000C0]最终的返回值才是我们要HOOK到的,
或者说某个Direct接口Dinput接口才是我们需要HOOK的,
在尾部HOOK才是我们需要的(本人已成功,你们自己测试吧)。
现在开始解决的的问题就是:
            如何在64位的汇编代码中做HOOK让它走到32位的汇编代码中。
首先我们通过观察wo64cpu.dll._CpuSimulate+168处的汇编代码得知,
原本模块内的跳转方式是mov [r14],r9d;jmp far [r14];
   关键部分来了:
        这个jmp far我查了一下是远跳的意思大可以理解为
从64位的模块跳到32位里面吧(呵呵哒),
我们的HOOK也就在这个地址开始。由于我没用过钩子支持库,
直接计算jmp容易出错所以我选择另一种HOOK方式,
6字节push xxxx;ret;
这个方法比jmp xxxxx多用了一个字节,
但是好处在于不用计算jmp xxxx的差值了,不容易出错(顶个!)。


这里直接打开我的成品测试可以看到HOOK方式,我们跟进去看看。

首先判断[esp]的值,是不是我们调用函数的下一步。
比如sendinput的这一步是在sendinput+E,CALL进去。
返回后的下一句就是sendinput+15。

至于代码中的inc ecx,实际上是CE的汇编代码转换引擎的问题。
完整的应该是mov r9d,005EB3F8这里把寄存器r9d的值,
改成我们的HOOK接口就能为所欲为了!

先还原堆栈,然后再push ret大法跳到我们的接口里面。

结果是成功的!
吃水不忘挖井人感谢写出wow64ext的作者,
帮助了我获取了64位模块的基址。
************************************************
注释:代码在WIN7 64位系统下的32位进程中测试通过好的。
***********************************************
结束了,楼下放C++源代码另外有E语言版本的代码。

免费评分

参与人数 8威望 +1 吾爱币 +17 热心值 +8 收起 理由
不小于3个字符 + 1 + 1 我很赞同!
zx5706112 + 1 + 1 谢谢@Thanks!
zbnysjwsnd8 + 1 + 1 用心讨论,共获提升!
Hmily + 1 + 10 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
小草哥哥 + 1 + 1 热心回复!
厚道 + 1 + 1 我很赞同!
qaz003 + 1 + 1 谢谢分享。。。
Lullaby. + 1 + 1 谢谢@Thanks!

查看全部评分

本帖被以下淘专辑推荐:

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

 楼主| 万剑归宗 发表于 2017-4-3 14:30
VS2015工程C++(源码):http://pan.baidu.com/s/1eSMLPGu 密码:0efc
E语言源码连接链接:http://pan.baidu.com/s/1eSKdZcY 密码:ns4l
 楼主| 万剑归宗 发表于 2017-4-4 15:26
海盗小K 发表于 2017-4-4 13:27
楼主你的排版看着好蛋疼啊。能重新弄下吗?图片不要接着文字,另起一行。

排版已经更正了,之前在某雪发帖子。
没人审核,干脆来52了

免费评分

参与人数 1吾爱币 +1 热心值 +1 收起 理由
海盗小K + 1 + 1 可以,这很52

查看全部评分

ugvnui 发表于 2017-4-3 14:47
晓我琴宝贝 发表于 2017-4-3 15:06
谢谢大神分享,学习了
yunruifuzhu 发表于 2017-4-3 16:06
求楼主教我HOOK。
Lullaby. 发表于 2017-4-3 18:01
厉害了。我的哥
wanttobeno 发表于 2017-4-4 07:28
你还真的被我HOOK了 ,调用失败
头像被屏蔽
vvking6 发表于 2017-4-4 07:53
提示: 作者被禁止或删除 内容自动屏蔽
恶梦玩家 发表于 2017-4-4 10:40
新手学习学习. 感谢楼主分享
bsxr2017 发表于 2017-4-4 10:46
正在学习HOOK,楼主威武
您需要登录后才可以回帖 登录 | 注册[Register]

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

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

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

GMT+8, 2024-3-29 21:44

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

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