3.2.VMPÍâ¿Çº¯Êý»ñÈ¡
00437817 . 68 B59DF9FC PUSH FCF99DB5
ÔÚ00437817°Ñ³ÌÐòÀ¹½ØÏÂÀ´ºó£¬ºÍTLSÏàËÆ£¬VMP¿ªÊ¼³õʼ»¯VMµÈµÈ²Ù×÷£¬ÕâÀï²»ÔÙ¸´Êö¡£VMÔËÐкó»¹ÊÇÏȽøÐÐ0000Óë[00427D51]ÖеÄ0000½øÐбȽÏ+Ìøת¡£½ÓÏÂÀ´°ÑVM¶ÑÕ»ÖØзÖÅäºÍTLSÀïµÄÏàËÆ£º
0013FF8C 0013FF98
0013FF90 0013FF98
VM_NANDdw
0013FF90 FFEC0067 g.
0013FF94 00000800 ...
VM_ADDdw_EBPSTACK
0013FF94 FFEC0867 g
VM_PUSHdw_EBP
0013FF90 0013FF94 .
0013FF94 FFEC0867 g
VM_COPYdw_EBPSTACK
0013FF90 FFEC0867 g
0013FF94 FFEC0867 g
VM_NANDdw
0013FF94 0013F798 . ; UNICODE "er"
VM_MOVdw_EBPreg_EBPSTACK
αָÁî½øÐÐÁËÒ»´Î¼õ·¨²Ù×÷0013FF98-800=0013F798£¬×îÖÕ°Ñ0013F798¸³Öµ¸øEBPSTACK£¬ÔÚÕâÌõÖ¸ÁîÀï½øÐеı߽ç¼ì²éÖУ¬½«´¥·¢Õâ¸öVM¶ÑÕ»µÄÖØзÖÅ䣨ÏêÇéÇë²éÔÄ1.2.VM¶ÑÕ»£©
À´µ½ÐµÄVM¶ÑÕ»0013F798ÖУ¬EF±ê־λҲ½«ÔٴεÄÖÃ1£¬Ò»Çж¼ºÍTLSÀïÏàͬ¡£
3.2.1.¶¯Ì¬Á´½Ó¿â
½ÓÏÂÀ´¾ÍÒª½øÈë´ó¹æÄ£µÄanti¼ì²âÁË£¬ÔÚ½øÈë֮ǰ»¹ÓÐÒ»¸ö×¼±¸¹¤×÷£¬ÔÚ½ÓÏÂÀ´µÄʹÓÃÖУ¬ÐèҪʹÓõ½Ò»¸öbuffer£¨»º³åÇø£©ÓÃÓÚ´æ´¢APIº¯ÊýµÄ·µ»ØÖµ£¬¶¯Ì¬Á´½Ó¿âÃû×ֵȵÈÄÚÈÝ£¬VM²ÉÓõķ½Ê½ÊÇ0013FF98-10=0013FF88£¬ÕâÑù¾ÍÔÚ0013FF88----0013FF98Ö®¼ä·ÖÅäºÃÁËbuffer£¬4¸ödword£º
0013FF88 00000212 ..
0013FF8C 00000282 ..
0013FF90 00000202 ..
0013FF94 0013F798 . ; UNICODE "er"
0013FF98
ÔÚºóÃæµÄanti¼ì²âÖУ¬ºÜ¶à¶¼»áʹÓõ½Õâ¸öbuffer¿Õ¼ä¡£½ÓÏÂÀ´¾Í¿ªÊ¼ÍùbufferÄÚдÈë³£Á¿Êý¾Ý£º
0013F790 0013FF88 .
0013F794 6E72656B kern
VM_MOVdw_MEMORYdw_EBPSTACKdw £»Ð´Èëkern
VM_PUSHdw_IMMEDIATEdw
0013F78C 0013FF88 .
0013F790 00000004 ...
0013F794 32336C65 el32
VM_ADDdw_EBPSTACK £»buffer´æ´¢µØÖ·+4
0013F790 0013FF8C .
0013F794 32336C65 el32
VM_MOVdw_MEMORYdw_EBPSTACKdw £»Ð´Èëel32
VM_PUSHdw_IMMEDIATEdw
0013F78C 00000008 ...
0013F790 0013FF88 .
0013F794 6C6C642E .dll
VM_ADDdw_EBPSTACK £»buffer´æ´¢µØÖ·+8
0013F790 0013FF90 .
0013F794 6C6C642E .dll
VM_MOVdw_MEMORYdw_EBPSTACKdw £»Ð´Èë.dll
VM_PUSHdw_IMMEDIATEdw
0013F78C 0000000C ....
0013F790 0013FF88 .
0013F794 00000000 ....
VM_ADDdw_EBPSTACK £»buffer´æ´¢µØÖ·+C
0013F790 0013FF94 .
0013F794 00000000 ....
VM_MOVdw_MEMORYdw_EBPSTACKdw £»Ð´Èë00000000
ÏÖÔÚÎÒÃÇÀ´¿´¿´bufferÖÐÕûÌåдÈëµÄÊý¾Ý£º
0013FF88 6E72656B kern
0013FF8C 32336C65 el32
0013FF90 6C6C642E .dll
0013FF94 00000000 ....
kernel32.dllÁ´½Ó¿â£¬¶àôÊìϤµÄ×ÖÑÛѽ£¬VMдÈëÕâ¸öÊý¾Ýºó£¬»á¿ªÊ¼½øÐÐÒ»´ÎVM_JMPµÄÏà¹Ø²Ù×÷£¬×¼±¸Ìøתµ½Ðµĵط½¼ÌÐø£¬ÏÂÃæÊÇVM_JMPαָÁîµÄÊý¾Ý£º
0013F75C 0042816C lB.
0013F760 00000000 ....
0013F764 7FF224A8 $
0013F768 7C92E514 | ; ntdll.KiFastSystemCallRet
0013F76C 7FFD8000 .
0013F770 00000202 ..
0013F774 00000000 ....
0013F778 0013FFB0 .
0013F77C 00000202 ..
0013F780 0013FF98 .
0013F784 0013FF88 . ; ASCII "kernel32.dll"
0013F788 7FF224A8 $
0013F78C 0013FF88 . ; ASCII "kernel32.dll"
0013F790 00000282 ..
0013F794 004389FB C. ; Entry point of procedure
VM_JMP
×îÖÕVMÖÕÓÚÀ´µ½ANTI¼ì²âºÍVMºóÆÚ½«Òª²»¶Ïµ÷ÓõÄαָÁîVM_EBPSTACK_CALL£¬ÓÃÓÚAPIº¯ÊýºÍ³ÌÐò×ÔÉí¹ý³Ìµ÷Óã¬Á½ÕߵIJÙ×÷¶¼ÊÇÀ뿪ÐéÄâ»ú»·¾³µÄ¡£APIº¯Êýµ÷Óý«½øÈëϵͳ¿Õ¼ä£¬±ØÈ»ÐèÒªÀ뿪ÐéÄâ»ú»·¾³£¬¶øÕâÀïµÄ¹ý³Ìµ÷ÓÃÒ²ÊÇÀ뿪ÐéÄâ»ú»·¾³µÄ¡£À뿪ÐéÄâ»ú»·¾³ÆäʵºÜ¼òµ¥£¬Ö»ÐèÒª¶ÑÕ»Éϱ任һÏ£¬±¾À´¶¼ÊÇÔÚVM¶ÑÕ»µÄÊý¾Ý²ÎÊýÐèÒªÒƶ¯µ½ESPÖ¸ÕëµÄ¶ÑÕ»¿Õ¼äÄÚ£¬Õý³£µÄ³ÌÐòÖ´ÐÐËüÊÇʹÓÃESPÖ¸ÕëµÄ£¬²»¶®µÃµ½VM¶ÑÕ»ÄÚÈ¡Êý¾Ý¡£
0013F78C 00428275 uB. ; RETURN from NOTEPAD.00436E08 to NOTEPAD.00428275
0013F790 0013FF88 . ; ASCII "kernel32.dll"
0013F794 004389FB C. ; Entry point of procedure
VM_EBPSTACK_CALL
¹ØÓÚÕâÌõαָÁÎÒÔÙÀ´Ïêϸ½â˵һÏ£¬Ê×ÏÈËüͨ¹ýVMµÄESIÊý¾Ý»ñµÃÕâ´Îº¯Êýµ÷ÓõIJÎÊý¸öÊý¡£Õâ´ÎËüµÄ²ÎÊýÊÇ1¸ö£¬È»ºó°Ñ1¸øECX£¬ÏÂÃæÊÇÕâÌõαָÁîÄÚ²¿»ñÈ¡²ÎÊýµÄÖ¸Á
0043E0C6 87448D 00 XCHG DWORD PTR SS:[ECX*4+EBP],EAX ; *
0043E0CD 894424 24 MOV DWORD PTR SS:[ESP+24],EAX ; *
EBP=0013F78C£¬ÔÚÑ»·ÀïÃæͨ¹ý[ECX*4+EBP]µÄ·½Ê½£¬ECXµÄÖµ¾Í¾ö¶¨ÁËҪȡ³ö¶àÉÙ¸ö²ÎÊý£¬È¡³öµÄ²ÎÊýѹÈëESPÖ¸ÏòµÄ¶ÑÕ»£¬ÔÚÕâÀïÏÔʾµÄÊÇ[ESP+24]£¬24µÄÆ«ÒÆÊÇÒòΪÓл¨Ö¸Á²»Óÿ¼ÂÇ¡£Ò»ÇÐ×¼±¸ºÃºó£¬¾ÍÌøתµ½00428275¡£×îºóµÄÌøתָÁîÊý¾Ý½ØÈ¡£º
$ ==> 00428275 uB. ; RETURN from NOTEPAD.00436E08 to NOTEPAD.00428275
$+4 9AF17581 u
$+8 14415549 IUA
$+C 0013F6D8 .
$+10 00428137 7B.
$+14 0013F78C .
$+18 0013F6C0 .
$+1C 80A6D7DB צ
$+20 0043EF77 wC.
$+24 00000000 ....
$+28 00428275 uB. ; RETURN from NOTEPAD.00436E08 to NOTEPAD.00428275
$+2C 0043EED7 C.
$+30 00000246 F..
$+34 0043EED7 C.
$+38 00428275 uB. ; RETURN from NOTEPAD.00436E08 to NOTEPAD.00428275
$+3C 0043EEB7 C. ; RETURN from NOTEPAD.0043D111 to NOTEPAD.0043EEB7 £»Ö´ÐÐÕâÌõÖ¸Áȥ³ý38À¬»øÊý¾ÝºóÌøתÊý¾Ý
$+40 0013FF88 . ; ASCII "kernel32.dll"
0043DE10 C2 3800 RETN 38 ; Call Enter
¼ÈÈ»ÊÇÌøתµ½00428275£¬ÎÒÃÇÀ´¿´¿´00428275´¦ÊÇʲôÑùµÄ´úÂ룬ÄÇÀïÖ»ÓÐÒ»ÌõÌøתָÁ
00428275 -/FF25 E47D4300 JMP DWORD PTR DS:[<&KERNEL32.LoadLibrary
ÏÖÔھͺÜÇåÎúÁË£¬Õâ´ÎcallÊÇʹÓÃLoadLibraryº¯ÊýÀ´»ñÈ¡Kernel32.dllÁ´½Ó¿â¾ä±ú¡£ÎÒÃÇÔÚcall return address´¦0043EEB7´¦Ï¶ϣ¬È»ºó¾Í¿ÉÒÔF9ÔËÐУ¬Ö±½ÓÀ¹½ØÏÂϵͳµ÷ÓýáÊøºó·µ»ØµÄ½á¹ûEAX=7C800000¡£ÏÖÔÚÓÖÒª»Øµ½ÐéÄâ»úÖÐÁË£¬·´¹ýÀ´¾ÍÐèÒª°ÑÊý¾Ý·Å»Øµ½VM¶ÑÕ»ÖУ¬°´ÕÕVMÔËÐз½Ê½ÈÃËüÔÚVM¶ÑÕ»ÖвÙ×÷¡£
ÔÚ·µ»ØVMµÄ¹ý³ÌÖУ¬Ê×ÏÈÊÇ°ÑÔÀ´EBPSTACKÖеIJÎÊýÕ¼¾ÝµÄλÖÃÊÍ·Å£º
0043ED41 8B4D FC MOV ECX,DWORD PTR SS:[EBP-4] ; *ÕâÀïÊDZ£´æµÄ±¾´ÎcallµÄ²ÎÊý¸öÊý
0043ED46 8D6C8D 00 LEA EBP,[ECX*4+EBP] ; *Êͷŵô¶ÔÓ¦µÄ¿Õ¼ä
°ÑEAXÖеĽá¹û±£´æµ½EBPSTACK
EAX=7C800000
0043ED50 8945 00 MOV DWORD PTR SS:[EBP],EAX ; *
0013F790 7C800000 ..|
·µ»ØVMºó£¬½øÐÐÒ»´ÎVM_JMPµ÷ÓÃ
3.2.2.Ñ»·
·ÖÅäеÄbuffer¿Õ¼ä£¬0013FF88-10=0013FF78ÔÙ·ÖÅä4¸ödwordµÄ¿Õ¼ä³öÀ´£¬Ê¹ÓÃÉÏÃæµÄ·½Ê½ÍùеÄbuffer¿Õ¼äдÈëÊý¾Ý¡£4¸ödwordдÈëÍê³Éºóbuffer¿Õ¼äµÄÊý¾ÝÈçÏ£º
0013FF78 8D7E029C ~
0013FF7C 8F81160C .
0013FF80 048DFF7E ~
0013FF84 00C78D05 .
0013FF88 6E72656B kern
0013FF8C 32336C65 el32
0013FF90 6C6C642E .dll
0013FF94 00000000 ....
µ÷ÓÃVM_JMPÌøתµ½Ðµĵط½£¬½ÓÏÂÀ´ºÁÎÞÒÉÎʵÄÊǼÌÐø½øÐÐcallµ÷ÓÃ
0013F788 00421C48 HB. ; Entry point of procedure
0013F78C 7C800000 ..|
0013F790 0013FF78 x.
0013F794 00427C45 E|B.
VM_EBPSTACK_CALL
Õâ´ÎÊÇ´ø×Åkernel32.dllµÄ¾ä±ú7C800000ºÍ0013FF78Á½¸ö²ÎÊýµ÷ÓÃ00421C48£¬Õâ´ÎÊÇÒ»¸ö¹ý³Ìµ÷Óã¬ÎÒÃÇÏÂÃæÀ´¿´00421C48µÄ´úÂ룺
00421C4E 55 PUSH EBP ; *
00421C58 8D6C24 04 LEA EBP,[ESP+4] ; *ÏÂÃæҪʹÓÃEBPÀ´¶ÁÈ¡²ÎÊý£¬Ïȱ£´æºó¶¨Î»
00421C76 56 PUSH ESI ; *
00421C80 893C24 MOV DWORD PTR SS:[ESP],EDI ; *
00421C85 53 PUSH EBX ; *
00421C8C 52 PUSH EDX ; *
¸Ã±£´æµÄ±£´æÆðÀ´
00421C92 8B45 08 MOV EAX,DWORD PTR SS:[EBP+8] ; *¶ÁÈ¡µÚÒ»¸ö²ÎÊýkernel32.dll¾ä±ú7C800000
½ÓÏÂÀ´µÄ²¿·ÖºÍTLSÖеÄPEÎļþÍ·¶¨Î»ÏàËÆ£¬²»¹ýTLSÊÇʹÓÃαָÁîʵÏֵģ¬ÕâÀïÓó£¹æÖ¸ÁîʵÏÖ¡£
00436B42 8B70 3C MOV ESI,DWORD PTR DS:[EAX+3C] ; *
00436B4E 01C6 ADD ESI,EAX ; *
00436B5C 8B56 78 MOV EDX,DWORD PTR DS:[ESI+78] ; * 78Æ«ÒÆÊǵ¼³ö±í½á¹¹Î»Öã¬kernel32.dllµÄµ¼³ö±íRVA
0043A773 01C2 ADD EDX,EAX ; * »ñµÃµ¼³ö±í¿ªÊ¼Î»ÖÃ7C80262C
0043A77D 8B4E 7C MOV ECX,DWORD PTR DS:[ESI+7C] ; * 78Æ«ÒÆÊǵ¼³ö±í½á¹¹Î»Öã¬kernel32.dllµÄµ¼³ö±í´óС
00435CB9 01D1 ADD ECX,EDX ; * »ñµÃµ¼³ö±í½áÊøλÖÃ7C809345
00435CBE 894D F0 MOV DWORD PTR SS:[EBP-10],ECX ; * ±£´æÆðÀ´
00435CCB 8B4D 0C MOV ECX,DWORD PTR SS:[EBP+0C] ; * ÕâÀï»ñÈ¡µÄÊǵڶþ¸ö²ÎÊý0013FF78
0041EE80 8B7A 24 MOV EDI,DWORD PTR DS:[EDX+24] ; * µ¼³ö±í24Æ«ÒƵÄÊÇAddressOfNamesOrdinals Ö¸ÏòÊäÈëÐòÁкÅÊý×é
0041EE8B 01C7 ADD EDI,EAX ; * ÊäÈëÐòÁкÅÊý×éµØÖ·7C804424
0041EE8F 8B5A 20 MOV EBX,DWORD PTR DS:[EDX+20] ; * µ¼³ö±í20Æ«ÒƵÄÊÇAddressOfNames º¯ÊýÃû×ÖµÄÖ¸ÕëµÄµØÖ·
0041EE9B 01C3 ADD EBX,EAX ; * º¯ÊýÃû×ÖµÄÖ¸ÕëµØÖ·7C80353C
0041EEB1 8B4A 18 MOV ECX,DWORD PTR DS:[EDX+18] ; * µ¼³ö±í18Æ«ÒƵÄÊÇNumberOfNames AddressOfNamesÊý×éµÄÏîÊý
Ò»ÇÐ×¼±¸¾ÍÐ÷¿ªÊ¼¶ÁÈ¡µ¼³ö±íº¯Êý±È½Ï
0041EED5 83E9 01 SUB ECX,1 ; * ¼ÆÊýÆ÷µÚ1¸öword¼õÈ¥
0041EEDF 894D FC MOV DWORD PTR SS:[EBP-4],ECX ; *
0041EEF0 8B4D F8 MOV ECX,DWORD PTR SS:[EBP-8] ; * Õû¸ö³ÌÐòµÄÔØÈëÆ«ÒÆÁ¿
00428D66 034D FC ADD ECX,DWORD PTR SS:[EBP-4] ; *
00428D6B D1E9 SHR ECX,1 ; * ¼ÆÊýÆ÷³ýÒÔ2£¬°´ÕÕword·½Ê½
00428D72 8B3C8B MOV EDI,DWORD PTR DS:[ECX*4+EBX] ; *
00428514 /01C7 ADD EDI,EAX ; *
EDI 7C806FB2 ASCII "GetVDMCurrentDirectories"£¬µ½ÕâÀï¾ÍµÃµ½APIº¯ÊýÃûÁË
0042851E 8B75 0C MOV ESI,DWORD PTR SS:[EBP+0C] ; * 0013FF78
0043A156 AC LODS BYTE PTR DS:[ESI] ; *
0043A159 F6D0 NOT AL ; *
0043A165 F6D8 NEG AL ; *
00435255 /FEC0 INC AL ; *
0043525C 34 37 XOR AL,37 ; *
0043552A FEC0 INC AL ; *
00435530 D0C0 ROL AL,1 ; *
0041E634 FEC0 INC AL ; *
½ÓÏÂÀ´¾ÍÊDZȽÏ
004388E1 3A07 CMP AL,BYTE PTR DS:[EDI] ; *
004388E7 ^\0F8C 35EAFFFF JL 00437322 ; *
004388ED 8D7F 01 LEA EDI,[EDI+1] ; *
004219F2 /0F87 9A6B0100 JA 00438592 ; *
00425FB3 3B4D FC CMP ECX,DWORD PTR SS:[EBP-4] ; *
00425FC4 83C1 01 ADD ECX,1 ; *
00425FCD 894D F8 MOV DWORD PTR SS:[EBP-8],ECX ; *
×¢ÒâºÃËüµÄÌøת·½Ê½ÊÇͨ¹ýJLºÍJA·½Ê½Ò»ÆðʵÏÖ£¬ÉÏÃæµÄÊDZȽÏʧ°ÜºóµÄÑ»·¡£Èç¹ûÏàͬµÄ»°£¬JLºÍJAÕâÀﶼ²»ÄÜÌøת£¬ÎÒÃÇÈ¥JAµÄÏÂÒ»ÌõÖ¸ÁîÀ¹½Ø±È½ÏÏàͬµÄÇé¿ö£º
004219F2 /0F87 9A6B0100 JA 00438592 ; *
004219F8 |E8 2B480000 CALL 00426228 £»F4ÕâÀï
ÏÖÔÚÎÒÃǾÍÕÒµ½µÚÒ»¸ö×Öĸ±È½ÏÏàͬµÄº¯ÊýÊÇVirtualAlloc
0042968E 807F FF 00 CMP BYTE PTR DS:[EDI-1],0 ; *
0043712D ^\0F85 F213FFFF JNE 00428525 ; *
³öÀ´µ½ÍâÑ»·¿´ÊDz»ÊÇÒѾ±È½Ïµ½Î²²¿£¬»¹Ã»ÓоͻØÈ¥±È½ÏµÚ2¸ö×Ö½Ú£¬ÎÒÃÇÖ±½ÓÌø³öÑ»·¿´½á¹û
0043712D ^\0F85 F213FFFF JNE 00428525 ; *
00437133 0FBAEF 16 BTS EDI,16 £»F4ÕâÀËùÓÐ×Ö½Ú¶¼ÏàͬµÄº¯ÊýÊÇVirtualProtect
µ½ÕâÀï±È½ÏÍê±Ï£¬ÒªÕҵĺ¯ÊýÊÇVirtualProtect
0043C9C1 8B7A 24 MOV EDI,DWORD PTR DS:[EDX+24] ; * AddressOfNamesOrdinals
0043C9C7 01C7 ADD EDI,EAX ; *
0043C9CC 0FB70C4F MOVZX ECX,WORD PTR DS:[ECX*2+EDI] ; *
0043C9D6 29CF SUB EDI,ECX ; *
0043C9DB 8B7A 1C MOV EDI,DWORD PTR DS:[EDX+1C] ; * AddressOfFunctions
0043C9E3 01C7 ADD EDI,EAX ; *
0042862B /8B3C8F MOV EDI,DWORD PTR DS:[ECX*4+EDI] ; *
00438A9F \01F8 ADD EAX,EDI ; *
½â˵²»¹ýÀ´ÁË£¬´ó¼Ò²»Ã÷°×µÄÈ¥¸´Ï°PEÎļþ¸ñʽµÄµ¼³ö±í²¿·Ö°É£¬ÉÏÃæµÄÖ¸Áî½áÊøºó£¬µÃµ½ÁËVirtualProtectµÄϵͳµØÖ·7C801AD4
0043EEB7 89D1 MOV ECX,EDX ; call return address
»Øµ½call·µ»ØµØÖ·£¬Êý¾ÝѹÈëEBPSTACKÕâÀïµÈÓÚ0013F790
0013F790 7C801AD4 | ; kernel32.VirtualProtect
0013F794 00427C45 E|B.
ÎÒÃÇÔÚƽʱµÄ´úÂëÖÐÒ²¾³£¿ÉÒÔ¿´µ½£¬callµ÷ÓÃÍê±Ïºó¼ì²âÒ»ÏÂÊDz»ÊÇ0£¬VMPÒ²ÊÇÒ»ÑùµÄ£¬Ö»ÊÇÓÃαָÁîÀ´ÊµÏÖ
0013F78C 7C801AD4 | ; kernel32.VirtualProtect
0013F790 7C801AD4 | ; kernel32.VirtualProtect
0013F794 00427C45 E|B.
VM_NANDdw
0013F790 837FE52B +
0013F794 00427C45 E|B.
VM_PUSHdw_EBP
VM_COPYdw_EBPSTACK
0013F78C 837FE52B +
0013F790 837FE52B +
0013F794 00427C45 E|B.
VM_NANDdw
0013F790 7C801AD4 | ; kernel32.VirtualProtect
0013F794 00427C45 E|B.
Á½¸öNOTÖ¸ÁîΪµÄ¾ÍÊÇÒªËüµÄ±ê־λÀ´½øÐÐZFλ¼ì²â+ÌøתVM_JMPÖ¸Áî
½ÓÏÂÀ´VM½«»á½øÐÐÒ»´ÎCCÂë¼ì²â£¬¿´¿´VirtualProtectº¯Êý¿ªÊ¼µØÖ·ÓÐûÓÐ϶ϵ㣬´Ë²¿·Ö²»ÔÙ¸´Êö£¬¼Ç¼¹Ø¼üÊý¾Ý£º
0013F78C 1AD4
0013F790 00CC7C80 |.
0013F794 00427C45 E|B.
¶ÁÈ¡³ö7C801AD4º¯ÊýµÄÊ××Ö½Ú£¬ÓëCCÂë½øÐÐÒ»´Î¼õ·¨²Ù×÷£¬»ñÈ¡ÆäÖеıê־룬½øÐÐZFλ¼ì²â+Ìøת
ÔÚÇ°ÃæµÄEBPSTACKÖÐÒ»Ö±¸½´ø×Å00427C45Õâ¸öÊý¾Ý¶øûÓж¯¾²£¬ÏÖÔÚÔÚÈ·¶¨Ò»Çа²È«Ã»ÓÐÎÊÌ⣬VMÔٴε÷ÓÃVM_JMP¿ØÖÆVMÌøתµ½00427C45λÖã¬ÏÂÃæÎÒÃǾÍÀ´¿´¿´00427C45ÊǸÉʲô²Ù×÷µÄ
0013F790 C9058E9B
0013F794 7C801AD4 | ; kernel32.VirtualProtect
VM_ADDdw_EBPSTACK
0013F794 4585A96F oE
0013F78C 0013F798
0013F790 00000020
0013F794 4585A96F oE
VM_ADDdw_EBPSTACK
0013F790 0013F7B8 .
0013F794 4585A96F oE
VM_MOVb_MEMORYb_EBPSTACKb
ÏÖÔÚÎÒÃÇ¿´Çå³þ£¬00427C45Õâ¸öVM×Ó³ÌÐò¹ý³ÌÊǰѵõ½µÄϵͳµØÖ·¼ÓÃÜÆðÀ´´æ·Å£¬²»ÈÃËü°´ÕÕÃ÷ÂëµÄ·½Ê½´æ´¢¡£µ½ÕâÀïÍê³ÉÁËÒ»¸öϵͳº¯Êý»ñÈ¡µ½´æ´¢µÄÈ«¹ý³Ì£¬½ÓÏÂÀ´³ÌÐò»Øµ½ 3.2.2.Ñ»· µÄ¿ªÍ·£¬¿ªÊ¼Ðµĺ¯Êý»ñÈ¡£¬´ÓÍù0013FF78ѹÈë4¸ödword¿ªÊ¼£¬½ÓמÍÍ˳ö00427C45Õâ¸öVM×Ó³ÌÐò¹ý³Ì¡£µ±kernel32.dll½áÊøºóÓÖ½øÈëÏÂÒ»¸öDLLÎļþ£¬³ÌÐò»Øµ½ 3.2.1.¶¯Ì¬Á´½Ó¿â ÕâÒ»²¿·Ö²»ÔÙ¸´Êö£¬½ÓÏÂÀ´Ö±½ÓÕ³Ìù»ñÈ¡µÄº¯Êý»ã×Ü
kernel32.dll£º
0013F780 7C801AD4 | ; kernel32.VirtualProtect £»¼ÓÃܺó0013F7B8 4585A96F oE
0013F790 7C809AF1 | ; kernel32.VirtualAlloc £»¼ÓÃܺó0013F7C0 7ED1C93F ?~
0013F790 7C801A28 (| ; kernel32.CreateFileA £»¼ÓÃܺó0013F7DC 45E78F5A ZE
0013F778 7C809BE7 盀| ; kernel32.CloseHandle £»¼ÓÃܺó0013F7D8 877DBA31 1}
0013F790 7C810B17 | ; kernel32.GetFileSize £»¼ÓÃܺó0013F7E4 05F84F8C O
0013F790 7C80950A .| ; kernel32.CreateFileMappingA £»¼ÓÃܺó0013F7F4 8B5A496C lIZ
0013F790 7C80B9A5 | ; kernel32.MapViewOfFile £»¼ÓÃܺó0013F7C4 C2DC4B94 K
0013F790 7C80BA14 | ; kernel32.UnmapViewOfFile £»¼ÓÃܺó0013F798 230A53C4 S.#
0013F790 7C80B741 A| ; kernel32.GetModuleHandleA £»¼ÓÃܺó0013F7CC 058C4D40 @M
0013F794 7C813133 31| ; kernel32.IsDebuggerPresent £»¼ÓÃܺó0013F7EC 9C056A3F ?j
0013F794 7C85AAF2 | ; kernel32.CheckRemoteDebuggerPresent £»¼ÓÃܺó0013F7F8 77ED7C33 3|w
0013F790 7C863FCA ?| ; kernel32.UnhandledExceptionFilter £»¼ÓÃܺó0013F7D0 35B5E8D3 5
ntdll.dll£º
0013F794 7C92D7FE ×’| ; ntdll.ZwQueryInformationProcess £»¼ÓÃܺó0013F7B0 D324C5FE $
0013F794 7C92DCAE Ü’| ; ntdll.NtSetInformationThread £»¼ÓÃܺó0013F7A8 E42D06B3 -
0013F794 7C92D92E .Ù’| ; ntdll.NtQuerySystemInformation £»Ã÷Âë´æ´¢00425E60 7C92D92Eµ½ÕâÀïËùÓеÄÍâ¿Çº¯Êý»ñÈ¡½áÊø£¬VMÖ´ÐÐVM_JMPÌøת×ߣ¬ÓÉÓÚ×îºóµÄ1Ìõϵͳº¯ÊýµØÖ·ÊÇ´æ´¢ÔÚÄÚ´æÖУ¬00425E60½øÐмӷ¨²Ù×÷£¬²»ÈÃËûÒÔÃ÷Âë³öÏÖ£¬Í¬Ê±VM×÷Ϊ¶ÑÕ»ÐéÄâ»ú£¬»¹ÊÇϲ»¶¶ÑÕ»µÄ´æ´¢·½Ê½£¬ËùÒÔÔÙÕÒÒ»¸ö¶ÑÕ»¿Õ¼ä0013F7E8£¬°Ñ°µÂëµØÖ··Å½øÈ¥£º
0013F790 03DDEA1E
0013F794 00425E64 d^B.
VM_ADDdw_EBPSTACK
0013F794 04204882 H
0013F78C 00000050 P...
0013F790 0013F798 .
0013F794 04204882 H
VM_ADDdw_EBPSTACK
0013F790 0013F7E8 .
0013F794 04204882 H
VM_MOVdw_MEMORYdw_EBPSTACKdw