EBPIG
6̽Ë÷ÔÓÖ¾6
MHJDQ
֪ʶ¹²ÏíJ×ÊÔ´¹²ÏíJ×ÊÁϹ²Ïí
¡¾·¢ÐÐʱ¼ä¡¿2001-3-16
¡¾ÆÚ¿¯ºÅÂë¡¿µÚÈýÊ®¶þÆÚ
¡¾ÍøÕ¾µØÖ·¡¿http://programhunter.myetang.com
¡¾°æȨÉùÃ÷¡¿¡â¨z¨{¨|¨}¨~¨€³ÌʽÁÔÈ˨€¨~¨}¨|¨{¨z¡á
´ËÔÓÖ¾ÓɳÌʽÁÔÈ˱༭¡¢ÖÆ×÷¼°·¢ÐУ»ÔÓÖ¾¿ÉÒÔ×ÔÓÉתÔØ¡¢·Ö·¢ºÍ´«²¥£»ÈκθöÈË»òÍÅÌå²»µÃÔÚδ¾­±¾ÈËÊÚȨµÄÇé¿öÏÂÐÞ¸ÄÔÓÖ¾µÄÍâ¹Û¼°ÄÚÈÝ£»ÔÓÖ¾µÄ½âÊÍȨ¹é³ÌʽÁÔÈËËùÓС£

¡¾±à¼­¼ÄÓï¡¿

    
   {~._.~} 
    ( Y )  
   ()~*~() 
   (_)-(_) 

µ±ÄãÊÕµ½ÍøÓÑÄÇ°üº¬×ÅÕæ³ÏµÄÐÅʱ£¬ÄãµÄÐÄ»áÈçºÎÄØ£¿µ±Äã¿´µ½ÄãµÄ³É¹û±»ËûÈ˳ÐÈϵÄʱºò£¬ÄãµÄÐÄ»áÈçºÎÄØ£¿µ±ÄãµÃµ½×Ô¼ºÐÄ°®µÄÈËʱ£¬ÄãµÄÐÄ»áÈçºÎÄØ£¿

Ç°¼¸ÌìÊÕµ½ÁËÍøÓÑÍò´ºµÄÀ´ÐÅ£¬ÕæµÄΪËû¶ø¸Ðµ½½¾°Á£¬ÄÜÓÐÕâÑùÒ»¸öÅóÓÑÎÒ×Ô¼ºÒ²Öª×ãÁË¡£ÓÐʱÅóÓѲ»ÔÙÈçºÎµÄºÃ£¬¶øÔÚÓÚÄÜ·ñÀí½â¶Ô·½£¬ÎÒÔÚÕâÀïÏòÆÚ½«ÒªÏò´ó¼Ò½éÉܵÄÍò´ºÍ¬Ö¾ËµÉù¡°Ð»Ð»ÄãµÄÀí½â¡±¡£

 
¡¾Ä¿ ÿÿ ¼¡¿
ÿÿÿÿ&ÆƽâÐĵÃ
J¡­¡­SyGate3.0ÆƽâÎĵµ Íò´º
K¡­¡­Might & Magic 7 1.0 US (Safedisc) Íò´º
L¡­¡­ºìÉ«¾¯±¨2(red Alert 2)·±Ìå°æÕý°æÍѿǽâÃÜ˵Ã÷ Íò´º
 
&¡¾ÆƽâÐĵá¿
 SyGate3.0ÆƽâÎĵµ

ʹÓù¤¾ß
        Softice 3.0
        w32dasm 8.93
ÆƽâÕß:Âò²Ýñ(wancun@sina.com)
 SyGate3.0ÊÇÒ»¸öºÜºÃµÄ´úÀí·þÎñÈí¼þ£¬Ëü°Ñ¿ÉÒÔÈÃÓû§ÓÃһ̨modemÉÏÍø¹²Ïí¡£Õâ¸öÈí
¼þÓÐ31ÌìµÄʹÓÃÏÞÖÆ£¬Ò²ÓÐʹÓôÎÊýµÄÏÞÖÆ,¼¸¸ö²¢ÇÒËüºÃÏóÔÚ×¢²á±íÖÐдÈëÁËÒ»¸öɶ,
·´ÕýÎÒÖØ×°²»ÄÜʹÓ㬲»Ë¬,ÐÖµÜÃǼ¸¸öÔÚÍøÉÏÏëÓÃÒ»¸öСèͬʱÔÚÍøÉÏÉñÓεĸоõ²Åû
¼¸Ìì¾ÍÒª½áÊøÁË,¿É²»ÐÐ.µÃÏëÏë°ì·¨.¿´À´µÃ¸úSygate¹«Ë¾Çë¸ö°²ÁË.ÒòΪÕâ¸öÈí¼þµÄ×¢²á
±ØÐëÔÚÍøÉϽøÐУ¬ÏȲ¦ºÅÉÏÍøÔÙÊäÈë×¢²áÂë,Õâ¸ö³ÌÐò¸ú×¢²áÔËËãÏà¹ØµÄ,·Ö±ðÊÇSerial No
ÓÐÁ½¸öÊäÈëÎı¾¿ò,»¹ÓÐÒ»¸öÊÇRegistrationÎı¾¿ò.ÎÒÔÚËüÃÇÖÐÊäÈëÈçÏÂ
            Serial No:     18181818 41841888
            Registration:  94189418
ΪɶÕâÑùÊäÈë,ºÇºÇ.ÎÒûǮǮȥע²áѽ,ËûÃÇÒªÕâÑù²¦ºÅÑéÖ¤.µ±È»ÏÈÈ¥¸øSygate¹«Ë¾µÀ¸ö
¼ªÏé.(²»ÊÇСµÜÉá²»µÃ×¢²áµÄǮǮ,²»Å¸÷λЦ»°,ÎÒÁ¬ÕæµÄ$¶¼Ã»Ãþ¹ý.ÄÄÓÐǮǮȥע²áÂï.
µÈ¶þ»ØÎÒÊÖÍ·ÓÐ$ÁËÒ»¶¨.....¹§Ï²·¢²Æ!),ÏÈÀñ...¶øºóÔÚSofticeµÄºÚÁ³ÏÂÃæµÄ¶Ïµã
       bpx hmemcpy
       È»ºóCtrl+DÇлØ,°´×¢²á°´Å¥,¶ÏÏÂÁË
¾Í°´F12»Øµ½³ÌÐò¿Õ¼ä.³ÌÐòÏÈ°ÑÄãÊäÈëµÄ
¶«Î÷ת»»ÎªÆäÏàÓ¦µÄ16½øÖƱíʾµÄÓеãÏñBCDÂëµÄÏàÓ¦±íʾ¡£È»ºóÔÙ×ßÒ»»á¿ÉÒÔ¿´¼ûÈçÏ´úÂë:

:0040F1CE 50                      push eax
:0040F1CF 57                      push edi

* Reference To: SgSrvAd.SgSetLicense, Ord:001Fh
                                  |
:0040F1D0 E883490000              Call 00413B58//Õâ¸öµ÷ÓþÍÊǵ÷Óýӿں¯ÊýÔÚSgSrvAd.dllÎļþÖÐ,Íê³É×¢²á
                                               //ÏÂÃæ¾ÍÒª½øÈ¥×·×¢²áÁË!ÎÒÌø½øÕâ¸ödllÈ¥×·×¢²áÂë
:0040F1D5 8BF0                    mov esi, eax
:0040F1D7 8B442424                mov eax, dword ptr [esp+24]
:0040F1DB 85C0                    test eax, eax//·µ»Øeax=0¾ÍÏÔʾע²á³É¹¦,
:0040F1DD 7479                    je 0040F258
:0040F1DF 3D37FFFFFF              cmp eax, FFFFFF37
:0040F1E4 7533                    jne 0040F219

* Possible Reference to String Resource ID=02000: "SyGate Message"
                                  |
:0040F1E6 68D0070000              push 000007D0
:0040F1EB 8D4C2414                lea ecx, dword ptr [esp+14]
:0040F1EF E83EC90100              call 0042BB32
*********************************************************************************************           
ÏÂÃæ¾ÍÊÇÔÚdllÖеĴúÂ벿·ÖÅжϺ¯ÊýÔÚSgSrvAd.dllÖеĺ¯ÊýSgSetLicense(),ÀïµÄÂþÂþ×ßû¶à¾Ã¾Í¿ÉÒÔ×ßµ½
ÕâÀïÁË,ÈÃÎÒÀ´Ò»µãÒ»µãµÄ½â¶ÁËü.

* Referenced by a CALL at Addresses:
|:100056A5   , :10009C85   
|
:10005630 53                      push ebx
:10005631 8B5C240C                mov ebx, dword ptr [esp+0C]
:10005635 57                      push edi
:10005636 8B7C240C                mov edi, dword ptr [esp+0C]
:1000563A 53                      push ebx//µÚÒ»²¿·ÖÊäÈëµÄ×Ö·û³¤¶È
:1000563B 57                      push edi//ÕâÀïÊÇÊäÈëµÄserial NoµÚÒ»²¿·ÖÊäÈëת»»³ÉÏàÓ¦16½øÖÆBCDÂë
:1000563C E86FFFFFFF              call 100055B0//ÂíÉϸú½øÍûϱ߿´£¬Õâ¸öµ÷ÓÃÊÇÑéÖ¤µÚÒ»²¿·ÖÊäÈë
                                               //µÄÓÐЧÐÔºÍÉú³ÉµÚ¶þ²¿·Ö×¢²áÂëµÄ
:10005641 83C408                  add esp, 00000008
:10005644 85C0                    test eax, eax//»ØÀ´ºóÕâ¸öҪΪ0²ÅÈÃÄãһ·˳·ç¹þ
:10005646 753B                    jne 10005683
:10005648 837C241804              cmp dword ptr [esp+18], 00000004
:1000564D 752C                    jne 1000567B
:1000564F 8B442414                mov eax, dword ptr [esp+14]
:10005653 56                      push esi//Registration²¿·ÖÊäÈëµÄBCDÂëת»»,94189418
:10005654 53                      push ebx//µÚÒ»²¿·ÖÊäÈëµÄ×Ö·û³¤¶È
:10005655 57                      push edi//ÆäÄÚÊÇ16½øÖÆBCD±íʾµÄ18181818
:10005656 8B30                    mov esi, dword ptr [eax]
:10005658 E8B3FFFFFF              call 10005610//Õâ¸öÒ²Òª¸ú½øÄãÏÈÍùÏÂÌø¹þ,Óöµ½ret²Å»ØÀ´(Éú³ÉRegistration²¿·Ö×¢²áÂë)
:1000565D 83C408                  add esp, 00000008
:10005660 3BC6                    cmp eax, esi//ÕâÁ½¸öÒªÏàµÈ,²ÅÐÐÓ´,ÄĸöΪ׼?µ±È»ÊÇeaxÖеÄ,Ëü²ÅÊÇÕæµÄÓ´!(esiÖеÄ
94189418Sygate²»ÊÕ¹þ) 
:10005662 5E                      pop esi
:10005663 7516                    jne 1000567B//µ±È»ÕâÀï¿É²»ÄÜÌøµÄ¹þ
:10005665 8B0F                    mov ecx, dword ptr [edi]//»¹Óиö»ú¹ØÓ´...¶Ô18181818Õâ¶ÎÊäÈëÓÐÒ»¸öºÜÃÔÐŵÄÒªÇó¹þ,
Sygate¹«Ë¾Öƶ©µÄ¹þ.
:10005667 BA00000040              mov edx, 40000000//µÚÒ»²¿·ÖµÚÒ»¸ö×Ö·û£¬Ò»¶¨²»ÄÜ´óÓÚ4(¿´À´SygateȷʵÓеã¼É»äµÄ¹þ
,ÊäÈëµÚÒ»¸ö´óÓÚ4µÄ»°Ëü²»¸ßÐ˵ÄÓ´)£¬Ò²ÍæÍ꣡£¡£¡
:1000566C 81E1000000F0            and ecx, F0000000
:10005672 5F                      pop edi
:10005673 3BD1                    cmp edx, ecx//´óÓÚ4¾ÍÊÇÓ°ÏìS±êÖ¾
:10005675 5B                      pop ebx
:10005676 1BC0                    sbb eax, eax//ÕâÌõÖ¸ÁîÒª±»S±êÖ¾Ó°Ïì
:10005678 F7D8                    neg eax//µÚÒ»¸öÊäÈë×Ö·û´óÓÚ4,¾ÍÃ׸ÂÁË
:1000567A C3                      ret



