admin管理员组

文章数量:1599543

2019独角兽企业重金招聘Python工程师标准>>>

  简单刷完韩国人的《逆向工程核心原理》之后,觉得自己需要投入到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”                                                                 (如有错误,敬请指出~)

转载于:https://my.oschina/u/3281747/blog/1595845

本文标签: 万能钥匙看雪WannaLOLwifiCTF