吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

查看: 29406|回复: 487

[原创逆向图文] 【新年礼物】Alps_SuperHook 骨灰级剖析

  [复制链接]
Alps 发表于 2020-2-25 02:31 | 显示全部楼层 |阅读模式

本帖最后由 Alps 于 2020-2-25 12:51 编辑

定场诗:
道德三皇五帝,功名夏后商周。五霸七雄闹春秋,顷刻兴亡过手。
青史几行名姓,北邙无数荒丘。前人播种后人收,说甚龙争虎斗。

各位看官猜猜看礼物是什么呢?....

3......
2.....
1...

书归正传
Alps_SuperHook(后文简称ASHook)是一个易语言的hook类模块

ASHook(Alps)与Hook4E(BaZzi)、超级Hook(某鬼作坊)的比较:

阿尔卑斯         ASHook          HooK4E          超级Hook
读写寄存器       稳定高效          不支持        BUG多不稳定
Hook JCC           不支持              支持              不支持
Call原函数           支持                支持              不支持
读写方式             汇编                 API                  API
接口hook            支持                支持               不支持                                                                                       
插入汇编代码      支持              不支持              支持


怎么样~ 心动了叭 各位看官请留步,且听我娓娓道来...

ASHook由6个部分组成:第一部分是Start(开始hook)

