本帖最后由 nomomono 于 2026-8-2 18:49 编辑
提供一些思路吧
没有完全的破解开,但是勉强也算是用强制跳转让正确弹窗强制弹出,但是由于是强制弹窗并没有解密正确文本所以还是有问题的
首先在winhex里面把样本动态基址关闭
打开ida => start => sub_401D30 => v13.lpfnWndProc = sub_403930 这里暴露了 WindowProc 地址 => sub_403930
到了sub_403930 这里你可以发现sub_4036C0 sub_402140 sub_401F00这三个函数
前面两个就是需要重点照顾的校验函数和验证函数,密码学的魅力我还是没学会啊
sub_401F00 => 这个函数就很喜欢了这是最后的验证函数了
v4 = sub_4013E0(a1: a2, a2: -567323009) & (a1 != nullptr ? v3 & HIDWORD(v3) : 0);在反汇编里面你会发现这一条代码
这个V4根据我多次尝试只需要把V4修改成-1即可
401F67 and edx, eax
401F69 neg ebx
401F6B push 0DE2F567Fh
401F70 push [esp+17Ch+arg_4]
401F77 sbb ebx, ebx
401F79 and ebx, edx
401F7B call sub_4013E0 <== 替换成 jmp 0x00401031
401F80 and ebx, eax <== 直接 nop 即可
401F82 mov eax, [edi]
补丁区域
401031 call 0x004013E0
401036 mov ebx,FFFFFFFF
40103B jmp 0x00401F80
这样在运行就可以成功跳到正确的message了,但是消息体并没有解密,应该不算成功吧
燃尽了
|