本帖最后由 小菜鸟一枚 于 2020-2-15 13:22 编辑
1.易语言写的程序,那我就试试按钮事件,直接将程序F9运行起来
2.Ctrl+B搜索FF 55 FC 5F 5E 89 5D F4特征码,看到了
[Asm] 纯文本查看 复制代码 1002D27B FF55 FC call dword ptr ss:[ebp-0x4] ; CrackMe.00409843
3.F7跟进去,右键中文搜索字符串,看到如图所示:
4.点最上面一个字符串进去,F4来到了
[Asm] 纯文本查看 复制代码 00409C40 68 EC904000 push CrackMe.004090EC ; -
00409C45 FF75 98 push dword ptr ss:[ebp-0x68]
00409C48 68 EC904000 push CrackMe.004090EC ; -
00409C4D FF75 B4 push dword ptr ss:[ebp-0x4C]
00409C50 68 EC904000 push CrackMe.004090EC ; -
00409C55 FF75 D0 push dword ptr ss:[ebp-0x30]
00409C58 68 EC904000 push CrackMe.004090EC ; -
5.F8单步向下走,看到了密码111111对应的账号。
eax=0030BA80, (ASCII "B085F-1B207-A6-BE052-CF52D")
堆栈 ss:[0018F3C4]=0030BA80, (ASCII "B085F-1B207-A6-BE052-CF52D")
6.继续单步向下走,看到一个跳转,跳过了注册成功的字符串
[Asm] 纯文本查看 复制代码 00409D35 /0F84 41000000 je CrackMe.00409D7C
7.将00409D35这一句nop掉,即可爆破成功!
PS:第5步那里,是因为这个程序拿我输入的密码经过算法计算后和账号做比较,所以我只需要将原来输入的账号输入到密码位置,把内存中看到的加密后的字符串放到账号位置即可,如果楼主对账号格式校验可能就行不通了。
我输入的密码111111加密为B085F-1B207-A6-BE052-CF52D再去和我输入的账号作比较,倒过来,账号输入B085F-1B207-A6-BE052-CF52D,密码输入111111,加密后肯定是B085F-1B207-A6-BE052-CF52D,验证通过!
|