| ²é¿´: 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 ] |
» ²ÂÄãϲ»¶
276Çóµ÷¼Á¡£ÓаëÄêµç³ØºÍ°ëÄê¸ß·Ö×Óʵϰ¾Àú
ÒѾÓÐ10È˻ظ´
Ò»Ö¾Ô¸ÄϺ½²ÄÁÏר317·ÖÇóµ÷¼Á
ÒѾÓÐ4È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
ÉúÎïѧѧ˶Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
284Çóµ÷¼Á
ÒѾÓÐ10È˻ظ´
һ־Ըɽ¶«´óѧҩѧѧ˶Çóµ÷¼Á
ÒѾÓÐ4È˻ظ´
07»¯Ñ§280·ÖÇóµ÷¼Á
ÒѾÓÐ4È˻ظ´
298-Ò»Ö¾Ô¸Öйúũҵ´óѧ-Çóµ÷¼Á
ÒѾÓÐ12È˻ظ´
Çó²ÄÁÏ£¬»·¾³×¨Òµµ÷¼Á
ÒѾÓÐ3È˻ظ´
335Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´













»Ø¸´´ËÂ¥
40