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

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

    
   {~._.~} 
    ( Y )  
   ()~*~() 
   (_)-(_) 
½ñÌìµÄÔÓÖ¾¿ÉÊÇËý´´°ìÒÔÀ´·¢ÐÐ×îÍíµÄÒ»´ÎÁË£¬ÒòΪÎÒÏÖÔڵĵÄÈ·È·ÊǺÜæ°¡£¬²¢ÇÒÎÒ¶¼Ï뽫Õâ¸öÔÓ־ͣ°ìÁË£¬±Ï¾¹ÔÓÖ¾µÄÖÆ×÷ºÍ·¢Ðж¼ÊÇÓÉÎÒÒ»¸öÈËÀ´Íê³É£¬Ïë´Ó´ó¼ÒÊÖÖеõ½Ò»Ð©½âÃÜ×ÊÁÏÊDZȵÇÌ컹ҪÄÑ°¡£¬ËùÒÔÎÒÏÖÔÚÒ²ÊǼá³Ö×Ô¼ºÀ´ÖÆ×÷£¬²»ÖªµÀÒÔºó»á³ÉΪʲôÑù×ÓÁË¡£µ«ÊÇÎÒ»áŬÁ¦½«Ëý°ìºÃµÄ¡£
 
¡¾Ä¿ ÿÿ ¼¡¿
ÿÿÿÿ&ÆƽâÐĵÃ
J¡­¡­chinaIRC V1.0 ³ÌʽÁÔÈË
K¡­¡­WindowsÓÅ»¯´óʦv2.9+µÄ×¢²áÂë¼ÓÃÜËã·¨ dr0
L¡­¡­Æ½°²È«Ï¢ÍòÄêÀú£¨1.0.4£©µÄ×¢²áÂëËã·¨  
ÿÿÿÿ4ÍøÕ¾½éÉÜ
ÿÿÿÿ,ÔÓÖ¾ÐÅÏä
 
&¡¾ÆƽâÐĵá¿
                chinaIRC V1.0
                      ³ÌʽÁÔÈË
¼ò½é£ºÖÐÎĵÄIRCÁÄÌìÈí¼þ
×·×Ù£ºÕâ¸ö³ÌÐòÔÚ°ïÖúÖÐÌáµ½ÁËÓÐЧÆÚÔÚ1999.9.15-2000.9.15£¬ÎÒ×òÌì´ÓÍøÉÏÏÂÔغó£¬ÔË
Ðз¢ÏÖËüµÄÕâ¸öÓÐЧÆÚµÄÎÊÌ⣬ºÃÁË£¬½ñÌì¾Í×·×ÙÕâ¸öÈí¼þµÄÓÐЧÆÚµÄÎÊÌ⣬½«Ëü½â¾öµô¡£

  ͨ³£×·×ÙÕâÑùµÄ³ÌÐòÒ²±È½Ï¼òµ¥µÄ£¬ËüÒ»¶¨ÓÐÒ»¸ö±È½Ïʱ¼äµÄµØ·½£¬Èç¹ûÔÚÕâ¸ö·¶Î§¾ÍÔË
ÐÐÈí¼þ£¬·ñÔò¾Í²»ÔËÐÐËü¡£ÒÔÇ°µÄ¾­ÑéÊÇÕÒµ½³öÏֵĵط½¾Í¿ÉÒÔÁË¡£½ñÌ쿪ʼʱÎÒÒ²ÊÇ°´ÕÕ
Õâ¸öÏë·¨À´ÆƽâµÄ¡£¿ÉÊÇȴûÓÐ×·×Ù³öÀ´¹Ø¼üµÄ±È½ÏµØ·½£¬ÄÇô»¹µÃÁíѰ˼·¡£
  ÎÒ½«ÏµÍ³µÄʱ¼äµ÷µ½1999ºó£¬³ÌÐò¿ÉÒÔÔËÐÐÁË¡£ÄÇôÎÒÃǾʹÓϵͳµÄʱ¼äÀ´ÈëÊÖ°É¡£ÎÒÏÈ
ʹÓÃW32DASMÀ´·´»ã±àÕâ¸ö³ÌÐò¡£¿ÉÒԵõ½ÏÂÃæËüËùµ÷Óõĺ¯Êý¡£
   Import Module 007: kernel32.dll
 Addr:0007AF4C hint(0000) Name: GetLocalTime
  ³ÌÐòʹÓÃÁËÕâ¸öº¯ÊýÀ´µ÷ÓÃϵͳµÄʱ¼ä£¬ÄÇôÎÒ¾ÍÏÈÉè¶ÏÔÚÕâ¸öº¯Êý£¬ÔÙÔËÐгÌÐò±»À¹ÏÂ
À´ÁË£¬³É¹¦Ò»°ëÁË¡£
:00407EE8 83C4E8                  add esp, FFFFFFE8
:00407EEB 8D442408                lea eax, dword ptr [esp+08]
:00407EEF 50                      push eax

* Reference To: kernel32.GetLocalTime, Ord:0000h
                                  |
