²é¿´: 415  |  »Ø¸´: 0
µ±Ç°Ö÷ÌâÒѾ­´æµµ¡£

sdlj8051

½ð³æ (ÖøÃûдÊÖ)

[½»Á÷] [תÌù]ÍÆ¹ãµÄESP¶¨ÂÉ---EBPµÄÃîÓÃ

Ô­Îijö´¦:
http://www.popbase.net/bbs/dispb ... ;ID=2229&page=1

Author£ºLenus
From: www.popbase.net
E-mail£ºLenus_M@163.com
--------------------------------------------------
1.ǰÑÔ
  
  ¼¸Ììǰ£¬jney2Ðֵܷ¢±íÁË¡¶ÈçºÎ×è»÷¡°ESP¶¨ÂÉ¡±¡·Ò»ÎÄ£¬¶ÔÓÚanti-ESP¶¨ÂÉÌá³öÁ˷dz£½¨ÉèÐԵķ½°¸£¬Í¨¹ýÕâÆªÎÄÕÂÎÒÃÇÖªµÀESP¶¨ÂɵÄÔ­ÀíºÍËûµÄ¾ÖÏÞÐÔ£¬µ«ÊǶÔÓÚ²»ÄÜʹÓÃESP¶¨ÂɵĿǿɲ»Õ¼ÉÙÊýŶ¡£ÔÚÕâÀïÎÒÏë¼òµ¥µÄÌá³öÒ»¸öµ±ÎÒÃÇÃæ¶ÔÎÞ·¨Ê¹ÓÃESP¶¨ÂÉʱµÄ°ì·¨¡£
--------------------------------------------------
2.ÕýÎÄ
  
  i.Á˽âEBP¼Ä´æÆ÷
  ÔڼĴæÆ÷ÀïÃæÓкܶà¼Ä´æÆ÷ËäÈ»ËûÃǵŦÄܺÍʹÓÃûÓÐÈκεÄÇø±ð£¬µ«ÊÇÔÚ³¤ÆÚµÄ±à³ÌºÍʹÓÃÖУ¬ÔÚ³ÌÐòԱϰ¹ßÖÐÒѾ­Ä¬ÈϵĸøÃ¿¸ö¼Ä´æÆ÷¸³ÉÏÁËÌØÊâµÄº¬Ò壬±ÈÈ磺EAXÒ»°ãÓÃÀ´×ö·µ»ØÖµ£¬ECXÓÃÓÚ¼ÇÊýµÈµÈ
  ÔÚwin32µÄ»·¾³ÏÂEBP¼Ä´æÆ÷ÓÃÓë´æ·ÅÔÚ½øÈëcallÒÔºóµÄESPµÄÖµ£¬±ãÓÚÍ˳öµÄʱºò»Ø¸´ESPµÄÖµ£¬´ïµ½¶ÑջƽºâµÄÄ¿µÄ¡£

  Ó¦ÓÃÒÔǰ˵¹ýµÄÒ»¶Î»°£º

  Ô­³ÌÐòµÄOEP£¬Í¨³£ÊÇÒ»¿ªÊ¼ÒÔ Push EBP ºÍMOV Ebp,EspÕâÁ½¾ä¿ªÊ¼µÄ£¬²»ÓÃÎÒ¶à˵´ó¼ÒÒ²ÖªµÀÕâÁ½¾äµÄÒâ˼ÊÇÒÔEBP´úÌæESP£¬×÷Ϊ·ÃÎʶÑÕ»µÄÖ¸Õë¡£

  ÎªÊ²Ã´ÒªÕâÑùÄØ£¿ÎªÊ²Ã´¼¸ºõÿ¸ö³ÌÐò¶¼ÊǵĿªÍ·ÄÜ£¿
