̽Ë÷ http://programhunter.home.china.com
ÔÓÖ¾×ÚÖ¼£ºÖªÊ¶¹²Ïí ×ÊÁϹ²Ïí ×ÊÔ´¹²Ïí
ÖÆ×÷³ÉÔ±£º³ÌʽÁÔÈË
·¢ÐÐʱ¼ä£º
ÍøÕ¾µØÖ·£ºhttp://programhunter.home.china.com

±à¼­¼ÄÓ

ÿÿÕâÆÚ½«ÒªÏò´ó¼Ò½éÉÜʲôÄØ£¿´ó¼Ò²»ÒªÕâÑù¼±Âð£¬ÎÒµ±È»ÊÇÏò´ó¼Ò½éÉܱȽϺõÄÆƽâÎÄÕÂÁË£¬½ñÌìÏò´ó¼Ò½éÉÜÎÒ¸öÈËÆƽâµÄÄѶȱȽϴóµÄÒ»¸öÈí¼þËüµÄÃû×Ö½ÐCustom StartUp 1.01£¬Õâ¸öÈí¼þÆƽâ³É¹¦Í¬ÎÒÒÔÇ°ÆƽâµÄÒ»¸öÈí¼þÓÐЩ¼«ÎªÏàËƵĵط½£¬ÁíÒ»¸öÈí¼þµÄÆƽâ¹ý³ÌͬËüÊÇÒ»ÑùµÄ×¢²á¹ý³Ì£¬Èç¹ûÓбØÒªµÄ»°£¬ÎÒ½«ÔÚÏÂÆÚ·ÅÉÏÄǸöÈí¼þµÄÆƽâ¹ý³Ì¡£ÄǸöÈí¼þÊÇscreen taker V2.31
Ä¿ ¼£º
1.
Custom StartUp 1.01 ³ÌʽÁÔÈË
How to crack CD Player for Win95 Version 1.32 dREAMtHEATER
How to crack a CD Protection in Blood2 by ByteBurn ByteBurn
2.
   
3.
   
4.
   
5.
   
·µ»Ø
                  Custom StartUp 1.01 
                                ³ÌʽÁÔÈË
Èí¼þÃû³Æ£ºCustom StartUp 1.01 
Îļþ´óС£º407 KB
Èí¼þÊÚȨ£º¹²ÏíÈí¼þ
ʹÓÃƽ̨£ºWin95/98/NT
·¢²¼¹«Ë¾£ºhttp://members.xoom.com/gboban/index.htm 
Èí¼þ¼ò½é£ºÈÃÄã¹ÜÀí¡¢±¸·ÝÄÇЩ´Ó¡°Æô¶¯¡±Îļþ¼Ð¡¢×¢²á±í¡¢WIN.INI ×Ô¶¯Æô¶¯µÄÃüÁîÐС£

×·×Ù£ºRN£º0123-01234567
   Õâ¸ö±¸·ÝÈí¼þµÄ×¢²á¹ý³ÌͬÎÒÒÔÇ°×¢²áµÄscreen taker V2.31ÊǷdz£µÄÏàËÆ£¬ÏàËƵÄÎÒ
¼¸ºõÒ»ÏÂ×Ó¾ÍÖªµÀËüÈçºÎÆƽâµÄÁË¡£ÏÖÔھͿªÊ¼¶ÔËü½øÐÐÆƽ⡣
004464B7 FF75FC                  push [ebp-04]
004464BA 68E0654400              push 004465E0
004464BF 8D55F8                  lea edx, dword ptr [ebp-08]
004464C2 A1108D4400              mov eax, dword ptr [00448D10]
004464C7 8B00                    mov eax, dword ptr [eax]
004464C9 8B80F4010000            mov eax, dword ptr [eax+000001F4]
004464CF E8887DFDFF              call 0041E25C
004464D4 FF75F8                  push [ebp-08]
004464D7 8D4304                  lea eax, dword ptr [ebx+04]
004464DA BA03000000              mov edx, 00000003
004464DF E854D6FBFF              call 00403B38
004464E4 8BC3                    mov eax, ebx
004464E6 E875EBFFFF              call 00445060
004464EB 84C0                    test al, al
004464ED 7515                    jne 00446504
004464EF 6A00                    push 00000000
004464F1 668B0DE4654400          mov cx, word ptr [004465E4]
004464F8 B201                    mov dl, 01

* Possible StringData Ref from Code Obj ->"Invalid Registration Key!"
                                  |
004464FA B8F0654400              mov eax, 004465F0
004464FF E808F5FEFF              call 00435A0C
  ´ÓÉÏÃæ¿ÉÒÔ¿´µ½Ìáʾ³ö´íµÄµØ·½£¬ÄÇôÎÒÃÇ×ÔÈ»¾Í½øÈëcall 00445060ÖÐ
00445079 648920                  mov dword ptr fs:[eax], esp
0044507C 8B4304                  mov eax, dword ptr [ebx+04]
0044507F E8F4E9FBFF              call 00403A78
00445084 83F80F                  cmp eax, 0000000F  ±È½Ï×¢²áÂë¸öÊýΪ15
00445087 7407                    je 00445090
00445089 33DB                    xor ebx, ebx
0044508B E9DA000000              jmp 0044516A

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|00445087(C)
|
00445090 8B5304                  mov edx, dword ptr [ebx+04]
00445093 B8A0514400              mov eax, 004451A0
00445098 E867ECFBFF              call 00403D04
0044509D 83F805                  cmp eax, 00000005 ±È½Ï"-"ÊÇ·ñΪµÚ5λ
004450A0 7407                    je 004450A9
004450A2 33DB                    xor ebx, ebx
004450A4 E9C1000000              jmp 0044516A
  ÉÏÃ滹ÊÇÏ൱µÄ¼òµ¥¾Í¿ÉÒÔÇáÒ׵ĵõ½µÄ£¬ÏÂÃæ²ÅÊÇÕâ¸öÈí¼þ¹Ø¼üµÄµØ·½£¬
004450DD 8B049D0C8B4400          mov eax, dword ptr [4*ebx+00448B0C] 0123
004450E4 8B55FC                  mov edx, dword ptr [ebp-04]         rn10
004450E7 E89CEAFBFF              call 00403B88
004450EC 75E9                    jne 004450D7
  ÏÖÔڱȽϵÄÊÇÇ°ÃæËÄλµÄÖµ£¬ÕâÀïÊǼòµ¥µÄ£¬¼ÌÐøÏòÏÂ×·×Ù£º
00445108 8B55F8                  mov edx, dword ptr [ebp-08]
00445108 8B55F8                  mov edx, dword ptr [ebp-08]
0044510B 8B45FC                  mov eax, dword ptr [ebp-04]
0044510E E885FAFFFF              call 00444B98
00445113 8B45F4                  mov eax, dword ptr [ebp-0C]
00445116 E82119FCFF              call 00406A3C    <-³ö´í
0044511B 8BD8                    mov ebx, eax
0044511D 33C0                    xor eax, eax
0044511F 5A                      pop edx
00445120 59                      pop ecx
00445121 59                      pop ecx
00445122 648910                  mov dword ptr fs:[eax], edx
00445125 EB13                    jmp 0044513A
00445127 E978DFFBFF              jmp 004030A4
0044512C 33DB                    xor ebx, ebx
0044512E E815E2FBFF              call 00403348
00445133 EB35                    jmp 0044516A
00445135 E80EE2FBFF              call 00403348

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|00445125(U)
|
0044513A 8BC3                    mov eax, ebx
0044513C B943000000              mov ecx, 00000043
00445141 99                      cdq
00445142 F7F9                    idiv ecx
00445144 8BC8                    mov ecx, eax
00445146 83F901                  cmp ecx, 00000001
00445149 7C08                    jl 00445153
0044514B 81F9E8030000            cmp ecx, 000003E8
00445151 7E04                    jle 00445157

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|00445149(C)
|
00445153 33DB                    xor ebx, ebx
00445155 EB13                    jmp 0044516A

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|00445151(C)
|
00445157 8BC3                    mov eax, ebx
00445159 B943000000              mov ecx, 00000043
0044515E 99                      cdq
0044515F F7F9                    idiv ecx
00445161 4A                      dec edx
00445162 7404                    je 00445168
00445164 33DB                    xor ebx, ebx
00445166 EB02                    jmp 0044516A

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|00445162(C)
|
00445168 B301                    mov bl, 01

* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|0044508B(U), 004450A4(U), 004450F5(U), 00445133(U), 00445155(U)
|00445166(U)
|
0044516A 33C0                    xor eax, eax  
 ´Ó0044510Eµ½0044516AÕâÀïÊÇÕâ¸ö³ÌÐòÖ÷ÒªµÄ±È½Ï¹ý³Ì£¬ÔÚÉÏÃæ±ê¼ÇµÄµØ·½³ö´í£¬ÎÒÒòΪ
ÒѾ­½«Õâ¸öÈí¼þÆƽâ³öÀ´ÁË£¬ËùÒÔÏÖÔÚÀ´½²½âʱ£¬µ±È»¿ÉÒÔ´ÓϵͳµÄ·½ÃæÀ´½éÉÜËü¡£ÄǸö³ö
´íµÄµØ·½ÎÒÃÇÒÔºóÒ»¶¨Òª½øÈ룬µ«ÊÇÏÖÔÚÊÇÏȽéÉÜËüÈçºÎÄÜ×¢²á³É¹¦¡£Õâ¸ö¶ÔÒÔºóµÄÔËËãÄ¿
µÄÊǺÜÖØÒªµÄ¡£ÔÚ***´¦´ó¼Ò¿´µ½ÁË°É£¬ÕâÀォʹbl=1£¬¶ø³ö´íʱÊǽ«bl=0£¬Õâ¾Í˵Ã÷Õâ¸ö
³ÌÐòÈç¹ûҪע²á³É¹¦Ò»¶¨ÒªÈóÌÐò×ßµ½Õâ¸öλÖã¬ÄÇôÎÒÃDZØÐè»Ø±ÜÄÇÀï²ÅÄÜʹÓóÌÐò×ßµ½
ÕâÀÎÒÃÇÔÚÇ°±È½ÏÃ÷ÂëµÄµØ·½¾ÍÒѾ­ÖªµÀÁËÒ»¸öµØ·½£¬¾ÍÊÇÏÂÃæµÄµØ·½¡£
0044516A 33C0                    xor eax, eax  
ÕâÀォbl=0£¬ÏÖÔÚÎÒÏë¶ÔÄÇЩ³õѧÕß˵һ¸öС¾­Ñ飬¾ÍÊÇÏóÉÏÃæÄÇÀï¿ÉÒÔÌøµ½³ö´íµÄµØ·½£¬
¼ÇסÕâ¸ö³ö´íµÄµØ·½µÄµØÖ·£¬Ö»ÒªÒÔºóÄÜÌøµ½Õâ¸öµØÖ·µÄµØ·½£¬¶¼ÊÇÎÒÃÇÒª±Ü¿ªµÄµØ·½¡£ÏÖ
ÔÚ´ó¼ÒÏòÉÏ¿´£¬ÄÇÀïÓпÉÒÔÌøµ½³ö´íµÄµØ·½¡£
  ÉÏÃæ¹²ÓÐÁ½¸öµØ·½¿ÉÒÔÌøµ½³ö´íµÄµØ·½£¬ÄÇôÎÒÃǾÍÒ»¶¨Òª»Ø±ÜÕâÁ½¸öµØ·½¡£ÏÖÔھͷÖÎö
Ò»ÏÂÈçºÎ»Ø±ÜËüÃÇ¡£Ê×ÏÈÀ´¿´µÚÒ»¸öµØ·½£¬ÔÚÄÇÀïÎÒÃǽ«ÓÐʲôÑùµÄ½áÂÛÄØ£¿³ÌÐòÔÚÄÇÀïʹ
ÓõÄeax/43(H)ºó£¬µÃµ½µÄÓàÊýÒ»¶¨Òª´óÓÚ0СÓÚ3E8(H)£¬ÕâÑùËü²ÅÄܲ»Ìøµ½³ö´íµÄµØ·½£¬²»
ÖªµÀÄãÃÇÊÇ·ñ¿´Ã÷°×ûÓУ¬Èç¹ûûÓпɾͲ»ÄܹÖÎÒ£¬ÄãÃǾÍҪѧϰѧϰ»ã±àÓïÑÔÁË¡£¶ÔÓÚÎÒ
ÃÇÒѾ­ÖªµÀµÄµÚÒ»¸ö¿ÉÒԱܿª³ö´íµÄµØ·½£¬ÄÇôÓÐÈË»áÎÊÄǸöeax´ÓºÎ¶øÀ´µÄ£¬Õâ¸ö´ó¼ÒÏÈ
²»ÒªÈ¥¹ÜËü£¬ÎÒÃÇÏÈŪÃ÷°×ÈçºÎÄܱܿª³ö´íµÄµØ·½£¬µ½ÒÔºó¾ÍÊÇË®µ½Çþ³ÉÁË¡£ÏÖÔÚÎÒÃÇÔÙÑÐ
¾¿Ò»Ïµڶþ¸ö³ö´íµÄµØ·½¡£ÔÚÕâÀïËü»¹ÊÇʹÓÃeax/43ºóµÃµ½ÓàÊýedx£¬½«edx-1Ó¦µ±µÈÓÚ0£¬
ÕâÑùËü²ÅÄÜÌøµ½Ê¹bl=1µÄµØ·½£¬Õâ¸öÒ²¾ÍÊÇ˵eax/43ºóµÃµ½µÄÓàÊýÒ»¶¨ÒªÎª1£¬ÕâÑù²ÅÂú×ã
³ÌÐòµÄÒªÇ󡣺ÃÁËÏÖÔÚËùÓеijö´íµÄµØ·½ÎÒÃǶ¼ÒѾ­Ñо¿¹ýÁË£¬ÎÒÃÇÏÖÔÚµÄÈÎÎñ¾ÍÊÇÒªÈçºÎ
½â¾öµôÄǸö³ö´íµÄcall¡£ÏÖÔھͽøÈëÄǸö³ö´íµÄcallÖУ¬¿ªÊ¼¶ÔËü½øÐй¥»÷¡£
ÈçÏ£º
00406A4D 55                      push ebp
00406A4E 68A46A4000              push 00406AA4
00406A53 64FF30                  push dword ptr fs:[eax]
00406A56 648920                  mov dword ptr fs:[eax], esp
00406A59 8D55FC                  lea edx, dword ptr [ebp-04]
00406A5C 8BC3                    mov eax, ebx
00406A5E E891BFFFFF              call 004029F4   ***
00406A63 8BF0                    mov esi, eax
00406A65 837DFC00                cmp dword ptr [ebp-04], 00000000
00406A69 7423                    je 00406A8E
00406A6B 8D55F8                  lea edx, dword ptr [ebp-08]
00406A6E B8F0644000              mov eax, 004064F0
00406A73 E890DDFFFF              call 00404808
00406A78 8B45F8                  mov eax, dword ptr [ebp-08]
00406A7B 50                      push eax
00406A7C 895DF0                  mov dword ptr [ebp-10], ebx
00406A7F C645F40B                mov [ebp-0C], 0B
00406A83 8D55F0                  lea edx, dword ptr [ebp-10]
00406A86 33C9                    xor ecx, ecx
00406A88 58                      pop eax
00406A89 E8EAFCFFFF              call 00406778
***´¦ÊÇÒ»¸ö¹Ø¼üµØ·½£¬ËùÒÔÎÒÃÇ»¹Òª½øÈëcallÖС£
00402A07 8A1E                    mov bl, byte ptr [esi]
00402A09 46                      inc esi
00402A0A 80FB20                  cmp bl, 20
00402A0D 74F8                    je 00402A07
00402A0F B500                    mov ch, 00
00402A11 80FB2D                  cmp bl, 2D
00402A14 7445                    je 00402A5B
00402A16 80FB2B                  cmp bl, 2B
00402A19 7442                    je 00402A5D
00402A1B 80FB24                  cmp bl, 24
00402A1E 7442                    je 00402A62

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|00402A60(U)
|
00402A20 84DB                    test bl, bl
00402A22 7432                    je 00402A56

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|00402A3C(C)
|
00402A24 80EB30                  sub bl, 30
00402A27 80FB09                  cmp bl, 09
00402A2A 772A                    ja 00402A56
00402A2C 39F8                    cmp eax, edi
00402A2E 7726                    ja 00402A56
00402A30 8D0480                  lea eax, dword ptr [eax+4*eax]
00402A33 01C0                    add eax, eax
00402A35 01D8                    add eax, ebx
00402A37 8A1E                    mov bl, byte ptr [esi]
00402A39 46                      inc esi
00402A3A 84DB                    test bl, bl
00402A3C 75E6                    jne 00402A24
00402A3E FECD                    dec ch
00402A40 7410                    je 00402A52
00402A42 85C0                    test eax, eax
00402A44 7C10                    jl 00402A56
ÎÒÃǽøÈëcall 004029F4ºó½«À´µ½ÕâÀÉÏÃæµÄµØ·½´ó¼Ò·¢ÏÖûÓУ¬ÆäʵËü¾ÍÊÇÔËËãÎÒÃÇÇ°
ÃæËùÑо¿µÄÄǸöeax£¬ÔÚÕâÀïÎÒÃÇ¿ÉÒÔ¿´µ½ÄǸöblÒªÓÐÒ»¶¨µÄÒªÇó¡£blµÄÖµÒ»¶¨ÒªÔÚ30(H)µ½
39(H)Ö®¼ä£¬Ò²¾ÍÊÇÊý×Ö£¬¶øÉÏÃæµÄ¹ý³Ì¾ÍÊǽ«×Ö·ûÊý×Öת»¯ÎªÔËËãµÄÊý×Ö¡£Ò²¾ÍÊÇ˵×Ö·û
´®12345ʹÓÃÉÏÃæµÄ¹ý³Ì¾Í¿ÉÒÔ½«×Ö·û´®×ª»¯ÎªÊý×Ö12345£¬Õâ¸öÓÐʲô²»Í¬µÄ£¿ÎÒÏëÕâ¸ö¾Í
²»ÓÃÎÒÔÙ˵ÁË°É¡£ÔÙ˵һÏ£¬ÄǸöת»¯µÄÊý×ÖÊÇ10½øλµÄ¡£
  ÏÖÔÚÎÒÃǾͿÉÒÔÖªµÀÁËËüµÄ¹ý³ÌÁË¡£ÄÇôÎÒÃÇÑо¿µÄ¹Ø¼üÊÇÈçºÎµÃµ½ÄǸöblÖµ£¬¶ÔÁË£¬Õâ
