moyer 发表于 2006-6-9 23:07:25

好的,学习啦,很不错哦,算法很特别.
不说啦,发个图吧.

kplp 发表于 2006-6-11 06:53:31

 谢谢....

xiaoquzb 发表于 2006-6-12 14:14:26

不错,,谢谢

eszwaq123 发表于 2006-6-13 22:43:54

搞了半天原来藏在那个上面一点点的地方
3536150740102F

41B454B0D0E5640

wxpcyc 发表于 2006-6-16 06:28:46

请大家详细讲讲算法!!!

hanxiucao 发表于 2006-6-19 21:12:25

我的水平还不到家,算法更不行了!

黑夜彩虹 发表于 2006-6-26 16:24:40

:victory:

网游难民 发表于 2006-7-4 02:12:41

:victory:
算法还不会~~
嘿嘿~~
偶要学习哦~~

沙粒 发表于 2006-8-3 13:38:34

爆破:
004011FC   /74 1D         jne short Crackme9.0040121B
改为
004011FC   /74 1D         je short Crackme9.0040121B
追码:
下断点,项目 0
地址=004010FF
模块=Crackme9
激活=永远
反汇编=call <jmp.&USER32.GetDlgItemTextA>
注释=取得注册框的文本
序列号:A8C562F6/40102F
注册码:789789789

004010FF    E8 70010000   call <jmp.&USER32.GetDlgItemTextA>   ; 取得注册框的文本
00401104    803D AC304000 0>cmp byte ptr ds:,0         ; 注册框的文本是否为空
0040110B    0F84 0A010000   je Crackme9.0040121B               ; 是则跳走,不是则向下继续
00401111    68 18304000   push Crackme9.00403018
00401116    68 AC304000   push Crackme9.004030AC
0040111B    E8 A2010000   call <jmp.&KERNEL32.lstrcmpA>      ; 字符比较
00401120    85C0            test eax,eax                         ;测试eax
00401122    0F84 F3000000   je Crackme9.0040121B               ; 相等则跳
00401128    68 FA000000   push 0FA                           ;
0040112D    8D85 06FFFFFF   lea eax,dword ptr ss:
00401133    50            push eax                           ; eax=0012FA12
00401134    E8 83010000   call <jmp.&KERNEL32.RtlZeroMemory>
00401139    C785 06FFFFFF F>mov dword ptr ss:,0FA
00401143    8D85 06FFFFFF   lea eax,dword ptr ss:
00401149    50            push eax                           ; eax=0012FA12
0040114A    8D85 0AFFFFFF   lea eax,dword ptr ss:
00401150    50            push eax
00401151    E8 48010000   call <jmp.&KERNEL32.GetComputerNameA>
00401156    A1 58304000   mov eax,dword ptr ds:      ; 序列号前8位送入eax=A8C562F6
0040115B    3185 0AFFFFFF   xor dword ptr ss:,eax
00401161    3185 0EFFFFFF   xor dword ptr ss:,eax
00401167    8B8D 06FFFFFF   mov ecx,dword ptr ss:      ; ecx=7c93056d
0040116D    8B85 0AFFFFFF   mov eax,dword ptr ss:      ; eax=A8C562F6
00401173    33D2            xor edx,edx
00401175    F7E1            mul ecx
00401177    0185 0AFFFFFF   add dword ptr ss:,eax      ; eax=9d875bc12
0040117D    8395 0EFFFFFF 0>adc dword ptr ss:,0          ; 堆栈 ss:=EBF027C7
00401184    FFB5 0EFFFFFF   push dword ptr ss:         ; 堆栈 ss:=EBF027C7压栈(后)
0040118A    FFB5 0AFFFFFF   push dword ptr ss:         ; 堆栈 ss:=D875BC10压栈(前)
00401190    68 3E304000   push Crackme9.0040303E               ; ASCII "%1X%1X"
00401195    68 5C304000   push Crackme9.0040305C               ; ASCII "A8C562F640102F"序列号
0040119A    E8 C3000000   call <jmp.&USER32.wsprintfA>         ; 前后形成注册码
0040119F    83C4 10         add esp,10                           ; esp=0012F8FC+10=12F90C
004011A2    68 FA000000   push 0FA
004011A7    8D85 06FFFFFF   lea eax,dword ptr ss:
004011AD    50            push eax                           ; eax=0012FA12
004011AE    6A FF         push -1
004011B0    68 5C304000   push Crackme9.0040305C               ; ASCII "A8C562F640102F"
004011B5    6A 00         push 0
004011B7    6A 00         push 0
004011B9    E8 F8000000   call <jmp.&KERNEL32.MultiByteToWideC>
004011BE    68 FA000000   push 0FA
004011C3    8D85 0CFEFFFF   lea eax,dword ptr ss:
004011C9    50            push eax
004011CA    6A FF         push -1
004011CC    68 AC304000   push Crackme9.004030AC
004011D1    6A 00         push 0
004011D3    6A 00         push 0
004011D5    E8 DC000000   call <jmp.&KERNEL32.MultiByteToWideC>
004011DA    8D85 06FFFFFF   lea eax,dword ptr ss:      ; 载入真码"D875BC10EBF027C7"
004011E0    A3 06314000   mov dword ptr ds:,eax      ; eax=D875BC10EBF027C7
004011E5    8D05 FC304000   lea eax,dword ptr ds:
004011EB    8D8D 0CFEFFFF   lea ecx,dword ptr ss:       ; ecx=789789789
004011F1    51            push ecx                           ; 压入试验码
004011F2    FF70 0A         push dword ptr ds:            ; 压入真码
004011F5    E8 C8000000   call <jmp.&KERNEL32.lstrcmpA>      ; 两码比较
004011FA    85C0            test eax,eax                         ; eax=1
004011FC    75 1D         jnz short Crackme9.0040121B          ; 不为1则跳走,为1则相等向下继续
004011FE    6A 10         push 10
00401200    E8 7B000000   call <jmp.&USER32.MessageBeep>
00401205    6A 00         push 0
00401207    68 00304000   push Crackme9.00403000
0040120C    68 09304000   push Crackme9.00403009
00401211    FF75 08         push dword ptr ss:
00401214    E8 6D000000   call <jmp.&USER32.MessageBoxA>
00401219    EB 0F         jmp short Crackme9.0040122A
0040121B    68 18304000   push Crackme9.00403018
00401220    6A 68         push 68
00401222    FF75 08         push dword ptr ss:
00401225    E8 68000000   call <jmp.&USER32.SetDlgItemTextA>   ; 出错对话框
0040122A    B8 00000000   mov eax,0

真码:D875BC10EBF027C7
还有许多不明白,请高手指教!

xyyh816 发表于 2007-1-16 09:18:32

下载学习,多谢:P
页: 1 [2] 3
查看完整版本: PYG 5.4 Cracker 小组 课外练习9