* Referenced by a (U)nconditional or (C)onditional Jump at Addresses:
|:1000564D(C), :10005663(C)
|
:1000567B 5F                      pop edi
:1000567C B802000000              mov eax, 00000002
:10005681 5B                      pop ebx
:10005682 C3                      ret



* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10005646(C)
|
:10005683 5F                      pop edi
:10005684 B801000000              mov eax, 00000001
:10005689 5B                      pop ebx
:1000568A C3                      ret
/***************************************************************************/
µÚ¶þ²¿·ÖÉú³É´úÂëÇø
* Referenced by a CALL at Address:
|:1000563C   
|
:100055B0 837C240808              cmp dword ptr [esp+08], 00000008//µÚÒ»²¿·Ö±ØÐëΪ8¸ö×Ö·û
:100055B5 7406                    je 100055BD //²»Ìø¾ÍÍæÍê
:100055B7 B801000000              mov eax, 00000001//Äã²»ÏàÐŵ½ÁËÕâÀï·µ»Øeax=1¾ÍҪϴ°×
:100055BC C3                      ret//ÖªµÀÁË°Ñ,ΪɶÊäÈë'18181818',µÚÒ»²¿·ÖÊäÈë±ØÐëÊÇ8¸ö×Ö·û²ÅÈÃ
                                     //Äã¹ý¹þ



* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:100055B5(C)
|
:100055BD 56                      push esi
:100055BE 8B742408                mov esi, dword ptr [esp+08]
:100055C2 57                      push edi
:100055C3 8B06                    mov eax, dword ptr [esi]//BCDÂë18181818×¢²áÂëµÚÒ»²¿·Ö
:100055C5 50                      push eax
:100055C6 E805FFFFFF              call 100054D0//Éú³É×¢²áÂëµÚ¶þ²¿·Ö£¬¸ú½ø¹þ
:100055CB 8BC8                    mov ecx, eax//·µ»ØÖµ¸øecx
:100055CD 83C404                  add esp, 00000004
:100055D0 8BD1                    mov edx, ecx
:100055D2 C1E834                  shr eax, 34
:100055D5 C1EA28                  shr edx, 28
:100055D8 8D0440                  lea eax, dword ptr [eax+2*eax]
:100055DB 8D1492                  lea edx, dword ptr [edx+4*edx]
:100055DE 03C2                    add eax, edx
:100055E0 8BD1                    mov edx, ecx
:100055E2 C1EA1C                  shr edx, 1C
:100055E5 C1E90E                  shr ecx, 0E
:100055E8 8D3C92                  lea edi, dword ptr [edx+4*edx]
:100055EB 8D147A                  lea edx, dword ptr [edx+2*edi]
:100055EE 5F                      pop edi
:100055EF 03C2                    add eax, edx
:100055F1 03C1                    add eax, ecx
:100055F3 8B4E04                  mov ecx, dword ptr [esi+04]//'41841888'
:100055F6 25FFFF0F00              and eax, 000FFFFF//Õâ¸öÖµ¾ÍÊǵÚÒ»²¿·ÖÉú³ÉµÄ
                                                   //µÚ¶þ²¿·Ö£¬Ò»¶¨ÒªµÈÓÚesi+04
:100055FB 81E1FFFF0F00            and ecx, 000FFFFF
:10005601 2BC1                    sub eax, ecx
:10005603 5E                      pop esi
:10005604 C3                      ret
/*************************************************************************/

* Referenced by a CALL at Address:
|:100055C6   
|
//Ëã·¨²¿·Ö:Îı¾µÄµÚ¶þ²¿·Ö¸ú18181818ÏàÆ¥ÅäµÄ×¢²áÂë¾ÍÓÉÕâÀïÔËËãµÃÀ´,Äã¿ÉÒÔ°ÑËüµ±×öÒ»¸öºÚÏä.ÔÚÕâÀïÍâ
//½çÊäÈëÖ»ÓÐÒ»¸ö18181818,(µ±È»ÄãÒ²¿ÉÒÔ°ÑËüµ±×öһͷÄÌÅ£,³ÔµÄÊÇ18181818,¼·³öµÄ¾ÍÊÇ......:),Æäʵ³ÌÐò
//ÔÚÕâÀï×öµÄÒ²¾ÍÊÇ×öµÄ¼¸¸öÒì»ò¼ÓÉÏСѧ¾Í»áµÄËÄÔò»ìºÏÔËËãÀ­,ÎÒÀÁ!¾Í²»·ÖÎöÁ˹þ,ÓÐÊýѧÐËȤµÄÂþÂþ¿´.
:100054D0 8B4C2404                mov ecx, dword ptr [esp+04] \\ BCD 18181818
:100054D4 56                      push esi
:100054D5 8BC1                    mov eax, ecx
:100054D7 3543512400              xor eax, 00245143
:100054DC 0FAFC1                  imul eax, ecx
:100054DF 0FAFC1                  imul eax, ecx
:100054E2 8BD0                    mov edx, eax
:100054E4 C1E20B                  shl edx, 0B
:100054E7 2BD0                    sub edx, eax
:100054E9 8D1492                  lea edx, dword ptr [edx+4*edx]
:100054EC 8D1490                  lea edx, dword ptr [eax+4*edx]
:100054EF 8D1452                  lea edx, dword ptr [edx+2*edx]
:100054F2 8DB450777A0600          lea esi, dword ptr [eax+2*edx+00067A77]
:100054F9 B865A62573              mov eax, 7325A665
:100054FE 0FAFF1                  imul esi, ecx
:10005501 F7E1                    mul ecx
:10005503 0FAFF1                  imul esi, ecx
:10005506 81EE6E1A0000            sub esi, 00001A6E
:1000550C 0FAFF1                  imul esi, ecx
:1000550F C1EA11                  shr edx, 11
:10005512 8BC2                    mov eax, edx
:10005514 C1E008                  shl eax, 08
:10005517 03C2                    add eax, edx
:10005519 8D0440                  lea eax, dword ptr [eax+2*eax]
:1000551C 8D8406B1110000          lea eax, dword ptr [esi+eax+000011B1]\\µÚ¶þ²¿·Ö¼·³öÀ´µÄÔÚeaxÖÐ
                                                                           
