吾爱汇编

 找回密码
 立即注册

QQ登录

绑定QQ避免忘记帐号

楼主: DavidLiu

E程序如何巧妙地去除信息框弹窗?

[复制链接]
Eric 发表于 2023-2-17 15:59 | 显示全部楼层

本帖最后由 Icpower 于 2023-2-17 16:03 编辑

MessageBoxA = __get_pointer (__get_handle (“user32.dll”), “MessageBoxA”)
BlankAddress = 申请空内存 (-1, 1024, )
HookData = 取钩子代码 (MessageBoxA, BlankAddress, 0)
HookCode = "汇编代码或转接子程序" + 指针到字节集 (MessageBoxA, 5)
HookCode = HookCode + 取钩子代码 (BlankAddress + 取字节集长度 (HookCode), MessageBoxA + 5, 0)
Memory.写字节集 (Pid, BlankAddress, HookCode)
Memory.写字节集 (Pid, MessageBoxA, HookData)

汇编可以直接判断寄存器指定位置 cmp dword ptr ss:[edi],特征

评分

参与人数 1HB +2 THX +1 收起 理由
DavidLiu + 2 + 1 能力有限没看懂原理,我想思路上应该也是没问题的。我写了一个汇编函数能截获关键点,判断后来决定其执行流程

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| DavidLiu 发表于 2023-2-17 16:31 | 显示全部楼层

Icpower 发表于 2023-2-17 15:59
MessageBoxA = __get_pointer (__get_handle (“user32.dll”), “MessageBoxA”)
BlankAddress = 申请空 ...

收到!卧槽,牛啊!谢谢您了。

老师我好好研究一下,按照您的思路我来写代码试一试。
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
涛涛 发表于 2023-2-17 17:44 | 显示全部楼层

.版本 2

.子程序 hook信息框, 逻辑型, 公开
.参数 参数_进程ID
.局部变量 hModule
.局部变量 FARPROC
.局部变量 OldProtect
.局部变量 hProcess
.局部变量 NumberOfBytesWritten

hProcess = OpenProcess (2035711, 0, 参数_进程ID)
hModule = LoadLibrary (“user32.dll”)
.如果真 (hModule = 0)
    返回 (假)
.如果真结束
FARPROC = GetProcAddress (hModule, “MessageBoxA”)
.如果真 (FARPROC = 0)
    返回 (假)
.如果真结束
.如果真 (VirtualProtectEx (hProcess, FARPROC, 4, 64, OldProtect) = 假)
    返回 (假)
.如果真结束
.如果真 (WriteProcessMemory (hProcess, FARPROC, { 194, 16, 0, 144 }, 4, NumberOfBytesWritten) = 假)
    返回 (假)
.如果真结束
.如果真 (NumberOfBytesWritten ≠ 4)
    返回 (假)
.如果真结束
VirtualProtectEx (hProcess, FARPROC, 4, OldProtect, 0)
FARPROC = GetProcAddress (hModule, “MessageBoxW”)
.如果真 (FARPROC = 0)
    返回 (假)
.如果真结束
.如果真 (VirtualProtectEx (hProcess, FARPROC, 4, 64, OldProtect) = 假)
    返回 (假)
.如果真结束
.如果真 (WriteProcessMemory (hProcess, FARPROC, { 194, 16, 0, 144 }, 4, NumberOfBytesWritten) = 假)
    返回 (假)
.如果真结束
.如果真 (NumberOfBytesWritten ≠ 4)
    返回 (假)
.如果真结束
VirtualProtectEx (hProcess, FARPROC, 4, OldProtect, 0)
返回 (真)

评分

参与人数 1HB +2 THX +1 收起 理由
DavidLiu + 2 + 1 研究了一下,代码核心在于找到MessageBoxA/W的地址,头部retn,属于通杀而非精准打击,和2楼的效果是一样的

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| DavidLiu 发表于 2023-2-17 18:12 | 显示全部楼层

涛涛 发表于 2023-2-17 17:44
.版本 2

.子程序 hook信息框, 逻辑型, 公开

涛哥,牛的!
这应该是直接调用API编程,用的底层DLL函数,可不是封装的类。