:00407EF0 E8B3D7FFFF              Call 004056A8
:00407EF5 668B4C240E              mov cx, word ptr [esp+0E]
:00407EFA 668B54240A              mov dx, word ptr [esp+0A]
:00407EFF 668B442408              mov ax, word ptr [esp+08]
:00407F04 E81FFEFFFF              call 00407D28
:00407F09 DD1C24                  fstp qword ptr [esp]
:00407F0C 9B                      wait
:00407F0D DD0424                  fld qword ptr [esp]
:00407F10 83C418                  add esp, 00000018
:00407F13 C3                      ret
  ÎÒÃǾͽ«ÔÚÉÏÃæµÄµØ·½±»À¹ÏÂÀ´£¬ÏÖÔÚ¿ÉÒÔ¿´Ò»ÏÂÁË¡£ÉÏÃægetlocaltimeº¯ÊýÔËÐк󽫵Ã
µ½Èý¸öÖµ£¬cx£¬dx£¬ax£¬ÕâÀïcxΪÌìÊý£¬dxΪÔÂÊý£¬axΪÄê¡£ÕâÑù´ó¼Ò¾ÍÖªµÀÁË°É¡£
  ÕâÀïÊDZȽϵĵط½µÃÏòÏ£º
:00473450 E8934AF9FF              call 00407EE8  µ÷ÓÃgetlocaltimeµÄº¯Êý
:00473455 DC5DF8                  fcomp qword ptr [ebp-08]
:00473458 DFE0                    fstsw ax
:0047345A 9E                      sahf
:0047345B 7616                    jbe 00473473  ¹Ø¼üµÄ±È½ÏµØ·½
:0047345D B890374700              mov eax, 00473790
:00473462 E89977FCFF              call 0043AC00
:00473467 A19C7E4700              mov eax, dword ptr [00477E9C]
:0047346C 8B00                    mov eax, dword ptr [eax]
:0047346E E88D01FBFF              call 00423600

* Referenced by a (U)nconditional or (C)onditional Jump at Address:
|:0047345B(C)
|
:00473473 A19C7E4700              mov eax, dword ptr [00477E9C]
  ÉÏÃæ¾ÍÊǹؼüµÄ±È½ÏµØ·½£¬Èç¹û²»ÈÃËüÌøÔ¾¾Í³öÏÖʧЧµÄÌáʾ¡£³ÌÐòÒ²ÎÞ·¨¼ÌÐøÔËÐÐÁË¡£
ÄÇô¾Í½«Ëü¸ÄΪÎÞÌõ¼þÌøÔ¾¾Í¿ÉÒÔÁË¡£


               ******************************
               * ²éÕÒ£ºDF E0 9E 76 16 B8 90 *
               * Ìæ»»£º-- -- -- EB -- -- -- *
               ******************************

WindowsÓÅ»¯´óʦv2.9+µÄ×¢²áÂë¼ÓÃÜËã·¨ 


                              written by dr0, 2000/08/22 

±¾ÎĽ«ÒÔ»ã±à´úÂëΪÀý£¬½âÊÍһϡ°WindowsÓÅ»¯´óʦ¡± v2.9+ÖÐÓõ½µÄRSAËã·¨¡£ 
Ïȼòµ¥½éÉÜÒ»ÏÂRSAËã·¨£¬±ãÓںͻã±à´úÂë¶ÔÕÕ¡£¾ßÌåµÄÊýѧÀíÂÛÎÒÃÇÔڴ˲¢²»Ì«¹ØÐÄ£¬ÓÐÐËȤµÄ¿ÉÒÔÈ¥²é²Î¿¼×ÊÁÏ¡£ 

RSAËã·¨¼òÊö£º 
1¡¢È¡Á½¸öËØÊýpºÍq¡£ 
2¡¢¼ÆËãn=pq£¬f=(p-1)(q-1)¡£ 
3¡¢Ëæ»úÑ¡È¡ÕûÊýe£¬Âú×ãÌõ¼þgcd(e, f)=1£¬ÆäÖÐgcdΪ×î´ó¹«Ô¼Êý¡£ 
4¡¢¼ÆËãd£¬Ê¹µÃ³Ë»ýde¶ÔfÇóÓàµÄ½á¹ûΪ1£¬¼´deºÍ1¶ÔfͬÓà¡£ 
ÉÏÊöÖ»ÓÐeºÍn¶ÔÍ⹫¿ª£¬ÓÃÓÚ¼ÓÃÜ¡£ 

¼ÓÃܹý³Ì£¨·ûºÅ^±íʾ³ËÃÝ£¬mod±íʾÇóÓࣩ£º 
    eΪ¼ÓÃÜÃÜÔ¿£¬¼Ù¶¨Ã÷ÎÄΪm£¬ÔòÃÜÎÄc = (m ^ e) mod n¡£ 

½âÃܹý³Ì£º 
    dΪ½âÃÜÃÜÔ¿£¬Ôò½âÃܵõ½µÄÃ÷ÎÄm'= (c ^ d) mod n¡£ 


RSA±»¹¥ÆƵÄÒ»¸ö³ä·ÖÌõ¼þÊÇn±»Òò×ӷֽ⣬¼´µÃµ½pºÍq¡£ÒòΪµÃµ½pºÍqÖ®ºó±ã¿ÉÒÔ¼ÆËã³öf£¬´Ó¶ø¸ù¾Ý¡°deºÍ1¶ÔfͬÓࡱ
Õâ¸öÌõ¼þ¼ÆËã³ö½âÃÜÃÜÔ¿dÀ´¡£ 

