ÓÃOllydbgÊÖÍÑPECompactË«²ã¼Ó¿ÇµÄDLL ££Psinthk.dll
¡¾×÷ÕßÉùÃ÷¡¿£º±¾ÎÄÍêÈ«²Î¿¼fly´óÏÀµÄÍÑÎÄ¡£ÎÄÖÐÐí¶à×¢Ê;ù³ö×Ôfly´óÏÀµÄÍÑÎÄ¡£²»ÔÙÒ»Ò»×¢³ö¡£ÔÚ´Ëл¹ýfly´óÏÀ£¡
¡¾µ÷ÊÔ»·¾³¡¿£ºWin2003¡¢Ollydbg1.10C¡¢WinHex¡¢PEiD¡¢LordPE¡¢ImportREC
¡¾Íѿǹý³Ì¡¿£º
¸½¼þÖеÄDLLÎļþÊÇһλÐֵܷÅÔÚÂÛ̳Éϵģ¬ÎÒÒ²²»ÖªÏÂÔØÁ´½ÓÁË¡£ËùÒÔÔÙ´ÎÌù³öÀ´¡£
ÓÃPEiD¼ì²éΪPECompact 1.68 - 1.84 - Jeremy Collake¼Ó¿Ç¡£
ºÃ£¬ÓÃODÔØÈ뿪ʼÍÑ¿Ç¡£
Ò»¡¢DUMP
1000B000 > /EB 06 JMP SHORT Psinthk.1000B008/////ÔØÈëÍ£ÔÚ´Ë´¦¡£
1000B002 |68 00600000 PUSH 6000/////Èë¿ÚRVA¡£
1000B007 |C3 RETN
1000B008 \9C PUSHFD
1000B009 60 PUSHAD
1000B00A E8 02000000 CALL Psinthk.1000B011
1000B00F 33C0 XOR EAX,EAX
1000B011 8BC4 MOV EAX,ESP
1000B013 83C0 04 ADD EAX,4
1000B016 93 XCHG EAX,EBX
1000B017 8BE3 MOV ESP,EBX
1000B019 8B5B FC MOV EBX,DWORD PTR DS:[EBX-4]
1000B01C 81EB 3F904000 SUB EBX,40903F
1000B022 87DD XCHG EBP,EBX
ÒòΪÕâ¸ö¶«¶«ÊÇPECompact 2.0ÒÔÇ°µÄ°æ±¾¼Ó¿Ç£¬ËùÒÔOEPºÜºÃÕÒ£¬¿ÇÈë¿ÚµÄµÚ2ÌõÖ¸ÁîPUSHµÄ¾ÍÊÇOEPµÄRVAµØÖ·¡£
OEP=10000000 + 6000=10006000
Ö±½ÓÔÚ10006000´¦Ï Ӳ¼þÖ´ÐÐ ¶Ïµã£¬»òÕßÏÂÄÚ´æ¶Ïµã£¬F9ÔËÐоÍÖжÏÔÚOEPÁË¡£
10006000 /EB 06 JMP SHORT Psinthk.10006008//////À´µ½´Ë´¦£¡
10006002 |68 4B160000 PUSH 164B/////µÚ¶þ²ãÈë¿ÚRVA¡£
10006007 |C3 RETN
10006008 \9C PUSHFD
10006009 60 PUSHAD
1000600A E8 02000000 CALL Psinthk.10006011
1000600F 33C0 XOR EAX,EAX
10006011 8BC4 MOV EAX,ESP
10006013 83C0 04 ADD EAX,4
ÔΣ¡Ò»¿´¾ÍÖªµÀ»¹ÓÐÒ»²ãPECompact£¡²»¹ÜÓм¸²ã£¬»¹ÊÇÀÏ°ì·¨Ö±½Óµ½Èë¿Ú´¦ÏÂÓ²¼þÖ´Ðжϵ㣬ȻºóF9ÔËÐе½ÁË£º
1000164B 55 PUSH EBP/////Õâ²ÅÏóÈë¿ÚÂ
1000164C 8BEC MOV EBP,ESP
1000164E 53 PUSH EBX
1000164F 8B5D 08 MOV EBX,DWORD PTR SS:[EBP+8]
10001652 56 PUSH ESI
10001653 8B75 0C MOV ESI,DWORD PTR SS:[EBP+C]
10001656 57 PUSH EDI
10001657 8B7D 10 MOV EDI,DWORD PTR SS:[EBP+10]
1000165A 85F6 TEST ESI,ESI
1000165C 75 09 JNZ SHORT Psinthk.10001667
1000165E 833D A0300010 0>CMP DWORD PTR DS:[100030A0],0
10001665 EB 26 JMP SHORT Psinthk.1000168D
10001667 83FE 01 CMP ESI,1
ÓÃLordPEÑ¡ÖÐOllydbgµÄloaddll.exeµÄ½ø³Ì£¬ÔÚÏÂÃæµÄÁбíÀïÑ¡ÔñPsinthk.dll£¬È»ºóÍêÕûÍÑ¿Ç£¬µÃµ½dumped.dll¡£
DumpÍêÖ®ºó£¬²»Òª¹Ø±ÕOllydbg£¬»¹ÒªÎªÏÂÃæµÄ´¦ÀíÖض¨Î»±íÌṩµã×¼±¸¡£
¶þ¡¢ÊäÈë±í
ÍùÈë¿ÚµÄÉÏ·½¿´¿´£º
10001621 /72 12 JB SHORT Psinthk.10001635
10001623 |8B0E MOV ECX,DWORD PTR DS:[ESI]
10001625 |85C9 TEST ECX,ECX
10001627 |74 07 JE SHORT Psinthk.10001630
10001629 |FFD1 CALL NEAR ECX
1000162B |A1 B0300010 MOV EAX,DWORD PTR DS:[100030B0]
10001630 |83EE 04 SUB ESI,4
10001633 ^|EB EA JMP SHORT Psinthk.1000161F
10001635 \50 PUSH EAX
10001636 FF15 38200010 CALL NEAR DWORD PTR DS:[10002038]//////ÕâÀïÓ¦¸ÃÊǵ÷Óú¯ÊýµÄCALL°É¡£
1000163C 8325 B0300010 0>AND DWORD PTR DS:[100030B0],0
10001643 59 POP ECX
10001644 5E POP ESI
10001645 6A 01 PUSH 1
ÔÚÄÚ´æÇøµ½10002038´¦¿´¿´£º
10002038 FB B8 B8 77 78 3F B9 77 û¸¸wx?¹w
¿´À´¾ÍÊÇIAT±íÁË¡£ÉÏÏ¿´¿´ºÜÃ÷ÏԵĿÉÒÔÕÒµ½IAT¿ªÊ¼ºÍ½áÊøµÄµØÖ·£º
10002000 53 1F E1 77 28 8A E1 77 Sáw(Šáw
10002008 83 1C E1 77 7C 66 E1 77 ?áw|fáw
10002010 31 66 E1 77 80 16 E1 77 1fáw€áw
10002058 ED 4E CE 77 21 EF CD 77 íNÎw!ïÍw
10002060 14 AD CD 77 70 E3 CD 77 ÍwpãÍw
¿ªÊ¼µØÖ·£½10002000
½áÊøµØÖ·£½10002068
ÔËÐÐImportREC£¬Ñ¡ÖÐOllydbgµÄloaddll.exeµÄ½ø³Ì£¬È»ºóµã¡°Ñ¡È¡DLL¡±£¬Ñ¡ÔñPsinthk.dll£¬ÌîÈëRVA£½00002000¡¢´óС£½68¡¢OEP=0000164 £¬µã¡°Get Import¡±¡£FixDump£¡£¨ÕâÀïºÃÏó²»±ØÓÃPEditor¾ÀÕýdumped.dllµÄDumpFixerÐÞÕýÇø¿é¡££©
Èý¡¢Öض¨Î»±í ÐÞ¸´
ÏÂÃæÀ´²éÕÒÖض¨Î»ÐÅÏ¢¡£ÓÃflyÌṩµÄ¼ò±ã°ì·¨£¬Ctrl+G£º10006000£¨µÚ¶þ²ãÈë¿Ú´¦£©£¬Ò²¾ÍÊÇÇ°Íù¿ÇµÄÈë¿Úµã¡£
È»ºóCtrl+SÔÚÕû¸ö¶Î¿éËÑË÷ÃüÁîÐòÁУº
add esi,ebx
xor eax,eax
ÕÒµ½ÒÔÏ´úÂ룺
10007652 8B9D E6904000 MOV EBX,DWORD PTR SS:[EBP+4090E6]//[ebp+4090E6]=10000000
10007658 3B9D 5F974000 CMP EBX,DWORD PTR SS:[EBP+40975F]//ÈçÓëÓ³Ïñ»ùÖ·²»·ûÔòÖض¨Î»´¦Àí£¡
1000765E 75 01 JNZ SHORT Psinthk.10007661//¿ÉÒԸıê־λZ=0£¬Ê¹ÕâÀïÌøת
10007660 C3 RETN
10007661 8BB5 63974000 MOV ESI,DWORD PTR SS:[EBP+409763]
10007667 03F3 ADD ESI,EBX/////ÕÒµ½ÕâÀï¡£
10007669 33C0 XOR EAX,EAX
1000766B 66:8B43 3C MOV AX,WORD PTR DS:[EBX+3C]
1000766F 03C3 ADD EAX,EBX
10007671 8B80 C0000000 MOV EAX,DWORD PTR DS:[EAX+C0]
10007677 85C0 TEST EAX,EAX
10007679 75 08 JNZ SHORT Psinthk.10007683
ÏÖÔÚÎÒÃÇÔÚÆäretnÉÏÃæµÄ10007652´¦Ï Ӳ¼þÖ´ÐÐ ¶Ïµã£¬È»ºóCtrl+F2ÖØÐÂÔØÈëÕâ¸ödll£¬F9ÔËÐУ¬¾ÍÖжÏÔÚ10007652´¦ÁË¡£È»ºóÔÚ1000765Eʱ¸Ä±ê־λZ=0£¬Ê¹ÆäÌøת¡£ÒòΪֻÓÐÈÃËüÖض¨Î»ÁË£¬ÎÒÃDzſÉÒÔ¿´µ½Öض¨Î»ÐÅÏ¢¡£ÌøתºóÀ´µ½£º
10007661 8BB5 63974000 MOV ESI,DWORD PTR SS:[EBP+409763]/////SS:[10007832]=00005000,Öض¨Î»µÄRVA¾ÍÊÇ00005000¡£
10007667 03F3 ADD ESI,EBX
10007669 33C0 XOR EAX,EAX
1000766B 66:8B43 3C MOV AX,WORD PTR DS:[EBX+3C]
1000766F 03C3 ADD EAX,EBX
10007671 8B80 C0000000 MOV EAX,DWORD PTR DS:[EAX+C0]
10007677 85C0 TEST EAX,EAX
10007679 75 08 JNZ SHORT Psinthk.10007683
1000767B 2B9D 5F974000 SUB EBX,DWORD PTR SS:[EBP+40975F]
¸ú¼¸²½À´µ½£º
100076F2 /75 0C JNZ SHORT Psinthk.10007700
100076F4 |58 POP EAX
100076F5 |25 FF0F0000 AND EAX,0FFF
100076FA |03C2 ADD EAX,EDX
100076FC |0118 ADD DWORD PTR DS:[EAX],EBX
100076FE |EB 01 JMP SHORT Psinthk.10007701
10007700 \58 POP EAX
10007701 49 DEC ECX
10007702 ^ 75 AC JNZ SHORT Psinthk.100076B0
10007704 ^ EB 8C JMP SHORT Psinthk.10007692/////Ñ»·´¦ÀíÖض¨Î»¡£
10007706 C3 RETN//////ÔÚ´Ë϶ϺóÖ±½ÓF9¡£¶ÏϺóESI£½100050E8
µ½ÄÚ´æÇø¿´¿´£º
100050A0 0B 00 0D 00 0A 00 15 00
......
100050A8 0C 00 06 00 22 00 12 00 ..."..
100050B0 5C 00 1C 00 06 00 11 00 \....
100050B8 10 00 00 00 00 20 00 00 .... ..
100050C0 1C 00 00 00 6C 30 0C 00 ...l0..
100050C8 08 00 30 00 14 00 0C 00 .0....
100050D0 08 00 30 00 14 00 00 00 .0....
100050D8 00 30 00 00 0C 00 00 00 .0......
100050E0 04 30 04 00 00 00 00 00 0.....
100050E8 00 00 00 00 00 00 00 00 ........
Öض¨Î»±í½áÊø´¦Ó¦¸ÃÊÇ100050E4¡£ËùÒÔÖض¨Î»±í´óС£½100050E4£¿ªÊ¼µØÖ·10005000£½E4
ÓÃWinHex´ò¿ªdumped_.dll£¬¸´ÖÆ5000£50E4Ö®¼äµÄ16½øÖÆÊýÖµ£¬Áí´æΪnoname.bin
ÔËÐÐ ¿´Ñ© ÀÏʦдµÄ¸¨ÖúÐÞ¸´PECompact¼Ó¿ÇDLLÖض¨Î»±íµÄ¹¤¾ßPEComAngela.exe£¬´ò¿ªnoname.bin£¬ºÜ¿ìµÄÌáʾpediy.binÎļþ´´½¨³É¹¦£¡
ÓÃWinHex°Ñpediy.binÖеÄ16½øÖÆÊýֵȫ²¿¸´ÖÆ¡¢Ð´Èëµ½dumped_.dllµÄ5000´¦£¬Ìæ»»ÔÏȵÄÖض¨Î»Êý¾Ý¡£
ÓÃLordPEÐÞÕýdumped_.dllµÄÖض¨Î»±íRVA=0005000¡¢´óС£½0000E4£¬±£´æÖ®¡£
ÖÁ´ËÍÑ¿ÇÍê³É¡£¿ÉÒÔÓÃODÕý³£¼ÓÔØÁË¡£