:10005523 5E                      pop esi
:10005524 C3                      ret
/**************************************************************************/
/**************************************************************************/
//µÚÈý²¿·ÖÉú³É´úÂëÇø
10005610 837C240808              cmp dword ptr [esp+08], 00000008//µÚ¶þ´ÎÅжÏÄãÊäÈëÊÇ×Ö·ûÊýÊÇ8Âð?
:10005615 7406                    je 1000561D//ÕâÀïÒªÌø¹ýÈ¥¹þ,²»È».....
:10005617 B801000000              mov eax, 00000001
:1000561C C3                      ret// ºÇºÇ~¿´À´Sygate¹«Ë¾¸úÎÒÃÇÒ»Ñù,¶ÔÕâÑùµÄ¼ªÏéÊýÖµ8Ò²ÊÇϲ»¶¹þ
                                     //.µ«Äã¿É²»Òª°Ñ´úÂë×ßµ½ÕâÒ»ÐÐÓ´!



* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:10005615(C)
|
:1000561D 8B442404                mov eax, dword ptr [esp+04]
:10005621 8B08                    mov ecx, dword ptr [eax]
:10005623 51                      push ecx//¸ù¾ÝµÚÒ»²¿·ÖÉú³É
10005624 E807FFFFFF               call 10005530//¸ú½ø¾ÍÊÇÉú³ÉRegistrationµÄËã·¨Á˹þ!
:10005629 83C404                  add esp, 00000004
:1000562C C3                      ret


/***************************************************************************/
//Ëã·¨²¿·Ö:Îı¾µÄµÚÈý²¿·Ö¸ú18181818ÏàÆ¥ÅäµÄRegistration×¢²áÂë¾ÍÓÉÕâÀïÔËËãµÃÀ´,Äã¿ÉÒÔ°ÑËüµ±×öÒ»¸ö
//ºÚÏä.ÔÚÕâÀïÍâ½çÊäÈëÖ»ÓÐÒ»¸ö18181818,(µ±È»ÄãÒ²¿ÉÒÔ»¹ÊÇ°ÑËüµ±×öһͷÄÌÅ£,³ÔµÄÊÇ18181818,¼·³öµÄ¾ÍÊÇ......:),

:10005530 8B4C2404                mov ecx, dword ptr [esp+04]
:10005534 56                      push esi
:10005535 8BC1                    mov eax, ecx//ecx=(BCDÂë)18181818
:10005537 3545099294              xor eax, 94920945
:1000553C 0FAFC1                  imul eax, ecx
:1000553F 0FAFC1                  imul eax, ecx
:10005542 0FAFC1                  imul eax, ecx
:10005545 0FAFC1                  imul eax, ecx
:10005548 8D14C500000000          lea edx, dword ptr [8*eax+00000000]
:1000554F 2BD0                    sub edx, eax
:10005551 8D1490                  lea edx, dword ptr [eax+4*edx]
:10005554 8DB4D061050000          lea esi, dword ptr [eax+8*edx+00000561]
:1000555B B8CF4D0FC2              mov eax, C20F4DCF
:10005560 F7E1                    mul ecx
:10005562 0FAFF1                  imul esi, ecx
:10005565 8BC1                    mov eax, ecx
:10005567 2BC2                    sub eax, edx
:10005569 D1E8                    shr eax, 1
:1000556B 03C2                    add eax, edx
:1000556D C1E811                  shr eax, 11
:10005570 8BD0                    mov edx, eax
:10005572 C1E204                  shl edx, 04
:10005575 03D0                    add edx, eax
:10005577 8D04D2                  lea eax, dword ptr [edx+8*edx]
:1000557A 8D04C0                  lea eax, dword ptr [eax+8*eax]
:1000557D 03F0                    add esi, eax
:1000557F 0FAFF1                  imul esi, ecx
:10005582 81EE1C82B302            sub esi, 02B3821C
:10005588 0FAFF1                  imul esi, ecx
:1000558B C1E91E                  shr ecx, 1E
:1000558E 81F1FAFAFAFA            xor ecx, FAFAFAFA
:10005594 8D0489                  lea eax, dword ptr [ecx+4*ecx]
:10005597 8D0480                  lea eax, dword ptr [eax+4*eax]
:1000559A 8D0480                  lea eax, dword ptr [eax+4*eax]
:1000559D 8D1480                  lea edx, dword ptr [eax+4*eax]
:100055A0 C1E204                  shl edx, 04
:100055A3 2BD1                    sub edx, ecx
:100055A5 8D8416E3140000          lea eax, dword ptr [esi+edx+000014E3]//¼·³öÀ´µÚÈý²¿·ÖµÄ¾ÍÊÇÕâ¸öeaxµÄÀ­!
:100055AC 5E                      pop esi
:100055AD C3                      ret


ºó¼Ç:
      Õâ¸öÈí¼þÒѾ­ÊÇÎҺܾøúµÄÁË,²»¹ýËüȷʵºÜºÃ,ÏÖÔÚËüµÄ°æ±¾Ò²Éý¸ßÁË.ÎÒÕâÈ˼ȱ¿ÓÖÀÁ.еÄ4.0×¢²á·½·¨
ºÃÏóÊǸÄÁË,ºÃÏó²»ÊÇͨ¹ýµ÷ÓÃdllʵÏÖµÄ×¢²áÂëÑéÖ¤µÄÁË.ÎÒÒ²²»¸ÒÈ¥×·ÁË,ÔÚ»ã±à´úÂëÉ­ÁÖÀïÕæµÄºÃ¿ÉÅÂ.»¹ÊÇ
ÉϽÖÈ¥´òÍûµÄºÃ,ÎØÎØ......


#include
#include
#include
#include
#include
#include
char *point,*point1,charstr[100],covert[100],input_no[100],char1;
DWORD number,i,first,second,third,random;

void main(void)
{   printf("SyGate 3.0 proxy registry http://www.sygate.com \n");
    printf("crack by:machoman\n");
	printf("please input number \n");
	scanf("%s",charstr);
	getchar();
	strcpy(input_no,charstr);
/*********************************************************************************/
//Õⲿ·ÖCÊÇ°ÑÊäÈëµÄת»»³É¶ÔÓ¦µÄÀàBCD±íʾ£¬Èç¹ûÊäÈë'18181818'°ÑËüת»»ÎªÒ»¸öDWORDµÄ0x18181818
	number=lstrlen(input_no);
            if(number<8)
		{printf("the  input number  can 't lower 8 NULL\n");
		  return;
                }
	     point=&char1;
	    random=rand();	  
	 for(i=0;i<8;i++)
		{    
			point=&input_no[i];
        if(((*point)<0x30)|(((*point)>0x39)&&((*point)<0x41))|(((*point)>0x5a)&&((*point)<0x61))|
		     ((*point)>0x66)|(((*point)>0x46)&&((*point)<0x61))|(input_no[0]>0x34))
			  {printf("input must area in 0-9,A-F and first character must lower 4");
			   return;
			  }
			  if(*point>=0x30&&*point<=0x39)
			  {*point=*point-0x30;
			    first=first<<4;
				first=first|(*point);

			  }
			  else 
				  if((*point)>=0x41&&(*point)<=0x46)
				  {*point=*point-0x37;
				    first=first<<4;
					first=first|(*point);

				  }
               else 
				   if((*point)>=0x61&&(*point)<=0x66)
				   {*point=*point-0x57;
				     first=first<<4;
					 first=first|(*point);
				   }
                     point1=point1+1;
		}
/*********************************************************************************/
  //Õⲿ·Ö»ã±à´úÂë¾ÍÊÇÔÚ³ÌÐòÖÐÕ³Ìù¹ýÀ´µÄ£¬ÎÒÀÁ£¡²»Ïëд³ÉCÁË
	 _asm{    push  eax
		     push  ebx
		     push  ecx
		     push  edx
		     push  esi
		     push  edi
		     push  ebp
             mov ecx, first//(BCD)18181818
             mov eax, ecx
             xor eax, 0x245143
             imul eax, ecx
             imul eax, ecx
             mov edx, eax
             shl edx, 0x0B
             sub edx, eax
             lea edx, dword ptr [edx+4*edx]
             lea edx, dword ptr [eax+4*edx]
             lea edx, dword ptr [edx+2*edx]
             lea esi, dword ptr [eax+2*edx+0x67A77]
             mov eax, 0x7325A665
             imul esi, ecx
             mul ecx
             imul esi, ecx
             sub esi, 0x00001A6E
             imul esi, ecx
             shr edx, 0x11
             mov eax, edx
             shl eax, 0x08
             add eax, edx
             lea eax, dword ptr [eax+2*eax]
             lea eax, dword ptr [esi+eax+0x11B1]
			
			 mov ecx, eax
             mov edx, ecx
             shr eax, 0x34
             shr edx, 0x28
             lea eax, dword ptr [eax+2*eax]
             lea edx, dword ptr [edx+4*edx]
             add eax, edx
             mov edx, ecx
             shr edx, 0x1C
             shr ecx, 0xE
             lea edi, dword ptr [edx+4*edx]
             lea edx, dword ptr [edx+2*edi]
             add eax, edx
             add eax, ecx
             and eax, 0xFFFFF//Õâ¸öÖµ¾ÍÊǺó°ë²¿·Öserial no:µÄµÍ4룬¸ß4λ¿ÉΪËæ»úÊý
             mov  second,eax

             mov ecx, first//(BCD)18181818
             mov eax, ecx
             xor eax, 0x94920945
             imul eax, ecx
             imul eax, ecx
             imul eax, ecx
             imul eax, ecx
             lea edx, dword ptr [8*eax+00000000]
             sub edx, eax
             lea edx, dword ptr [eax+4*edx]
             lea esi, dword ptr [eax+8*edx+0x0000561]
             mov eax, 0xC20F4DCF
             mul ecx
             imul esi, ecx
             mov eax, ecx
             sub eax, edx
             shr eax, 1
             add eax, edx
             shr eax, 0x11
             mov edx, eax
             shl edx, 04
             add edx, eax
             lea eax, dword ptr [edx+8*edx]
             lea eax, dword ptr [eax+8*eax]
             add esi, eax
             imul esi, ecx
             sub esi, 0x2B3821C
             imul esi, ecx
             shr ecx, 0x1E
             xor ecx, 0xFAFAFAFA
             lea eax, dword ptr [ecx+4*ecx]
             lea eax, dword ptr [eax+4*eax]
             lea eax, dword ptr [eax+4*eax]
             lea edx, dword ptr [eax+4*eax]
             shl edx, 04
             sub edx, ecx
             lea eax, dword ptr [esi+edx+0x0014E3]
             mov third,eax//ÕâÀï¾ÍÊÇRegistration:
             pop ebp
             pop edi
		     pop esi
			 pop edx
			 pop ecx
			 pop ebx
			 pop eax
  	
	}
 printf("output of registry key is:\n");
 printf("Serial No:%x",first);
 printf("-");
 printf("%d0",random);
 printf("%x\n",second);
 printf("Registration:%x\n",third);

  }