¸ù¾ÝÉÏÃæµÄ¼ÓÃܺͽâÃÜËã·¨¿ÉÒÔ¿´³ö£º 
1¡¢RSAµÄ¼ÓÃܺͽâÃÜÊǶԳƵģ¬¼´¼ÓÃܺͽâÃÜ¿ÉÒÔʹÓÃͬһ¸öº¯Êý£» 
2¡¢RSA¼ÓÃÜÖ÷ÒªÒÀ¿¿Ä£ÃÝÔËË㣬Òò´ËÕⲿ·ÖÔËËãµÄ¸´ÔӶȶÔËã·¨µÄЧÂÊÓ°Ïì×î´ó¡£¹ØÓÚÄ£ÃÝÔËË㣬ÔÚ¡¶¼ÆËã»úÃÜÂëѧ¡·
£¨Ç廪³ö°æÉ磬¬¿ª³Î£©Ò»ÊéÖн²ÁËÒ»ÖÖËã·¨£¬¸ÃËã·¨ºÜÈÝÒ×Àí½â£¬ÆäÖ¸µ¼Ë¼Ïë¾ÍÊDz»Í£µØ½µ½×£¬´Ó¶ø½µµÍʱ¼ä¸´ÔӶȡ£
ÓÃÀàCÓïÑÔµÄαÂëÃèÊöÈçÏ£º 

//ÏÂÃæÕâ¸öº¯Êý¼ÆËã(m ^ e) mod n 
ReturnValueType  encrypt_decrypt(m, e, n) 
{ 
  LocalVariables a, b, c; 

  a = m; 
  b = e; 
  c = 1; 

  while(b) 
  { 
    if ((b mod 2) == 0) 
        { 
        b = b / 2;        //½µ½× 
                a = (a * a) mod n; 
        } 
        else 
        { 
                b = b - 1; 
                c = (a * c) mod n; 
        } 
  }        
    
  return c; 
} 


WindowsÓÅ»¯´óʦµÄÆƽâ¹ý³ÌÒÑÓкܶàÎÄÕ½²¹ý£¬±¾ÎÄÖصã·ÖÎöÆä¶ÔÎÒÃÇÊäÈëµÄ×¢²áÂë½øÐмÓÃÜÔËËãµÄ²¿·Ö£¬
ÒòΪֻÓÐÕâÒ»²¿·ÖÇóÄæµÄÄѶȱȽϴóЩ£¬ÆäËü²¿·Ö¿ÉÒÔÖ±½Ó¿½±´»òÕߺÜÈÝÒ×ÇóÄ棨ÀýÈç»·ÐÎÒÆλÔËË㣩¡£
ÎÒÃǽ«»á¿´µ½£¬ÆäʹÓõÄÄ£ÃÝËã·¨¾ÍÊÇÉÏÊöµÄËã·¨¡£ 


ÓÃIDA·´»ã±àOctoDll.dll£¬¿ÉÒÔ¿´µ½Ò»¸öÃûΪRegisted( )µÄº¯Êý£¬ÕâÏÔÈ»ÊÇÔÚÅжÏ×¢²áÂë¡£Õâ¸öº¯Êý½«¶ÔÎÒ
ÃÇÊäÈëµÄÁ½²¿·Ö×¢²áÂë·Ö±ð½øÐÐRSA¼ÓÃÜ£¬ÔÙÒÆ룬°ÑÒÆλµÄ½á¹ûºÍÒ»¸öÊý£¨Õâ¸öÊýÊǸù¾Ý¡°You are big pig.¡±
¡¢¡°1234567¡±ÒÔ¼°×¢²áÉêÇëÂë¼ÆËã³öÀ´µÄ£¬Õâ¸ö¼ÆËã¹ý³ÌÎÞÐèÇóÄ棩½øÐбȽϣ¬È»ºó·µ»ØÁíÒ»¸öÖµ£¨ËüµÄÖ÷³Ì
Ðò»áÅжϸÃÖµÊÇ·ñΪ0x14£©¡£ 

Registed    proc near 

    var_10      = dword    ptr -10h 
    var_A        = word    ptr -0Ah 
    var_8        = dword    ptr -8 
    var_4        = dword    ptr -4 
    arg_0        = dword    ptr  8 
    arg_8        = dword    ptr  10h 

        push  ebp 
        mov    ebp, esp 
        add    esp, 0FFFFFFF0h 
        push  ebx 
        xor    edx, edx 
        mov    [ebp+var_10], edx 
        mov    ebx, eax 
        xor    eax, eax 
        push  ebp 
        push  offset loc_4043FE 
        push  dword ptr fs:[eax] 
        mov    fs:[eax], esp 
        mov    eax, [ebp+arg_8] 
        mov    [ebp+var_8], eax 
        mov    eax, [ebp+arg_0] 
        mov    [ebp+var_4], eax 
        lea    eax, [ebp+var_10] 
        mov    edx, ebx 
        call  unknown_libname_17 
        mov    eax, [ebp+var_10] 
        lea    edx, [ebp+var_A] 
        lea    ecx, [ebp+var_8] 
        call  sub_4041D8      //ºËÐÄÅÐ¶Ï 
        test  eax, eax 
        jnz    short loc_4043E4 
        xor    ebx, ebx        //bad guy 
        jmp    short loc_4043E8 

loc_4043E4: 
        movzx  ebx, [ebp+var_A] //return value 

loc_4043E8: 
        xor    eax, eax 
        pop    edx 
        pop    ecx 
        pop    ecx 
        mov    fs:[eax], edx 
        push  offset loc_404405 

