吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 18284|回复: 22
收起左侧

[原创] 突破Enigma Protector注册保护之三板斧

[复制链接]
CHHSun 发表于 2010-4-26 10:07
本帖最后由 CHHSun 于 2010-4-26 13:26 编辑

用一组正确的KEY,过TEP注册框框
让大P股加的一个Enigma Protector 1.91(查的是1.35,不准)的小程序。
反正脱壳不会,爆破跳过他这个注册框框。
(起先走的是下文件断点的路,但是找不到地方,后来走的换硬件码的路子,运行后直接在OD里换硬件码,但是程序里不变。走换硬件码这条路也可行)。
分析只作学习用,没其它用途。

感谢大P和Z哥提供样本!!

第一板斧:突破TEP保护之试用限制
          突破3天、10次限制
          突破5分钟限制
附件:key.rar key.rar (675.02 KB, 下载次数: 186)       
需要一个正确的Key.dat,当然不是我机子上的。
OD载入,F9运行,Alt+M,在内存窗口中搜索硬件码。找到我的硬件码3EA14D-08C22A-006AD8-67CF73
 
00548D28  33 45 41 31 34 44 2D 30 38 43 32 32 41 2D 30 30  3EA14D-08C22A-00
00548D38  36 41 44 38 2D 36 37 43 46 37 33 00 00 00 00 00  6AD8-67CF73.....
记下硬件码的地址00548D28。
重载程序,在数据窗口中转到---表达式,转到硬件码出现的地址00548D28,现在是00,下内存写入断点,F9运行,中断后看堆栈:
 
0012F2F4   00547228  ASCII "CXJU2SY96NRH7CLF2DWD28FKDTVYGPUCTKKZ4687N6MSQRR3LCVVKUNE76PS5P9MCQW6A3KQZKN2TXQ3N259AJ7APBK8N335C4"
0012F2F8   00000003
0012F2FC   00547A28  ASCII "123"
0012F300   024EC304  ASCII "3EA14D-08C22A-006AD8-67CF73"
0012F304   00000000
0012F308   0012FEAC
0012F30C   004B2BF7  返回到 UandC.004B2BF7 来自 UandC.004B2654
0012F310   0012F31C  指向下一个 SEH 记录的指针
硬件码出现,我们在返回到 UandC.004B2BF7 来自 UandC.004B2654,
取消内存断点,反回到:
 
004B2BF7    8945 90         mov     dword ptr [ebp-70], eax  返回到这里,下硬件执行断点
004B2BFA    A1 9CF05100     mov     eax, dword ptr [51F09C]
返回后,在数据辅助窗口里可以看到我们的硬件码,此时如果有和KEY同步的硬件码的话我们可以改成同步的硬件码跳过注册框。
这里我们没有,下硬件执行断点F9,F8继续向下走,
 
004B2BF7    8945 90         mov     dword ptr [ebp-70], eax          ; 返回到这里
004B2BFA    A1 9CF05100     mov     eax, dword ptr [51F09C]
004B2BFF    05 B0040000     add     eax, 4B0
004B2C04    8945 F0         mov     dword ptr [ebp-10], eax
004B2C07    8D85 58FFFFFF   lea     eax, dword ptr [ebp-A8]
004B2C0D    E8 1EA6F9FF     call    0044D230                         ; 关键CALL
004B2C12    85C0            test    eax, eax
004B2C14    0F85 D6060000   jnz     004B32F0                         ; 关键跳,不能让他跳
这个跳不能让他跳走,我们NOP掉或改成JE。
继续F8向下走到
 
004B2D5E    A1 9CF05100     mov     eax, dword ptr [51F09C]
004B2D63    80B8 6C040000 0>cmp     byte ptr [eax+46C], 0
004B2D6A    74 1E           je      short 004B2D8A                   ; 这个JE要跳过去。
004B2D6C    807D 8C 00      cmp     byte ptr [ebp-74], 0
004B2D70    75 18           jnz     short 004B2D8A
004B2D72    8B45 FC         mov     eax, dword ptr [ebp-4]
004B2D75    8B15 84EB5100   mov     edx, dword ptr [51EB84]          ; UandC.0052750C
004B2D7B    8802            mov     byte ptr [edx], al
004B2D7D    33C0            xor     eax, eax
004B2D7F    5A              pop     edx
004B2D80    59              pop     ecx
004B2D81    59              pop     ecx
004B2D82    64:8910         mov     dword ptr fs:[eax], edx
有好多下面这个样的代码,下面的JE都跳了,上面的也的让他跳,我也不知为什么,跳就是,改004B2D6A 的JE为JMP或JNZ
 