½â»Ø´ð 
------------- 
×÷Õß: Bug Error 
------------- 
·­Òë:;Âò²Ýñ·­Òë
Ä¿±ê:Might & Magic 7 1.0 US (Safedisc) 
------------- 
ʹÓù¤¾ß: 
- Soft-Ice 3.23 
- ProcDump 1.5 
- Frog-Sice (¶ã¹ý·Àµ÷ÊÔ±£»¤¶Ôsoft_ice¸ú×ÙµÄÆÆ»µ) 
- Sicetool ( soft-ice ²¹¶¡ºÍ¸Ä½øµÄÃüÁîÖ§³Ö) 
- HexWorkshop 
- ExeScope 
1)¹ØÓÚICD Îļþ 
--------------- 
-Ê×ÏÈÔËÐÐ ProcDump 
-µã»÷ PE Editor °´Å¥´ò¿ª"mm7.icd"Îļþ,¿ÉÒÔ¿´µ½ 
  (³ÌÐòµÄÖ´ÐеĵÚÒ»ÌõÖ¸ÁîµÄRVA) Entry Point => 000CF9AE 
  (×°ÈëµÄ»ùÖ·)                  Image Base  => 00400000 

-ÏÖÔÚ,Äã±ØÐë¼ÆËãÖ¸ÁîÖ¸ÕëEPI:Entry Point + Image Base => 004cf9ae 

-ÔÙµã»÷Sections°´Å¥¿ÉÒÔ¿´¼ûÈçÏÂ: 

        Virt. Offset    RAW Size    RAW Offset 

.text      00001000      000DA000      00001000 
.rdata    000DB000      00007000      000DB000 
.data      000E2000      00017000      000E2000 
.rsrc      00B99000      00010000      000F9000 

-Òª°ÑÕâЩ¶Îdump³öÀ´,Äã±ØÐëÖªµÀËüÃÇÔÚÄÚ´æÖпªÊ¼µÄµØ·½  
=>¶ÎÄÚ´æÖпªÊ¼µÄµØ·½ÕâÑù¼ÆËã:×°Èë»ùÖ·(Image Base)+Ïà¶ÔÆ«ÒÆ(Virtual Offset) 
.text  => 401000 
.rdata => 4db000 
.data  => 4e2000 
.rsrc  => f99000 

-ÔËÐÐ ExeScope, ͬʱ´ò¿ª"mm7.icd" 
-µã»÷°´Å¥Imports 
-Ñ¡Ôñ Kernel,¼ÆËã³öÓжàÉÙ¸ökernel.dll µÄapi±»³ÌÐòµ¼Èë:ÔÚÕâÀï,ÊÇ96¸ö,ÓÃ16½øÖƱíʾΪ:60h 
-½Ó×Å,Ñ¡ÔñUser,¼ÆËã³öÓжàÉÙ¸öapi±»³ÌÐòµ¼Èë:ÔÚÕâÀï,ÊÇ33,ÓÃ16½øÖƱíʾΪ:33h 
-Äã±ØÐëת»»10½øÖÆÊýΪ16½øÖÆ,ÓÉÓÚ soft_ice ²»Ï²»¶ÓÃ10½øÖƱíʾ:)) 


2)Dump ¹Ø¼üµÄ¶Î 
--------------------- 

-ÏÈÈÃÓÎÏ·ÔËÐÐ 
-µÈµ½ÆÁÄ»Çл»,°´ÏÂCTRL+D 
-½øÈësoft_ice,Èç¹ûÄãÔÚDPLAYER.dLLµÄ¿Õ¼ä,ÊäÈëBPX FREELIBRARY϶ϵã 
-°´F11»Øµ½Éϼ¶µ÷Óà 
-ÉÔµÈ,ÄãÓֻص½soft-ice 
-ÔÙÊäÈë d 4cf9ae ¿´¿´Õâ¸öicdÎļþÔÚÄÚ´æÖб»½âÃܳöÀ´ÁËûÓÐ.Èç¹ûûÓÐ,¾Í°´F5¼ü¼ÌÐøÖ´ÐÐ,²¢µÈ´ý:)) 
-Èç¹ûÕâ¸öicdÎļþ±»½âÃÜÁË,ÊäÈë bc * Çå³ýÒÔÇ°µÄ¶Ïµã 
-ºÃ,ÕâÑùµÄ»°ÏÖÔÚÄ㽫ÄÜdump³öËùÓеĶÎ,³ýÁË.rdataÍⶼÓà pagein ÃüÁî 
-ÔÚsoft_iceÖÐÊäÈë: 

pagein 401000 da000 c:\text.bin 
pagein 4e2000 17000 c:\data.bin 
pagein f99000 10000 c:\rsrc.bin 



3)ÓÐ¹Ø SafediscµÄµ÷Óà 
------------------------ 

-ÔÚsoft_iceÖÐÊäÈë bpx 4cf9ae ²¢°´ÏÂF5¼üÖ´ÐÐ 
-ÎÒÃǽ«µÃµ½É¶?? 


0177:004cf9ae push ebp 
0177:004cf9af mov ebp, esp 
0177:004cf9b1 push ff 
0177:004cf9b3 push 004de160 
0177:004cf9b8 push 004d311c 
0177:004cf9bd mov eax, fs: [00000000] 
0177:004cf9c3 push eax 
0177:004cf9c4 mov fs: [00000000], esp 
0177:004cf9cb sub esp, 58 
0177:004cf9ce push ebx 
0177:004cf9cf push esi 
0177:004cf9d0 push edi 
0177:004cf9d1 mov [ebp-18], esp 
0177:004cf9d4 call [004db164] => °´ F8¼ü½øÈëÕâ¸öµ÷ÓýøÈ¥¸ú×Ù 


- ½Ó×Å, Äã¿ÉÒÔ¿´¼ûÏÂÃæµÄÕâЩ: 

0177:012678e7 pushad 
0177:012678e8 push 0000004b 
0177:012678ed push 00000000 
0177:012678f2 call [01267908]  => ¹þ¹þ,ÕâÊÇÎÒÃǵÄc-dilla'sµ÷ÓÃ,×¢ÒâÕâ¸öµØ·½µÄ¶«¶«,Ä㽫ÔÚÏÂÃæÐèÒªÓÃËü:) 
0177:012678f8 add esp, 08 
0177:012678fb popad 
0177:012678fc jump [01267902] 


4)°Ñ.RDATA °áµ½ .DATA¶Î 
-------------------------- 
-ÓÉÓÚ .rdata¶ÎÊÇÖ»¶ÁµÄ,Äã±ØÐë°ÑÕâ¶Î´«´æµ½ÁíÍâÒ»¸ö¶ÎÖÐÓÃMºÍLÃüÁî 
=>M "(¶ÎµÄ³¤¶È)RAW Size of .rdata + Image Base(×°ÈëµÄ»ùÖ·)" L "(¶ÎµÄ³¤¶È)Raw Size of .rdata" "(Ïà¶ÔÆ«ÒÆ)
Virtual Offset of .data + Image Base(×°ÈëµÄ»ùÖ·)" 
-ÔÚsoft-IceÖÐ,°´ÉÏÃæµÄÓ÷¨ÊäÈë 

M 407000 L 7000 4f0000 

5) Ñ¡¶¨ .rdata ¶ÎµÄkernel API 
----------------------------- 
-ÔÚ soft_iceÖÐ,¼üÈë: 
R eip 4cf9ae 
. 
a eip 