¸öÈí¼þµÄ×¢²á¹Ø¼ü¾ÍÔÚÕâÀï¡£ÎÒÃǽ«ÈçºÎµÃµ½ÄǸö¾­¹ýÔËËã¹ýµÄblÖµ¡£
  ÏÖÔÚ¾ÍÓ¦µ±Õ¹¿ªËѲ¶ÁË£¬²¶×½µ½ÄǸöblÖµÁË¡£¾­¹ýÎÒµÄ×·×Ù·¢ÏÖÔÚÖ÷³ÌÐòÖÐcall 00444B9
8ÕâÀォÊǵÚÒ»´ÎµÄÔËËãbl¹ý³Ì¡£ÎÒÃǾͽøÈëcallÖп´Ò»¿´Ëü½«ÈçºÎ¼ÆËã¡£

ÈçÏ£º
00444C0B 8A4402FE                mov al, byte ptr [edx+eax-02]
00444C0F E870FFFFFF              call 00444B84
00444C14 8BD8                    mov ebx, eax
00444C16 C1E302                  shl ebx, 02
00444C19 8BC6                    mov eax, esi
00444C1B 03C0                    add eax, eax
00444C1D 8B55F8                  mov edx, dword ptr [ebp-08]
00444C20 8A4402FF                mov al, byte ptr [edx+eax-01] ÆæÊýλÉϵÄÖµ
00444C24 E85BFFFFFF              call 00444B84
00444C29 0AD8                    or bl, al
00444C2B 8D45E0                  lea eax, dword ptr [ebp-20]  ÏàÁÚżÊýÉϵÄÖµ
00444C2E 8BD3                    mov edx, ebx
00444C30 E86BEDFBFF              call 004039A0
00444C35 8B55E0                  mov edx, dword ptr [ebp-20]
00444C38 8D45E8                  lea eax, dword ptr [ebp-18]
00444C3B E840EEFBFF              call 00403A80
00444C40 46                      inc esi
00444C41 4F                      dec edi
00444C42 75C0                    jne 00444C04
ÉÏÃæ¾Í¿ªÊ¼Ê¹ÓÃÎÒÃÇÊäÈëµÄºóÃæ10λֵÁË¡£³ÌÐòÊ×ÏÈʹÓÃÆæÊýλÉϵÄÖµÈçµÚ1λ1£¬½«Ëü´øÈë
call 00444B84ÖУ¬Ëã³öÒ»¸öÖµÀ´£¬ÔÙ½«Ëü*4ºó£¬µÃµ½blÖµ£¬È»ºóÔÙʹÓÃÏàÁڵĿÊýλÉϵÄ
Öµ£¨ÕâÀïżÊýλÉϵÄÖµÊÇÖ¸ÆæÊýλºóÃæµÄżÊý£©£¬ÕâÀï¾Í½«Ê¹ÓÃ2À´¼ÆË㣬½«2´øÈëͬÑùµÄca
llÖУ¬ÔËËã³öµÚ¶þ¸öÖµÀ´al£¬½«bl OR al¾Í¿ÉÒԵõ½Ò»¸öÔËËãµÄÖµ£¬µ«ÊÇÕâ¸öÔËËãµÄÖµ»¹²»
ÊÇÎÒÃÇÉÏÃæµÄblÖµ£¬ÔÚÏÂÃæÎÒÃÇ»¹ÒªÓÐÒ»´ÎÔËËã¡£ÏÖÔÚÎÒÃǾÍÀ´ËµÒ»ÏÂÄǸöcallÊÇÈçºÎÔËËã
ÖµµÄ¡£Õâ¸ö¾ÍÒª²Î¿¼ÎÒÔÚÏÂÃæÌṩµÄ¸½±í1ÁË£¬call 00444B84µÄ¼ÆËãʵ¼ÊÉϾÍÊǽ«ÎÒÃÇÊäÈë
µÄ×Ö·ûÕÒ³öÔÚ¸½±í1ÖеÄλÖÃÖµ£¬ÈçÎÒÊäÈëµÄ2£¬ËüÔÚ¸½±íÖеÄÖµ¾ÍΪ36£¬ÄÇôËüÔÚ³öÕâ¸öca
llºóµÄal=36£¬ÏÖÔÚÄãÃǾÍÓ¦µ±Ã÷°×ËüÊÇÈçºÎ¼ÆËãÎÒÃÇÊäÈëµÄÖµÁË¡£ÏÖÔÚÎÒÃÇ»¹²»ÄÜ×öʲô
£¬ÒòΪÔÚÏÂÃ滹ÓÐÒ»¸öµØ·½µÈ×ÅÎÒÃÇÈ¥·ÖÎöËü¡£

ÈçÏ£º

00444C53 BE01000000              mov esi, 00000001

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|00444C85(C)
|
00444C58 8B45E8                  mov eax, dword ptr [ebp-18]
00444C5B 8A5C30FF                mov bl, byte ptr [eax+esi-01]
00444C5F 8BC6                    mov eax, esi
00444C61 99                      cdq
00444C62 F77DEC                  idiv [ebp-14]
00444C65 8B45FC                  mov eax, dword ptr [ebp-04]
00444C68 8A4410FF                mov al, byte ptr [eax+edx-01] <-72 6E 31 00 7200444C6C 32D8                    xor bl, al
00444C6E 8D45E0                  lea eax, dword ptr [ebp-20]
00444C71 8BD3                    mov edx, ebx
00444C73 E828EDFBFF              call 004039A0
00444C78 8B55E0                  mov edx, dword ptr [ebp-20]
00444C7B 8D45E4                  lea eax, dword ptr [ebp-1C]
00444C7E E8FDEDFBFF              call 00403A80
00444C83 46                      inc esi
00444C84 4F                      dec edi
00444C85 75D1                    jne 00444C58
ÉÏÃæ¾ÍÊdzÌÐòµÚ¶þ¸ö¼ÆËãµÄµØ·½£¬µ±ÔÚÕâÀï¼ÆËãÍêºóµÄÖµ¾ÍÊÇÎÒÃÇÔÚ½«×Ö·û´®×ªÎªÊý×ÖµÄÖµ
ÁË¡£ÉÏÃæÊÇÈçºÎ¼ÆËãµÄÄØ£¿ÉÏÃæÎÒÒѾ­±êÃ÷µÄËùÐèÒªµÄÌõ¼þÁË¡£Ëüʵ¼ÊÉϾÍÊÇʹÓÃÎÒÃÇÔÚÇ°
ÃæµÚÒ»´ÎµÃµ½µÄblÖµ£¨¹²5¸öÖµ£©ÔÙͬÏÂÃæµÄÄÇ5¸öÖµ½øÐÐXOR²Ù×÷£¬µÃµ½µÄblÖµ½«ÊÇÎÒÃÇÏë
ÒªµÃµ½µÄÖµ¡£
  ÎÒÃǵ½´ËÒѾ­Ã÷°×ÁËÕâ¸öÈí¼þµÄÕû¸ö×¢²á¹ý³ÌÁË£¬ÏÖÔÚ¾ÍÊÇÈçºÎͨ¹ý¼ÆËãµÃµ½×¢²áÂëÁËÎÊ