jmp     004B372B
mov     eax, dword ptr [51F09C]
cmp     byte ptr [eax+46D], 0
je      short 004B2DB9                    已经跳过了
cmp     byte ptr [ebp-84], 0
jnz     short 004B2DB9
mov     eax, dword ptr [ebp-4]
F9运行OK,跳过注册框了,保存程序是不可能的啦,写补丁吧
004B2C14   /0F85 D6060000   jnz     004B32F0  改JE或NOP掉
004B2D6A   /74 1E           je      short 004B2D8A  改JMP或JNZ
---------

《续》突破TEP保护之双重检测

符件:UnCrackME0423.rar UnCrackMe0423.rar (675.55 KB, 下载次数: 61)

   知道程序是VB写的,这个突破TEP保护之试用限制以后,就是过注册框以后,程序还会在检测一次KEY,这时会出现一个错误对话框,对话框出现后KEY文件删除。
那么在出现框框的基础上我们下VB断点

方法一:
bp rtcMsgBox,断下后看堆栈:
0012F968   00402D30  返回到 UnCrackM.00402D30 来自 msvbvm60.rtcMsgBox
返回程序,向上找有一个JE,改成JMP或JNZ跳过这错误框就行了。
方法二:下VB断点 bp ThunRTMain断下后,返回程序,在Ctrl+G 81 6c 24下VB万能断点慢慢跟最终还会来到00402D30出错的地方。

---------------

第二板斧:突破TEP保护无KEY

符件和第一板一样

   上面是在同一机子上算出来的KEY.dat爆框,后来又看了看,其它机子上的同版加壳的KEY.dat也能爆
自已做个KEY.dat只要格式和位数对也行,下面是格式
[Registration information]
Name=CHHSun
Key=cccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc
这是用正确的KEY根出来的几个关键地方,但是要改值。
跟我们的系统时间有关系。

好下面我们跟据上面的来到
 
004B2C0D    E8 1EA6F9FF     call    0044D230                         ; 关键CALL,F7
F7进去,拉到段最后到
0044DB99    8B45 FC         mov     eax, dword ptr [ebp-4]           ;系统日,下个硬断吧
看数据辅助窗口
堆栈 ss:[0012F304]=0000000E
eax=00000000
点修改数据看看,这里的0000000E有符号和无符号是14,后来看了下是我们的系统日期的天数14
(2010.04.14)
(这地方应该可以改成01-31吧,不过是不是要看月份呢,没试,2月是28天。嘿嘿)
这地方先不管他了。记住这地方的值不行的时候也改他一下,目前我们先不改。

F8走出来
004B2C14   /0F85 D6060000   jnz     004B32F0                         ; 关键跳,不能让他跳
还是不能让跳,
继续到
004B2CA9  ^\75 F7           jnz     short 004B2CA2                   ; 循环
004B2CAB    66:8B8D 78FFFFF>mov     cx, word ptr [ebp-88]            ; 日
004B2CB2    66:8B95 74FFFFF>mov     dx, word ptr [ebp-8C]            ; 月
004B2CB9    66:8B85 70FFFFF>mov     ax, word ptr [ebp-90]            ; 年
来到这里,JNZ是循环,在下面下个断吧,来到
日:
004B2CAB    66:8B8D 78FFFFF>mov     cx, word ptr [ebp-88]            ; 系统日
堆栈 ss:[0012FE24]=0000这地方是0,我们改成上面的那个日期14,也就是0E
cx=0000

F8,一步
月:
004B2CB2    66:8B95 74FFFFF>mov     dx, word ptr [ebp-8C]            ; 月
堆栈 ss:[0012FE20]=0000  这地方是0,我们改成当前的月份4,也就是04
dx=FE9C
F8,一步
年:
004B2CB9    66:8B85 70FFFFF>mov     ax, word ptr [ebp-90]            ; 年
堆栈 ss:[0012FE1C]=0000这地方是0,我们改成当前年份2010,也就是07DA
ax=7524
改完后F8向下走到
004B2D6A   /74 1E           je      short 004B2D8A                   ; 这个JE要跳过去。
这个跳是上面改过的这里也要跳过去。
F9,OK。