-ÏÖÔÚ,дÈëÈõ÷Óù̶¨ÏÂÀ´: 
4CF9AE pushad 
4CF9AF push ebx 
4CF9B0 push 0      => 0±íʾkernelµ¼Èë means kernel import 
4CF9B2 call [01267908] =>Õâ¸öµØÖ·ÊÇÄãÔÚÉÏÃæ¸ú×ÙµÃÀ´µÄ 
4CF9B8 add esp, 8 
4CF9BB mov edx, 4F0000 =>Äã°Ñ.rdataÒƶ¯µ½µÄµØ·½ 
4CF9C0 cmp eax, [edx] 
4CF9C2 je 4cf9ce 
4CF9C4 inc edx 
4CF9C5 cmp edx, 4f7000 
4CF9CB jne 4cf9c0 
4CF9CD int 03 
4CF9CE mov [edx], ecx 
4CF9D0 popad 
4CF9D1 inc ebx 
4CF9D2 cmp ebx, 60 => 60h¸ökernel api µ÷ÓÃ 
4CF9D5 jne 4cf9ae 
4CF9D7 int 03 

6)Ñ¡¶¨ .rdata ¶ÎµÄ User API 
------------------------------- 
-ÔÚ soft_iceÖÐ,¼üÈë: 
R eip 4cf9ae 
. 
a eip 

-ÏÖÔÚ,дÈëÈõ÷Óù̶¨ÏÂÀ´: 

4CF9AE pushad 
4CF9AF push ebx 
4CF9B0 push 01      => 01 ±íʾuserµ¼Èë 
4CF9B2 call [01267908] => Õâ¸öµØÖ·ÊÇÄãÔÚÉÏÃæ¸ú×ÙµÃÀ´µÄ 
4CF9B8 add esp, 8 
4CF9BB mov edx, 4F0000 => Äã°Ñ.rdataÒƶ¯µ½µÄµØ·½ 
4CF9C0 cmp eax, [edx] 
4CF9C2 je 4cf9ce 
4CF9C4 inc edx 
4CF9C5 cmp edx, 4f7000 
4CF9CB jne 4cf9c0 
4CF9CD int 03 
4CF9CE mov [edx], ecx 
4CF9D0 popad 
4CF9D1 inc ebx 
4CF9D2 cmp ebx, 33 => 33h ¸öuser api µ÷ÓÃ 
4CF9D5 jne 4cf9ae 
4CF9D7 int 03 


-ÏÖÔÚÄ㽫Äܹ»dump³ö.rdata¶Î: 


pagein 4f0000 7000 c:\rdata.bin 


7)Öع¹ EXEÎļþ 
---------------------- 


-ÏÖÔÚ,ÄãÓÐËùÓеÄdump³öµÄ¶Î,Äã±ØÐëÖع¹Ò»¸öеÄ"mm7.exe"Îļþ 
-¸´ÖÆ"mm7.exe"µ½Ò»¸öÁÙʱĿ¼ÓÃdumpµÄÈ«²¿¶Î 
-°Ñ"mm7.icd"¸ÄΪ"mm7.exe"µÄÃû×Ö 
-ÔËÐÐHexworkshop, È¥´ò¿ª"mm7.exe" 
-´ò¿ª"text.bin" 
-¼¯ÖÐÔÚ"mm7.exe"È»ºó°´ALT + F5 
-¼üÈëtext¶ÎµÄÆ«ÒÆ:1000(¶¨Î»ÔÚ´úÂë¶ÎµÄ¿ªÊ¼) 
-½øÐб༭,²¢Ñ¡Ôñ"select block"²¢¼üÈë.text¶ÎµÄ³¤¶È(Raw Size):da000 
-¶¨Î»ÔÚ"text.bin"²¢×ªµÀ±à¼­²¢Ñ¡ÔñÈ«²¿ 
-°´ÏÂCTRL + C¼ü 
-¶¨Î»ÔÚ"mm7.exe"²¢°´ÏÂCTRL + V 
-ͬÑùµÄ·½·¨¶Ôrdata,dataºÍrsrc¶Î,°´ÉÏÃæµÄ²½ÖèÖظ´×ö:)) 
-×îºó±£´æеÄ"mm7.exe"Îļþ 



8)Öؽ¨ PE 
------------------ 
-ÔËÐÐProcdump²¢µã»÷ "Rebuild PE"°´Å¥ 
-ÕÒµ½Äã¸Õ²ÅÖع¹µÄ"mm7.exe"ÎļþµãOK°´Å¥ 
-OK,ÄãµÄExE±»ÍêÈ«¸ã¶¨ÁË,ÄãÆƽâÁËsafedisc:)) 

9)½áÊøÖÂл 
------------------ 
-¶ÔÒÔϵÄÖÂÒâ: 
?    KaB00M.........................úù[ LEADER/CRACKER/CODER      ]ùú    ? ?    Avenger........................úù
[ LEADER/CRACKER/CODER      ]ùú    ? ?                                                                        ? ?
    sEVanD02K......................úù[ CO-WEBMASTER              ]ùú    ? ?    SHi............................úù
[ WEBMASTER/CODER          ]ùú    ? ?    NADA...........................úù[ HEADCRACKER/CRACKER      ]ùú    ? ?  


  THE WEB........................úù[ HEADCRACKER/CODER        ]ùú    ? ?                                                                        
? ?    Black Racer....................úù[ CRACKER/CODER/GFXER      ]ùú    ? ?    Bulletproof....................úù
[ CRACKER                  ]ùú    ? ?    BugError.......................úù[ CRACKER                  ]ùú    ? ?   
 DaBrain........................úù[ CRACKER                  ]ùú    ? ?    fREKAnoiZ......................úù
[ CRACKER                  ]ùú    ? ?    gZM............................úù[ CRACKER                  ]ùú    
? ?    kOBoLd.........................úù[ CRACKER                  ]ùú    ? ?    JTK ?9........................úù
[ CRACKER                  ]ùú    ? ?    LAP............................úù[ CRACKER                  ]ùú    ? ?   
 LongFing.......................úù[ CODER                    ]ùú    ? ?    [-Ghost-]......................úù
[ GFXER                    ]ùú    ? ?    NEMESIS........................úù[ CRACKER                  ]ùú    ? ?
    TheRage........................úù[ CRACKER                  ]ùú    ? ?    Thezor.........................úù
[ GFXER/GFXER              ]ùú    ? ?    WeaxWeasel.....................úù[ CRACKER                  ]ùú    
-Èç¹ûÓÐÎÊÌâ,¿ÉÒÔͨ¹ýe-mail: bugerror@hotmail.com ¸úÎÒÁªÏµ 





Bug Error À´×Ô TCA 
ºìÉ«¾¯±¨2(red Alert 2)·±Ìå°æÕý°æÍѿǽâÃÜ˵Ã÷(ÆÆSafeDisc2±£»¤) 
ÆƽâÕß:Âò²Ýñ(wancun@sina.com)
1¸ÅÊö £º 
      ºìÉ«¾¯±¨2ÊÇWestWoodµÄаæÓÎÏ·£¬ËüÔÚÖÚ¶àÓÎÏ·ÖÐÂÊÏȲÉÓÃÁËc-dilla¹«Ë¾µÄ¹âÅ̱£»¤¼¼Êõsafedic 
2À´¶ÔÆäÆðÕý°æ±£»¤¡£ÒªÈÃÓÎÏ·ÔÚÐéÄâ¹âÇýµÄ»·¾³ÏÂÄܹ»ÔËÐУ¬Ê×ÏȱØÐëÄ£Äâ»òÕßÌø¹ý¶Ô¹âÅ̱£»¤ÌØÕ÷ÇøÓò 
µÄµ÷Ó᣸ù¾Ýʵ¼ÊµÄÇé¿ö£¬ÔÚred alert 2Öв¢Ã»ÓаÑÓÎÏ·µÄÊý¾ÝдÈë±£»¤ÇøÓò¡£ÕâÑù¾ÍΪÎÒÃÇͨ¹ýÍÑÈ¥ÓÎ 
Ï·µÄ¹âÅÌʶ±ð²¿·ÖµÄÅбð³ÌÐò,Öع¹Ò»¸ö²»¾ß±¸Åжϱ£»¤µÄ³ÌÐòÌṩÁË¿ÉÄÜ¡£ÒÔϵÄ×ö·¨¾ÍÊÇÔÚÒÔÍѿǵĻù 
´¡ÉÏʵÏÖÆäÔÚÐéÄâ¹âÇýÏÂÖ´ÐÐÓÎÏ·µÄÒ»ÖÖʵÏÖ·½·¨µÄ²Ù×÷˵Ã÷¡£ 

--ʹÓù¤¾ß 
  - TRW V1.23 (safdisc2µÄ±£»¤²¿·Ö¶ÔsofticeµÄ·À»¤ºÜÖܵ½£¬¾ÍÊǼӲ¹¶¡Ò²¸ãËÀ¡£ºÃÔÚ»¹ÓÐTRW) 
  - ÌìÒâII0.46²âÊÔ°æ(Ò²ÊÇÒ»¸öºÜеĶ¯Ì¬·´±àÒ빤¾ß£¬¾ÍÊÇÏÖÔÚ²»Ì«Îȶ¨¡£Ö§³ÖµÄÃüÁîÒ²²»Ì«È«) 
  - ProcDump 1.6.2  FINAL  VERSION (Íѿǹ¤¾ß£¬ÓÃËü¿ÉÒÔ·½±ãµÄÖØÄÚ´æÖÐdump³öÓ³Ïñ) 
  - W32Dasm Version 8.93 (±È½ÏÖ±¹ÛµÄ¾²Ì¬·´»ã±à¹¤¾ß) 
  - UltrEdit32 (»òÕßÆäËûµÄ2½øÖƱ༭Æ÷ÓÃÀ´Ð޸ijÌÐò) 
  - Vitual Driver 2000 v 6.0 ÐéÄâ¹âÇýÈí¼þ(farstone)    