7}FGGN4A6VCT[$ZTF2YSC@7.png
Hook_Addr:提供被hook的地址
例如:
0040101A    8945 FC         mov dword ptr ss:[ebp-0x4],eax0040101A是十六进制 把它转换成十进制 等于 4198426  所以地址这里填写 4198426

CallBack:提供子程序指针,当程序走到被hook的地址后,会调用这个你用来打补丁的子程序。
例如:
0040101A    8945 FC         mov dword ptr ss:[ebp-0x4],eax
当程序运行到0040101A的时候,想让他调用自己的子程序来执行补丁代码,这里就写你打补丁对应的子程序


Hook_Len:被占用的汇编代码的字节长度,这一点跟超级hook是一样的。
例如:
004C4B35    8915 D84B5600   mov dword ptr ds:[0x564BD8],edx
89 15 D8  4B 56 00
1   2   3    4    5   6
在004C4B35这个地址hook, 此时长度应该填写6 因为mov dword ptr ds:[0x564BD8],edx有6个字节

0040101A    8945 FC         mov dword ptr ss:[ebp-0x4],eax
0040101D    BB 06000000     mov ebx,0x6
89 45 FC BB 06 00 00 00
1   2   3   4   5   6   7   8
在0040101A这个地址hook, 此时长度应该填写8
因为0040101A    8945 FC         mov dword ptr ss:[ebp-0x4],eax 不足5个字节

一个长的jmp占用5个字节 所以要占用两行代码  这两行代码有8个字节

Hook_Index:这个序号对应的是寄存器的数组序号,用来读写对应的寄存器。
例如:
第一个hook 这里填1,第二个填2...后面读写寄存器 会用到这个序号 AsHook.ReadValue (1)
HookData [1].Reg.EAX = 1
AsHook.WriteValue (1)

Mode:ASHook提供两种模式的hook 0是插入式,1是转接式。
区别:
0插入式:JMP进入中转站,中转站保存寄存器值,中转站Call CallBack,执行完CallBack恢复寄存器,执行被占用的汇编代码,JMP出中转站.
模式0.png

1转接式:JMP进入中转站,中转站保存寄存器值,中转站JMP CallBack.

模式1.png

补丁写法为:

登录补丁代码.png

InjectCode:模式0:在调用完Call Back后 被hook占用的代码之前,插入一段可以自定义的汇编代码。
例如:
当程序走到被hook的地址时,给EAX赋值为1
AsHook.Start (4198785, &修改登录结果2_模式0, 6, 2, 0, { 184, 1, 0, 0, 0 })  ' { 184, 1, 0, 0, 0 } = mov eax,1

InjectCode.png

模式1:Call原函数的时候,会先执行InjectCode,然后再执行原函数。

模式1JnjectCode.png


第二部分是Stop(停止hook)
恢复被hook占用的字节,不再继续hook。AsHook.Stop (1)  这里的1 是Hook_Index 也就是前面Start设置的序号。


第三部分是Continue(继续hook)
之前Stop停止的hook 可以调用Continue 直接继续hook。AsHook.Continue (1)  这里的1 是Hook_Index 也就是前面Start设置的序号。


第四部分是ReadValue(读寄存器值)
不论是要读或者写 寄存器 都要先调用该函数。
AsHook.ReadValue (1)
然后可以用HookData [1].Reg.XXX 来获取对应寄存器的值
这里的1 同样是Hook_Index


第五部分是WriteValue(写寄存器值)
需要先调用AsHook.ReadValue (1)
HookData [1].Reg.XXX = XXX   // 对寄存器赋值
然后调用AsHook.WriteValue (1)



第六部分是Call原函数

用处在很多地方都能体现,例如抓某某验证的返回数据,找到他函数头,用模式1hook,然后调用它原函数,你就可以获取到他的参数和返回值了。


.子程序 接管登录子程序2_模式1, 逻辑型
.参数 登录密码, 文本型
.局部变量 ret, 整数型

ret = Alps_Call (HookData [4].FuncAddr, 取变量地址 (登录密码))
信息框 (“原函数执行结果:” + 到文本 (ret) + “获取到登录密码:” + 登录密码, 0, , )
返回 (真)



下载地址:https://www.lanzouw.com/i9njz5g
Alps_Superhook.zip (820.61 KB, 下载次数: 551)

评分

参与人数 102威望 +1 HB +145 THX +57 收起 理由
lies + 1
马保国 + 2 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
xiaoxixpj + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
DDK4282 + 1 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
虚心学习 + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
459121520 + 1
WolfKing + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
124713549 + 1
风动鸣 + 1
VipDongle + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
行行行行行行 + 1
sjtkxy + 1 + 1
大表哥学技术 + 1
天下一般 + 1
agan8888 + 1
伊瑟拉 + 1
卖火柴的小红帽 + 1
zxjzzh + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
飞刀梦想 + 1
pygicx + 1 [吾爱汇编论坛52HB.COM]-学破解防破解,知进攻懂防守!
独裁者 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
掣正伏虚 + 1
风里去 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
男同在身边 + 1
微熊猫 + 1
车太震 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
kkk1l + 1
akk1898 + 1
hbyaojing + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
l278785481 + 1
yjczawyl + 1
慕枫二二 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
xgbnapsua + 1
平安 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
小菜虫 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
weiran324 + 1 [吾爱汇编论坛52HB.COM]-吃水不忘打井人,给个评分懂感恩!
三月十六 + 1
fengyuan0128 + 1
侠客行 + 1
落雪玉 + 1
carbe + 1
a122783999 + 1
temp + 1 + 1
楠居 + 2 + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
4957465 + 1
zyyujq + 1
dDack + 1 [吾爱汇编论坛52HB.COM]-感谢楼主热心分享,小小评分不成敬意!
我是好人 + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
XiaoWeiSec + 1 [吾爱汇编论坛52HB.COM]-软件反汇编逆向分析,软件安全必不可少!
playboy + 1

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| Alps 发表于 2020-2-25 02:39 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Crook 发表于 2020-2-25 02:37 | 显示全部楼层

就等你的下载地址了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
sqxlac 发表于 2020-2-25 02:54 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
sqxlac 发表于 2020-2-25 03:09 | 显示全部楼层

阿尔卑斯大佬把下载地址也补上吧
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
M赵山河W 发表于 2020-2-25 04:37 | 显示全部楼层
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
四公子丶 发表于 2020-2-25 06:53 | 显示全部楼层

我想要汉化版
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
Jewel 发表于 2020-2-25 08:02 | 显示全部楼层

这贴精华顶了
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
萌萌的小短腿 发表于 2020-2-25 12:52 | 显示全部楼层

阿尔卑斯大佬牛批!!!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
chenyu520 发表于 2020-2-25 13:08 | 显示全部楼层

你将受到所有人的崇拜!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

警告:本站严惩灌水回复,尊重自己从尊重他人开始!

1层
2层
3层
4层
5层
6层
7层
8层
9层
10层

免责声明

吾爱汇编(www.52hb.com)所讨论的技术及相关工具仅限用于研究学习,皆在提高软件产品的安全性,严禁用于不良动机。任何个人、团体、组织不得将其用于非法目的,否则,一切后果自行承担。吾爱汇编不承担任何因为技术滥用所产生的连带责任。吾爱汇编内容源于网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除。如有侵权请邮件或微信与我们联系处理。

站长邮箱:SharkHeng@sina.com
站长QQ:1140549900


QQ|RSS|手机版|小黑屋|帮助|吾爱汇编 ( 京公网安备11011502005403号 , 京ICP备20003498号-6 )|网站地图

Powered by Discuz!

吾爱汇编 www.52hb.com

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