登录窗口爆破实验
一、实验目的
对程序登录窗口中name、serial进行窗口爆破,达成无需正确用户名密码也可登录,
了解动态调试大致过程,
掌握登录窗口爆破知识。知识点OD、登录爆破、动态调试。
二、实验原理
登录单机程序时有两种验证机制,其一是程序账户密码已经写到程序中,登录时会利用分支语句例如:if等进行判断是否与程序中给定账户密码一致,对于这样的程序,可以直接nop掉分支语句,或者将跳转指令地址修改为登录成功地址。其二是:程序附带注册机机制,用户输入账户后会根据程序算法自动生成密码,对于这样的程序,仍然可以选择nop掉分支语句,也可以通过对程序的动态调试分析注册机算法,编写相同计算方式的程序。
三、实验环境
软件工具Ÿ操作系统:Windows7x64Ÿ其他:ollydebug、Acidburn.exe
图1
四、实验目标
1. 去掉进程主接口之前的一个NAG窗口。
2. 找到Serial/Name校验页面的注册码。
3. 找到Serial校验页面的注册码。
五、实验步骤
首先要了解程序的运行逻辑,运行桌面上窗口爆破文件夹中的Acidburn.exe程序。
图2
然后点击确定后进入进程的主窗口。
图3
进去后发现有两个按钮,根据按钮上的字符串判断应该是需要输入序列号和名称的位置。首先看下左边那个按钮,点击进去看下情况,发现有两个输入框,分别是输入用户名和序列号,然后点击CheckitBaby,进程会进行校验,校验失败会弹出下面窗口,提醒你tryagain!
图4
发现了两个输入的文本框,以及两个按钮,需要输入name和serial,点击CheckitBaby!来验证,如果登录成功会弹窗显示成功,否则会提示Sorry,Theserialisincorect!
图5
然后点击Igiveup按钮返回到进程的主接口,看下右边那个按钮的情况。点击进去后发现有一个输入框,提醒你输入序列号,然后点击CheckitBaby,进程会进行校验,校验失败会弹出下面窗口,提醒你Failed!
图6
Serial窗口破解在od中重新运行程序,按F9然后在软件主界面点击Serial按钮,

图7
弹出的Serial验证窗口中,内容不变点击CheckitBaby!按钮。会弹出TryAgain!!弹框。
图8
和前面寻找字符串的方法一样,寻找TryAgain字符串,一共有三处位置。
图9
12分别在这三处位置下断点,然后回到Serial验证界面点击CheckitBaby!!按钮,程序会断在42F4F8位置。
图10
在此处向上翻查代码,反汇编是将Hello和Dude!字符串拼接,然后和用户输入内容作比较。重新运行程序,在Serial界面输入HelloDude!,显示正确。
图11