-----¾ßÌå²Ù×÷ 
---ÍÑ¿Ç 
  Ê×ÏÈÓÃTRW 1.23 ×°Èë¸ÃÈí¼þµÄ¿ÉÖ´Ðеµra2.exe.³ÌÐòÔØÈëºó ,Ê×ÏÈÍ£ÁôÔÚ¡£stext371Õâ¸ösectionÖдúÂë 
  ²¿·ÖÈçÏ£º 
016F:0041C1FD  55                  PUSH    EBP//×°ÈëÍ£ÁôÔÚÕâÀï 
016F:0041C1FE  8BEC                MOV    EBP,ESP 
016F:0041C200  60                  PUSHAD 
016F:0041C201  B87BC24100          MOV    EAX,0041C27B 
016F:0041C206  2DFDC14100          SUB    EAX,0041C1FD 
016F:0041C20B  03057CC24100        ADD    EAX,[0041C27C] 
016F:0041C211  C705FDC14100E9000000 MOV    DWORD PTR [0041C1FD],E9 
016F:0041C21B  A3FEC14100          MOV    DOWRD PTR [0041C1FE],EAX 
016F:0041C220  68C9C04100          PUSH    0041C0C9 
016F:0041C225  68BBC04100          PUSH    0041C0BB 
016F:0041C22A  6809C04100          PUSH    0041C009 
016F:0041C22F  689BC04100          PUSH    0041C09B 
016F:0041C234  A021C04100          MOV    AL,[0041C021] 
016F:0041C239  3C01                CMP    AL,01 
016F:0041C23B  7407                JE      0041C244 
016F:0041C23D  B800000000          MOV    EAX,00 
016F:0041C242  EB03                JMP    0041C247 
016F:0041C244  8B4508              MOV    EAX,[EBP+08] 
016F:0041C247  50                  PUSH    EAX 
016F:0041C248  E833000000          CALL    0041C280//ÕâÀï¾ÍÊÇsafedisc2½âÃÜ´úÂëµÄÈë¿Ú£¬°´F10Ìø¹ý 
016F:0041C24D  83C414              ADD    ESP,14 
016F:0041C250  83F800              CMP    EAX,00 
016F:0041C253  741C                JE      0041C271 
µ±³ÌÐò¹ýÁË41c248Õâ¸öµ÷Óúó¾Í»áµ¯³öÒ»¸ö¿ªÊ¼Í¼Ïó£¬ÔÚÕâ¸öcall 41c280ÖоÍÊÇsafdisc2µÄ¹Ø¼ü²¿·Ö£¬µ«ÏÖ 
ÔÚ²»ÓÃÈ¥Ñо¿Ëü¡£µ±°´F10×ß¹ýÕâÀïʱ£¬³ÌÐòÔÙµ¥²½Ö´Ðм¸²½»áÌø³ö.stext371Õâ¸ösection,À´µ½ÈçϵIJ¿·Ö 
Õâʱ¿´¿´sectionµÄÇé¿ö£¬ÒѾ­ÊÇÔÚ.textµÄ²¿·ÖÁË¡£Õâ¾ÍÊÇ˵³ÌÐòÒѾ­µ½ÁËÎÞ¿ÇʱºòµÄ²¿·Ö¡£¸ÃÊÇÓÎÏ·³ÌÐò 
µÄÕæÃæÄ¿ÁË¡£ 
016F:0040787F  55                  PUSH    EBP//Í£ÔÚÕâÀï 
016F:00407880  8BEC                MOV    EBP,ESP 
016F:00407882  6AFF                PUSH    FF 
016F:00407884  6878234100          PUSH    00412378 
016F:00407889  68E4C54000          PUSH    0040C5E4 
016F:0040788E  64A100000000        MOV    EAX,BYTE PTR FS:[00] 
016F:00407894  50                  PUSH    EAX 
016F:00407895  64892500000000      MOV    FS:[00],ESP 
016F:0040789C  83EC58              SUB    ESP,58 
016F:0040789F  53                  PUSH    EBX 
016F:004078A0  56                  PUSH    ESI 
016F:004078A1  57                  PUSH    EDI 
016F:004078A2  8965E8              MOV    [EBP+E8],ESP 
016F:004078A5  FF15DC104100        CALL    [004110DC] 
016F:004078AB  33D2                XOR    EDX,EDX 
016F:004078AD  8AD4                MOV    DL,AH 
016F:004078AF  891518724100        MOV    [00417218],EDX 
016F:004078B5  8BC8                MOV    ECX,EAX 
016F:004078B7  81E1FF000000        ADN    ECX,FF 
016F:004078BD  890D14724100        MOV    [00417214],ECX 
016F:004078C3  C1E108              SHL    ECX,08 
016F:004078C6  03CA                ADD    ECX,EDX 
016F:004078C8  890D10724100        MOV    [00417210],ECX 
µ±³ÌÐòÔÚ40787f´¦Í£ÏÂʱÔÚTWR1.22ÖÐÏÂÃüÁîsuspend£¬¹ÒÆð³ÌÐò£¬»Øµ½WINDOWS½çÃ棬ÏÖÔÚÎÒÃÇ 
ÒªÍѵô³ÌÐòÉÏÃæµÄÍâ¿ÇÁË¡£ÔÚwindowsϵ÷³öProcDump 1.6.2  FINAL  VERSION°ÑÄÚ´æÖеÄÓ°Ïódump 
³öÀ´£¬´ò¿ªprocdumpºóÔÙtask¶Ô»°¿òÖпÉÒÔÕÒµ½Ò»¸öra2.exeµÄÓ°Ïó£¬ÓÃÊó±êÑ¡ÖÐËü£¬ÔÙµãÊó±êÓÒ¼ü 
£¬ÔÚµ¯³ö¿òÖÐÑ¡Ôñdump(full)ÏȻºóÑ¡Ò»¸öÄãÖ¸¶¨µÄÎļþÃû±£´æ£¬ÎÒÓÃabd.exe±£´æ£¬ÕâÑù¾Í°Ñ³Ì 
ÐòµÄÖ÷Ì岿·Ö¸ø·ÖÀë³öÀ´ÁË,ÕâϸÃÊÇûsafedic2µ÷ÓÃÁË¡£È»ºóÖ´ÐÐһϸõµÅöÅöÔËÆø£¬»á²»»á¾ÍOKÁË¡£ 
¿Éϧ³ÌÐò¿ÉûÕâÑù¼òµ¥£¬ÂíÉϸø±¨·Ç·¨´íÎ󡣡£¾ÍÔÚ4078a5´¦µÄ call[004110dc]·Ç·¨´íÎó£¬Õâ¸ö¿ÉÊÇ 
´óÂé·³´¦¡£ÒÔϵĴ¦ÀíÈ«¶¼ÊÇΪÁ˽â¾öÕâ¸öÎÊÌâ¶ø²ÉÈ¡µÄ¡£ 


-----IMPORT_TABLEµ¼Èë±íµÄÖع¹  
------µÚÒ»ÖÖÇé¿ö£¨ÄãÒª×ö CALL [********]= ת»»=> Call Kernel32.dll(»òuser32.dll)!¾ßÌ庯Êý£© 
  
  Ö»Óлص½Ô­À´µÄ³ÌÐòÖØе÷ÊÔµ½4078a5,È»ºó¸ú½øÈ¥¿´¿´£¬ÂíÉϾÍÊǵ÷ÓÃÒ»¸öÍâ½ÓµÄÎļþÁË£¬¿Õ¼äÒѾ­µ½ÁËÁí 
Ò»¸ö³ÌÐòÓ¦¸ÃÊÇÒ»¸ödllÎļþ¡£¿´¿´Ëü¶¼×öÁËЩɶ£¬ÏÂÄÚ´æ¶Ïµãbpm esp RW Ö´Ðм¸Ïºó·¢ÏÖ³ÌÐò×îºóÔÚ 
kernel32.dllµÄ¿Õ¼äÖÐͣϣ¬ÏëÏë¸ÃÊÇÓÐAPIµ÷ÓÃÁË¡£¼ÌÐø·¢ÏÖÊǶԺ¯ÊýKernel32.dll!GetVersion()µÄµ÷Ó㬠
ÕâÖ»ÓÐÒ»¸ö¿ÉÄܼӿdzÌÐò°ÑÔ­³ÌÐòµÄµ¼Èë±í(IMPORT_TABLE)ÖеÄKernel32º¯ÊýÆÆ»µÁË¡£Ëüͨ¹ýÍâ½ÓµÄdllÓú¯ 
ÊýGetProcAddressÀ´¶Ôÿ¸öÔ­À´µÄº¯Êýµ¼Èë½øÐÐʵÏÖ£¬¶øÇҰѺ¯ÊýµÄÖ´ÐÐÒ²ÔÚÆäÖдúÀÍÁË¡£ÕâÊǵäÐ͵ÄÐÞ¸Ä»Ö 
¸´µ¼Èë±íµÄ²Ù×÷¡£ 
  ÄÇÎÒ¾ÍÏÈÔÚ³ÌÐòÖÐÕÒÕÒµ¼Èë±íµÄλÖðѣ¬ÓÃprocdump´ò¿ª£¬µãÖÐPE Editor°´Å¥·¢ÏÖIMPORT_TABLEµÄRVAÊÇ 