ÌâÁË¡£ÄÇôÎÒÃǽ«ÔõÑù¼ÆËãµÃµ½×¢²áÂëÄØ£¿ÎÒÃÇÔÚÇ°ÃæµÃµ½µÄ¿ÉÒԱܿª³ö´íµØ·½µÄÌõ¼þÔÚÕâ
Àï¾ÍµÃµ½ÁËÓ¦ÓÃÁË¡£³ÌÐòÒªÇóÎÒÃǼÆËãºóµÄÖµ³ýÒÔ43(H)ºóÓ¦µ±µÃµ½ÓàÊý1£¬ÄÇôÂú×ãÕâ¸öÌõ
¼þµÄÊýÖµ½«ÓÐʲôÄØ£¿ÕâÀïÎÒʹÓÃÁË×î¼òµ¥µÄÒ»¸öÖµÒòΪ43(H)=67(D),ÄÇôֻҪ¼ÆËãµÃµ½68
¾ÍÂú×ãÌõ¼þÁË¡£ÏÖÔÚÎÒÃÇÓÐÁËÒ»¸öÃ÷È·µÄÖµÁË£¬ÔÙ½øÐÐÇ°ÃæµÄXOR²Ù×÷¾Í¼òµ¥¶àÁË¡£
  ÎÒÃÇÍê³ÉXORºó£¬Ó¦µ±µÃµ½0 0 0 6 8Õâ5¸öÖµ£¬ÕâÑù¾ÍÄÜ×¢²á³É¹¦ÁË¡£ÎÒÃǾÍʹÓ÷´ÍÆ·¨À´
¼ÆËãµÚÒ»¸öÖµ£¬
  bl XOR 72 =30
  ͨ¹ý¼ÆËãÕâ¸öblÖµÓ¦µ±µÈÓÚ42£¬¶øÕâ¸ö42µÄÖµÊÇͨ¹ýµÚ1λµÄλÖÃÖµ*4ÔÙͬµÚ2λµÄλÖÃÖµ
½øÐлò²Ù×÷µÃµ½µÄ¡£ÏÖÔÚ¾ÍÔÙÀ´ÌÖÂÛÈçºÎµÃµ½ÕâÁ½¸öÖµ£¬ÒòΪa OR b =42£¬ÕâÀïÒòΪʹÓÃÁË
OR²Ù×÷£¬¾­ÎÒ²éOR±í·¢ÏÖÖ»Óе±0 OR 4 =4£¬4 OR 4=4£¨ÕâÀïרָ4µÄ룩£¬ÒòΪaºÍb¶¼Îª¸½
±íÖеÄλÖÃÖµ£¬ËùÒÔûÓÐÒ»¸ö¿ÉÒÔÔÚÊ×λÉϵÈÓÚ4µÄ£¬ËùÒÔÔÚÕâÀïÖ»ÓÐÊ×λΪ0ºÍ1µÄÂú×ãÌõ
¼þ£¨ÒòΪbl*4£©¡£ÏÖÔÚ¾ÍÉèµÚ1λΪQ£¬ÄÇôµÚ¶þλӦµ±µÈÓÚʲôÄØ£¿ÏÖÔھͿªÊ¼¼ÆËãµÚ¶þ¸ö
Öµ£¬ÒòΪµÚÒ»¸öֵΪQ£¬ËüµÄλÖÃֵΪ10ÔòÓÐ 10 or b =42£¬²éOR±í¿ÉÒÔÖªµÀµ±b=02ʱ¾ÍÄÜ
¹»Âú×ãÉÏÃæµÄÒªÇó£¬ËùÒÔÇ°Á½¸öÖµ¾ÍΪQC£¬ÆäËüµÄ8¸öֵͬÉÏÃæ¼ÆËãÒ»Ñù£¬ÎҾͲ»ÔÙ½éÉÜÁË
¡£
  ºÃÁË£¬ÎÒÕâ½Ú¿ÎÒ²Ó¦µ±½áÊøÁË£¬Ò²²»ÖªµÀ´ó¼Ò¶¼Ìý¶®Ã»ÓУ¬Èç¹ûûÓÐÌý¶®¿ÉÒÔ¸øÎÒдÐÅ£¬
¡£ÔÙ¼û£¡£¡£¡

      30        30         30          36           38
      72        6e         31          00           72
 xor  42        5e         01          36           4a
  a   10        10         00          00           10
  b   02        1e         01          36           0a

¸½±í1£º
  ÐòºÅ£º0  1  2  3  4  5  6  7  8  9  A  B  C  D  E  F 10  11  12  13  14  15
  ×Öĸ£ºA  B  C  D  E  F  G  H  I  J  K  L  M  N  O  P  Q   R   S  T   U    V
  ÐòºÅ£º16 17 18 19 1A 1B 1C 1D 1E 1F 20 21 22 23 24 25 26 27 28 29 2A 2B 2C
  ×Öĸ£ºW  X  Y  Z  a  b   c  d  e  f  g  h  i  j  k  l  m  n  o  p  q  r  s
  ÐòºÅ£º2D 2E 2F 30 31 32 33 34 35 36 37 38 39 3A 3B 3C 3D
  ×Öĸ£º t  u  v  w  x  y  z  0  1  2  3  4  5  6  7  8  9

                    ************************
                    *  RN:rn10-QCQeABA2QK  *
                    ************************
·µ»Ø
                 Tutor4  How to crack CD Player for Win95 Version 1.32

×÷Õß:dREAMtHEATER
д×÷ÈÕÆÚ: 30th, July 1999

Èí¼þ±³¾°×ÊÁÏ

ÔËÐÐƽ̨: Win9X  
ÎļþÃû³Æ: cdply132.zip
³ÌÐòÀàÐÍ: CD²¥·ÅÆ÷
ÏÂÔصصã: http://www43.pair.com/pkayser/
Îļþ´óС: 378KB

ʹÓõŤ¾ß

SoftIce V3.25--Win9X Debugger
W32Dasm V8.93--Win9X Dissembler
Hex WorkShop v2.54--Hex Editor
RegSnap V2.51--Registry Tracer

ÄÑÒ׳̶È

Easy(x)  Medium( )  Hard( )  Pro( )

                   ----------=======ÉùÃ÷========----------

      ±¾½Ì³ÌÖ»¹©½ÌѧÓã¬ÆäËûÒ»ÇÐÓÃ;½Ô±»½ûÖ¹¡£

               
                  ----------=======Èí¼þ½éÉÜ========----------

      CD Player is a full featured CD Player that has a touch sensitive LED display. 
Shows elapsed time or remaining time. Will also display the title of the song. CD 
Player has controls for Stop, Play, Pause, Eject, Skip forward, Skip backward, Seek 
forward and Seek backward.  CD Player has touch sensitive controls for continuous 
play, random play,  introduction play, and volume. Play lists may also be created. 
The play lists may be configured to skip or repeat selected tracks. 

                ----------=======Èí¼þµÄ±£»¤»úÖÆ========-------

      µ¥´¿µÄPassword±£»¤£¬Î´×¢²áʱ£¬Ã¿´ÎÆô¶¯¾ù»á³öÏÖÌáʾÇë×¢²áµÄ´°¿Ú£¨nag screen)
,×¢²áºó½«code´æÔÚHKEY_USERS\.DEFAULT\Software\Kayser\CD Player\Password
      
                     ----------=======ÕýÎÄ========----------
       
Part1 Ñ°ÕÒHardCode
      
      Ç°ÃæÎÒÒÑ˵µ½£¬´ËÈí¼þÖ»ÐèÊäÈëpassword¼´¿É×¢²á£¬Õâ˵Ã÷Õâ¸öcodeÊdzÌÐò±¾ÉíÄÚ
