新手破解练习Crackme160之003 - AfKayAs.2

暴力破解:
需要破解两个地方

  1. 去NAG
  2. 用户名系列号

第一个, 去NAG, 这个完全没头绪, 直接网络查, 看到了一个4C法, 第一条语句 push 004067D4, 直接到数据区ctrl+G, 输入表达式004067D4 + 4C, 到00406820, 看到数据内容是一个地址68 68 40 00, 即00406868, 继续ctrl+G, 输入00406868, 此处即为窗体内容位置, 看到第一个值是50,说明窗体的内容占0x50个字节, 下0x50字节的内容也是相似的, 说明此处有两个窗体, 每个窗体数据中的第0x24个字节为窗体标志位, 作为启动顺序标志, 所以将第一个窗体的第0x24位置的00改为01,
第二个窗体的第0x24位置的01改成00, 保存文件, 完成破解

4C法这玩意只能死记硬背了, 没办法了, 这里我发现了一个投机取巧的办法去NAG, 因为这个界面停留7秒会自动跳到第二个窗体界面, 也就是第一个界面肯定是有定时器的, 如果我们把定时器的时间调到最小(1毫秒)是不是就相当于一打开应用, 我们还没看到界面就跳过了, 这是不是也达到了去NAG的效果呢, 所以我们直接用VBExplorer工具找到CMSplash窗体的Timer1事件, 将Interval的值7000改为1保存即可(保存前需要先将原程序备份, 因为这个工具不能另存), 需要注意的是这里不能改为0, 0在这里是无穷大, 就是不会超时~

第二个, OD载入去NAG后的程序, 输入用户名abc, 系列号123, 点ok会提示"You Get Wrong\r\nTry Again", OD搜索错误提示"You Get Wrong", 找到004086E1, 向上找关键跳00408677, 改je为nop成功搞定,
此时系列号得是数字不然后异常退出程序, 算半成功吧_,
所以我们还需要继续向上找到异常的地方, 我们直接向上找到这个方法的入口004080F0处F2下个断点, ctrl+F2重新开始调试, F9运行, 重新点ok, 程序在断点处停下, F8单步向下执行, 直到程序异常处004085D2, 所以我们只要在异常处这行之前随便一个跳转处(就选最近那个吧004085BA), 改为 jmp 00408679 让程序直接跳转到成功分支~ 右键->复制到可执行文件->选择所有->全部复制->右键->保存文件

正常破解:
输入用户名abc, 系列号123, 点ok, 从点击事件入口004080F0处开始单步分析算法:
1). 004081FB处 获取用户名长度 edi = 3
2). 00408200处 edi = edi * 0x15B38 = 0x3 * 0x15B38 = 0x411A8
3). 00408216处 edi = edi + user[0]('a' = 0x61) = 0x41209
4). 0040821F处 edx = edi(10) = 266761
5). 004082EF处 edx = 266761.0
6). 0040831E处 edx = edx + 2.0 = 266763.0
7). 004083FB处 edx = edx * 3.0 = 800289.0
8). 00408404处 edx = edx - 2.0 = 800287.0
9). 004084E5处 edx = edx - (-15.0) = 800302.0
10). 004085CE处 获取系列号 code = 123.0 与edx比较是否相等
所以算法就是: 系列号 = int((len(用户名) * 0x15B38 + 用户名[0] + 2.0 ) * 3.0 - 2.0 - (-15.0))

这是160个软件part1
这是160个软件part2

1~160每个破解过程,在吾爱破解论坛都有高手破解过了,也有整理好现成的, 我这边主要就是自己动手操作的过程,与他们的不太一样
附上高手们的连接: 点击前往查看
使用的工具连接(工具有点多有点大,可以先下OD,其它的后面慢慢下) 点击前往下载

新人入门教程"玩玩破解,写给新人看" 点击前往查看
我就是从这里开始的,对我这样的小白感觉超级友好~

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

posted @ 2024-04-08 13:38  hankerstudio  阅读(80)  评论(0)    收藏  举报