• 标 题:《Erlang 4.08》另类破解手记
  • 作 者:WksWlj999
  • 时 间:2002/06/24 04:50am
  • 链 接:http://bbs.pediy.com

《Erlang 4.08》另类破解手记
Cracked by  WksWlj999@sohu.com

软件说明:
   出差刚回来,打开电脑收到网友传来一个小软件叫Erlang版本4.08,大概是个用于建模分析通讯堵塞/队列延迟(to help model traffic blockage (loss), and/or queuing delays)等的工具。让我看看,pj完后觉得这个软件的保护太脆弱,就写出来供初学者借鉴,换一个方式去pj软件,或许会有奇效呢!

   本人刚刚涉足加密与解密,水平有限,文中有不足之处还望各位大虾不吝指教!此文仅供初学者参考。

**************************************************
目    的: pj(暴力or 另类)
加密方式: 注册码(License)
破解工具:  SoftICE 4.05 For Win9X,W32DASM8.92
日    期: 2002年6月24日
***************************************************


1)暴力破解,这个是大家的一般思路就不多讲了,

W32DASM反汇编后找到此处是剩余时间天数对比:

:0041095C D82D840B4100            fsubr dword ptr [00410B84]

* Reference To: cw3220.__ftol, Ord:0000h
                                 |
:00410962 E899250000              Call 00412F00
:00410967 85C0                    test eax, eax<==是这里啦!eax里是可用的天数
:00410969 7D04                    jge 0041096F<==这里改为jmp 0041096F(机器码EB06)就可以暴破此软件了^_^
:0041096B 33C0                    xor eax, eax
:0041096D EB0A                    jmp 00410979

2)以子之矛攻子之盾,让软件自己把RegKey计算给我们:=),这里才是另类的破解法。

安装Erlang4.08后,用RegMon监测发现一个可疑读取键值:HKEY_LOCALMACHINE\Software\Erlang\Version  4\Generate
在SoftICE里下断点bpx regqueryvalueexa if *(esp->8)=='Gene',运行程序,SoftICE拦截中断后,按F11返回程序领空

* Possible StringData Ref from Data Obj ->"Generate"
                                 |
:00406D16 6804604100              push 00416004
:00406D1B 53                      push ebx

* Reference To: ADVAPI32.RegQueryvalueExA, Ord:0000h
                                 |
:00406D1C E839C50000              Call 0041325A
:00406D21 85C0                    test eax, eax<==返回后停在此处,若Generate存在且有值则eax=0,否则eax不为零;此处下命令r eax 0
:00406D23 7505                    jne 00406D2A <==我们的关键点!!!由于上行我们强制eax=0,模拟了返回真值,此处就不跳转了
:00406D25 BE01000000              mov esi, 00000001
。。。。。。

继续调试会发现程序调用了一些菜单操作相关的API函数,添加了一个Key菜单并在其下建立了一个子菜单Generate(实际上这就是我们要的结果!!!)

F5返回程序,还是出现要求试用的对话框,别管它,点Run Trial,细心的你会发现在Edit和Model菜单之间多了一个Key菜单!点击Key下的子菜单Generate出现对话框,哈哈,这下你该明白它是干什么的吧!这是一个License的Key生成器,在Seed(种子)栏输入数值,比如8;Version(版本)保持默认;点击“Caculate”,mmmm~~~~~~~~看看发生了什么?哈哈!Key栏出现一个8位编码"87A776E0",Check(检查)栏出现“OK”,这个Key可是程序作者为我们亲自计算的RegKey呀!!赶紧用它来注册吧!!!*_@,注册后会多一个键RegKey="87A776E0"

实际上可以直接在注册表HKEY_LOCALMACHINE\Software\Erlang\Version  4\下建立字符串值Generate,值设为1,然后启动Erlang.exe就多出了Key菜单,其他我就不用多讲了,是吧?

祝大家:工作顺利,破解顺利!