½¨µÄ£¨built-in),רҵÊõÓï³Æ֮Ϊhardcode¡£
      ½ñÌìÎÒ²»½²ÈçºÎ´ÓÄÚ´æÖÐÈçºÎÐá³öËûµÄ×¢²áÂ룬ÓÉÓÚÈí¼þ×÷ÕßµÄÈõÖÇ£¬Ê¹ÎÒÊý·ÖÖÓÖ®
ÄÚÕÒ³öËûµÄ×¢²áÂë¡£
      Ê×ÏÈÔÚW32DasmÖз´»ã±àÎļþpkcdplay.exe,µã»÷¹¤¾ßÀ¸Í¼±ê¡°String Data 
References¡±£¬³öÏֵĴ°¿Ú½«ÁгöËùÓб¾³ÌÐò²Î¿¼µÄ×Ö·û´®£¬½ØÈ¡ÈçÏ£º

"U5A"
"Unable to open volume control"
"Unhandled Exception"
"Unknown error"
"Unknown Exception"
"unknown"
"Unknown"
"UsePlayList"
"USER32"
"VW926AR2"     <==Reg Code
"W}A"
"What's this?"
"Written"
"X"
"x"
"X)D"
"x=trace into it
:004055E9 59                      pop ecx
:004055EA 84C0                    test al, al
:004055EC 750D                    jne 004055FB    <==×¢²áʱÌøת

* Possible StringData Ref from Data Obj ->"CD Player    Unregistered"
                                  |
:004055EE 68BAA04400              push 0044A0BA
:004055F3 53                      push ebx

* Reference To: KERNEL32.lstrcpyA, Ord:0000h
                                  |
:004055F4 E8FA250400              Call 00447BF3

2)
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:00402DAA(C)
|

* Possible StringData Ref from Data Obj ->"CD Player    Unregistered"
                                  |
:00402DB7 682C954400              push 0044952C

         ¾­ÑéÖ¤£¬µÚÒ»²¿·ÖÊÇÎÒÃÇÐèÒªµÄ£¬¾ßÌå·ÖÎö¹ý³ÌÎҾͲ»ÔÚ׸ÊöÁË¡£
         ÔÚ004055E4ÖÁ004055EC´¦ÓÖÊǾ­µäµÄcall/test/conditional jumpÓï¾ä,ÈÃÎÒ
ÃÇtrace intoÄǸöcall

* Referenced by a CALL at Addresses:
|:00404240   , :004055E4   
|
:0040C78F 55                      push ebp
:0040C790 8BEC                    mov ebp, esp
:0040C792 83C4F4                  add esp, FFFFFFF4
:0040C795 53                      push ebx
:0040C796 56                      push esi
:0040C797 33DB                    xor ebx, ebx
:0040C799 8D45F8                  lea eax, dword ptr [ebp-08]
:0040C79C 50                      push eax
:0040C79D 8D55FC                  lea edx, dword ptr [ebp-04]
:0040C7A0 52                      push edx
:0040C7A1 6A00                    push 00000000
:0040C7A3 683F000F00              push 000F003F
:0040C7A8 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"CD Player"
                                  |
:0040C7AA 688FA54400              push 0044A58F
:0040C7AF 6A00                    push 00000000

* Possible StringData Ref from Data Obj ->"Software\Kayser\CD Player\Password"
                                  |
:0040C7B1 686CA54400              push 0044A56C
:0040C7B6 6801000080              push 80000001

* Reference To: ADVAPI32.RegCreateKeyExA, Ord:0000h
                                  |
:0040C7BB E8EDB70300              Call 00447FAD
:0040C7C0 8D4DF4                  lea ecx, dword ptr [ebp-0C]
:0040C7C3 51                      push ecx
:0040C7C4 6A00                    push 00000000
:0040C7C6 6A00                    push 00000000
:0040C7C8 6A00                    push 00000000
:0040C7CA 6A00                    push 00000000
:0040C7CC FF75FC                  push [ebp-04]

* Reference To: ADVAPI32.RegQueryValueExA, Ord:0000h
                                  |
:0040C7CF E8D3B70300              Call 00447FA7
:0040C7D4 FF75F4                  push [ebp-0C]
:0040C7D7 E8448A0300              call 00445220
:0040C7DC 8BF0                    mov esi, eax
:0040C7DE 8D45F4                  lea eax, dword ptr [ebp-0C]
:0040C7E1 59                      pop ecx
:0040C7E2 50                      push eax
:0040C7E3 56                      push esi
:0040C7E4 6A00                    push 00000000
:0040C7E6 6A00                    push 00000000
:0040C7E8 6A00                    push 00000000
:0040C7EA FF75FC                  push [ebp-04]

* Reference To: ADVAPI32.RegQueryValueExA, Ord:0000h
                                  |
:0040C7ED E8B5B70300              Call 00447FA7

* Possible StringData Ref from Data Obj ->"VW926AR2"    <==¿´µ½ÁËʲô
                                  |
:0040C7F2 6899A54400              push 0044A599
:0040C7F7 56                      push esi

* Reference To: KERNEL32.lstrcmpiA, Ord:0000h
                                  |
:0040C7F8 E8BAB30300              Call 00447BB7
:0040C7FD 85C0                    test eax, eax
:0040C7FF 7509                    jne 0040C80A
:0040C801 C6053F44450001          mov byte ptr [0045443F], 01
:0040C808 B301                    mov bl, 01

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0040C7FF(C)
|
:0040C80A FF75FC                  push [ebp-04]

* Reference To: ADVAPI32.RegCloseKey, Ord:0000h
                                  |
:0040C80D E8A1B70300              Call 00447FB3
:0040C812 56                      push esi
:0040C813 E8B0890300              call 004451C8
:0040C818 59                      pop ecx
:0040C819 8BC3                    mov eax, ebx
:0040C81B 5E                      pop esi
:0040C81C 5B                      pop ebx
:0040C81D 8BE5                    mov esp, ebp
:0040C81F 5D                      pop ebp
:0040C820 C3                      ret

       Cool!Õâ¶Î´úÂëÑ°ÕÒ×¢²á±íÖеÄ×¢²áÂ룬²¢ÑéÖ¤ÊÇ·ñÕýÈ·£¬ÒԼĴæÆ÷alΪ·µ»ØÖµ¡£
Èôal=1,¼´±íʾÒÑ×¢²á¡£Ä㻹·¢Ïִ˶δúÂ뻹±»ÁíÒ»¸öµØ·½ºô½Ð£¬¾­ÑéÖ¤£¬ÊǼì²é³ÌÐòÆôʼ
ÊÇ·ñ³öÏÖnag screen¡£
       ºÃ£¡ÎÒÃÇÔõôÐ޸Ĵ˶δúÂëÄØ£¿ÎÒûÓÐÔÙ×Ðϸ·ÖÎöÕâ¶Î´úÂ룬¼ÈÈ»ËûÐèÒªÓÃal×÷Ϊ
·µ»ØÖµ£¬²¢ÇÒµÈÓÚ1Ϊע²á£¬ÎÒÓÃÁË×î¼òµ¥µÄ·½·¨£º
       ÔÚ0040C78F´¦£¬Ð޸ĴúÂëΪmov eax, 00000001; ret
       ²»Òª¸æËßÎÒÄ㲻̫Ã÷°×¡£×îºó£¬»¹ÐèÌáÐÑÄ㣬ÕâÒ²ÊÇ×î¹Ø¼üµÄ£¬ÄǾÍÊÇÇë×¢Òâ¶ÑÕ»
£¨Stack)ƽºâ£¬·ñÔò»áʹÄãµÄϵͳ#$%@^!* Æä·½·¨¾ÍÊÇ¿´¿´CALLÓï¾äµÄÇ°ÃæÊÇ·ñÓвÎÊý±»
Push, ÒÔ¼°CALlºóÊÇ·ñ±»Popµô¡£
       µ½´ËΪֹ£¬¸ÃÊÕ±øÁË£¡      

                  ----------=======The Patch========----------

       ÔÚÎļþpkcdplay.exeµÄoffset:0000BD8F´¦£¬ÐÞ¸Ä558BEC83C4F4 Ϊ B801000000C3
