能力值:
(RANK:990 )
|
-
-
2 楼
去掉外面的aspack壳,用dede分析。
|
能力值:
( LV2,RANK:10 )
|
-
-
3 楼
谢谢版主的回复,马上试下
|
能力值:
( LV2,RANK:10 )
|
-
-
4 楼
实在是破不出来呀,哪位大虾伸出援手,指点迷津呀 。
我用 waspack 脱壳,用dede分析后,发现那个提示注册的对话框不是一个单独的框,好像和下面的按钮是一起的,用了IDA,OllyICE,wasm32都试过,实在是搞不定,看来这个思路不行?
|
能力值:
(RANK:990 )
|
-
-
5 楼
换一个思路,去分析一下它的注册算法。不管你能不能跟出它的算法,只要你能让它变成注册版,那个对话框不就肯定没有了吗?
|
能力值:
( LV2,RANK:10 )
|
-
-
6 楼
看雪的氛围真是好呀,大虾们真热情,感动得我呜呜的!我再试,不过不要嫌我水平菜呀!
|
能力值:
( LV2,RANK:10 )
|
-
-
7 楼
-----------------------------------------
没改之前:
004F9F3A |. E8 CDE1F0FF call <jmp.&USER32.ShowWindow> ; \ShowWindow
004F9F3F |> 6A 00 push 0 ; /Title = NULL
004F9F41 |. 68 F49F4F00 push 004F9FF4 ; |shell_traywnd
004F9F46 |. E8 B1DDF0FF call <jmp.&USER32.FindWindowA> ; \FindWindowA
004F9F4B |. 8BF0 mov esi, eax
004F9F4D |. 6A 00 push 0 ; /Title = NULL
004F9F4F |. 68 04A04F00 push 004FA004 ; |button
004F9F54 |. 6A 00 push 0 ; |hAfterWnd = NULL
004F9F56 |. 56 push esi ; |hParent
004F9F57 |. E8 A8DDF0FF call <jmp.&USER32.FindWindowExA> ; \FindWindowExA
004F9F5C |. 8BF8 mov edi, eax
004F9F5E |. 6A 00 push 0 ; /ShowState = SW_HIDE
004F9F60 |. 57 push edi ; |hWnd
004F9F61 |. E8 A6E1F0FF call <jmp.&USER32.ShowWindow> ; \ShowWindow
004F9F66 |. 6A 00 push 0 ; /ShowState = SW_HIDE
004F9F68 |. 56 push esi ; |hWnd
004F9F69 |. E8 9EE1F0FF call <jmp.&USER32.ShowWindow> ; \ShowWindow
004F9F6E |. 33C0 xor eax, eax
004F9F70 |. A3 3C6F5000 mov dword ptr [506F3C], eax
004F9F75 |. 881D 386F5000 mov byte ptr [506F38], bl
004F9F7B |. 6A EC push -14 ; /Index = GWL_EXSTYLE
004F9F7D |. 57 push edi ; |hWnd
004F9F7E |. E8 F1DEF0FF call <jmp.&USER32.GetWindowLongA> ; \GetWindowLongA
---------------------------------------------
改后:
这个地址是通过 BP ShowWindow找到的,我也不知道按多少下F9 忘了~
004F9F3A 90 nop
004F9F3B 90 nop
004F9F3C 90 nop
004F9F3D 90 nop
004F9F3E 90 nop
004F9F3F 6A 00 push 0
004F9F41 68 F49F4F00 push 004F9FF4 ; shell_traywnd
004F9F46 E8 B1DDF0FF call <jmp.&USER32.FindWindowA>
004F9F4B 8BF0 mov esi, eax
004F9F4D 6A 00 push 0
004F9F4F 68 04A04F00 push 004FA004 ; button
004F9F54 6A 00 push 0
004F9F56 56 push esi
004F9F57 E8 A8DDF0FF call <jmp.&USER32.FindWindowExA>
004F9F5C 8BF8 mov edi, eax
004F9F5E 6A 00 push 0
004F9F60 57 push edi
004F9F61 90 nop
004F9F62 90 nop
004F9F63 90 nop
004F9F64 90 nop
004F9F65 90 nop
004F9F66 6A 00 push 0
004F9F68 56 push esi
004F9F69 90 nop
004F9F6A 90 nop
004F9F6B 90 nop
004F9F6C 90 nop
004F9F6D 90 nop
004F9F6E 33C0 xor eax, eax
004F9F70 A3 3C6F5000 mov dword ptr [506F3C], eax
---------------------------------------------
把3个CALL <jmp ShowWindow> nop即可
程序刚好1001KB 差那么一点点就可以上传了。。嘿嘿 自己动手
|
能力值:
( LV6,RANK:90 )
|
-
-
8 楼
最好是分析算法,找到合法的注册码
|
能力值:
( LV12,RANK:2670 )
|
-
-
9 楼
cmpset.exe
0046E21D /0F84 8C000000 je 0046E2AF ; nop
0046E22F /75 7E jnz short 0046E2AF ; nop
0046E262 |. /74 4B je short 0046E2AF ; nop
CMP.exe
004FF81F |. /74 5D je short 004FF87E ; NOP
004FF82D |. /75 4F jnz short 004FF87E ; NOP
004FF860 |. /74 1C je short 004FF87E ; NOP
完美破解
|
能力值:
( LV2,RANK:10 )
|
-
-
10 楼
楼上几位大虾,谢谢了,两位给出代码的朋友,我都试验了,成功,万分感谢。
第一个朋友我试验了,用BP showwindow下断点,然后ALT +F9可以直接回到004F9F3A,不过你怎么知道应把那三个showwindow的CALL nop掉呢。
第二个朋友没有给出方法,所以只知道你的方法可行,但不知道你怎么弄的,不过完美破解谈不上了,完美破解应该写注册机的。最少应该把这个注册的窗口屏蔽掉,即点“注册信息”时,右边窗口不出现内容。也就是说,点“注册信息”时失效。这个应该怎么搞
|
|
|