loc_4043F5: 
        lea    eax, [ebp+var_10] 
        call  sub_402E5C 
        retn 


ºÜÏÔÈ»£¬ºËÐÄÅжÏÔÚcall  sub_4041D8ÖС£¸ú½øÈ¥£¬¿´¼ûº¯ÊýÌåÈçÏ¡£Õâ¸öº¯ÊýµÄÇ°°ë²¿·ÖÊÇÔÚ¸ù¾Ý¡°You are big pig.¡±¡¢
¡°1234567¡±ÒÔ¼°×¢²áÉêÇëÂëͨ¹ý¹þÏ£ÔËËã¼ÆËã³ö¼¸¸öÊýÀ´¡£ºó°ë²¿·Ö²ÅÊÇ×îÖµµÃ¹ØÐĵġ£×¢ÊÍÈçÏ£º 

sub_4041D8    proc near 

var_24        = dword    ptr -24h 
var_20        = dword    ptr -20h 
var_1C        = dword    ptr -1Ch 
var_18        = dword    ptr -18h 
var_14        = dword    ptr -14h 
var_10        = dword    ptr -10h 
var_C        = dword    ptr -0Ch 
var_8        = dword    ptr -8 
var_4        = dword    ptr -4 

        push  ebp 
        mov    ebp, esp 
        add    esp, 0FFFFFFDCh 
        push  ebx 
        push  esi 
        push  edi 
        xor    ebx, ebx 
        mov    [ebp+var_14], ebx 
        mov    esi, ecx 
        lea    edi, [ebp+var_10] 
        movsd 
        movsd 
        mov    [ebp+var_8], edx 
        mov    [ebp+var_4], eax 
        mov    eax, [ebp+var_4] 
        call  sub_402FC0 
        xor    eax, eax 
        push  ebp 
        push  offset loc_40435F 
        push  dword ptr fs:[eax] 
        mov    fs:[eax], esp 
        lea    eax, [ebp+var_14] 
        mov    edx, offset _str_You_are_big_pig.Text 
        call  sub_402EC4 
        mov    eax, [ebp+var_4] 
        call  unknown_libname_18 
        and    eax, 80000007h 
        jns    short loc_40422A 
        dec    eax 
        or    eax, 0FFFFFFF8h 
        inc    eax 

loc_40422A: 
        test    eax, eax 
        jz    short loc_40425A 
        lea    eax, [ebp+var_4] 
        mov    edx, offset _str_1234567.Text 
        call    @System@@LStrCat$qqrv ;    System __linkproc__ LStrCat(void) 
        mov    eax, [ebp+var_4] 
        call    unknown_libname_18 
        test    eax, eax 
        jns    short loc_40424A 
        add    eax, 7 

loc_40424A: 
        sar    eax, 3 
        mov    edx, eax 
        shl    edx, 3 
        lea    eax, [ebp+var_4] 
        call    @System@@LStrSetLength$qqrv ; System __linkproc__ LStrSetLength(void) 

loc_40425A: 
        xor    esi, esi 
        lea    eax, [ebp+var_4] 
        call    sub_402FD0 
        mov    edi, eax 
        lea    eax, [ebp+var_14] 
        call    sub_402FD0 
        mov    ebx, eax 
        jmp    short loc_4042A2 

loc_404272: 
        mov    eax, [edi+esi*4] 
        mov    [ebp+var_1C], eax 
        mov    eax, [edi+esi*4+4] 
        mov    [ebp+var_18], eax 
        mov    edx, ebx 
        lea    eax, [ebp+var_1C] 
        call    sub_404170 
        mov    eax, [ebx] 
        mov    [ebx+8], eax 
        mov    eax, [ebx+4] 
        mov    [ebx+0Ch], eax 
        mov    eax, [ebp+var_1C] 
        mov    [ebx], eax 
        mov    eax, [ebp+var_18] 
        mov    [ebx+4], eax 
        add    esi, 2 

loc_4042A2: 
        mov    eax, [ebp+var_4] 
        call    unknown_libname_18 
        test    eax, eax 
        jns    short loc_4042B1 
        add    eax, 3 

loc_4042B1: 
        sar    eax, 2 
        cmp    esi, eax 
        jb    short loc_404272  //ÒÔÉÏΪǰ°ë²¿·Ö£¬²»ÓÃÇóÄæ 

        mov    eax, [ebp+var_10] 
        xor    edx, edx 
        push    edx            //×¢²áÂëµÄµÚÒ»²¿·Öm1µÄ¸ß루ºãΪ0£© 
        push    eax            //×¢²áÂëµÄµÚÒ»²¿·Öm1µÄµÍλ 
        push    ds:dword_4050D0 //¼ÓÃÜÃÜÔ¿eµÄ¸ß루0£© 
        push    ds:dword_4050CC //¼ÓÃÜÃÜÔ¿eµÄµÍ루3B442AF9£© 
        push    ds:dword_4050D8 //nµÄ¸ß루0£© 
        push    ds:dword_4050D4 //nµÄµÍ루69AAA0E3£© 
        call    sub_4040B8      //encrypt_decrypt(m1, e, n) 
        sub    eax, 2 
        mov    [ebp+var_24], eax 
        mov    eax, [ebp+var_C] 
        xor    edx, edx 
        push    edx              //×¢²áÂëµÄµÚ¶þ²¿·Öm2µÄ¸ß루ºãΪ0£© 
        push    eax              //×¢²áÂëµÄµÚ¶þ²¿·Öm2µÄµÍλ 
        push    ds:dword_4050D0  //¼ÓÃÜÃÜÔ¿eµÄ¸ß루0£© 
        push    ds:dword_4050CC  //¼ÓÃÜÃÜÔ¿eµÄµÍ루3B442AF9£© 
        push    ds:dword_4050D8  //nµÄ¸ß루0£© 
        push    ds:dword_4050D4  //nµÄµÍ루69AAA0E3£© 
        call    sub_4040B8      //encrypt_decrypt(m2, e, n) 
        sub    eax, 2 
        mov    [ebp+var_20], eax 
        shl    [ebp+var_24], 2  //ÒÆλ 
        lea    ecx, [ebp+var_24] 
        mov    eax, [ecx] 
        mov    edx, [ecx+4] 
        shrd  eax, edx, 2    //ÕâÌõºÍÏÂÃæÒ»ÌõÍê³É64 bit»·ÐÎÒÆλ 
        shr    edx, 2 
        mov    [ecx], eax 
        mov    [ecx+4], edx 
        mov    eax, [ebp+var_24] 
        cmp    eax, [ebp+var_1C] //±È½Ï 
        jz    short loc_404330 
        xor    ebx, ebx 
        jmp    short loc_404341 