·µ»Ø
   Warning, this tutorial is a real mother!!  *grin*
 
   Ok, let's rock!!
 
 
   You'll need the following tools:
 
   (I use these tools, I assume you'll use 'em, but it doesn't
   mean that you'll need to use all those tools, so be sure to
   get them handy for the examples in this tutorial!)
 
   SoftIce 3.25 Beta
   W32Dasm 8.93
   Hacker's View 6.02
   SmartCheck 6.01
   TASM 5.00
   Windows Commander 3.53 (I use it coz of easier to multitask)
 
   Don't ask me where to download all these tools since you had
   a chance to get them when you used my older tutorials. Here
   are a few good cracking sites where you can grab tools from:
 
   http://cracking.home.ml.org or http://surf.to/HarvestR
 
   or ask any crackers to get you these tools!
 
   Are you ready?!
 
   OK! ;)
 
 
PART 1: How to crack a CD Protection in Blood2 by ByteBurn
 
 
At first excuse my english i know that it isnt the best and i'll do my best ;)
 
 
What we need:
-------------
 
You need Wdasm8.9 and Hiew5.9.There are new versions out but i always use this two.
W32Dasm 8.9 is a Windows disassembler.You can use it on W95/98 cause it is 32-Bit.
Hiew is a nice Hex-Editor with Decode function.
 
 
1.Hello
-------
 
Hello dudes.Now i'll explain you how to crack Blood2.Blood2 is a cute little
shoot´em up with a very simple copy protection.We can talk here about a cd-protection.
Cause when you dont have the game cd in drive it wont run.Thats the first thing you see
when you start it.And thats the first thing you're to know when you want to crack it.
Which kind of protection.There are many protection shemes but i'll explain here the most 
using protections you'll see in your later life as a cracker ;).
 
At first we're a simply protection sheme i'll here call WEB.Hmm whats that?It´s simply
to explain.A protection sheme most found on games like Blood2 - Anno1602 - Quake2 - NFSI-IISE...
We talk ´bout cd-protections.Very simple.Anything checks if there is the cd in drive,if it is
then it'll continous if not anything else let pops up the error message you recieve on the 
screen.This error message is in a little message box.And cause we're using Windows95-98 (i think
you do) its a Windows message box.And cause the message box contain a error message i call it
Window Error Box and WEB is the shortcut i'll use in this tutorial (ehhh now you know it ;)).
 
If you know how to handle Delphi i am sure you used this kind of message box in any of your coded
programms like when the user click on Exit it'll pop up a message box which contain the sentence
Good Bye or anything else.Easy to create with Delphi by creating a button,doubleclick on it so 
you come to the unit window and then you're to enter: showmessage('Good Bye Dude');  thats all.
But back to the tutor.This is the WEB protection.Then we're Nag-Screens.This little dudes are 
harder to crack then WEB´s cause you cant crack them with Wdasm (how i know...maybe anyone is so
good to crack it with WDasm).Here you're to use Soft-Ice.A Nag-Screen is a little Window most
with any nice picture where you can read that your trial period has expired or something else.
This kind you can see in LBA2 - Commandos...If a time period is over the programm register this
in most kinds by your system clock and you see the Nag-Screen.In some kind of games you can find
this protection shemes too.Then we're a key protection.Found on most applications like WinZip - 
WinRAR - PhotoShop...Here you're to enter any key to unlock your version from trial to full.
 
This protection is mostly found with a Nag-Screen and a WEB.At first your time expired.Then you
have to enter the serial key and then comes the message box which contain a good or bad message.
Serial Key protection you can crack with soft-ice.In some kinds you can crack it with Wdasm.
When you use Soft-Ice you create a own key for your name or read the original key from the prog.
When you use Wdasm you can only change the prog that it wont show you the bad error message but
will always show you something like "Thanks for Register this Programm" no matter which name or
key you enter.But thats not so good like make the key with Soft-Ice cause it wont work every 
time.A good example is WinRAR.When you crack it with Wdasm you can enter any key and it say 
"Thank you for Registry" but when you restart the prog you're to register it a second time.
How you see,on the one site its easyer to crack on the other site its not so good.
Ok now lets go to Blood2.
 
 
2.Blood2
--------
 
Ok install Blood2 on regular size and grab the cd outa drive.Now click on Blood2.exe.Wow which
special effect,you hear a scream and a little window pops up.Now after you make all your options
ready and click on Start...bing...there is our little WEB.Please insert the cd into drive.
Now your option.Insert the cd and click on ok or click on abort to return to windows.This is the
time for you where you're to buy it,get a crack from the net,kill it from hd,or read a nice tut
like this one and make it by yourself ;).You chose the last one great ;).Ok at first go to your
hd manager programm like Norton Commander and go to your directory where you installed Blood2.
 
This part is very needfull for you so please read it!!!
Now you're on Blood2 directory.Make two copys of the original Blood2.exe.One you're to call
Blood2.w32 and one Blood2.exx.Why?Its very easy to explain.Cause when you must disassemble the 
exe in WDasm,you can use the Blood2.exe.Hmm ok...But what when you make a error and have to 
disassemble the file again?Thats not so good for bigger files.Cause you cant use one file in 
different programms at the same time.A example.You disassembled the file with Wdasm,right your
numbers down and now you want to patch it with Hiew.Hmm...now you're to close Wdasm to use the
exe in Hiew so you can edit it.If you dont close Wdasm and want to edit it in Hiew you get a 
error like "Read mode only".Thats what i mean.You use it with Wdasm so you cant use it with Hiew
too.Now when you want to disassemble the file disassemble the *.w32 file.Now its no problem to 
look on the file in Wdasm and also edit the same file in Hiew.
The second copy you're to call Blood.exx.Its a backup of the original exe.No one is perfect and
make any mistake in cracking.So if yo patch any wrong part of the file so that the programm wont
run you can copy the Blood2.exx to Blood2.exe and everything is alright now ;).
 
 
3.Go to cracking
----------------
 
Now the interesting part.Run W32Dasm and disassemble the Blood2.w32 file by clicking on 
Disassembler\Open file to disassemble.Now go to your directory where you installed Blood2 and
where you saved Blood2.w32 and doubleclick on Blood2.w32.The disassembling process start.
At this point you're to know that how bigger the file to disassemble so more time it will take.
 
For example:
I're a AMD K6 2-350 with 64MB SD-RAM and a 9ms HD.A 4MB file take up to 10mins to disassemble.
So you can calculate what it'll do when you're only a P133 with 16MB EDO...good bye time ;).
Ok back to Blood2.Hey it finished the process great.Uno momento por favor!!!Whats that!?!
Ther is only wirr warr written with wingdings font.No mucho problemo amigo!Click on Disassembler\
Font\Select Font.Now you can select your favorit font.Its good to say that you may dont chose any
font like HandWriting or MickeyMouse ;).You may have to chose Arial or better Terminal.
Ok you chose terminal and click on ok.Now a second time on Disassembler\Font\Save Font.Do that
or you can on the next start chose a second time your font.So please save your font.Ok.
Now click on String Data References Button on the upper right corner.We'll call it SDR button.
 
