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

sdlj8051

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

[½»Á÷] [תÌù]Ö±Ãæ MSLRH

Ê×ÏÈÒþ²Øod, ÔÚ GetCommandLineA ºÍ ZwQueryInformationProcessµÄÈë¿ÚÒÔ¼° GetProcAddressµÄ³ö¿Ú´¦£¨RETN 8£©Ï¶ϣ¬
²¢ºöÂÔËùÓÐÒì³£¡£
  ¼øÓÚ MSLRH µÄÖ÷ÒªÊÖ¶ÎÊÇ rdtsc, дһС¶Î¶ÔËü clear/restore ´úÂëÈçÏ£º
00468800   E8 00000000      CALL [MSLRH].00468805                    ;clear rdtsc ´úÂë¶ÎÈë¿Ú
00468805   5E               POP ESI                                 
00468806   83EE 10          SUB ESI,10                               ;¶¨Î»±£´æÏÂÃæÉêÇëµÄmemoryÖ¸ÕëµÄµØÖ·
00468809   AD               LODS DWORD PTR DS:[ESI]
0046880A   85C0             TEST EAX,EAX
0046880C   75 13            JNZ SHORT [MSLRH].00468821
0046880E   6A 04            PUSH 4
00468810   68 00100000      PUSH 1000
00468815   68 00400000      PUSH 4000
0046881A   6A 00            PUSH 0
0046881C   E8 E90FA177      CALL kernel32.VirtualAlloc               ;ÉêÇëMemoryÒÔ±£´æÐÞ¸ÄÁË rdtsc µÄµØÖ·
00468821   8946 FC          MOV DWORD PTR DS:[ESI-4],EAX
00468824   BF 00604500      MOV EDI,[MSLRH].
00468829   B9 00200100      MOV ECX,12000
0046882E   B0 0F            MOV AL,0F
00468830   F2:AE            REPNE SCAS BYTE PTR ES:[EDI]             ;²éÕÒ
00468832   75 1B            JNZ SHORT [MSLRH].0046884F
00468834   803F 31          CMP BYTE PTR DS:[EDI],31
00468837  ^75 F7            JNZ SHORT [MSLRH].00468830
00468839   8B16             MOV EDX,DWORD PTR DS:[ESI]               ;ÕÒµ½ rdtsc
0046883B   8B5E FC          MOV EBX,DWORD PTR DS:[ESI-4]
0046883E   8D1C93           LEA EBX,DWORD PTR DS:[EBX+EDX*4]
00468841   FF06             INC DWORD PTR DS:[ESI]                   ;¼ÆÊý
00468843   8D57 FF          LEA EDX,DWORD PTR DS:[EDI-1]
00468846   8913             MOV DWORD PTR DS:[EBX],EDX               ;±£´æµØÖ·
00468848   66:C702 9090     MOV WORD PTR DS:[EDX],9090               ;patch
0046884D  ^EB E1            JMP SHORT [MSLRH].00468830
0046884F   C3               RETN
;===============================================================================================
00468850   E8 00000000      CALL [MSLRH].00468855                    ;Restore rdtsc ´úÂë¶ÎÈë¿Ú
00468855   5E               POP ESI                                 
00468856   83EE 60          SUB ESI,60                              
00468859   AD               LODS DWORD PTR DS:[ESI]                  ;µÃµ½ÉÏÃæµÄmemoryÖ¸ÕëµÄµØÖ·
0046885A   8BC8             MOV ECX,EAX
0046885C   AD               LODS DWORD PTR DS:[ESI]                  ;µÃµ½Ð޸ļÆÊý
0046885D   91               XCHG EAX,ECX
0046885E   8BF0             MOV ESI,EAX
00468860   AD               LODS DWORD PTR DS:[ESI]                  ;µÃµ½Ð޸ĹýµÄµØÖ·
00468861   66:C700 0F31     MOV WORD PTR DS:[EAX],310F               ;»Ö¸´
00468866  ^E2 F8            LOOPD SHORT [MSLRH].00468860
00468868   C3               RETN
;===============================================================================================
00468869   60               PUSHAD                                   
0046886A   E8 91FFFFFF      CALL [MSLRH].00468800                    ;call to Clear rdtsc
0046886F   61               POPAD
00468870  -E9 8BD7FEFF      JMP [MSLRH].           ;ÿ´Î»¹ÒªÐÞ¸Äjmp µØÖ·£¨Á½´Î£©

00468877   60               PUSHAD
00468878   E8 D3FFFFFF      CALL [MSLRH].00468850                    ;call to Restore rdtsc
0046887D   61               POPAD
0046887E  -E9 A0D8FEFF      JMP [MSLRH].00456123                     ;ÓÃʱ»¹ÒªÐÞ¸Äjmp µØÖ·£¨Ò»´Î£©
;================================================================================================