1f000 size 1b8,ÕÒµ½1f000µÄλÖ÷¢ÏÖµ¼Èë±íµÄλÖÃÈ«²»¶Ô£¡¿´À´³ÌÐòÊÇ°ÑËü¸øÒþ²ØÁË¡£¶øÇÒÓÃW32Dasm·´»ã 
±àÒ²ÕÒ²»µ½¡£Ö»ÓÐÊÖ¹¤ÕÒÕÒ£¬¸ù¾ÝPEÎļþµÄ½á¹¹£¬ÎÒÏÈÔÚabd.exeÖвéÕÒ×Ö·û´®"kernel32.dll",ÔÚ131a4Õâ¸ö 
RVAÕÒµ½Ò»¸ö£¬È»ºóÔÙÔÚ³ÌÐòÖвéÕÒ¶þ½øÖÆa4 31 01Ò²¾ÍÊÇ¿´IMPORT_TABLEµÄIMAGE_IMPORT_DESCRIPTOR½á¹¹Àï 
ÓÐKernel32.dllÕâ¸öº¯ÊýÂ𣬻¹ºÃ£¬ÔÚ12ce4´¦ÕÒµ½¡£ ÔÚÎÒ¿ÉÒÔÏȼٶ¨IMPROT_TABLEµÄRVAΪ12cd8£¨¸ù¾Ý½á¹¹ 
IMAGE_IMPORT_DESCRIPTORÕÒµ½ÆäÆ«ÒÆÊ×Ö·£©,ÏȸĸĿ´¡£ 
  ÓÃprocdump´ò¿ªabd.exe£¬µãÖÐPE Editor°´Å¥,°ÑIMPROT_TABLEµÄRVA¸ÄΪ12cd8¡£È»ºóÔÙÓÃW32Dasm ·´»ã±à 
¿´¼ûFUCTION °´Å¥µÄIMPORTÒѾ­³öÀ´ÁË£¬¿ÉÒÔ¿´¼ûkernel32.dll,user32.dll,GDI32.dll,ADVAPI32.dll, 
Shell32.dll,COMCTL32.dllÒѾ­³öÀ´ÁË£¬µ«¿ÉÒÔ¿´¼û£¬kernel32.dll,ºÍuser32.dllµÄº¯ÊýÈ«Êǿհס£ÕâЩº¯ 
Êý¿´À´ÒªÎÒÈ¥¸øÕÒ³öÀ´ÁË¡£ÆäËûµÄdllµ÷Óö¼Õý³£ÁË¡£ 
  ÏÂÃæ¾ÍÊÇÕÒµ½³ÌÐòµÄ¼ÓÃܲ¿·Ö½øÐзÖÎö¡£°Ñ³ÌÐò×ß¹ýµÄAPI½øÐÐÖع¹¡£»¹ÊÇÕë¶ÔµÚÒ»¸ö³ö´íµÄµØ·½£¬ÔÚ¸ú½ø 
µÄdll¿Õ¼ä¿ÉÒÔ¿´¼ûÒÔÏ´úÂë 

016F:004078A5  FF15DC104100        CALL    [004110DC] ÇÐÈëÏÂÃæµÄ´úÂëÖÐ 
016F:004078AB  33D2                XOR    EDX,EDX 
/*********************************************************************************************/ 
×¢£º³ÌÐòÔÚÏÂÃæÓÃÁ˼ä½ÓRet Ö¸ÁîµÄ·½Ê½´úÌæcallµ÷Ó÷µ»ØµÄ·½Ê½£¬°Ñµ÷ÓÃÏÂÒ»ÌõÖ¸ÁîµÄIP£¨004078AB)¼° 
    ±êÖ¾ºÍËùÓеļĴæÆ÷±£´æÔÚ¶ÑÕ»µ¥ÔªÖС£È»ºóÔÙÓøıä¶ÑÕ»µÄ·½·¨ÇлØ4078AB,¾ßÌåʵÏÖ¼ûÏÂÃæ´úÂë 
    010c6CD7  PUSH DWORD BFEA13B4 
    010c6CDC  PUSHF//±£´æ±êÖ¾ 
    010c6CdD  PUSHA//±£´æËùÓеļĴæÆ÷ 
    010c6CDE  PUSH ESP        
    010c6CdF  PUSH DOWRD 10C6D167 
    010c6CE4  CALL 100195F0  //½øÈë~df394b.tmp£¬ÆäʵÊǸödllÎļþ£¬F8¸ú½ø¿É·¢ÏÖ 
    010c6CE9  ADD ESP BYTE +8//²»»áµ½ÕâÌõÖ¸ÁîµÄ£¬ÔÙÉÏÒ»ÌõÖ¸ÁîÓÃF10µÄ»°¾Í¹ýÁË£¡£¡£¡£¡game begin 
    010c6CEC  PUSH  BYTE 00 
    010c6CEE  POP EAX 
    010c6CEF  POPA 
    010c6CF0  POPF 
    010c6CF1  RET        

  ×ß×ß....µ½ÏÂÃæ........ÕÒÁ˺þà ÔÚ~df394b.tmpÖÐÏÂÃæµÄÖ¸ÁîÖÐÓл¨Ö¸Á¾²Ì¬»ã±à²»¿É¿´µÄµ½µÄ¡£ÕâÀï¿É 
ÊǹؼüÁË£¬Ã¿´Îµ¼Èë±íÖع¹µÄ±Ø¾­Ö®Â·¡£ÔÚÕâÀï϶ϿÉÒÔ¿´¼ûÿ¸öº¯ÊýµÄµ÷Óùý³Ì¼°·µ»ØÖ÷³ÌÐòµÄ·½·¨¡£ 

    0100183c8  SETS [EBP-8] 
    0100183cc  MOV EAX,[EBP-8] 
    0100183cf  AND EAX,0x000000FF 
    0100183d4  TEST EAX,EAX 
    0100183d6  JNZ  0100183e5 //ÕâÀïͨ³£ÊÇÒªÌøµÄ 
    0100183d8  MOV ECX,[0100500E8] 
    0100183df  CALL  Kernel32.dll!SetEvent 
    0100183e5  JMP  SHORT  0100183ee//ÔÙ1Ìø 
    0100183e7  MOV EBX,EBX 
    0100183e9  JO  0100183F1 
    0100183eb  NOP 
    0100183ec  JNO  SHORT 0100183f1//ÔÙNÌø£¬»¨Ö¸ÁîÒ»Ö±¾ÍÔÚÌø£¬ÕâÊÇ×îºóÒ»Ìø¡£¡£ 
    0100183ee  JMP 0100183e7//ÔÙ2Ìø 
    ...............................»¨Ö¸Áî 
    0100183f1  MOV ESP,[EBP+0c]//Ìøµ½ÕâÀïË®Âäʯ³ö£¬ÕâÀïEBP+0cÖеľÍÊÇIP£¨004078AB)ÄÇÀïѹÈë 
                                //µÄ»·¾³Êý¾Ý 
    0100183f4  POPA//Ð޸ıê־Ϊ4078a5µÄµÄ״̬ 
    0100183f5  POPF//Ð޸ļĴæÆ÷4078a5ʱµÄ״̬ 
    0100183f6  RET //ÇÐÈëKernel32.dllÖеĶÔÓ¦º¯ÊýÖУ¬ÔÚÕâÌõÖ¸ÁîÏÂÒ»Ìõʱ£¬¶ÑÕ»ÒѾ­Ö¸ÏòIP 4078AB 
                    //µ±³ÌÐòÖØKernel32Ä£¿éµÄ¶ÔÓ¦º¯Êý·µ»Øʱ£¬¾Í·µ»Øµ½4078AB»Øµ½Ö÷³ÌÐòÖ´ÐС£ 