loc_404330: 
        mov    ax, word ptr [ebp+var_20] //·µ»ØÖµ 
        and    ax, 0FFFFh 
        mov    edx, [ebp+var_8] 
        mov    [edx], ax 
        or    ebx, 0FFFFFFFFh 

loc_404341: 
        xor    eax, eax 
        pop    edx 
        pop    ecx 
        pop    ecx 
        mov    fs:[eax], edx 
        push    offset loc_404366 

loc_40434E: 
        lea    eax, [ebp+var_14] 
        call    sub_402E5C 
        lea    eax, [ebp+var_4] 
        call    sub_402E5C 
        retn 

¼´ÉÏÃæµÄÁ½¸öcall sub_4040B8·Ö±ðµÈ¼ÛÓÚ 
      encrypt_decrypt(m1, e, n) 
      encrypt_decrypt(m2, e, n) 
Ö»ÐèÒª°Ñsub_4040B8µÄº¯ÊýÌåºÍÉÏÃæµÄË㷨αÂëÃèÊö¶ÔÕÕһϾÍÃ÷°×ΪʲôµÈ¼ÛÁË£¨×¢ÒâwindowsÓÅ»¯´óʦʹÓõÄÊÇ64 
bitµÄÔËË㣬ÿ¸öÊýÒªÓÃÁ½¸ö32 bitµÄÊýÀ´±íʾ£¬Òò´Ë²Ù×÷ÿ¸ö64 bitµÄÊýÖÁÉÙÒªÁ½ÌõÖ¸Á£º 

sub_4040B8    proc near 

var_8        = dword    ptr -8    //¾Ö²¿±äÁ¿cµÄµÍ루cÖн«´æ·Å·µ»ØÖµ£© 
var_4        = dword    ptr -4    //¾Ö²¿±äÁ¿cµÄ¸ßλ 
arg_0        = dword    ptr  8      //mµÄµÍ32λ 
arg_4        = dword    ptr  0Ch    //mµÄ¸ß32λ 
arg_8        = dword    ptr  10h    //eµÄµÍ32λ 
arg_C        = dword    ptr  14h    //eµÄ¸ß32λ 
arg_10        = dword    ptr  18h  //nµÄµÍ32λ 
arg_14        = dword    ptr  1Ch  //nµÄ¸ß32λ 

        push    ebp 
        mov    ebp, esp 
        add    esp, 0FFFFFFF8h 
        mov    [ebp+var_8], 1    // c = 1; 
        mov    [ebp+var_4], 0 
        jmp    short loc_40414A 

loc_4040CE: 

        push    0 
        push    2 
        mov    eax, [ebp+arg_8] 
        mov    edx, [ebp+arg_C] 
        call    __LLMOD          //b mod 2 
        cmp    edx, 0 
        jnz    short loc_40411B 
        cmp    eax, 0 
        jnz    short loc_40411B 
        push    0 
        push    2 
        mov    eax, [ebp+arg_8] 
        mov    edx, [ebp+arg_C] 
        call    __LLDIV          // b = b / 2 
        mov    [ebp+arg_8], eax 
        mov    [ebp+arg_C], edx 
        push    [ebp+arg_14] 
        push    [ebp+arg_10] 
        push    [ebp+arg_14] 
        push    [ebp+arg_10] 
        push    [ebp+arg_4] 
        push    [ebp+arg_0] 
        call    sub_404060      // a = (a * a) mod n 
        mov    [ebp+arg_10], eax 
        mov    [ebp+arg_14], edx 
        jmp    short loc_40414A 

loc_40411B: 

        mov    eax, [ebp+arg_8] 
        mov    edx, [ebp+arg_C] 
        sub    eax, 1            // b = b - 1 
        sbb    edx, 0 
        mov    [ebp+arg_8], eax 
        mov    [ebp+arg_C], edx 
        push    [ebp+arg_14] 
        push    [ebp+arg_10] 
        push    [ebp+var_4] 
        push    [ebp+var_8] 
        push    [ebp+arg_4] 
        push    [ebp+arg_0] 
        call    sub_404060    //c = (a * c) mod n 
        mov    [ebp+var_8], eax 
        mov    [ebp+var_4], edx 

