看雪WiFi万能钥匙CTF-第一题 WannaLOL

  简单刷完韩国人的《逆向工程核心原理》以后,以为本身须要投入到Crack-Me CTF中的淬炼当中,因此准备把看雪2017年中CFT的题目拿来锻炼一下,话很少说,先看看第一题WananLOL的面目吧。算法

    

    PS:注意要点,它的标题以及消息框中的文字,还有Register按钮的短暂禁用。函数

  1.     先放入IDA,概览一下                            其中有两处显示窗口的回调函数(WindowProc和DialogProc),在sub_401000(WindowProc)处没有Register消息的处理,                            而在 DialogFunc处有EnableWindow的痕迹,明显可以看出来,EnableWindow的先后两次调用,分别是Register按钮的禁用和启用,那么有关key的compare函数也就在他们之间。                             点进loc_4011F4处,果真看见MessageBox的调用,在loc_4011F4处的靠前部分还有GetDlgItemText,用于得到输入的文本,天然下面就是compare的过程。                            
  2. compare处找到了,咱们来看看它的相关算法。首先祭出F5大法,惋惜出师不利                             程序经过一些jmp方式跳过一些特殊字节,起到了模糊静态反编译的效果。经过将0x401262和0x4012AA处的指令nop掉,使得反编译成功。按下P(Create Function)后再按F5反编译。                                  Python模拟验证函数为
  3. 终极简化就是(key[2]-0.2)*key[3]=24.0,求解得key[2]=key[3]=5,即key=“1555”                                                                 (若有错误,敬请指出~)
相关文章
相关标签/搜索