博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
看雪WiFi万能钥匙CTF-第一题 WannaLOL
阅读量:6675 次
发布时间:2019-06-25

本文共 710 字,大约阅读时间需要 2 分钟。

hot3.png

  简单刷完韩国人的《逆向工程核心原理》之后,觉得自己需要投入到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.net/u/3281747/blog/1595845

你可能感兴趣的文章
HTML-语义类标签
查看>>
cookie、session、cache-control等
查看>>
一篇文章带你理解闭包
查看>>
Android权限列表
查看>>
Sass基础
查看>>
Webpack3简单入门2
查看>>
Springmvc+mybatis+restful+bootstrap框架整合
查看>>
ubuntu下rsync服务器端和客户端的配置
查看>>
UNIX/Linux 系统管理技术手册阅读(八)
查看>>
LINUX 软件安装。
查看>>
linux 批量文件重命名
查看>>
javascript使用xml 数据岛 简单实例
查看>>
Ubuntu 16.04安装Cobbler 2.9
查看>>
源码编译安装mysql-5.7.14
查看>>
CentOS6.7 DNS配置
查看>>
vRealize Operations Manager 6.5的安装与配置
查看>>
老舍|回忆初恋,只一眼就一生
查看>>
ip--lftp
查看>>
服务器端控件使用JQuery
查看>>
winform编程中鼠标坐标
查看>>