loc_40414A: 
        cmp    [ebp+arg_C], 0    //bµÈÓÚ0Â𣿠
        jnz    short loc_40415C 
        cmp    [ebp+arg_8], 0 
        ja    loc_4040CE        //¼ÌÐøÑ­»· 
        jmp    short loc_404162  

loc_40415C: 
        jg    loc_4040CE        //¼ÌÐøÑ­»· 

loc_404162: 
        mov    eax, [ebp+var_8]  //·µ»ØÖµc 
        mov    edx, [ebp+var_4] 
        pop    ecx 
        pop    ecx 
        pop    ebp 
        retn    18h 
sub_4040B8    endp 

ÖÁ´ËÎÒÃÇÒѾ­¸ãÇåÆä¼ÓÃÜËã·¨£¬Çҵõ½ÈçϽá¹û£º 
e = 0x000000003B442AF9 
n = 0x0000000069AAA0E3 
ʣϵÄÊÂÇé¾ÍÊǶÔn½øÐÐÒò×ӷֽ⣬д³ö×¢²á»ú. 
-------------------------------------------------------------------------------- 


ƽ°²È«Ï¢ÍòÄêÀú£¨1.0.4£©µÄ×¢²áÂëËã·¨ 

ÉùÃ÷£º¹©½»Á÷Óã¬Money¶à¶àµÄÅóÓÑÇëÏò×÷Õß×¢²á¡ª¡ªÖ§³Ö¹ú²úÈí¼þÂï¡££¨ÎûÎû£© 

Èí¼þÃû³Æ£º  ƽ°²È«Ï¢ÍòÄêÀú 1.0.4 
ÏÂÔصØÖ·£º http://www.newhua.com.cn 
Èí¼þ˵Ã÷£º ¸ÃÈí¼þ¿É¿ì½ÝµØ²éÔĹ«Àú¡¢Å©Àú¡¢¸ÉÖ§£¨ËÄÖù£©¡¢ÉúФ¡¢ÎåÐС¢¾ÅÐÇ¡¢ºÚ»ÆµÀ¡¢ 
½¨¡¢ËÞ¡¢ÐÇÆÚ¡¢´óСÔ¡¢Ã¿ÈÕÎïºò¡¢24½ÚÆø£¬¹«¡¢Å©Àú½ÚÈÕ£¬ÖµÈÕ¼ªÐÇ¡¢Éñ 
É·¼°·½Î»¡¢Ê±³½£¬ÈÕ¡¢Ê±ÒË¡¢¼É£¬ÈË¡¢Ê¡¢Ê±Ö®¼äµÄ¡°ºÏ¡¢³å¡¢ÐÌ¡¢º¦¡±¹Øϵ£¬ 
²éѯÖйúÀú´ú¼ÍÔª£¬ÓÊÕþ±àÂ룬¹úÄÚÍⳤ»°ÇøºÅ£¬¹Å´úȤζ½âÃΡ¢ÔÓÕ¼¡£ÓÐ×Ô 
¶¯ÄÖÖÓ¹¦ÄÜ£¬ÕýµãÆðÄÖ¡¢¶¨Ê±½ÐÄÖ¡£¿É´òÓ¡Ôñ¼ªÈÕÀú¡£ÊÇÌìÎÄ¡¢µØÀí¡¢ÀúÊ·¡¢ 
½¨Öþ¡¢¡¶Òס·Ñ§¡¢ÖÐÒ½¡¢Àíѧ¡¢ÃñËס¢ÈËÎÄ¡¢¹ÅÎÄÃ÷Ñо¿ÕßµÄÀûÆ÷£¬Ò²Êǹ㷺 
Å©¡¢¹¤¡¢ÉÌ¡¢Ñ§¡¢Ò½ÈËÊ¿µÄ×î¼Ñ˾ʱ¹¤¾ß¡£ 
³ÌÐò¹ØÁª£º  msvbvm50.dll 
Ä¿±ê£º        Ñо¿×¢²áÂëËã·¨£¬²¢ÓÃCд³ö×¢²á»ú 
µ÷ÊÔ¹¤¾ß£º softice4.05¡¢IceDump6.016 
×÷Õߣº        chn-boy 
д×÷ÈÕÆÚ£º 2000-12-2 

¸Ã³ÌÐòVB±àд£¬µ÷ÓÃMSVBVM50.DLL¡£Ê×ÏÈÔËÐиÃÈí¼þ£¬ÔÚ×¢²á´°¿ÚÖÐ 
ÌîдºÃÄãµÄVirtual Code£¬ÈçÎÒÌîдµÄΪ£º 
Name£º 66745923  ß ÓÉÈí¼þ×Ô¶¯¸ø³ö£¬²»ÓÃÌîд 
Code£º 32194876 
CTRL+DÆôÓÃSoftICE4.05£¬ÏÂÖжÏbpx hmemcpy£¬F5 
»Øµ½windows£¬µã×¢²á£¬³ÌÐò±»SoftICEÀ¹½Ø¡£Bd * £¬È»ºó¾ÍÊÇ°´F12ÊýÏ£¬ 
µ±µ½MSVBVM50Áì¿Õʱ£¬ÓÃÃüÁ 

s 30:0 l -1 56,57,8B,7C,24,10,8B,74,24,0C,8B,4C,24,14,33,C0,F3,66,A7 