Ahh a little window pops up.What is all that?Here you can see the messages and other things of 
the prog.At this point it is usefull to say that you dont have everytime a SDR button avaible 
but can crack it with Wdasm.Thats the part where you're to Search for your error message.Click
on Search\Fint Text.Now a little window pops up.Here you can enter the error message you recieved
by the game.You dont have to enter all the text only the first word like "Please".Then click
on ok and wait until your message was found.In our case we dont have to search for it,we can
click on SDR button.Aha.You can see our error message on the first page.Do you see it?No matter 
you cant answer my question ;)."Please insert the Blood2 CD-ROM into your CD-ROM Drive".
Doubleclick on it.Hey heeeyyy...You was warped on the main screen to the line which contain the
error message.A little tip for the SDR window.Its alphabetical order.So when you're a error 
message like "Please insert CD" you can scroll down a bit until you see the messages which begin
with "P".Thats not everytime so,like on Blood2 its on the first page.Ok.Now minimize the SDR 
window and take a look on Wdasm.Use your arrow keys to scroll up a bit until you see this
(if you're the same version of the exe like me):
 
* Possible StringData Ref from Data Obj ->"Please insert the game CD-ROM"
                                        ->"into the drive."
 
:00403FBF BFE4A54200                 mov edi, 0042A5E4
:00403FC4 83C9FF                     or ecx, FFFFFFFF
:00403FC7 F2                         repnz
:00403FC8 AE                         scasb
:00403FC9 F7D1                       not ecx
:00403FCB 2BF9                       sub edi, ecx
 
and so on and so on...
 
Hmm...was that our error message?No it wasnt.Our one was "Please insert the Blood2 CD-ROM into
your CD-ROM drive".So we dont need this one.Use your arrow keys to scroll up a bit until you
come to our message and a bit more.Now it have to looks like this:
 
:00403F89 0F8503010000               jne 00404092       <--------thats our one
:00403F8F E876C0100                  call 0042060A
:00403F94 8B4804                     mov ecx, dword ptr [eax+04]
:00403F97 E8952E0100                 call 00416E31
:00403F9C 8BAC24E0000000             mov ebp, dword ptr [esp+000000E0]
 
* Reference To: USER32.LoadStringA,  Ord:0183h
 
:00403FA3 8B1D3C344200               mov ebx, dword ptr [0042343C]
 
* Referenced by a (U)nconditional or (C)onditional Jump at Address:
?:00404082(U)
?
:00403FA9 8B0DB8E74200               mov ecx, dword ptr [0042E7B8]
:00403FAF 8D442450                   lea eax, dword ptr [esp+50]
:00403FB3 6A7C                       push 0000007C
:00403FB5 50                         push ecx
 
* Possible Reference to String Resource ID=00008: "Please insert the Blood2 CD-ROM into your 
CD-ROM drive."
 
:00403FB6 6A08                       push 00000008
:00403FB8 51                         push ecx
:00403FB9 FFD3                       call ebx
:00403FBB 85C0                       test eax ,eax
:00403FBD 7524                       jne 00403FE3
 
* Possible StringData Ref from Data Obj ->"Please insert the game CD-ROM "
                                        ->"into the drive."
 
Ok thats it.Now you see the line contain the error text "Please insert the Blood2..."?
thats our message.The little jne (jump if not equal) command let pop it up.Ok we now know
two things.First there is a dude which checks if there is a cd in drive.That one is the 
call command.It checks if eax is 1.If eax is 1 everything is fine,there is cd in drive and we
can continous.But when it is 0...uhhh nothing is fine and we cant continous cause there isnt a
cd in drive.Hmm...Then there is the jump command.It let pop up the error message on our screen.
jne = jump if not eqaul je = jump if equal.Now we're to options.We can attack the prog when we
kill the call.This will happens when we nop it.Nop = no operation.Or we can set the call on eax1
so it'll always think there is a cd in drive when he checks.At this point i're to tell you that
some programms are not stupid and the notice when you nop.So its better to set the eax on 1.
 
How to nop? 90 is the nop number.When a call or jump or whatever for a command have maybe the 
number E890987832 that are 10 numbers.That means that they're 5 bytes.Every two numbers are one
byte.E8=1 90=1 98=one 78=one 32=one.So we're to replace it with five 90´s.Dont worry when it flip
down a line in Hiew when you enter the first 90.Enter four other 90´s too.That is how to nop.
How to set eax on 1?Our number is E890987832.So replace it with E801000000.Ok that was how to 
set eax on 1.Now our second chance how to attack the prog.We now know that we can disable the 
check or fake it.Now we can kill the error box so it wont be shown on the screen and the game
runs.Thats what we're doing in Blood2.Do you see the jne command at the top?
 
:00403F89 0F8503010000               jne 00404092     
 
use your arrow keys to place the bar on it.Hey the bar change his color!Yes it changes to green.
Now you can see on the bottom of the screen something in the status bar:
Line:6601 Pg 62 and 63 of 745 Code Data @:00403F89 @Offset 00003389h in File:Blood2.w32
What does that means?Hmm...Ok.We're on line 6601,on page 62 and 63 of all 745,the code data is
00403F89 (:00403F89 <---look here  0F8503010000               jne 00404092),the Offset number is
00003389 (its the number we'll need when we want to patch it later) and all that is in File
Blood2.w32.Not so hard to understand or?Now what we need is the @Offset number of the jne 
command.That is 00003389.Write down 3389 (you dont need the 0´s so write it down without all the
000´s and without the little h at the end of the number).Now start Hiew.
 
 
4.At Hiew
---------
 
Ok start Hiew.No matter what you use if H.exe or H95.exe.Ohh its dos.Ok switch in Hiew to your
directory where you installed Blood2 and where you have Blood2.exe.Then open Blood2.exe.
Uff what that?No panic.Press F4.Now chose Decode and press enter.Ahh looks a little bit better.
Now press F5 (goto).In the upper left corner you can now enter a number.Thats the place where
you're to enter your @Offset numbers.Our is 3389.Enter 3389 and press Enter.Hey...you was warped
to the place which contain the jne command.Haha we got you baby!Now press F3....
 
ShortCut:
 
Now it can be the time for you where you'll recieve something like bad data read only mode...
Do you?Tstststsss....what did i said at the beginning?"please read this its very needfull for 
you"...You make the mistake and dont made two copys.Now you disassembled the Blood2.exe and want
to edit it with Hiew.AEEE...that wont work.How i said you cant edit one file with two different
programms.Ok switch back to Wdasm.Close wdasm and switch back to Hiew.Now try it again...and next
time you do what i said!!!;)
 
You can edit the line.You see that the cursor was placed on the 0F8503010000 .Hmm a bit long...
No problem.The number for jne is 75/85...How you see it is there after the 0F.Now use the 
arrow keys to put the cursor on the 85.Change it to 84.Press F9 (save) and then F10 (quit).
Ok how you see we dont nop it we change it from jne (jump if not equal) to je (jump if equal).
If weare nop it weare to replace the numbers with six 90´s.No matter now we're to look if it works.
Go back to windows and click on Blood2.exe.Peng AHHHH the special effect scream is great ;).
Now...wait!!!Are you sure you want to risk it?Maybe we change a wrong byte and now it'll
shut down your pc or destroy any files (dont laugh thats possible)?Ohh dude what we gonna do?
 
Are you brave enough to take it up with your machine?Ok..slowly move your fat slimy burger finger
on the Enter key...you're not sure...some seconds pass but then you cant wait!!!!OHH MY GOD!!!
What i're done!?!TADA!!!THE GAME RUNS WITHOUT CD!!! ;))))) You crack it dude.
Ok thats all for now i hope you like this little tutorial.Watch out for my tutorial compilation
called DephStar!Coming soon...
 
For thanks that i make a so nice tutorial or for STUPID QUESTIONS mail me to:
ByteBurn@onecooldude.com or reach me on IRC EFnet anywhere in #cracking4newbies #cracks ....
 
Have a nice day and dont get busted by the cops ;)
Thanks for reading this tutorial...by the way i love to write data lines down....;)
 
·µ»Ø
³õѧÌìµØ£º
                  Æƽâ½Ì³ÌÎå
                     ³ÌʽÁÔÈË
   ²»ÊÇÎÒµ±½ÌʦµÄ˵ÄãÃÇ£¬ÎªÊ²Ã´ÎÒÿ´ÎΪ´ó¼Ò¾«ÐÄ×¼±¸µÄ×÷ҵȴûÓÐÒ»¸öÈËÀ´ÏòÎÒ½»×÷
Òµ£¬ÄÇô´ó¼ÒÒ»¶¨ÊÇ̫æÁË°É£¬ÄÇôºÃ£¬´ÓÕâÖÜ¿ªÊ¼ÎÒ½«²»ÔÙÏò´ó¼ÒÁôÈκÎ×÷Òµ£¬Õâ¸ö¿ÉÊÇ
ÏàÓ¦¹ú¼Ò¶ÔСѧÉú¼õ¸ºµÄ¾«Éñ°¡¡£
   ºÃÁË£¬¿ÎÂðÎÒ»¹ÊÇÒªÉϵģ¬ÏÖÔÚ¿ªÊ¼´ó¼ÒÏëÒ»ÏëÎÒ¶¼Ïò´ó¼Ò½éÉÜÁ˼¸¸ö±È½ÏÐÎʽ£¬ÓÐË­