ÒòΪÈç¹ûÎÒÃÇд¹ýCµÈº¯ÊýµÄʱºò¾ÍÓ¦¸ÃÇå³þ£¬³ÌÐòµÄ¿ªÊ¼ÊÇÒÔÒ»¸öÖ÷º¯Êýmain£¨£©Îª¿ªÊ¼µÄ£¬¶øº¯ÊýÔÚ·ÃÎʵĹý³ÌÖÐ×îÖØÒªµÄÊÂÇé¾ÍÊÇҪȷ±£¶ÑÕ»µÄƽºâ£¬¶øÔÚwin32µÄ»·¾³Ï±£³ÖƽºâµÄ°ì·¨ÊÇÕâÑùµÄ£º
    1.ÈÃEBP±£´æESPµÄÖµ£»
    2.ÔÚ½áÊøµÄʱºòµ÷ÓÃ
    mov esp,ebp
    pop ebp
    retn
    »òÕßÊÇ
    leave
    retn
    Á½¸öÐÎʽÊÇÒ»¸öÒâ˼¡£

ÕâÑù×öµÄºÃ´¦ÊDz»Óÿ¼ÂÇESPµÈÓÚ¶àÉÙ£¬PUSHÁ˶àÉٴΣ¬ÒªPOP¶àÉÙ´ÎÁË£¬ÒòΪÎÒÃÇÖªµÀEBPÀïÃæ·ÅµÄÊÇ¿ªÊ¼Ê±ºòµÄESPÖµ¡£

   ii.ÍÆ¹ãµÄESP¶¨ÂÉ
  
   ÔÚѰÕÒOEPµÄʱºò£¬ÍùÍù϶ÏHW ESP-4²»³É¹¦£¬³ýÁ˿ǴúÂ뽫Ӳ¼þ¶Ïµãɾ³ýÁËÒÔÍ⣬ºÜ¿ÉÄܵÄÇé¿ö¾ÍÊÇÒòΪ¿Ç´úÂëÔÚÔËÐе½OEPµÄʱºòËûµÄESPÒѾ­²»ÔÙÊÇÔÚEPʱºòµÄESP£¨12FFC4£©ÁË£¬ÕâÑùÎÒÃÇ϶ϵ±È»ÊDz»³É¹¦µÄ¡£

   ÄÇôÈçºÎÕÒµ½Ôڿǵ½´ïOEPµÄʱºòµÄ¶ÑÕ»µÄÖµ½«Êǹؼü¡£

   ÔÚÕâÀïÎÒÃÇÓ¦ÓõĹؼüÊÇ

   Push EBP
   MOV Ebp,Esp----¡·¹Ø¼üÊÇÕâ¾ä
   
   ÎÒÀ´½âÊÍһϣ¬µ±³ÌÐòµ½´ïOEPµÄʱºòPush EBPÕâ¾ä¶ÔÓÚESPµÄÖµÀ´Ëµ¾ÍÊÇESP-4£¬È»ºóÊÇESP-4¸³¸øÁËEBP£¬¶ø×öΪ±£´æESPÖµ×÷ÓõÄEBP¼Ä´æÆ÷ÔÚÕâ¸ö¡°×îÉϲãµÄ³ÌÐò¡±ÖеÄÖµ½«Ê¼ÖÕ²»»á¸Ä±ä¡£ËäÈ»Ëû¿ÉÄÜÔÚ½øÈë×ÓcallÀïÃæÒÔºó»áÔÝʱµÄ¸Ä±ä£¨ÓÃÓÚ×Ó³ÌÐòµÄ¶Ñջƽºâ£©µ«ÊÇÔÚÍ˳öÁËÒÔºóÒÀ¿¿pop ebpÕâÒ»¾ä½«»¹Ô­Ô­À´µÄEBPµÄÖµ¡£
   
   ÒÔÕâ¾ä×öÎªÍ»ÆÆ¿Ú£¬¾ÍÊÇ˵ֻҪÎÒÃÇÄܶÏÔÚ¡°×îÉϲãµÄ³ÌÐò¡±ÖУ¬¾ÍÄÜͨ¹ý¹Û²ìEBPµÄÖµµÃµ½¿ÇÔÚJMPµ½OEPµÄʱºòµÄESPµÄÖµÁË¡£

   iii.ʵս

   À´¿´¿´pespin1.1µÄ¿Ç£¬ÔÚpespin1.0µÄ¿ÇÖУ¬ÎÒÃÇʹÓÃHW 12FFC0ÄܺÜÈÝÒ×µÄÕÒµ½stolen codeµÄµØ·½£¬µ«Êǵ½pespin1.1µÄʱºò£¬ÎÒÃǾͲ»ÐÐÁË¡£ÓÃHW 12FFC0¸ù±¾¶Ï²»ÏÂÀ´¡£