/*********************************************************************************************/ 
˵ÁË°ëÌ죬½á¹ûÆäʵÕâÀï¾ÍÊÇÒ»¸öAPIµ÷Óã¬ÍêÈ«¿ÉÒÔͨ¹ý°Ñº¯ÊýÔÚ004078A5  CALL    [004110DC]´¦µÄÄÚÈÝ 
¸ÄΪ¾ßÌåµÄAPI¾Í¿ÉÒÔÁË£¬ÕâÐèÒª¶ÔPEÎļþµÄIMPORT_TABLE µÄ½á¹¹Á˽⡣Äã¿ÉÒÔ·¢ÏÖÆäʵÆäËûµÄcallµ÷ÓõÄÇø 
Óò¸úÕâ¸öÒ»Ñù£¬¶¼ÊÇÔÚIMAGE_IMPORT_DESCRIPTOR½á¹¹µÄ Kernel32.dll»òuser32.dllµÄFirstThunkÖ¸ÏóµÄÇøÓò 
Äã¿ÉÒÔ·¢ÏÖÏÖÔÚÕâÀïµÄÈ«ÊÇͨ¹ýÉÏÃæµÄÍâ½Óµ÷ÓÃʵÏֵģ¬ÎÒÃÇÒª¸ÄËüÆäÖеÄÄÚÈÝΪÄÚ²¿Ö±½Óµ÷Óã¬Õâ¾ÍÒªÓÃÊÖ 
¹¤ÁË£¬ºÜÂé·³¡£¡£Ê×ÏÈÔÚ³ÌÐòµÄ.rdata sectionµÄÄ©¶ËÑ¡ÔñÈ«ÊÇ00µÄÇøÓò°Ñ¸Ãº¯ÊýµÄhintºÍÃû×Ö×Ö·û´®Ð´È룬 
¿ÉÄÜÄ㻹ÐèÒªÊÖ¹¤ÔÚprocdumpÐÞ¸Ä.rdata sectionµÄVsize ºÍPsizeΪÄÜ·ÅÏÂÄãµÄËùÓк¯ÊýhintºÍÃû×Ö´®µÄ´ó 
СÎÒµÄÕâ¸öº¯Êýµ¼Èë±íµÄ¹¹Ôì·½·¨ÈçÏ 
µÚÒ»¸ö¶ÏµãÔÚ4078a5ÖУ¬ÆäÕæÕýµÄCALL dword ptr [4110dc] ,110dcµØÖ·µÄÖ¸Õë¸ÄΪ1394d,ÔÚ1394dÖÐÓеÚÒ» 
¸öº¯ÊýGetVersionµÄhint¼°±êʾ×Ö·û£¨ÕâÀïÊÇ×Ô¼º¼ÓµÄÓ´£© 
  RVA 110dc------value------>1394d =>  RVA 1394d----------value------->0800GetVersion 
                                                                          ^    ^ 
                                                                      hint Characteris 
                                                                      
ÕâÑù¾Í¹¹ÔìºÃÁ˵ÚÒ»¸öº¯ÊýKernel32.dll!GetVersion() 
ºóÃæµÄÕâÖÖµ÷ÓÃÈç·¨ÅÝÖÆ£¬¿ÉÄÜÒªÖع¹30¼¸¸öÕâÑùµÄº¯Êý¡£µ«¿ÉÄÜ»¹ÊÇÓйæÂɵģ¬ÒªÊÇÄÜÕÒµ½¹æÂÉ»òÍêÕûµÄ 
µ¼Èë±í£¬¾Í²»ÓÃÕâÑùÐÁ¿àÁË¡£ 




------µÚ¶þÖÓÇé¿ö£¨ÄãÒª×öJMP.stxt774µÄÈë¿ÚµØÖ·==ת»»=>Call Call Kernel32.dll(»òuser32.dll)!¾ßÌ庯Êý) 
    µÚ¶þÖÖÇé¿öͨ¹ýÔ¶ÌøÖ¸ÁîÌøµ½.stxt774µÄÏàÓ¦Èë¿ÚÖС£ 
µÚÒ»Ìõ»¨Ö¸ÁîÇÐÈëÊǺ¯ÊýGetVersionExA,λÖÃÔÚ 
409450  jmp 41b12a£¨Ìøµ½¡£stxt¶Î£©  £»ÕâÀïʵ¼ÊÉÏÊÇ  call Kernel32.dll!GetVersionExA£¬Ô­³ÌÐòµÄ¼Ó 
                            £»ÃÜ´¦Àí¿ÉÒÔ¼ûºó¼Ìcode³ÌÐòÏÂÃæµÄÊÇ»¨Ö¸Á¾²Ì¬·´»ã±à»á¿´²»¼ûÕæÕý´úÂë 

ËüÔÚ.stxt774 sectionÖеĴúÂëÈçÏ 

* Referenced by a (U)nconditional or (C)onditional Jump at Address: 
|:00409450(U) 
| 
:0041B12A 53                      push ebx 
:0041B12B E800000000              call 0041B130 //Õâ¸öcallµÄÄ¿µÄÖ»ÊÇ°ÑIPѹջ±£´æ 

* Referenced by a CALL at Address: 
|:0041B12B  
| 
:0041B130 870424                  xchg dword ptr [esp], eax// 
:0041B133 9C                      pushfd  //±êÖ¾±£´æ 
:0041B134 05D0FEFFFF              add eax, FFFFFED0 
:0041B139 8B18                    mov ebx, dword ptr [eax] 
:0041B13B 6BDB0A                  imul ebx, 0000000A //¼ÆËãÇÐÈëdllµÄλÖà 
:0041B13E 035804                  add ebx, dword ptr [eax+04] 
:0041B141 9D                      popfd //»Ö¸´×´Ì¬ 
:0041B142 58                      pop eax 
:0041B143 871C24                  xchg dword ptr [esp], ebx//ÇÐÈë~df394b.tmpµÄλÖà 
:0041B146 C3                      ret//ÇÐÈë 

  
  
  È»ºó¿ÉÒÔ¿´¼ûÏÂÃæµÄÀàËÆ´úÂëÖÐ 

    010c6CD7  PUSH ***********//409450µÄÏÂÒ»ÌõÖ¸Á¿ÉÊÇ»¨Ö¸ÁîÓ´£¬ÕâÀï´¦ÀíºÜ¶¾µÄ£¬²»¿´ÕâÀïµÄ 
                                //»°ÄãÊDz»ÄÜ¿´¼û409450µÄÕæÕýµÄÏÂÌõÖ¸ÁîµÄÇé¿öµÄ¡£ 
    010c6CDC  PUSHF//±£´æ±êÖ¾ 
    010c6CdD  PUSHA//±£´æËùÓеļĴæÆ÷ 
    010c6CDE  PUSH ESP        
    010c6CdF  PUSH DOWRD 10C6D167 
    010c6CE4  CALL 100195F0  //½øÈë~df394b.tmp£¬ÆäʵÊǸödllÎļþ£¬F8¸ú½ø¿É·¢ÏÖ 
    010c6CE9  ADD ESP BYTE +8//²»»áµ½ÕâÌõÖ¸ÁîµÄ£¬ÔÙÉÏÒ»ÌõÖ¸ÁîÓÃF10µÄ»°¾Í¹ýÁË£¡£¡£¡£¡game begin 
    010c6CEC  PUSH  BYTE 00 
    010c6CEE  POP EAX 
    010c6CEF  POPA 
    010c6CF0  POPF 
    010c6CF1  RET 

ÕâÖÖÇé¿öµÄÐ޸ķ½·¨£¬ÔÚ³ÌÐòµÄÏà¶ÔÆ«ÒƵØÖ·13bd9ÖмÓÈë 3300GetVersionExA 
                                                    ^    ^ 
                                                    hint Characteris 
È»ºóÔÚIMPORT_TABLEÇøÓòµÄ¿ÕÓà¿Õ¼äÏà¶ÔÆ«ÒƵØÖ·11184ÖÐдÈëHintºÍCharacterisµÄµØÖ·Ê×Ö·13bd9¼´ 
Address 411184------value------>13bd9 =>  Address 13bd9----------value------->3300GetVersionExA 
                                                                                ^    ^ 
                                                                                hint Characteris 
È»ºóÔÙ¶¯Ì¬Ö´ÐÐÔ­³ÌÐò϶ϵãbpx 409450,ÓÃaÖ¸Á̬ÐÞ¸ÄÕâÀïµÄ»ã±à´úÂë 
a 
*****:409450  call near [411184] 
*****:409456  ***********        ;ÕâÑùÔ­À´µÄÖ¸Áî¾Í»¹Ô­ÁË£¬¿ÉÒÔ¿´¼ûÕæÕýµÄÖ¸Áî 
¼Ç¼Ï³ÌÐòÔڸô¦µÄ16½øÖÁÊý¾ÝΪ FF1584114100,È»ºóÓñ༭Æ÷ÔÚ³ÌÐòÖеĸÃλÖÃÐÞ¸ÄΪÕ⼸¸öÊý¾Ý£¬Íê³É 
¶ÔGetVersionExAµÄÖع¹ ¡£¡£¡£¡£  

-------×îºó˵Ã÷ 
  ÓÃÉÏÃæµÄ·½·¨Ò»¸öÒ»¸ö¸ú×پͿÉÒԵõ½Ò»¸öÍêÈ«Î޿ǵĿÉÖ´ÐÐÎļþ£¬ ×îºóÔÚÒ»Çи㶨ºóÖ´ÐеÄʱºòÒ»¶¨Òª°Ñ 
Ô­³ÌÐòµÄÖ´ÐÐĿ¼ÀïµÄra2.lcf¸´ÖÆΪabd.lcfÕâÑù²ÅÐС£Ò²¿ÉÒÔÈóÌÐòÖ´ÐÐÁË£¬µ«¹ý³ÌÕæµÄºÃÂé·³ÒªÊÇÄܹ»Éú³É 
ÕâЩ¶«Î÷¾ÍºÃÁË¡£ÔÚÖÆ×÷ÐéÄâ¹âµúʱÓÃfarstone µÄÖÆ×÷ÐéÄâ¹âµúÖÆ×÷vcdµµÑ¡¶¨ÖÇ»ÛËã·¨¶ÁÈ¡£¬²»ÒªÓÃÇî¶Á·¨£¬ 
·ñÔò¹ý²»ÁËsafedisc2µÄ²»¿É¶Á±£»¤£¬ÖÆ×÷Íê±Ïºó×°Èë¾Í¿ÉÒÔ²»ÓùâÅ̵ÚÍçred  alert 2ÓÎÏ·ÁË