Begin::
¹â±ê¶¨Î»ÓÚÉÏÃæ 00468869 Ctrl+ Gray * £¬F9ÔËÐУ¬Í£ÔÚGetProcAddressµÄ³ö¿Úµã£¬È¥µô´Ë´¦¶Ïµã£¬F7»Øµ½ÏÂÃæ

0045A5DE   8946 14          MOV DWORD PTR DS:[ESI+14],EAX            ; kernel32.OutputDebugStringA

Ctrl + B ËÑË÷0F31£¬¿´µ½ÒÔÏ´úÂ룬ÔÚ0045A81B϶ϣ¬
0045A80E   0F31             RDTSC                        
0045A810   2B0424           SUB EAX,DWORD PTR SS:[ESP]
0045A813   83C4 04          ADD ESP,4
0045A816   3D FFFFFF00      CMP EAX,0FFFFFF
0045A81B  ^0F87 D0B8FFFF    JA [MSLRH].004560F1                       ;ÕâÀï϶ϣ¬ÖжϺóתµ½ÏÂÒ»Ö¸Ápush esi£©
0045A821   56               PUSH ESI                                  ;ÕâÀïÖ´ÐÐ

F9ÔËÐе½ÉÏÃæ¶Ïµã´¦£¬¹â±êÒÆµ½ÏÂÒ»ÌõÓï¾ä PUSH ESIÉÏCtrl+ Gray *£¬ËÑË÷PUSH DWORD PTR FS:[30]£¬ÕÒµ½ºóÔÚËüÏÂÃæµÄ
ADD DWORD PTR DS:[EBX],0C8ÉÏ϶ϣ¬ÈçÏÂ

0045B1D0   75 28            JNZ SHORT [MSLRH].0045B1FA
0045B1D2   64:FF35 30000000 PUSH DWORD PTR FS:[30]
0045B1D9   58               POP EAX   
0045B1DA   0FB648 02        MOVZX ECX,BYTE PTR DS:[EAX+2]
0045B1DE   884E 0C          MOV BYTE PTR DS:[ESI+C],CL
0045B1E1   8B40 0C          MOV EAX,DWORD PTR DS:[EAX+C]
0045B1E4   8B40 0C          MOV EAX,DWORD PTR DS:[EAX+C]
0045B1E7   8D58 20          LEA EBX,DWORD PTR DS:[EAX+20]
0045B1EA   8D48 18          LEA ECX,DWORD PTR DS:[EAX+18]
0045B1ED   8103 C8000000    ADD DWORD PTR DS:[EBX],0C8               ;ÐÞ¸ÄÍ·²¿£¬´Ë´¦Ìø¹ý
0045B1F3   B8 00000000      MOV EAX,0
0045B1F8   0101             ADD DWORD PTR DS:[ECX],EAX
0045B1FA   33C9             XOR ECX,ECX
0045B1FC   E8 00000000      CALL [MSLRH].0045B201
0045B201   5F               POP EDI                                 
0045B202   81C7 C1090000    ADD EDI,9C1                              
0045B208   0FB60439         MOVZX EAX,BYTE PTR DS:[ECX+EDI]          /
0045B20C   83F0 11          XOR EAX,11                               |¶¯
0045B20F   880439           MOV BYTE PTR DS:[ECX+EDI],AL             |̬
0045B212   41               INC ECX                                  |½â
0045B213   81F9 521D0000    CMP ECX,1D52                             |Âë
0045B219  ^72 ED            JB SHORT [MSLRH].0045B208                \
0045B21B   EB 05            JMP SHORT [MSLRH].0045B222               ;ÕâÀï϶Ï


  ÖжϺóÇå³ý¶Ïµã²¢Ìø¹ý0045B1EDÓï¾ä¡£´Ó0045B1FC---0045B219F9ÊǽâÂ룬ÔÚ0045B21B϶ϣ¬F9ͣϺóÔÙ´ÎʹÓÃÎÒÃÇ