赞啊!!!
涛哥我晚上好好研究一下,谢谢您的回复。强的
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
boot 发表于 2023-2-17 18:12 | 显示全部楼层

可以通过汇编语句实现:判断eip的值。如果是断在“计算”的按钮段首,此时就打掉信息框;如果是断在“信息框A”或“信息框B”的按钮段首,就恢复信息框。

评分

参与人数 1HB +2 THX +1 收起 理由
DavidLiu + 2 + 1 突发奇想了一下,既然都要走0x401650,那我何不直接hook这个地方呢。把该放行的直接放行

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| DavidLiu 发表于 2023-2-17 18:15 | 显示全部楼层

boot 发表于 2023-2-17 18:12
可以通过汇编语句实现:判断eip的值。如果是断在“计算”的按钮段首,此时就打掉信息框;如果是断在“信息 ...

感谢老师的分享!我感觉这个思路是可行的!!!

直接写汇编我还不太行,晚上我尝试尝试先写代码试一试看看能不能突破
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
boot 发表于 2023-2-17 20:48 | 显示全部楼层

DavidLiu 发表于 2023-2-17 18:15
感谢老师的分享!我感觉这个思路是可行的!!!

直接写汇编我还不太行,晚上我尝试尝试先写代码试一试看 ...

@DavidLiu
经过测试,我的这种思路完全可行。现在给你现成的解决方案:


;;;;;;;;这一行是注释,并非补丁: 00401650 >  83EC 64                     sub     esp, 0x64                              ; 总 信息框 段首



;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;需要先Hook CreateWindowExW
;;;;;;;;下面是补丁,总共需要补丁四处:


<004010DC>

        jmp     00480390 ; 计算  按钮事件段首
        nop
        nop
        nop
        nop


<00401004>

        jmp     004803A8 ; 用户代码段开始 信息框A 按钮事件段首

<00401059>

        jmp     004803C1 ; 信息框B 按钮事件段首


<00480390>

        mov     dword ptr [0x401650], 0x539090C3
        push    ebp
        mov     ebp, esp
        sub     esp, 0x24
        jmp     004010E5
        nop
        add     byte ptr [eax], al
        mov     dword ptr [0x401650], 0x5364EC83
        push    ebp
        mov     ebp, esp
        jmp     00401010
        jmp     00401009
        add     byte ptr [eax], al
        mov     dword ptr [0x401650], 0x5364EC83
        push    ebp
        mov     ebp, esp
        jmp     00401065
        jmp     0040105E
        nop


吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
boot 发表于 2023-2-17 20:50 | 显示全部楼层

DavidLiu 发表于 2023-2-17 18:15
感谢老师的分享!我感觉这个思路是可行的!!!

直接写汇编我还不太行,晚上我尝试尝试先写代码试一试看 ...

@DavidLiu 经过测试,我的这种思路完全可行。解决方案在这里:

https://versteckt.lanzouw.com/ienLk0nw1j0b

评分

参与人数 1HB +2 THX +1 收起 理由
DavidLiu + 2 + 1 这段汇编代码我没读懂,我想您的这种方式应该是可以做到精准去除无用弹窗,而不影响其他正常的弹窗。

查看全部评分

吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| DavidLiu 发表于 2023-2-17 21:12 | 显示全部楼层

boot 发表于 2023-2-17 20:50
@DavidLiu 经过测试,我的这种思路完全可行。解决方案在这里:

https://versteckt.lanzouw.com/ienLk0nw ...

赞!!!我去试一下,这是直接写的汇编啊
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
 楼主| DavidLiu 发表于 2023-2-18 08:54 | 显示全部楼层

boot 发表于 2023-2-18 01:15
根据上面的结果,编译了一份补丁,生成的补丁在这里:
https://versteckt.lanzouw.com/iIC3h0nwovub

亲测有效果!!!
非常完美和精准的解题,赞!
吾爱汇编论坛-学破解,防破解!知进攻,懂防守!逆向分析,软件安全!52HB.COM
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

11层
12层
13层
14层
15层
16层
17层
18层
19层
20层

免责声明

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

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


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

Powered by Discuz!

吾爱汇编 www.52hb.com

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