能力值:
( LV9,RANK:610 )
|
-
-
2 楼
查了是 ASPack 2.12 -> Alexey Solodovnikov 的壳
用OD搞了下 没发现Anti 呵呵 我用的是普通的OD
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢你!!
PEiD v0.94查壳ASPack 2.12 -> Alexey Solodovnikov
KANAL v2.90显示无任何算法
用AspackDie141完美脱壳
PEiD v0.94再查Borland C++ 1999
OD载入。我没办法断下。希望你能再提示一下。
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
ESP 定率就行了
hr 0012ffa4
f9
004F53B0 /75 08 JNZ SHORT 004F53BA ;断在这里
004F53B2 |B8 01000000 MOV EAX,1
004F53B7 |C2 0C00 RETN 0C
004F53BA \68 28144000 PUSH 00401428
004F53BF C3 RETN
F8 走3步就到 OEP 了
00401428 /EB 10 JMP SHORT 0040143A ;OEP
0040142A |66:623A BOUND DI,DWORD PTR DS:[EDX]
0040142D |43 INC EBX
0040142E |2B2B SUB EBP,DWORD PTR DS:[EBX]
插件 dump就行了
|
能力值:
( LV2,RANK:10 )
|
-
-
5 楼
关于X桌面一键隐藏的破解思路!!
PEiD v0.94查壳ASPack 2.12 -> Alexey Solodovnikov
KANAL v2.90显示无任何算法
用AspackDie141完美脱壳
PEiD v0.94查壳Borland C++ 1999
部分破解过程!!
该软件用一段时间后会显示过期,不能使用。于是,想到可能是在安装时记下一时间,在每次启动时再取得一时间跟安装时的时间作比较。
用bp GetLocalTime下断成功断下。
7C80A874 > 8BFF mov edi, edi 断在这儿!
7C80A876 55 push ebp
7C80A877 8BEC mov ebp, esp
7C80A879 83EC 18 sub esp, 18
7C80A87C 64:A1 18000000 mov eax, dword ptr fs:[18]
7C80A882 8B40 30 mov eax, dword ptr [eax+30]
7C80A885 8B0D D802FE7F mov ecx, dword ptr [7FFE02D8]
可是在系统领空中。ALT+F9,返回到程序领空!
0042FBD7 |. 50 push eax ; /pLocaltime
0042FBD8 |. E8 21D50800 call <jmp.&KERNEL32.GetLocalTime> ; \GetLocalTime
0042FBDD |. 66:8B4C24 0E mov cx, word ptr [esp+E] 返回到这儿!!
0042FBE2 |. 66:8B5424 0A mov dx, word ptr [esp+A]
0042FBE7 |. 66:8B4424 08 mov ax, word ptr [esp+8]
0042FBEC |. E8 EFFDFFFF call 0042F9E0
并且看到了GetLocalTime,熟悉的函数!
F8向下一步一步走,走出这个该段函数。
00402541 |. DD5D C8 fstp qword ptr [ebp-38] 返回到这儿!!!
00402544 |. 8D45 C8 lea eax, dword ptr [ebp-38]
00402547 |. E8 C4000000 call 00402610
0040254C |. 2B83 78030000 sub eax, dword ptr [ebx+378]
00402552 |. 50 push eax
00402553 |. E8 C4000000 call 0040261C
00402558 |. 59 pop ecx
00402559 |. 83F8 0F cmp eax, 0F ; 检测软件是否过期
0040255C |. 7D 11 jge short 0040256F
0040255E |. 33C0 xor eax, eax
00402560 |. 8B55 D0 mov edx, dword ptr [ebp-30]
00402563 |. 64:8915 00000>mov dword ptr fs:[0], edx
0040256A |. E9 9A000000 jmp 00402609
0040256F |> 66:C745 E0 08>mov word ptr [ebp-20], 8
00402575 |. BA 3AE24B00 mov edx, 004BE23A
0040257A |. 8D45 FC lea eax, dword ptr [ebp-4]
0040257D |. E8 AA730A00 call 004A992C
00402582 |. FF45 EC inc dword ptr [ebp-14]
00402585 |. 8D55 FC lea edx, dword ptr [ebp-4]
00402588 |. 8B83 7C030000 mov eax, dword ptr [ebx+37C]
0040258E |. E8 29750A00 call 004A9ABC
00402593 |. FF4D EC dec dword ptr [ebp-14]
00402596 |. 8D45 FC lea eax, dword ptr [ebp-4]
00402599 |. BA 02000000 mov edx, 2
0040259E |. E8 E9740A00 call 004A9A8C
004025A3 |. 8BCB mov ecx, ebx
004025A5 |. B2 01 mov dl, 1
004025A7 |. A1 E41B4C00 mov eax, dword ptr [4C1BE4]
004025AC |. E8 6B8D0000 call 0040B31C
004025B1 |. 8BF0 mov esi, eax
004025B3 |. 8BC6 mov eax, esi
004025B5 |. 8B10 mov edx, dword ptr [eax]
004025B7 |. FF92 E8000000 call dword ptr [edx+E8] ; F8单步走,到这儿弹出对话框,软件已过期
也就是说在弹出过期对话框时,程序一定已判断了该软件是否过期,再往回找。看到
00402559 |. 83F8 0F cmp eax, 0F ; 检测软件是否过期
试用期为15天,这儿可以改0F为FFFFFFFF可无限期试用。(我没试,你可改的小点)
想找到如何注册有点难,我搞这好几个星期了。没找到头绪。于是就用脑猛想。想啊想…………
想到,如果有人注册了的话,一定是先判断该软件是否注册,没注册的话再判断有没有过期,于就往上看,看到如下:
00402518 |. 56 push esi
00402519 |. 57 push edi
0040251A |. 8B5D 08 mov ebx, dword ptr [ebp+8]
0040251D |. E8 92D20900 call 0049F7B4 ; 这个就是关键Call(猜的)
00402522 |. 83BB 74030000>cmp dword ptr [ebx+374], 0
00402529 |. 75 11 jnz short 0040253C ; 关键跳,跳走OK,不跳挂!!
0040252B |. 33C0 xor eax, eax
0040252D |. 8B55 D0 mov edx, dword ptr [ebp-30]
00402530 |. 64:8915 00000>mov dword ptr fs:[0], edx
00402537 |. E9 CD000000 jmp 00402609
0040253C |> E8 8FD60200 call 0042FBD0
00402541 |. DD5D C8 fstp qword ptr [ebp-38]
经测试,完全可以。
00402529 |. 75 11 jnz short 0040253C ; 关键跳,跳走OK,不跳挂!!
这一行可以完成爆破。jnz改为jz
爆破后,我试运行,在切换几次之后还是会弹出恼人提示未注册的窗口!!郁闷呀!!
就先分析到这儿!!我以后还将继续关注这软件!!
注:该软件可以通过改系统日期的方法,无限期使用,不过这个看日期就不方便了。
也可以改系统日期让软件过期,便于调试!!
改日期,改桌面右下角的日期即可!!
|
能力值:
( LV6,RANK:90 )
|
-
-
8 楼
如果不想研究算法,就构造虚假注册文件XDesktopReg.Ini,再进行爆破即可。
|
能力值:
( LV2,RANK:10 )
|
-
-
9 楼
在此先谢谢你!!
我来这是想学点东西的.当然想研究算法.
昨晚也找到了主要算法的位置,并构造了虚假的文件.
0040BE78 /$ 55 push ebp
0040BE79 |. 8BEC mov ebp, esp
0040BE7B |. 51 push ecx
0040BE7C |. 53 push ebx
0040BE7D |. 56 push esi
0040BE7E |. 57 push edi
0040BE7F |. 8B7D 10 mov edi, dword ptr [ebp+10]
0040BE82 |. 57 push edi
0040BE83 |. E8 5C2C0900 call 0049EAE4
0040BE88 |. 59 pop ecx
0040BE89 |. 8945 FC mov dword ptr [ebp-4], eax
0040BE8C |. 33F6 xor esi, esi
0040BE8E |. 8B45 FC mov eax, dword ptr [ebp-4]
0040BE91 |. 8BD8 mov ebx, eax
0040BE93 |. 8B45 0C mov eax, dword ptr [ebp+C]
0040BE96 |. 8BC8 mov ecx, eax
0040BE98 |. 3BFE cmp edi, esi
0040BE9A |. 0F8E 8D000000 jle 0040BF2D
0040BEA0 |> 8BC6 /mov eax, esi
0040BEA2 |. 51 |push ecx
0040BEA3 |. B9 03000000 |mov ecx, 3
0040BEA8 |. 99 |cdq
0040BEA9 |. F7F9 |idiv ecx
0040BEAB |. 59 |pop ecx
0040BEAC |. 85D2 |test edx, edx
0040BEAE |. 75 08 |jnz short 0040BEB8
0040BEB0 |. 8A01 |mov al, byte ptr [ecx]
0040BEB2 |. 04 FD |add al, 0FD
0040BEB4 |. 8803 |mov byte ptr [ebx], al
0040BEB6 |. EB 6A |jmp short 0040BF22
0040BEB8 |> 8BD6 |mov edx, esi
0040BEBA |. 81E2 03000080 |and edx, 80000003
0040BEC0 |. 79 05 |jns short 0040BEC7
0040BEC2 |. 4A |dec edx
0040BEC3 |. 83CA FC |or edx, FFFFFFFC
0040BEC6 |. 42 |inc edx
0040BEC7 |> 85D2 |test edx, edx
0040BEC9 |. 75 08 |jnz short 0040BED3
0040BECB |. 8A01 |mov al, byte ptr [ecx]
0040BECD |. 04 FC |add al, 0FC
0040BECF |. 8803 |mov byte ptr [ebx], al
0040BED1 |. EB 4F |jmp short 0040BF22
0040BED3 |> 8BC6 |mov eax, esi
0040BED5 |. 51 |push ecx
0040BED6 |. B9 05000000 |mov ecx, 5
0040BEDB |. 99 |cdq
0040BEDC |. F7F9 |idiv ecx
0040BEDE |. 59 |pop ecx
0040BEDF |. 85D2 |test edx, edx
0040BEE1 |. 75 08 |jnz short 0040BEEB
0040BEE3 |. 8A01 |mov al, byte ptr [ecx]
0040BEE5 |. 04 FB |add al, 0FB
0040BEE7 |. 8803 |mov byte ptr [ebx], al
0040BEE9 |. EB 37 |jmp short 0040BF22
0040BEEB |> 8BC6 |mov eax, esi
0040BEED |. 51 |push ecx
0040BEEE |. B9 07000000 |mov ecx, 7
0040BEF3 |. 99 |cdq
0040BEF4 |. F7F9 |idiv ecx
0040BEF6 |. 59 |pop ecx
0040BEF7 |. 85D2 |test edx, edx
0040BEF9 |. 75 08 |jnz short 0040BF03
0040BEFB |. 8A01 |mov al, byte ptr [ecx]
0040BEFD |. 04 F9 |add al, 0F9
0040BEFF |. 8803 |mov byte ptr [ebx], al
0040BF01 |. EB 1F |jmp short 0040BF22
0040BF03 |> 8BC6 |mov eax, esi
0040BF05 |. 51 |push ecx
0040BF06 |. B9 0B000000 |mov ecx, 0B
0040BF0B |. 99 |cdq
0040BF0C |. F7F9 |idiv ecx
0040BF0E |. 59 |pop ecx
0040BF0F |. 85D2 |test edx, edx
0040BF11 |. 75 08 |jnz short 0040BF1B
0040BF13 |. 8A01 |mov al, byte ptr [ecx]
0040BF15 |. 04 F5 |add al, 0F5
0040BF17 |. 8803 |mov byte ptr [ebx], al
0040BF19 |. EB 07 |jmp short 0040BF22
0040BF1B |> 8A11 |mov dl, byte ptr [ecx]
0040BF1D |. 80C2 F0 |add dl, 0F0
0040BF20 |. 8813 |mov byte ptr [ebx], dl
0040BF22 |> 46 |inc esi
0040BF23 |. 43 |inc ebx
0040BF24 |. 41 |inc ecx
0040BF25 |. 3BFE |cmp edi, esi
0040BF27 |.^ 0F8F 73FFFFFF \jg 0040BEA0
0040BF2D |> 57 push edi
0040BF2E |. 8B4D FC mov ecx, dword ptr [ebp-4]
0040BF31 |. 51 push ecx
0040BF32 |. 8B45 0C mov eax, dword ptr [ebp+C]
0040BF35 |. 50 push eax
0040BF36 |. E8 79340900 call 0049F3B4
0040BF3B |. 83C4 0C add esp, 0C
0040BF3E |. 8B55 FC mov edx, dword ptr [ebp-4]
0040BF41 |. 52 push edx
0040BF42 |. E8 C5290900 call 0049E90C
0040BF47 |. 59 pop ecx
0040BF48 |. B0 01 mov al, 1
0040BF4A |. 5F pop edi
0040BF4B |. 5E pop esi
0040BF4C |. 5B pop ebx
0040BF4D |. 59 pop ecx
0040BF4E |. 5D pop ebp
0040BF4F \. C3 retn
0049F3B4 /$ 55 push ebp
0049F3B5 |. 8BEC mov ebp, esp
0049F3B7 |. 56 push esi
0049F3B8 |. 57 push edi
0049F3B9 |. 8B7D 08 mov edi, dword ptr [ebp+8]
0049F3BC |. 8BC7 mov eax, edi
0049F3BE |. 8B75 0C mov esi, dword ptr [ebp+C]
0049F3C1 |. 8B4D 10 mov ecx, dword ptr [ebp+10]
0049F3C4 |. 8BD1 mov edx, ecx
0049F3C6 |. D1E9 shr ecx, 1
0049F3C8 |. D1E9 shr ecx, 1
0049F3CA |. FC cld
0049F3CB |. F3:A5 rep movs dword ptr es:[edi], dword ptr [esi]
0049F3CD |. 8BCA mov ecx, edx
0049F3CF |. 83E1 03 and ecx, 3
0049F3D2 |. F3:A4 rep movs byte ptr es:[edi], byte ptr [esi]
0049F3D4 |. 5F pop edi
0049F3D5 |. 5E pop esi
0049F3D6 |. 5D pop ebp ; 0012FB1C
0049F3D7 \. C3 retn
就是这两个.在研究中!!
|
能力值:
( LV9,RANK:180 )
|
-
-
10 楼
每第n个字符, n 为下列倍数的处理方法 :
倍 算法
-- ----------
3 其值 & FD (常用于小写转大写)
4 其值 - 4
5 其值 - 5
7 其值 - 7
11 其值 - 11
其它 其值 -16
|
能力值:
( LV2,RANK:10 )
|
-
-
13 楼
今天中午又搞了一上午,也发现第一段是只是数据加密,并不是关键注册算法.
我就是没有找到关键比较在哪儿!!
还得希望各位帮帮忙!! 用楼上提供的虚假注册文件后,在切换几次之后还是会弹出恼人提示未注册的窗口!!它只能无限次试用,并没有去掉Neg窗口.楼上的,再看看!!
|
能力值:
( LV3,RANK:20 )
|
-
-
21 楼
关注这个很久了,一直没有等到最后的破解全文,不知道最后是如何解决掉那个NAG窗口的出现问题的?
也不知道这个算法是什么样的? S先生的那个“倍 算法”的图表貌似看不懂呢?!
|