-
您的位置:首页 → 精文荟萃 → 破解文章 → 试谈TEXme v1.0的破解
试谈TEXme v1.0的破解
时间:2004/10/15 0:58:00来源:本站整理作者:蓝点我要评论(0)
-
大家好,又见面了。不知大家看了上篇文章是否对KEY文件认证有些心得。今天我们看看
另一种风格的CRACKME软件。这次我们分析的是TEX99的TEXme v1.0版本。等级2级。虽然2
级,但加密去着实不弱。软件可以到下面地址下载。
此CRCAKME属于循环运算,在程序被展开后就开始循环计算NAME和SERIAL,等你添入正
确的NAME和SERIAL显示"YES! You found your serial!!"循环停止,否则显示
"Your serial is not valid."。这可以从下面的分析中看到。
我们先来看看破解的思路,先用W32反编译程序。查找有关的字串,这里就不再累述过程。
然后向上找可疑跳转,确定断点后用ICE动态分析,最终找到正确的SERIAL。
首先用W32载入texme.exe,老步骤,打开“REFS”查找字符串"YES! You found your serial!!",找到了双击。看到以下程序:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004012B6(C) ;这里有情况,说明这里是由004012B6处跳转来的。
|
* Possible StringData Ref from Data Obj ->"YES! You found your serial!!"
|
:004012CE 687F304000 push 0040307F
:004012D3 FF357C314000 push dword ptr [0040317C]
* Reference To: USER32.SetWindowTextA, Ord:0221h
|
:004012D9 E850020000 Call 0040152E
:004012DE 33C0 xor eax, eax
:004012E0 C9 leave
:004012E1 C21000 ret 0010
查找004012B6,看到以下程序:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:004012A6(C) ;这里同上,说明这里是由004012A6处跳转来的。
|
:004012AE A267314000 mov byte ptr [00403167], al
:004012B3 83F810 cmp eax, 00000010 ;在这里。
:004012B6 7416 je 004012CE ;不跳就失败了。
* Possible StringData Ref from Data Obj ->"Your serial is not valid."
|
:004012B8 6865304000 push 00403065
:004012BD FF357C314000 push dword ptr [0040317C]
* Reference To: USER32.SetWindowTextA, Ord:0221h
|
:004012C3 E866020000 Call 0040152E
:004012C8 33C0 xor eax, eax
:004012CA C9 leave
:004012CB C21000 ret 0010
我们修改004012B6处"je"成"jnz"。程序被暴力破解。可是CRACKME是不准打补丁的。
我们只好继续分析了。查找"004012A6",找到,看到以下程序:
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00401274(C) ;我们先不向上看了。
|
:0040128D 3D13010000 cmp eax, 00000113 ;这里断一下试一试
:00401292 7550 jne 004012E4
:00401294 E8BA010000 call 00401453 ;Call里是什么呢?
:00401299 0FBE0566314000 movsx eax, byte ptr [00403166]
:004012A0 3A0567314000 cmp al, byte ptr [00403167]
:004012A6 7506 jne 004012AE
:004012A8 33C0 xor eax, eax
:004012AA C9 leave
:004012AB C21000 ret 0010
用ICE中的Symbol Loader载入程序,运行,中断在程序入口处。BPX 40128D,然后
F5,程序被中断,F5又中断,程序已经进入循环。证明我们还是没有找错。BD *,F5。添
入NAME和SERIAL,Ctrl+D,BE *,F5,程序被中断。待程序运行到00401294处F8进入,
看到以下程序:
:00401453 55 push ebp
:00401454 8BEC mov ebp, esp
:00401456 83C4FC add esp, -4
:00401459 8925A0314000 mov dword ptr [004031A0], esp
:0040145F 8D2552314000 lea esp, dword ptr [00403152]
:00401465 0FBE0566314000 movsx eax, byte ptr [00403166]
:0040146C 03E0 add esp, eax
:0040146E C3 ret ;关键是RET后到哪里。
RET后程序到这里:
:00401361 8D3D8C314000 lea edi, dword ptr [0040318C]
:00401367 0FBE0568314000 movsx eax, byte ptr [00403168]
:0040136E 03F8 add edi, eax
:00401370 FE0568314000 inc byte ptr [00403168]
:00401376 A188314000 mov eax, dword ptr [00403188]
:0040137B 8B25A0314000 mov esp, dword ptr [004031A0]
:00401381 40 inc eax ;加1
:00401382 FF0588314000 inc dword ptr [00403188] ;迷惑项
:00401388 3307 xor eax, dword ptr [edi]
:0040138A A388314000 mov dword ptr [00403188], eax
:0040138F 803D6831400010 cmp byte ptr [00403168], 10
:00401396 7507 jne 0040139F
:00401398 80056631400004 add byte ptr [00403166], 04
:0040139F C9 leave
:004013A0 C3 ret ;出去还会回来的。呵呵。
这段是程序的关键所在,如果你看得懂,程序就破解一半了。基本是这样的,D 40318C
你可以看到你输入的NAME,过401376程序段后 ? EAX后可以看到你输入的SERIAL,而
403168则是一个计数器,它的值到16后就跳转出循环。程序在循环中这样取NAME的字符
ASCII码,不足16位以ASCII码"00"补齐。比如我的NAME:jojo[CCG],先取"j"的ASCII
值与你的SERIAL值加1后相异或,也就是00401382程序段。然后把结果送到403188中再把
"o"的ASCII值与上次相异或的结果加1后再相异或。结果再送到403188中,一直循环16次,
然后出循环。
出循环会到哪里呢?中断程序段0040128D,按F5,观察EAX的值,会有2次"111",2次
"138"后,出现"113",这时单步走没有多久可以看到以下程序:
:0040149C A188314000 mov eax, dword ptr [00403188]
:004014A1 0578241109 add eax, 09112478
:004014A6 85C0 test eax, eax
:004014A8 7509 jne 004014B3 ;如果不跳就万事大吉了
我们来算个算术题:0-09112478=F6EEDB88,就是说我们刚才异或半天的值等于
F6EEDB88就不会跳转,这样就使以下程序:
:004012AE A267314000 mov byte ptr [00403167], al
:004012B3 83F810 cmp eax, 00000010 ;在这里。
:004012B6 7416 je 004012CE ;不跳就失败了。
成功跳转,注册成功!
这样我们依此反推就可以得到正确的SERIAL。如果大家嫌太麻烦就自己做一个注册机吧。
好了,今天就到这里吧!休息、休息一下!!!对,差一点忘了,我的
NAME:jojo[CCG] SERIAL:3635081415
谨以此文献给我们可爱的CCG,希望它蒸蒸日上!
|
相关阅读
Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
-
热门文章
去除winrar注册框方法
最新文章
比特币病毒怎么破解 比去除winrar注册框方法
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)通过Access破解MSSQL获得数据
人气排行
华为无线路由器HG522-C破解教程(附超级密码JEB格式文件京东电子书下载和阅读限制破解教UltraISO注册码全集(最新)qq相册密码破解方法去除winrar注册框方法(适应任何版本)怎么用手机破解收费游戏华为无线猫HG522破解如何给软件脱壳基础教程
查看所有0条评论>>