发布于 

easyhook

HOOK技术

hook是一种windows下调用信息队列的机制(也就是记录交互和改变运行基底)

遇事不决,动态调试!

这个题动态调试动起来就会发现,最后的check函数是假的。然后通过流程二分定区间,最后可以锁定主体函数,是一个非常简单的加密,然后python脚本逆回去就好。

另外本题也要求了解一些内核机制,而且反编译中还有一句很有趣

1
2
key = (char *)crypto - (char *)lpAddress - 5;
return sub_4010D0();

这一句对应的反汇编是

1
2
3
4
5
6
7
8
9
10
.text:004011FC lea     eax, crypto
.text:00401202 mov ebx, lpAddress
.text:00401208 sub eax, ebx
.text:0040120A sub eax, 5
.text:0040120D mov key, eax
.text:00401212 call sub_4010D0
.text:00401217 pop edi
.text:00401218 pop esi
.text:00401219 pop ebx
.text:0040121A retn

估测是将函数放在了返回寄存器里,然后再通过函数回退去调用,不过具体细节还需要考证。


本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。

本站由 [@Zuni](http://example.com/) 创建,使用 Stellar 作为主题。