µÄClear rdtsc ´úÂ루עÒâÐ޸ķµ»ØµØÖ·¸Ä³É0045B21B£© go£¡³ÌÐòÖжÏÔÚOutputDebugStringAÈë¿Ú£¡µ±È»²»ÒªÖ´ÐÐÕâ
¸öº¯Êý£¬Ìøµ½³ö¿Ú F9£¬ÓÖÔÚGetCommandLineAÈë¿ÚÖжϣ¬µ¥²½Ö´Ðзµ»Øµ½³ÌÐò¿Õ¼ä£¬¿´µ½£º
0045EDD7   40               INC EAX
0045EDD8   33C9             XOR ECX,ECX
0045EDDA   41               INC ECX
0045EDDB   803C01 00        CMP BYTE PTR DS:[ECX+EAX],0
0045EDDF   74 0C            JE SHORT [MSLRH].0045EDED
0045EDE1   803C01 22        CMP BYTE PTR DS:[ECX+EAX],22
0045EDE5  ^75 F3            JNZ SHORT [MSLRH].0045EDDA
0045EDE7   C60401 00        MOV BYTE PTR DS:[ECX+EAX],0
0045EDEB  ^EB ED            JMP SHORT [MSLRH].0045EDDA
0045EDED   6A 00            PUSH 0
0045EDEF   6A 00            PUSH 0
0045EDF1   6A 03            PUSH 3
0045EDF3   6A 00            PUSH 0
0045EDF5   6A 00            PUSH 0                                   ;×¢ÒâÕâÀï ShareMode = 0
0045EDF7   68 00000080      PUSH 80000000
0045EDFC   50               PUSH EAX
0045EDFD   FF56 1C          CALL DWORD PTR DS:[ESI+1C]               ; kernel32.CreateFileA
0045EE00   EB 05            JMP SHORT [MSLRH].0045EE07

  ³ÌÐòÕâÀï´ò¿ªÎļþÊÇΪÁË anti ImportREC£¬×ªµ½0045EE00£¬F9£¬ÖжÏÔÚZwQueryInformationProcessÈë¿Ú£¬F8Öð²½·µ
»Øµ½³ÌÐòÖУ¬
0045F7CD   58               POP EAX
0045F7CE   8846 0E          MOV BYTE PTR DS:[ESI+E],AL               ;Ìø¹ý´Ë¾ä
0045F7D1   EB 05            JMP SHORT [MSLRH].0045F7D8

µ½0045F7CEºóÌø¹ý¡£

ÏÂÃæÎÒÃÇÒªÃæ¶Ô CRC £¬Ó¦¸Ã»Ö¸´Ìæ»»³É nop nop µÄ rdtscÁË£¬×÷ÈçϲÙ×÷£º
1)ÕÒµ½Õâ¶Î´úÂëµÄ½áÊø´¦£¬Ctrl + F  ÊäÈë or ebp,-1£¬ÕÒµ½ºóÔÚÆäÏÂÃæµÄ retn ÉÏ϶Ï
0046207B   83CD FF          OR EBP,FFFFFFFF
0046207E   68 ADE29F00      PUSH 9FE2AD
00462083   C3               RETN                                     ;ÕâÀï϶Ï

2)Ìøµ½00468877Ö´Ðлָ´´úÂ룬·µ»ØµØÖ·00456123¸Ä³É0045F7D1

Ok£¬F9£¬ÖжϷ¢ÉúÀ²£¬¿´µ½£º
0046207E   68 ADE29F00      PUSH 004528C0
00462083   C3               RETN                                     ;Çå³ý¶Ïµãµ¥²½

F7£¬¿´µ½unpack º¯ÊýÀ²£¡ÔÚËüµÄ³ö¿Ú£¨jmp 00413D56£©Ï¶ϣ¬ÖжϺóF7¾Í¡°·ÉÏò¹âÃ÷Ö®áÛ¡±¡£






¸½ 1£º[clear/restore ´úÂë]£¬ÓÐÐËȤ¾Í°ÑËüÕ³µ½00468800ÊÔÊÔ£¬×¢ÒâÎÒÕâÀïOSÊÇxp sp1£¬Èç¹ûÊÇÆäËûϵͳӦ¸Ã°Ñ
      0046881C´¦µÄ call VirtualAlloc Óï¾äÐÞÕýÒ»ÏÂ
E8 00 00 00 00 5E 83 EE 10 AD 85 C0 75 13 6A 04 68 00 10 00 00 68 00 40 00 00 6A 00 E8 E9 0F A1
77 89 46 FC BF 00 60 45 00 B9 00 20 01 00 B0 0F F2 AE 75 1B 80 3F 31 75 F7 8B 16 8B 5E FC 8D 1C
93 FF 06 8D 57 FF 89 13 66 C7 02 90 90 EB E1 C3 E8 00 00 00 00 5E 83 EE 60 AD 8B C8 AD 91 8B F0
AD 66 C7 00 0F 31 E2 F8 C3 60 E8 91 FF FF FF 61 E9 8B D7 FE FF 00 00 60 E8 D3 FF FF FF 61 E9 A0
D8 FE FF