À´²éÕÒVB50µÄºËÐÄ×Ö·û´®±È½Ï´úÂë¶Î£¨ÆäʵҲ¿ÉÒÔÏÂÖжÏbpx __vbastrcomp£© 
ÔÚÕÒµ½µÄµØÖ·´¦ÏÂÖжϣºbpx 30:xxxxxxxx£¬°´F5¾Í¿ÉÒÔÈóÌÐòÖжÏÖÁ¸Ã´¦£¬È» 
ºó¾ÍÊÇ·±ËöµÄ¸ú×Ù£¬Ò»´ó¶ÑÀ´»ØÌøתµÄÖ¸ÁÏëÏëÏÖÔÚÍ·¶¼·¢Â飩£¬ÏêϸµÄ´úÂë 
ÕâÀï²»ÔÙ¸ø³ö£¬¸æËß´ó¼ÒÁ½¸ö±È½ÏÓÐÓõÄÖжϵ㣺 
1£©bpx 76380632 do ¡°d ebx->8¡±  ß ¸ÃÖжÏΪ×îºó×¢²áÂë±È½Ï´¦£¬ebx->8 
´¦´æ·ÅµÄÊÇVirtual Codeͨ¹ý¼ÆËãµÃµ½ 
µÄ×Ö·û´®£¬edx->8´¦´æ·ÅµÄÊÇName 
ͨ¹ý¼ÆËãµÃµ½µÄ×Ö·û´®£¬Èç¹ûÁ½¸ö×Ö·û 
´®ÏàµÈ£¬Ôò×¢²á³É¹¦¡£ 

2£©bpx 7628bcd do ¡°d ebp->8¡±  ߸ÃÖжϵãÆäʵ¾ÍÊÇbpx rtcmidbstrµÄÍâÑÓ 
rtcmidbstrº¯ÊýµÄ¹¦ÄܾÍÊÇÓÃÒÔ´ÓÒ»¸öTable±íÖеõ½Ò»¸öÊý¾Ý£¬Èë¿Ú²ÎÊýΪ£º 
esp+4ΪTable±íµÄµØÖ·Æ«ÒÆ£¬esp+8Ϊ´Ó¾à±í¶à´óÆ«ÒÆ´¦µÃµ½Êý¾Ý£¬ecxÖдæ·Å 
µÄÊÇ»ñµÃÊý¾ÝµÄ×Ö½ÚÊý¡£ 

Õû¸öÈí¼þµÄËã·¨ÊÇÕâÑùµÄ£º¸ù¾ÝÈí¼þµÄ±àºÅ£¨ÈçÎÒµÄÊÇ66745923£©Í¨¹ýÒ» 
ÖÖËã·¨£¬´Ó±í1Öвé³ö¶ÔÓ¦µÄÖµ¹¹³ÉÒ»¸ö×Ö·û´®£»È»ºóÔÙ¸ù¾ÝÄãÊäÈëµÄCodeͨ 
¹ýÁíÒ»ÖÖËã·¨£¬´Ó±í2Öвé³ö¶ÔÓ¦µÄÖµ¹¹³ÉÁíÒ»¸ö×Ö·û´®¡£×îÖձȽÏÁ½¸ö×Ö·û´® 
ÊÇ·ñÏàµÈ£¬ÈôÊÇ£¬Ôò×¢²á³É¹¦£¨ºÙºÙ£¬ÎÒµÄÎÒÒѾ­ÖªµÀÁË£º8*2*7*6*£¬ÆäÖÐ*´ú 
±íÈÎÒâ°¢À­²®Êý×Ö£© 

ÏÂÃæÎÒÀ´ËµËµËüµÄËã·¨£º 
1£©µÚÒ»¸ö×Ö·û´®£ºÈ¡³öNameÖÐÆæÊýλËĸöÊý×Ö6 7 5 2£¬ÖðÒ»²é±í£¬ºÏ²¢µÃµ½ 
µÚÒ»¸ö×Ö·û´®¡£80 7F C4 6B 66 59 6A 70 
2£©µÚ¶þ¸ö×Ö·û´®£º½«NameÖÐżÊýλºÍCodeÖÐÆæÊýλȡ³ö£¬ºÏ²¢ÔÚÒ»Æ𣬸ù¾Ý 
ÎÒËùÌîдµÄ£¬Name È¡³ö 6 4 9 3 £¨66745923£©£¬CodeÖÐÈ¡ 
³ö3 1 4 7 £¨32194876£©£¬È»ºóºÏд³É 63 41 94 37£¬×¢ÒâÖÐ 
¼äµÄ¼ä¸ô£¬Ã¿Á½Î»¶¼ÊÇÒ»¸ö10½øÖÆÊý£¬·Ö±ð*2-1£¬±ÈÈçµÚ 
Ò»¸ö10½øÖÆÊý63£¬63*2-1=125=0x7D¡£ÄÇôǰÃæµÄÄǸöº¯ 
ÊýrtcmidbstrµÄ*(esp+8)=0x7D£¬Ò²¾ÍÊÇ˵´Ó±íµÄµÚ125¸ö×Ö 
½Ú´¦È¡³öecx¸ö×Ö·û£¬È»ºó°ÑËÄ×éºÏ²¢ÆðÀ´£¬µÃµ½µÚ¶þ¸ö×Ö 
·û´®¡£ 

