新CrackMe160之013 - 013-Acid burn

这个程序与旧版的160个crackme的第一个是一样的

暴力破解:
这个程序有三个地方需要破解,

  1. 去NAG弹框界面

  2. 系列号模式

  3. 用户名和系列号模式

  4. OD搜索(菜单->插件->中文搜索引擎->智能搜索)弹框关键字 "Welcome to this ..." 成功查找到并双击定位到 0042F78B , 下个断点, F9运行, 成功运行到断点处,
    一路F8到retn返回上一层, 上一层的前几行0042562F处有个关键跳转, 直接je改为jmp跳过这个弹框, 第一个破解搞定,
    先保存一个版本(LCG界面右键->复制到可执行文件->选择所有->全部复制->新界面右键->保存文件)
    也可以直接返回到最上层0042FD9C处, 将这行nop掉即可

  5. 进入Serial / Name 界面, 点验证按钮提示"Sorry, The serial is incorect!" , 在OD中搜索, 成功定位到0042FA63, 向上几行0042FA5A看到关键跳,
    直接改jge为jmp, 住下执行又发现一个关键跳跳到失败去了, 所以继续改为不跳, jnz转nop, 成功搞定~, 保存起来!

  6. 进入Serial 界面, 点验证按钮提示"Try Again!" , 在OD中搜索, 成功定位到0042F4F8, 继续向上看几行找关键跳, 0042F4D5, jnz转nop, 测试成功~ 保存, 到此三个暴破完成~

正常破解:
1. 由Delphi Decomiler分析可知, 系列号框的验证按钮入口地址为 0042F470, 在入口这行F2下断点单步跟踪可知, "Hello Dude!"就是正确的答案

2. 由Delphi Decomiler分析可知,  用户名和系列号模式的验证按钮入口地址为 0042F998,  单步分析算法
    1). 取第一个字符 esi = user[0] << 0x3 - user[0]
    2). 取第二个字符 esi += user[1] << 0x4
    3). 取第四个字符 esi += user[3] * 0xB 
    4). 取第三个字符 esi += user[2] *0xE
    5). if(len(user) < 0x4)
    6). 取第一个字符 eax = user[0] * 0x29 * 2
    7). 拼接字符串 str = CW-eax(10)-CRACKED
    8). 比较str与serial
由此可知1).~4).是没什么用的, 输入用户名后, 系列号直接就用计算器就可以算出来, 比如, 
用户名为: 52pojie.cn,  
那么算法为: '5' * 0x29 * 2 = 0x35 * 0x29 * 2 = 0x10FA = 4346, 
系列号为: CW-4346-CRACKED

 
 
本节高手录制的视频,点击前往查看

 
 
 

使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载

下面是我的OD的界面布局,我觉得这4个是最常用的界面,其它的我基本上没用到~
OD界面布局

posted @ 2024-12-09 17:19  hankerstudio  阅读(1)  评论(0)    收藏  举报