-------
第三板斧:突破TEP保护之高版本(1.96)记事本保护
感谢Z哥提供样本
符件:TEP196_LCG.RAR TEP196_LCG.rar (607.45 KB, 下载次数: 50)
依旧需要一个正确的Key.dat,不一定是配套的。
OD载入,F9运行,Alt+M,在内存窗口中搜索硬件码,我的765103-CAC8CB-AC38B6-CC0165(OD载入后硬件码发生变化和原程序运行的不一样)
01112744  37 36 35 31 30 33 2D 43 41 43 38 43 42 2D 41 43  765103-CAC8CB-AC
01112754  33 38 42 36 2D 43 43 30 31 36 35 00 00 00 00 00  38B6-CC0165.....
和第一板一个找法。
找到这
0006F2EC   01111444  ASCII "CHHSun"
0006F2F0   02224C44  ASCII "765103-CAC8CB-AC38B6-CC0165"
0006F2F4   00000000
0006F2F8   0006FE9C
0006F2FC   010E7414  返回到 notepad_.010E7414 来自 notepad_.010E6CBC   返回
返回后下断,重载F9,断下后F8(其实这地方代码和1 .91版的差不多)
 
010E7414    8945 90         mov     dword ptr [ebp-70], eax          ; 返回到这,下断
010E7417    A1 4C411001     mov     eax, dword ptr [110414C]
010E741C    05 AC040000     add     eax, 4AC
010E7421    8945 F0         mov     dword ptr [ebp-10], eax
010E7424    8D85 58FFFFFF   lea     eax, dword ptr [ebp-A8]
010E742A    E8 B1BCF7FF     call    010630E0
010E742F    85C0            test    eax, eax
010E7431    0F85 3D060000   jnz     010E7A74                         ; 不能跳,改JE或NOP掉
010E7437    8D85 58F7FFFF   lea     eax, dword ptr [ebp-8A8]
F8,
 
010E7501    C605 802A1101 0>mov     byte ptr [1112A80], 0
010E7508    C605 8C2A1101 0>mov     byte ptr [1112A8C], 0
010E750F    C605 982A1101 0>mov     byte ptr [1112A98], 0
010E7516    C605 A42A1101 0>mov     byte ptr [1112AA4], 0
010E751D    80BD 7CFFFFFF 0>cmp     byte ptr [ebp-84], 0
010E7524    74 5B           je      short 010E7581                   ; 这里要跳过,改JMP或JNZ
010E7526    C605 5C2A1101 0>mov     byte ptr [1112A5C], 1
010E752D    66:8B4D 88      mov     cx, word ptr [ebp-78]
010E7531    66:8B55 84      mov     dx, word ptr [ebp-7C]
010E7535    66:8B45 80      mov     ax, word ptr [ebp-80]
F8,
 
010E757C   /E9 31090000     jmp     010E7EB2
010E7581   |A1 4C411001     mov     eax, dword ptr [110414C]
010E7586   |80B8 78040000 0>cmp     byte ptr [eax+478], 0
010E758D   |74 21           je      short 010E75B0                   ; 要跳,改JMP或JNZ
010E758F   |807D 8C 00      cmp     byte ptr [ebp-74], 0
010E7593   |75 1B           jnz     short 010E75B0
F8,
 
010E75AB   /E9 02090000     jmp     010E7EB2
010E75B0   |A1 4C411001     mov     eax, dword ptr [110414C]
010E75B5   |80B8 79040000 0>cmp     byte ptr [eax+479], 0
010E75BC   |74 24           je      short 010E75E2                   ; 要跳,改JMP或JNZ
010E75BE   |80BD 7CFFFFFF 0>cmp     byte ptr [ebp-84], 0
010E75C5   |75 1B           jnz     short 010E75E2
010E75C7   |8B45 FC         mov     eax, dword ptr [ebp-4]
就改这四处,和1.91版差不多,补丁的话要去效验,目前还不会。
脱壳不会,杯具了。

www.52pojie.cn
CHHSun
2010.04.26

免费评分

参与人数 1威望 +1 收起 理由
wgz001 + 1 进步太快了!膜拜

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

缸神 发表于 2014-7-14 16:44
学习中。 最近喷到一个Enigma的壳, 用PEID查是1.1-1.3的壳, 用Enigmainfo查是3.9的。  拿他没办法。
热火朝天 发表于 2010-4-26 10:14
Hmily 发表于 2010-4-26 10:17
Enigma的版本和具体的保护选项可以使用这个工具查看:
http://www.52pojie.cn/thread-42172-1-1.html
ZeNiX 发表于 2010-4-26 10:23
我那個記事本的破解,
有沒有辦法脫離 OD 運行?
huzhao23 发表于 2010-4-26 13:10
好贴啊,跟着楼主学习下
zsl01 发表于 2010-4-27 17:32
跟着楼主学习下
peterdocter 发表于 2010-10-9 16:46
多谢分享!!!
zckey09 发表于 2010-10-24 11:04
谢谢分享 支持一下
733 发表于 2010-12-12 09:53
http://unpack.cn/thread-59541-1-2.html
286598982 发表于 2010-12-12 10:11
好东西值得学习
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-18 01:32

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表