ÓÉÉÏÊö¿ÉÖª£¬¶ÔÓÚCodeÖÐżÊýλµÄÊý×Ö¿ÉÒÔÈÎÒâÌîд¡£Ë¬°É£¿£¡ 

Ëã·¨Ã÷ÁË£¬ÏÂÃæµÄ¹Ø¼üÊÇTable±íµÄÎÊÌâÁË¡£  £º£© 

±í1 ¡ª¡ª ÓÃÀ´ËãName µÄ×Ö·û´®µÄ£º£¨´Ë±íÎÒÒѾ­Ô¤´¦ÀíÁË£¬ÎªÁ˱à³Ì·½±ã£© 
A2 9E ¡ª¡ª 0            FA 89 ¡ª¡ª 1            6A 70 ¡ª¡ª 2 
28 72 ¡ª¡ª 3            1F 65 ¡ª¡ª 4            66 59 ¡ª¡ª 5 
80 7F ¡ª¡ª 6            C4 6B ¡ª¡ª 7            C1 5F ¡ª¡ª 8 
2E 9B ¡ª¡ª 9 


±í2 ¡ª¡ª ÓÃÀ´ËãCode µÄ×Ö·û´®£º£¨¹²198¸ö×Ö·û£© 
FA 89 2E 9B 28 72 28 72-66 59 28 72 C1 5F 28 72  ....(r(rfY(r._(r 
FA 89 1F 65 6A 70 2E 9B-C4 6B A2 9E 28 72 FA 89  ...ejp...k..(r.. 
A2 9E C1 5F 1F 65 6A 70-6A 70 80 7F C1 5F 2E 9B  ..._.ejpjp.._.. 
28 72 C4 6B 66 59 C4 6B-80 7F 1F 65 28 72 C4 6B  (r.kfY.k..e(r.k 
6A 70 FA 89 A2 9E 66 59-2E 9B FA 89 C4 6B FA 89  jp....fY.....k.. 
80 7F C4 6B C1 5F 28 72-C4 6B 6A 70 C1 5F 1F 65  ..k._(r.kjp._.e 
2E 9B 66 59 66 59 80 7F-80 7F C4 6B 2E 9B FA 89  ..fYfY...k.... 
C4 6B 80 7F 66 59 A2 9E-1F 65 28 72 66 59 FA 89  .k.fY...e(rfY.. 
2E 9B 6A 70 6A 70 A2 9E-2E 9B 6A 70 66 59 C4 6B  ..jpjp....jpfY.k 
A2 9E 1F 65 28 72 66 59-C1 5F FA 89 C1 5F FA 89  ...e(rfY._..._.. 
66 59 66 59 FA 89 1F 65-C1 5F C1 5F C1 5F A2 9E  fYfY...e._._._.. 
66 59 66 59 80 7F 1F 65-C4 6B 2E 9B 6A 70 6A 70  fYfY..e.k..jpjp 
C1 5F 2E 9B C4 6B ` 

ÒªµÃµ½×¢²áÂ룬ÄÇôÎÒÃǾÍÐèÒª¸ù¾ÝNameµÃµ½×Ö·û´®½øÐÐÄæÔËË㣬´Ó¶øµÃµ½CodeµÄ 
ËĸöÆæÊýλµÄÊý×ÖÊÇʲô£¿´ó¼Ò¿ÉÒÔÏëÏë¿´¡£¡£ÆäʵҲÊÇÂù¼òµ¥µÄ¡£¡£ 
    ×¢²á»úËæºó¸½ÉÏ¡£ 

*_^        *_^        *_^ 


4¡¾ÍøÕ¾½éÉÜ¡¿
СÄÁׯ£ºhttp://www.modernagri.com
ÏÖÔÚÑо¿½âÃܵÄÈË£¬¿ÉÄܶ¼ÖªµÀ¹·Õâ¸ö¶«Î÷°É£¬Èç¹ûÖªµÀ¹·£¬Äã¾ÍÓ¦µ±ÖªµÀСÄÁͯÕâ¸öÃû×Ö°É£¬ÒòΪËû¿ÉÊÇ
Ò»¸öÕæÕýµÄ·¢¹·×¨¼Ò£¬Èç¹ûÄã²»ÏàÐÅ£¬Äã¾ÍÈ¥ËûµÄÍøÕ¾¿´Ò»¿´°É£¬È»ºóÄã¾Í»áÏàÐÅ˵µÄÊǶԵġ£Ð¡ÄÁͯËûÊÇ
Ò»¸öÒ½Éú£¬¶ÔÑо¿½âÃÜËûÒ²ÊÇÒ»¸ö¸ßÊÖ°¡£¬ÔÚ¿´Ñ©ÂÛ̳Öп´Ò»¿´Ëû°®»¶Ó­µÄ³ÌÐò´ó¼Ò¾ÍÖªµÀÁË¡£ºÃÁË£¬Èç¹û
ÔÚ½âÃÜ·½ÃæÏë¸üÒ»²½µÄ»°£¬¾ÍÈ¥¿´Ò»¿´ËûµÄÍøÕ¾£¬¶øÇÒÏàÐÅ´ó¼Ò»¹»áÓÐÆäËüµÄÊÕ»ñµÄ¡£           
,¡¾ÔÓÖ¾ÐÅÏä¡¿
Ͷ¸åÐÅÏ䣺discoveredit@china.com
´ðÒÉÐÅÏ䣺discoveranswer@china.com
°ßÖñÐÅÏ䣺programhunter@china.com