¸½ 2£ºÓÐÅóÓÑÌáµ½ rdtsc µÄÎÊÌ⣬ÆäʵÎÒÒ²²»Ì«Çå³þ£¬±àÁ˸öСµÄÑÝʾ³ÌÐò£¬Äã¿ÉÒÔ£º
      1.Ö±½ÓÖ´ÐÐ
      2.ÓÃOD¼ÓÔØF9
      3.OD¼ÓÔØºóµ¥²½
      ¿´¿´ÓÐÉ¶Çø±ð

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

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ sdlj8051 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] ²ÄÁÏר˶331Çóµ÷¼Á +3 Ïʵ±Å£ 2026-03-24 3/150 2026-03-24 14:54 by sprinining
[¿¼ÑÐ] 306Çó0703µ÷¼ÁÒ»Ö¾Ô¸»ªÖÐʦ·¶ +9 Ö½Óãly 2026-03-21 10/500 2026-03-24 11:36 by 544594351
[¿¼ÑÐ] 284Çóµ÷¼Á +10 Zhao anqi 2026-03-22 10/500 2026-03-24 00:08 by Equinoxhua
[¿¼ÑÐ] ²ÄÁÏר˶ÕÒµ÷¼Á +3 ¹þ¹þ¹þºðºðºð¹þ 2026-03-23 3/150 2026-03-23 23:13 by peike
[¿¼ÑÐ] 384Çóµ÷¼Á +3 ×Óϵ²© 2026-03-22 6/300 2026-03-23 21:45 by ×Óϵ²©
[¿¼ÑÐ] 333Çóµ÷¼Á +3 ALULU4408 2026-03-23 3/150 2026-03-23 19:04 by macy2011
[¿¼ÑÐ] ¹¤¿Æ0856Çóµ÷¼Á +5 ãåÎö͡͡ 2026-03-21 5/250 2026-03-23 17:56 by º£ÉªÞ±-
[¿¼ÑÐ] 298Çóµ÷¼Á +8 Éϰ¶6666@ 2026-03-20 8/400 2026-03-23 11:02 by laoshidan
[¿¼ÑÐ] 0854µç×ÓÐÅÏ¢Çóµ÷¼Á +3 ¦Á____ 2026-03-22 3/150 2026-03-22 21:28 by zhq0425
[¿¼ÑÐ] ÉúÎïѧ071000 329·ÖÇóµ÷¼Á +5 ÎÒ°®ÉúÎïÉúÎﰮΠ2026-03-17 5/250 2026-03-22 16:42 by tcx007
[¿¼ÑÐ] ѰÕÒµ÷¼Á +4 ¾óǿâ? 2026-03-21 4/200 2026-03-22 16:14 by ľÍÐζ¶
[¿¼ÑÐ] Çóµ÷¼Á +5 Zhangbod 2026-03-21 7/350 2026-03-22 13:13 by Zhangbod
[¿¼ÑÐ] 303Çóµ÷¼Á +5 °²ÒäÁé 2026-03-22 6/300 2026-03-22 12:46 by ËØÑÕÇã³Ç1988
[¿¼ÑÐ] 266Çóµ÷¼Á +3 ÍÛºôºßºôºß 2026-03-20 3/150 2026-03-21 16:46 by barlinike
[¿¼ÑÐ] 0805²ÄÁÏ320Çóµ÷¼Á +3 ÉÎïÓï 2026-03-20 3/150 2026-03-21 15:46 by Î޼ʵIJÝÔ­
[¿¼ÑÐ] 332Çóµ÷¼Á +4 ydfyh 2026-03-17 4/200 2026-03-21 02:20 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸ Î÷±±´óѧ £¬070300»¯Ñ§Ñ§Ë¶£¬×Ü·Ö287£¬Ë«·ÇÒ»±¾£¬Çóµ÷¼Á¡£ +3 ³¿»èÏßÓëÐǺ£ 2026-03-18 3/150 2026-03-21 00:46 by JourneyLucky
[¿¼ÑÐ] 274Çóµ÷¼Á +10 S.H1 2026-03-18 10/500 2026-03-20 23:51 by JourneyLucky
[¿¼ÑÐ] 294Çóµ÷¼Á²ÄÁÏÓ뻯¹¤×¨Ë¶ +15 ݤÎÉ­ÁÖ 2026-03-18 15/750 2026-03-20 23:28 by JourneyLucky
[¿¼ÑÐ] Ò»Ö¾Ô¸Öк£Ñó²ÄÁϹ¤³Ìר˶330·ÖÇóµ÷¼Á +8 С²Ä»¯±¾¿Æ 2026-03-18 8/400 2026-03-20 23:16 by JourneyLucky
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û