µã»÷ä¯ÀÀ¸ÃÎļþ


  
    ÏÖÔÚÎÒÃǾÍʹÓÃÕâ¸öÍÆ¹ãµÄESP¶¨ÂÉ

    ÔØÈë³ÌÐòºóÀ´µ½×îºóµÄÒ»¸öÒì³£

0040ED85     2BDB             sub ebx,ebx                           //Í£ÔÚÕâÀï
0040ED87     64:8F03          pop dword ptr fs:[ebx]
0040ED8A     58               pop eax
0040ED8B     5D               pop ebp
0040ED8C     2BFF             sub edi,edi
0040ED8E     EB 01            jmp short pespin1_.0040ED91
0040ED90     C466 81          les esp,fword ptr ds:[esi-7F]

    ÎÒÓÃʹÓÃÄÚ´æ¶Ïµã°ì·¨À´µ½FOEP´¦

004010D3     0000             add byte ptr ds:[eax],al
004010D5     0000             add byte ptr ds:[eax],al
004010D7     0000             add byte ptr ds:[eax],al
004010D9     0000             add byte ptr ds:[eax],al
004010DB     0000             add byte ptr ds:[eax],al
004010DD     0000             add byte ptr ds:[eax],al
004010DF     75 1B            jnz short pespin1_.004010FC               //ÕâÀïÊÇFOEP
004010E1     56               push esi
004010E2     FF15 99F44000    call dword ptr ds:[40F499]
004010E8     8BF0             mov esi,eax
004010EA     8A00             mov al,byte ptr ds:[eax]

    ºÃÁË£¬ÕâÀï¾ÍÊÇ¡°×îÉϲãµÄ³ÌÐò¡±µÄµØ·½ÁË£¬¿´¿´¼Ä´æÆ÷

EAX 00141E22
ECX 0040C708 pespin1_.0040C708
EDX 0040C708 pespin1_.0040C708
EBX 0040C708 pespin1_.0040C708                    
ESP 0012F978
EBP 0012F9C0                                  //×¢ÒâÕâÀï
ESI 00141EE0
EDI 0040E5CD pespin1_.0040E5CD
EIP 004010DF pespin1_.004010DF

    ¿´µ½Á˰ɣ¬EBP=0012F9C0£¬ÎÒÃÇÀ´ÏëÏóÒ»ÏÂÕâ¸öÖµÊÇÔõôµÃµ½µÄ¡£

Ê×Ïȿ϶¨ÊÇͨ¹ýMOV ESP£¬EBPÕâÒ»¾ä£¬Ò²¾ÍÊÇ˵ESPÕâʱÊÇ0012F9C0µÄ£¬

È»¶øÉÏÃæ»¹ÓÐÒ»¾äPUSH EBPÒ²¾ÍÊÇ˵ESPÔÚµ½´ïOEPµÄʱºòÓ¦¸ÃÊÇ0012F9C4µÄ¡£

ºÃÁ˵õ½Õâ¸ö½áÂÛÎÒÃǾÍÄܺܿìµÄÕÒµ½stolen codeµÄËùÔÚÁË¡£

ÖØÀ´Í£ÔÚ×îºóµÄÒì³£

0040ED85     2BDB             sub ebx,ebx                           //Í£ÔÚÕâÀï
0040ED87     64:8F03          pop dword ptr fs:[ebx]
0040ED8A     58               pop eax
0040ED8B     5D               pop ebp
0040ED8C     2BFF             sub edi,edi
0040ED8E     EB 01            jmp short pespin1_.0040ED91
0040ED90     C466 81          les esp,fword ptr ds:[esi-7F]

È»ºó϶ÏHW 0012F9C0 £¬F9ÔËÐÐ