ÖªµÀûÓУ¬¿´À´´ó¼ÒÊǶ¼²»Ïë·¢ÑÔÁË¡£Ã»Óа취£¬ÎÒÔÚ´óѧʱҲͬ´ó¼ÒÒ»Ñù×ŽÌʦµÄÌá
ÎÊ£¬ÄÇô¾ÍÓÉÎÒ×Ô¼ºÏò´ó¼Ò½éÉÜ°É¡£
  µÚÒ»¸ö±È½ÏÐÎʽÈçÏ£º
     mov  eax [      ]  ÕâÀï¿ÉÒÔÊǵØÖ·£¬Ò²¿ÉÒÔÊÇÆäËü¼Ä´æÆ÷
     mov  edx [      ]  ͬÉÏ  ͨ³£ÕâÁ½¸öµØÖ·¾Í´¢´æ×ÅÖØÒªÐÅÏ¢
     call 00??????
     test eax eax
     jz(jnz)
  µÚ¶þ¸ö
     mov  eax [      ]  ÕâÀï¿ÉÒÔÊǵØÖ·£¬Ò²¿ÉÒÔÊÇÆäËü¼Ä´æÆ÷
     mov  edx [      ]  ͬÉÏ  ͨ³£ÕâÁ½¸öµØÖ·¾Í´¢´æ×ÅÖØÒªÐÅÏ¢
     call 00??????
     jne(je)
  µÚÈý¸ö
   mov eax [   ]
   mov edx [   ]
   cmp eax,edx
   jnz(jz)
»òÕß
begin  mov al [   ]
       mov cl [   ]
       cmp al,cl
       jnz(jz)
       mov al [  +1]
       mov cl [  +1]
       cmp al,cl
       jnz(jz)
       cmp eax ecx (eaxΪ¼ÆÊýÆ÷£©
       jnl begin
       mov al 01
  ÎÒÏëÎÒ¾ÍÏò´ó¼Ò½éÉÜÁËÈçÉÏÈýÖÖÐÎʽµÄ±È½ÏÐÎʽ£¬ÄÇô´ó¼Ò¶ÔËüÕÆÎÕµÄÈçºÎÄØ£¬ÎҿɾͲ»
ÖªµÀÁË¡£ÒòΪûÓÐ×÷ÒµÉϽ»ËùÒÔÒ²ÎÞ·¨Á˽â´ó¼ÒÕÆÎÕÇé¿ö¡£µ«ÊÇûÓйØϵ£¬Ö»Òª´ó¼ÒÄܹ»´Ó
ÖÐѧµ½ÏëÒªµÄ¶«Î÷¾Í¿ÉÒÔÁË¡£
  ½ñÌìÏò´ó¼Ò½éÉÜÁíÒ»¸ö±È½Ï³£ÓõÄÐÎʽ£¬ÈçÏÂËùʾ£º
     lea edi [    ]
     lea esi [    ]
     repz cmpsd
     jz(jnz)
  Õâ¸ö±È½ÏÐÎʽ¾ÍÊǽÏΪÖØÒª±È½ÏÐÎʽ£¬Èç¹ûÄãÔÚÆƽâ¹ý³ÌÖп´µ½ÓÐÕâÑùÒ»¸ö±È½ÏµÄÐÎʽ£¬
µÄ»°£¬Í¨³£Äã¾ÍÄܹ»µÃµ½Èí¼þµÄ×¢²áÂëÁË£¬ÒòΪʹÓÃÕâ¸ö±È½ÏÐÎʽµÄ»°£¬Ä㽫ÔÚediºÍesiÖÐ
µÃµ½×¢²áÂë¡£
   ÏÖÔÚÏò´ó¼Ò¾ÙÒ»¸öÀý×Ó¡£ÈçÏ£º
                   Split V3.1.4.1
¼ò½é£ºÎļþ·Ö¸î¹¤¾ß
×·×Ù£º»¹ÊÇʹÓÃÎÒÇ°Ãæ½éÉܹýµÄ·½·¨½øÐÐÇ°Ãæ×·×Ù¹ý³Ì¡£
  1 ÏÈÊäÈë
      name:dahuilang
      company:program hunter
      RN:0123-4567-8901-23456
  2 ctrl+Mµ÷³öTRW£¨crtl+Dµ÷³öSI£©£¬ÔÚÕâÀïÉèbpx hmemcpy
  3 »Øµ½³ÌÐòÖУ¬µã»÷OK£¬TRWµ¯³ö¡£ 
  4 ÔÚÕâÀïÄã¿ÉÒÔʹÓÃF12£¬ÌøÔ¾Ö±µ½ÉÏÃæ0040323D´¦¾Í¿ÉÒÔÁË¡£
* Possible StringData Ref from Data Obj ->"Concat/Split"
                                  |
:100012DA 6880A00010              push 1000A080
:100012DF 8D9424E0000000          lea edx, dword ptr [esp+000000E0]
:100012E6 51                      push ecx
:100012E7 52                      push edx
:100012E8 E823250000              call 10003810
:100012ED 83C40C                  add esp, 0000000C
:100012F0 84C0                    test al, al
:100012F2 741F                    je 10001313
:100012F4 8D442428                lea eax, dword ptr [esp+28]
:100012F8 8D8C24DC000000          lea ecx, dword ptr [esp+000000DC]
:100012FF 50                      push eax
½øÈëcall 10003810
:10003826 50                      push eax

* Reference To: KERNEL32.lstrcpyA, Ord:0302h
                                  |
:10003827 FF1540810010            Call dword ptr [10008140]
:1000382D 6A20                    push 00000020
:1000382F 56                      push esi
:10003830 E87B090000              call 100041B0
:10003835 83C408                  add esp, 00000008
:10003838 85C0                    test eax, eax
:1000383A 0F84C9000000            je 10003909
   Õâ¸ö¿ÉÊdzÌÐòÉèµÄÒ»¸öÕÏ°­£¬Èç¹ûÄã²»×ÐϸÑо¿ËüµÄ»°£¬Ä㽫ÎÞ·¨µÃµ½Õâ¸öÈí¼þµÄ×¢²á
Â룬ËüÔÚÕâÀïµ÷ÓÃÁËname£¬Ã»Óе÷ÓÃRN£¬ËùÒÔÕâ¸öcallÖ»ÓënameÓйأ¬callÓÖµ÷ÓÃÁË20(H),
Õâ¸öÖµ£¬ËüÔÚASCÂëÖÐΪ¿Õ¸ñ·ûºÅ¡£ÏÖÔÚ´ó¼ÒÏëÒ»ÏÂnameͬÕâ¸ö¿Õ¸ñÓÐʲô¹Øϵ¡£´ó¼Ò¿ÉÒÔ
Ïëµ½ÁË°É£¬nameÖÐÒ»¶¨ÒªÓпոñ£¬ÕâÑùÄã¿ÉÒÔ˳ÀûµÄµ½´ïÏÂÃæ¡£
:100038EA B903000000              mov ecx, 00000003
:100038EF 8D7C2418                lea edi, dword ptr [esp+18]
:100038F3 8D742424                lea esi, dword ptr [esp+24]
:100038F7 33D2                    xor edx, edx
:100038F9 F3                      repz
:100038FA A7                      cmpsd
:100038FB 5F                      pop edi
:100038FC 5D                      pop ebp
:100038FD 5E                      pop esi
:100038FE 5B                      pop ebx
:100038FF 0F94C0                  sete al
:10003902 81C484000000            add esp, 00000084
:10003908 C3                      ret
  µ±ÄãÀ´µ½ÉÏÃæµÄʱºò£¬´ó¼ÒÏÖÔÚÏëµ½ÎÒÉÏÃæ½éÉܵķ½·¨¡£ÕâÀï
:100038EF 8D7C2418                lea edi, dword ptr [esp+18]
:100038F3 8D742424                lea esi, dword ptr [esp+24]
:100038F7 33D2                    xor edx, edx
:100038F9 F3                      repz
:100038FA A7                      cmpsd
¡­¡­
:100038FF 0F94C0                  sete al
  Õâ¸ö¾ÍÊDZȽϵäÐͱȽÏÐÎʽ£¬´ÓÉÏÃæÄã¾Í¿ÉÒԵõ½Õâ¸öÈí¼þµÄ×¢²áÂëÁË¡£ÄãҲѧµ½ÁËÕâ¸ö
±È½ÏÐÎʽÁË¡£
  ºÃÁË£¬Õâ½Ú¿ÎÒ²½²ÍêÁË£¬¿Éϧ°¡Ã»ÓÐÊڿηѰ¡£¬Ï¿ÎÁË¡£
·µ»Ø
ÎÊÌâ´ðÒÉ£º
 
·µ»Ø
ÍøÕ¾½éÉÜ£º
 
·µ»Ø
ÔÓÖ¾ÐÅÏ䣺
Ͷ¸åÐÅÏ䣺discoveredit@china.com
´ðÒÉÐÅÏ䣺discoveranswer@china.com
°ßÖñÐÅÏ䣺programhunter@china.com
·µ»Ø