能力值:
(RANK:350 )
|
-
-
2 楼
如果脱壳没问题,那可能是自校验。有些软件自校验做的比较隐蔽,如不断消耗资源等。
|
能力值:
( LV6,RANK:90 )
|
-
-
3 楼
我找不到自检验啊......!
我找到三处比较文件大小的地放:
cmp eax,57E00
都改了,不过没有用!
哪位高手帮我看看,谢谢!
软件下载地址:http://sq5.onlinedown.net/down/go600cd.zip
|
能力值:
( LV6,RANK:90 )
|
-
-
4 楼
没人理我呀........
我自己顶!
|
能力值:
( LV6,RANK:90 )
|
-
-
5 楼
与脱壳无关,自己慢慢找吧,要解决自校验、存盘等
|
能力值:
( LV6,RANK:90 )
|
-
-
6 楼
我想帮你看看,可是,你的程序下载的太大了,98M,我用迅雷下,说原始地址得到的大小长度太小,从候选资源下
|
能力值:
( LV6,RANK:90 )
|
-
-
7 楼
那你去这里看看,这里肯定能下!
谢谢啦!
http://www.onlinedown.net/soft/8958.htm
|
能力值:
( LV2,RANK:10 )
|
-
-
8 楼
0041A88A /75 0F jnz short 0041A89B
0041A88C |68 401F0000 push 1F40
0041A891 |E8 601C0700 call <jmp.&mfc42.#823_operator new>
0041A896 |83C4 04 add esp, 4
0041A899 ^|EB F1 jmp short 0041A88C
看这里,如果41A88A这里没有跳转,就会陷入一个死循环,这个循环会将资源消耗殆尽
|
能力值:
( LV12,RANK:2670 )
|
-
-
9 楼
最初由 ToT 发布 0041A88A /75 0F jnz short 0041A89B 0041A88C |68 401F0000 push 1F40 0041A891 |E8 601C0700 call <jmp.&mfc42.#823_operator new> 0041A896 |83C4 04 add esp, 4 0041A899 ^|EB F1 jmp short 0041A88C ........
如果它要循环,我们就干掉它,retn 或 nop 或强制 jmp 看看哪种爽就用哪种!
|
能力值:
( LV12,RANK:210 )
|
-
-
10 楼
我刚接触脱破解!请问如何定位自校验??相关的函数都有哪些??
谢谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
11 楼
最初由 KuNgBiM 发布 如果它要循环,我们就干掉它,retn 或 nop 或强制 jmp 看看哪种爽就用哪种!
这个壳我也一直在脱,貌似程序暗桩很多。这个地方跳转过去之后后面还有暗桩,还会消耗系统资源,可是我找不到了:(
|
能力值:
( LV6,RANK:90 )
|
-
-
12 楼
确实有很多!
除了那一处,类似的暗桩我也找到几处,不过了之后还是不行呀........!
哎......太多了......
|
能力值:
( LV6,RANK:90 )
|
-
-
13 楼
ToT有没有新进展?来论坛多联系!
谢谢!
|
能力值:
( LV2,RANK:10 )
|
-
-
14 楼
这个程序不难,不过校验点多些,且运用mfc函数后 异常让程序嵌入死循环 且用了多线程来校验 对新手来说难于入手。
1:
0041B134 E8 29140700 call bfGo600.0048C562 ; jmp to MFC42.#3318
0041B139 8BF0 mov esi,eax
0041B13B 56 push esi
0041B13C E8 B5130700 call bfGo600.0048C4F6 ; jmp to MFC42.#823
0041B141 83C4 04 add esp,4
0041b134 处的call是读出当前文件的容量 16进制 未脱壳是57e00脱了必定大于这个数 因为是upx压缩的。 下面代码空间不够 可以在这里打个补丁。
2:
0041B1CA /79 05 jns short bfGo600.0041B1D1
0041B1CC |4B dec ebx
0041B1CD |83CB FC or ebx,FFFFFFFC
0041B1D0 |43 inc ebx
0041B1D1 \8B4424 18 mov eax,dword ptr ss:[esp+18]
0041B1D5 43 inc ebx
0041B1D6 03FE add edi,esi
0041B1D8 0FBE00 movsx eax,byte ptr ds:[eax]
0041B1DB 99 cdq
0041B1DC F7FB idiv ebx
0041B1DE 8BD8 mov ebx,eax
0041B1E0 8BC1 mov eax,ecx
0041B1E2 99 cdq
0041B1E3 F7FF idiv edi
0041B1E5 0FBE16 movsx edx,byte ptr ds:[esi]
0041B1E8 03D8 add ebx,eax
0041B1EA 3BDA cmp ebx,edx
0041B1EC 0F85 9D000000 jnz bfGo600.0041B28F
0041B1F2 8B7C24 18 mov edi,dword ptr ss:[esp+18]
0041B1F6 8B4424 28 mov eax,dword ptr ss:[esp+28]
0041B1FA 41 inc ecx
0041B1FB 83C7 05 add edi,5
0041B1FE 46 inc esi
0041B1FF 3BC8 cmp ecx,eax
0041B201 897C24 18 mov dword ptr ss:[esp+18],edi
0041B205 ^ 7C B0 jl short bfGo600.0041B1B7
这里是将内存的中的文件与未脱的文件进行内部比较 一个一个对比,不相同就跳下 jnz bfGo600.0041B28F mov al,1 ret后再次死循环 nop掉这处即可。
3:
程序中 运算 保存等 比较了未脱壳的文件大小值 57e00
00431B32 3D 007E0500 cmp eax,57E00
00431B37 74 22 je short bfGo600.00431B5B
00431B39 E8 CCAA0500 call bfGo600.0048C60A ; jmp to MFC42.#1168
0043B9A4 3D 007E0500 cmp eax,57E00
0043B9A9 74 22 je short bfGo600.0043B9CD
0043B9AB E8 5A0C0500 call bfGo600.0048C60A ; jmp to MFC42.#1168
0043E8D4 3D 007E0500 cmp eax,57E00
0043E8D9 74 22 je short bfGo600.0043E8FD
0043E8DB E8 2ADD0400 call bfGo600.0048C60A ; jmp to MFC42.#1168
累计3处。
4:
最后一处新手不易发现,程序还是死循环 留意一下 会发现在线程里,不过od无法中断在线程创建处,可以在一开始的 call mfc...那个死循环调用所以命令处设断。 中间有好多异常,需要小心处理 才能断在如下 :
00479DF2 3C 61 cmp al,61
00479DF4 74 47 je short bfGo600.00479E3D
00479DF6 3C C1 cmp al,0C1
00479DF8 74 43 je short bfGo600.00479E3D
00479DFA 3C 03 cmp al,3
00479DFC 74 3F je short bfGo600.00479E3D
00479DFE 3C 48 cmp al,48
00479E00 74 3B je short bfGo600.00479E3D
00479E02 E8 EB270100 call bfGo600.0048C5F2 ; jmp to MFC42.#1175
这4处 再次比较 相等即可。
|
能力值:
( LV2,RANK:10 )
|
-
-
15 楼
这程序我脱过,除了死循环,还有其它的暗桩。对于爆破手来说的话很烦的。
|
能力值:
( LV6,RANK:90 )
|
-
-
16 楼
多谢 骨灰C 指点!
软件已经被我爆破了!!!
谢谢!!!
|
能力值:
( LV2,RANK:10 )
|
-
-
17 楼
恭喜DCracker
这个程序我今天搞定的,程序的暗桩其实有三类,按照每类的特征代码在整个程序中搜索比较好,如果只是通过不断的实验找暗桩其实很可能找不全。
|
能力值:
( LV2,RANK:10 )
|
-
-
18 楼
最初由 骨灰C 发布 这个程序不难,不过校验点多些,且运用mfc函数后 异常让程序嵌入死循环 且用了多线程来校验 对新手来说难于入手。 1: 0041B134 E8 29140700 call bfGo600.0048C562 ; jmp to MFC42.#3318 0041B139 8BF0 mov esi,eax 0041B13B 56 push esi ........
我最一开始也是用这些方法找暗桩的,但其实找的不全,如果我没记错的话,程序的暗桩不下10个,至少这是我找到的。软件的暗桩我找到了3种,两种是消耗系统资源,一种是异常退出。
消耗资源的方法基本都是用new+死循环的方法,第一种可以搜索ASCII"500",程序中应该有两处,把前面的跳转改成强制跳转即可。
第二种是这样的死循环,同样道理,改前面的跳转即可
0041A88C 68 401F0000 push 1F40
0041A891 E8 601C0700 call <jmp.&mfc42.#823_operator new>
0041A896 83C4 04 add esp, 4
0041A899 ^ EB F1 jmp short 0041A88C 第三种是这样的,直接退出:
0043B9A4 3D 007E0500 cmp eax, 57E00
0043B9A9 EB 22 jmp short 0043B9CD
0043B9AB E8 5A0C0500 call <jmp.&mfc42.#1168_AfxGetModuleSt>
0043B9B0 8B48 04 mov ecx, [eax+4]
0043B9B3 6A 00 push 0
0043B9B5 C681 C4000000 0>mov byte ptr [ecx+C4], 1
0043B9BC C646 44 01 mov byte ptr [esi+44], 1
0043B9C0 C686 72DC0200 0>mov byte ptr [esi+2DC72], 1
0043B9C7 FF15 38EB4900 call [<&msvcrt.exit>] ; MSVCRT.exit
分别找到每种暗桩的特征代码,然后修改跳转即可,这样的方法我觉得找暗桩会稍微全一些。
|
能力值:
( LV4,RANK:50 )
|
-
-
19 楼
最怕就是自校验!!
|
能力值:
( LV6,RANK:90 )
|
-
-
20 楼
恩,不错!学习!
这软件我虽然爆破了,但其实开始是想算出注册码的,
不过我不能确定注册运算的地方,没办法只能把NAG去了,改了关键跳~~~~~
|
能力值:
( LV2,RANK:10 )
|
-
-
21 楼
最初由 DCracker 发布 多谢 骨灰C 指点! 软件已经被我爆破了!!! 谢谢!!!
我也是个围棋爱好者,能给我一份吗?jtfzp@163.com
|
|
|