À´µ½ÕâÀï

0040D8FB     61               popad
0040D8FC     55               push ebp
0040D8FD     EB 01            jmp short pespin1_.0040D900           //Í£ÔÚÕâÀï
0040D8FF     318B ECEB01AC    xor dword ptr ds:[ebx+AC01EBEC],ecx
0040D905     83EC 44          sub esp,44
0040D908     EB 01            jmp short pespin1_.0040D90B
0040D90A     72 56            jb short pespin1_.0040D962
0040D90C     EB 01            jmp short pespin1_.0040D90F
0040D90E     95               xchg eax,ebp
0040D90F     FF15 6CF34000    call dword ptr ds:[40F36C]
0040D915     EB 01            jmp short pespin1_.0040D918

ÓÚÊǾͺܿìµÄÕÒµ½ÁËstolen codeµÄËùÔÚÁË
--------------------------------------------------
3.×ܽá
  ÉÏÃæµÄÕâ¸ö°ì·¨´ó¸Å¿ÉÒÔ×ܽáÒÔϵIJ½Ö裺
   1.Ö±½Ó»ò¼ä½ÓµÄ¶ÏÔÚ¡°×îÉϲãµÄ³ÌÐò¡±µÄµØ·½¡£
   2.µÃµ½¡°×îÉϲãµÄ³ÌÐò¡±µÄEBPµÄÖµ¡£
   2.ÀûÓóÌÐò³õʼ»¯µÄÁ½¸ö¹Ì¶¨Óï¾äÕÒµ½¿ÇJMPµ½OEPµÄ¶ÑÕ»Öµ¡£

   Õâ¸ö°ì·¨ÓкܴóµÄ¾ÖÏÞÐÔ£¬ÒòΪֻÓÐVCºÍdelphi³ÌÐòʹÓÃÕâ¸ö³õʼ»¯µÄ¿ªÍ·¡£

   µ«ÊÇÕÒµ½¡°×îÉϲãµÄ³ÌÐò¡±µÄ°ì·¨³ýÁËÄÚ´æ¶Ïµã»¹Óкܶà°ì·¨£¬ÀýÈç¶ÔÓÚVCÀ´ËµÊ¹Óà bp ExitProcessÒ²ÊÇÒ»¸öºÜºÃµÄ¶Ïµã£¬¿ÉÒÔÖ±½ÓµÃµ½EBPµÄÊýÖµ¡£
--------------------------------------------------
4.ºó»°
  Ô­À´Õâ¸ö°ì·¨ÓкÜÇ¿µÄǰÌáÌõ¼þ£¬²»ÊÇÒ»¸öºÜ¾ßÆÕ±éÐԵİ취£¬ÎÒÔ­À´Ò²²»Ïëµ¥¶ÀµÄÌá³öÀ´£¬µ«ÊǶÔÓÚjney2ÐֵܵÄanti-ESP¶¨ÂÉÀ´ËµÕâ¸ö°ì·¨È´ÊÇÒ»¸ö½â¾öÖ®µÀ¡£
  µ±È»»¹Óиü¶àµÄ°ì·¨£¬ÔÚÕâÀïÎÒÖ»Ïë˵ºÜ¶àÊÂÇéÓÐì¾ÍÓжܣ¬Ã»ÓÐʲô°ì·¨ÊÇÒ»¶¨Ã»ÓЩ¶´µÄ£¬Ö»ÊÇÏ£ÍûÕâÆªÎÄÕ¸ø´ó¼ÒÀ«¿í˼·£¬Æðµ½Å×שÒýÓñµÄ×÷Óá£

