BUUCTF 50.findkey wp详细版
打开ida,进入win程序的入口winmain

可见将句柄传入了两个程序的函数,401023和40100f,401023是有用的那个。一直跟踪进入。

这个函数是一个使用windowsAPI的注册函数,注册一个窗口,其中ipfnwndproc是处理窗口消息的函数,是关键函数
跟进后无法打开,去到反汇编ida view-a窗口,在401060处发现两个连续的push相同内容的代码段,这是花指令
选中其中一个重复指令在Edit->patch program->Assemble instruction中修改为nop,去掉。
然后打开这个处理消息的函数

40101e处理String1后,Str(已知)经过401005处理后和string1比较,然后使用原始string1再进行401005处理,得到flag
其中40101e是md5加密,401005是异或变化。
因此流程为:先得到Str经401005后的字符串,这个等于string1经过md5加密后的字符串,由此md5解密得到string1原始字符串
经401005处理得到flag

浙公网安备 33010602011771号