[ Last edited by sdlj8051 on 2006-10-6 at 11:29 ]
»Ø¸´´ËÂ¥

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ sdlj8051 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] 081700 µ÷¼Á 267·Ö +7 ÃÔÈ˵Ĺþ¹þ 2026-03-23 7/350 2026-03-23 23:19 by ÐÇ¿ÕÐÇÔÂ
[»ù½ðÉêÇë] Çë½ÌÏ´ó¼Ò 2026Äê¹ú¼Ò»ù½ðÉêÇëÊÇ˫äÉóÂ𣿠+3 lishucheng1 2026-03-22 4/200 2026-03-23 20:48 by god_tian
[¿¼ÑÐ] Ò»Ö¾Ô¸ÄϾ©Àí¹¤´óѧ085701×ÊÔ´Óë»·¾³302·ÖÇóµ÷¼Á +5 ¿ûè÷ÎÀ¶Ó 2026-03-18 7/350 2026-03-23 16:26 by lingjue
[¿¼ÑÐ] 08¹¤Ñ§µ÷¼Á +7 Óû§573181 2026-03-20 11/550 2026-03-23 15:47 by ÎÒ°®Ñ§Ï°Ñ§Ï°Ê¹Î
[¿¼ÑÐ] 293Çóµ÷¼Á +3 ÌÎÌÎWjt 2026-03-22 5/250 2026-03-22 22:21 by jiangpengfei
[¿¼ÑÐ] 311Çóµ÷¼Á +6 ¶¬Ê®Èý 2026-03-18 6/300 2026-03-22 20:18 by edmund7
[¿¼ÑÐ] 315·Ö£¬³ÏÇóµ÷¼Á£¬²ÄÁÏÓ뻯¹¤085600 +3 13756423260 2026-03-22 3/150 2026-03-22 20:11 by edmund7
[¿¼ÑÐ] 311Çóµ÷¼Á +3 26ÑÐ0 2026-03-20 3/150 2026-03-22 14:46 by ColorlessPI
[¿¼ÑÐ] 269ר˶Çóµ÷¼Á +6 ½ð¶÷±´ 2026-03-21 6/300 2026-03-22 14:31 by ColorlessPI
[¿¼ÑÐ] Ò»Ö¾Ô¸±±¾©»¯¹¤´óѧ070300 ѧ˶336Çóµ÷¼Á +5 vvÃÔ 2026-03-21 8/400 2026-03-22 14:20 by ColorlessPI
[¿¼ÑÐ] 286Çóµ÷¼Á +10 Faune 2026-03-21 10/500 2026-03-21 23:34 by 314126402
[¿¼ÑÐ] Ò»Ö¾Ô¸¶«»ª´óѧ¿ØÖÆÑ§Ë¶320Çóµ÷¼Á +3 Grand777 2026-03-21 3/150 2026-03-21 19:23 by ¼òÖ®-
[¿¼ÑÐ] 0703»¯Ñ§µ÷¼Á +4 ÄÝÄÝninicgb 2026-03-21 4/200 2026-03-21 18:39 by ѧԱ8dgXkO
[»ù½ðÉêÇë] ѧУÒѾ­Ìá½»µ½NSFC£¬»¹ÄÜÐÞ¸ÄÂ𣿠40+4 babangida 2026-03-19 9/450 2026-03-21 16:12 by babangida
[¿¼ÑÐ] 299Çóµ÷¼Á +6 ¡÷С͸Ã÷* 2026-03-17 6/300 2026-03-21 02:42 by JourneyLucky
[¿¼ÑÐ] 274Çóµ÷¼Á +10 S.H1 2026-03-18 10/500 2026-03-20 23:51 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸Äϲý´óѧ£¬327·Ö£¬²ÄÁÏÓ뻯¹¤085600 +9 Ncdx123456 2026-03-19 9/450 2026-03-20 23:41 by lovewei0727
[¿¼ÑÐ] 321Çóµ÷¼Á +9 ºÎÈó²É123 2026-03-18 11/550 2026-03-20 23:19 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸ ÄϾ©º½¿Õº½Ìì´óѧ´óѧ £¬080500²ÄÁÏ¿ÆÑ§Ó빤³Ìѧ˶ +5 @taotao 2026-03-20 5/250 2026-03-20 20:16 by JourneyLucky
[¿¼ÑÐ] 085600²ÄÁÏÓ뻯¹¤Çóµ÷¼Á +6 Ð÷ÐÒÓë×Ó 2026-03-17 6/300 2026-03-19 13:27 by houyaoxu
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û