Ŀ¼£¾£¾µÚ4ÕÂ
µÚ4Õ ¾²Ì¬·ÖÎö¼¼Êõ
|
µÚÒ»½Ú »ù´¡ÖªÊ¶
|
µÚ¶þ½Ú W32Dasm¼ò½é
|
µÚÈý½Ú IDA
Pro ¼ò½é
|
µÚËÄ½Ú HIEW¼ò½é
|
µÚÎå½Ú ²ð½â½Ì³Ì
|
µÚÈý½Ú IDA Pro¼ò½é
³ÌʽÁÔÈË·Òë
£¨ÒëÕß×¢£º»¶Ó·ÃÎʳÌʽÁÔÈ˵ÄÖ÷Ò³£ºhttp://programhunter.126.com£©
¶ÔÏó£ºIDA Pro·´»ã±àÈí¼þ
Ä¿±ê: N/A
URL: http://www.datarescue.com
×÷Õߣº BlackB
ÈÕÆÚ£º 2000-06-05
ʹÓù¤¾ß: Your brain
ÄѶȵȼ¶(¼¶ 1-5): 1
¿ªÊ¼Ç°
¡¡¡¡IDA Pro AvancedÊÇÒ»¸ö¼«ºÃµÄ·´»ã±à¹¤¾ß£¬Ëü´óµÄʤ¹ýÁËw32dasm¡£½üÀ´ËüµÄµÁ°æÒѾÔÚÍøÉÏ´«²¥¿ªÁË£¬Äã¿ÉÒÔºÜÇáËɵõ½Ëü¡£¶ÔÓÚÕâ·½ÃæµÄ¹ÛµãÓÐÈçϼ¸ÖÖ£ºÒ»Ð©ÈËÈÏΪÕâÊǺõģ¬ÊÇ×ÔÓɵģ»¶øÁíһЩÈËÈÏΪÊǿɳܵģ¬ÄÇЩÈÏΪÊǿɳܵÄÈËͨ³£ÊÇÕâ¸öÈí¼þµÄÀÏÓû§£¬ÊÂʵÉÏËûÃÇÂòÁËÄǸö³ÌÐò£¬Èç¹ûÄ㻨ÁË$500ÂòÁËÄǸö³ÌÐòµÄ»°£¬Äã¾Í¿ÉÒÔÀí½âËûÃǵķ´Ó¦ÁË¡£
¶ÔÓÚ¶ÁÕßÀ´Ëµ£¬ÄãÃÇ×öʲô²»ÊÇÎÒµÄÎÊÌâ¼°ÎÒËù¹ØÐĵġ£¶øÎҵĹ۵ãÊÇÈç¹ûÈÏΪ·Ç·¨µÄwinzipÈí¼þͬIDA Pro 4.0xÒ»ÑùºÃ»ò»µ¡£Èç¹ûÄãʹÓ÷Ƿ¨µÄwinzip£¬Äã¾Í²»Ó¦µ±Ê¹Ó÷Ƿ¨µÄIDA
Pro¡£
I ½éÉÜ
¡¡¡¡¼¸ÌìǰÎÒÁÒ¾üÊôÁËһƪ¹ØÓÚ½âÃܳÌÐòµÄ½Ì³Ì£¬¶øÕâÆªÒ²ÊÇÒ»¸ö¶ÔÓÚ¸ßЧµÄ£¬¼«ºÃµÄIDA Pro 4.0x½Ì³Ì¡£Í¨³£²ËÄñ²»Ï²»¶£¬¶ø¸ßÊÖÓÖ³ç°ÝËü¡£²»Ï²»¶µÄÔÒòÊÇÒòΪIDAÏà¶ÔÓÚw32dasmÀ´ËµÓиü¶àµÄ¸½¼Ó¹¦ÄܺÍ×÷Óã¬Óиü´óµÄ¸´ÔÓÐÔ
ÔÚÏÂÃæµÄ½Ì³ÌÖÐÓÉÓÚÄã¹ýÈ¥¿ÉÄÜϲ»¶Ê¹ÓÃw32dasm£¬ÎÒ½«¾¡Á¦¸ø³öÒ»¸ö¼òµ¥ºÍÇå³þµÄ½âÊÍÀ´½éÉÜÈçºÎʹÓÃIDA¡£Ò²½«ÊÔ²î»Ø´ð"ʲôÊÇ×îºÃµÄ·´»ã±à£¿"ÕâÀïÆäʵûÓÐÒ»¸ö¼òµ¥µÄ»Ø´ð¡£¶ÔÓÚ¸ü¶àµÄ¸ßÊÖÀ´Ëµ¿ÉÒÔ¶ÁÕâ¸ö£ºÏò²ËÄñ100£¥½âÊÍIDAµÄʹÓùý³Ì¡£
II. IDA: Ò»¸ö¸ßЧµÄ·´»ã±à¹¤¾ß
¡¡¡¡µ±ÄãÔËÐÐIDA Proʱ£¬ÄãËù×îÏÈ×¢Òâµ½µÄÊÇËüµÄ½çÃæ±Èw32dasm¸ü¼Óרҵ£¬ÕâÀï±Èw32dasmÓиü¶àµÄÑ¡Ïî»ò¸üÏȽøµÄµØ·½¡£ËüµÄÓŵãÊÇ¿ÉÒÔ¸üºÃµÄ·´»ã±àºÍ¸üÓÐÉî²ã·ÖÎö¡£¶øÈ±µãÊÇʹÓÃIDA¸üÀ§ÄÑ¡£
ʵ¼ÊÉÏIDAͬw32dasmÓкܶàÏàͬµÄ¹¦ÄÜ£º¿ÉÒÔ¿ìËÙµ½´ïÖ¸¶¨µÄ´úÂëλÖ㻿ÉÒÔ¿´µ½Ìøµ½Ö¸¶¨µÄλÖõÄjmpµÄÃüÁîλÖ㻿ÉÒÔ¿´²Î¿¼×Ö·û´®£»¿ÉÒÔ±£´æ¾²Ì¬»ã±àµÈ¡£
¡¡¡¡ÏÖÔÚÈÃÎÒÃÇÔËÐкͷ´»ã±àÒ»¸öС³ÌÐò£¨ÎÒʹÓÃstarclean.exe£©Ò»¸ö´°¿Úµ¯³öÀ´£¬ÄÇÀïÓкܶàÑ¡Ï²»Òª¶¯Ëü£¬½ö½öµã»÷OK¡£ÈÃIDAÀ´·ÖÎö£¬µ±Ëü½áÊøºóÔÚnameµÄÑ¡ÏîÖÐͬw32dasmÖвο¼×Ö·û´®Ò»Ñù£¬²éÕÒ"a"×Ö·û¡£ÔÚname´°¿ÚÖÐËÑË÷À¸Öа´a£¬È»ºó¿ªÊ¼²éÕÒ£¬Ò»µ©ÕÒµ½£¬°´enter»òË«»÷Ëü£¬Ëü¾Í½«µ½´ïÕýÈ·µÄλÖᣰ´ctrl+enter½«µ½´ïÏÂÒ»¸öλÖᣲο¼×Ö·û´®¾ÍÔÚ¹â±ê¸½½ü¡£IDA¾Í¿ÉÒÔµ½´ïÏàÓ¦µÄλÖÃÁË¡£
ÁíÒ»¸öͬw32dasmÏàͬµÄ£ºjmpºÍcall²Î¿¼ÔÚIDAÒ²ÊÇÓÐЧµÄ¡£ÔÚw32dasm·´»ã±àµÄ´úÂëͬIDAÖÐÏàͬµÄ¡£
´úÂ뿪ʼ(w32dasm)
* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:00403B50(C) | :00403B5F 81FAFC000000 cmp edx, 000000FC :00403B65 0F8478010000 je 00403CE3 :00403B6B 8D8424B4000000 lea eax, dword ptr [esp+000000B4] :00403B72 6804010000 push 00000104 :00403B77 50 push eax * Reference To: KERNEL32.GetModuleFileNameA, Ord:00E9h | :00403B78 8B2D88924000 mov ebp, dword ptr [00409288] :00403B7E 6A00 push 00000000 :00403B80 FFD5 call ebp :00403B82 85C0 test eax, eax :00403B84 7516 jne 00403B9C * Possible StringData Ref from Data Obj ->"" | :00403B86 BE206A4000 mov esi, 00406A20 :00403B8B 8DBC24B4000000 lea edi, dword ptr [esp+000000B4] :00403B92 B905000000 mov ecx, 00000005 :00403B97 F3 repz :00403B98 A5 movsd :00403B99 66A5 movsw :00403B9B A4 movsb ½áÊø½áÊø
´úÂ뿪ʼ(IDA Pro 4.0x)
00403B5F loc_403B5F: ; CODE XREF: sub_403B00+50j 00403B5F cmp edx, 0FCh 00403B65 jz loc_403CE3 00403B6B lea eax, [esp+1B8h+var_104] 00403B72 push 104h 00403B77 push eax 00403B78 mov ebp, ds:GetModuleFileNameA 00403B7E push 0 00403B80 call ebp ; GetModuleFileNameA 00403B82 test eax, eax 00403B84 jnz short loc_403B9C 00403B86 mov esi, offset aProgramNameUnk ; "" 00403B8B lea edi, [esp+1B8h+var_104] 00403B92 mov ecx, 5 00403B97 repe movsd 00403B99 movsw 00403B9B movsb ´úÂë½áÊø
ÄãÔÚÕâÀï¿´µ½£¬IDAÌṩÁ˸ü¶àµÄϸ½ÚÐÅÏ¢£¬ËüÊǸü¼ÓÇå³þ£¬ÓÃÒ»¸ö²Î¿¼×÷ΪÀý×Ó¡£
ÔÚw32dasmÖÐÈçÏ£º
* Referenced by a (U)nconditional or (C)onditional Jump
at Address:
|:00403B50(C)
ÔÚIDA ProÖÐÈçÏ£º
CODE XREF: sub_403B00+50j
IDA provides ʹÓøü¶ÌµÄÐÐÀ´Ìṩ¸ü¶àµÄÐÅÏ¢¡£
1. ÓÃÒ»¸öjump (j)
2. jumpµ½´úÂëµÄλÖÃλÓÚ00403B50 (=403B00+50)
3. º¯Êý/call±¾ÉíÔÚ403B00(403B00+50)
4. jumpÔÚ.code section
¡¡¡¡Èç¹û²Î¿¼µÄÊÇÒ»¸öcallÄÇôËü½«ÈçÏ£º
CODE XREF: sub_403B00+50p
¡¡¡¡ÁíÒ»¸ö´óµÄÓŵãÊÇIDA¿ÉÒÔת»»±äÁ¿¡£Äã¿ÉÒÔË«»÷±äÁ¿ÒÔÕÒµ½ËüÃDZ£´æµÄµØÖ·´¦: lea edi, [esp+1B8h+var_104]¡£
¹¦ÄÜÖÐ×îÓÐÓõÄÖ®Ò»ÊÇʹÓýüËÆ²éÕÒ¡£ºÜÈÝÒ×½âÊÍ£ºIDA¾¡Á¦¼Çס¼Ä´æÆ÷Ëù¹ØÁªµÄ¿âº¯Êý¡£ÈçÏ£º
´úÂ뿪ʼ (IDA Pro)
004012D2 loc_4012D2: ; CODE XREF: sub_401280+5Fj 004012D2 movsx ecx, byte ptr [eax] 004012D5 push eax 004012D6 lea ebp, [ebp+ecx*2+0] 004012DA call edi ; CharNextA ; Return a pointer to the next character in a
; string 004012DC cmp byte ptr [eax], 0 004012DF jnz short loc_4012D2 ´úÂë½áÊø
´úÂ뿪ʼ (w32dasm)
* Referenced by a (U)nconditional or (C)onditional Jump at Address: |:004012DF(C) | :004012D2 0FBE08 movsx ecx, byte ptr [eax] :004012D5 50 push eax :004012D6 8D6C4D00 lea ebp, dword ptr [ebp+2*ecx] :004012DA FFD7 call edi :004012DC 803800 cmp byte ptr [eax], 00 :004012DF 75F1 jne 004012D2
´úÂë½áÊø
¡¡¡¡Äã×¢Òâµ½ËüÃǵIJ»Í¬ÁËÂð£¿IDA½«Ïò½âÊÍÿһ¼þÊÂÇé¡£
¡¡¡¡ÔÚIDAÖÐÁíÒ»¸öͬw32dasm½üËÆµÄÊÇÊ®·Ö¼òµ¥µÄ£¬È磺"Goto code location" µÈͬÓÚÔÚIDA"Jump - Jump to adress"
. »òÕß "Goto entrypoint" µÈͬÓÚÔÚIDA"Jump - Jump to entry point" .
¡¡¡¡ÄÇЩ¾ÍÊÇÔÚÄãÁ˽âIDA¿ªÊ¼Ê¹ÓÃËüǰ×îÎªÖØÒªµÄ¶«Î÷¡£ÓÐʱ £¬IDAÏÔʾ´óÁ¿µÄ"db"£¬²Î¿¼×Ö·û´®£¬½öÓдúÂë¡£½ö½ö¿ÉÒÔÉèºÃ¹â±ê£¬°´"c"¼ü£¬IDAת»»´úÂëÈçÏÂ
¿ªÊ¼ (ÔÚ°´'C'֮ǰ)
00401228 dd offset unk_406130 0040122C db 8Bh ; ï 0040122D db 35h ; 5 0040122E dd offset RegSetValueExA 00401232 db 6Ah ; j 00401233 db 1 ; 00401234 db 6Ah ; j 00401235 db 0 ; 00401236 db 68h ; h 00401237 dd offset aName ; "Name" 0040123B db 51h ; Q 0040123C db 0FFh ; 0040123D db 0D6h ; Í 0040123E db 8Bh ; ï 0040123F db 4Ch ; L 00401240 db 24h ; $ 00401241 db 8 ; 00401242 db 68h ; h ´úÂë½áÊø
¿ªÊ¼ (ÔÚ°´'C'֮ǰ)
0040122C mov esi, ds:RegSetValueExA 00401232 ; --------------------------------------------------------------------------- 00401232 push 1 00401234 push 0 00401236 push offset aName ; "Name" 0040123B ; --------------------------------------------------------------------------- 0040123B push ecx 0040123C call esi ; RegSetValueExA 0040123E mov ecx, [esp+8] 00401242 push 100h 00401247 push offset unk_406030 0040124C ; --------------------------------------------------------------------------- 0040124C push 1 0040124E push 0 00401250 push offset aCode ; "Code" 00401255 ; --------------------------------------------------------------------------- 00401255 push ecx 00401256 call esi ; RegSetValueExA 00401258 mov eax, [esp+8] 0040125C push eax 0040125D call ds:RegCloseKey ´úÂë½áÊø
IDAÁíÒ»¸öÓŵ㣨¿ìËÙÏà¼Ó£©:
1. Äܹ»¶Ôw32dasmÎÞ·¨·´»ã±àµÄ×îÄѵÄÈí¼þ½øÐз´»ã±à£¨Èç¼Ó¿Ç³ÌÐò£©
2. Äܹ»ÒÔ.asm .sym ºÍÉõÖÁÊÇ .exe¼°ÆäËüÎļþÐÎʽ±£´æ
3. ѹËõµÄ¾²Ì¬»ã±à£¬¿ÉÒÔ½ÚÊ¡´óÁ¿µÄ´ÅÅ̿ռ䡣
4. ¿ÉÒÔÖØÃüÃûº¯Êý
5. Äܹ»·ÖÎö¾Þ´óµÄ³ÌÐò
µÈµÈ.... ;-)
III. w32dasm??
¡¡¡¡Äã¿´ÍêÁ˺óÄãÏÖÔÚ¿ÉÒÔ×ÔÎÊ"Èç¹ûIDAÕâôºÃ¿´£¬ÎªÊ²Ã´ÎÒ»¹ÒªÊ¹ÓÃw32dasm£¿"ÏÂÃæ¾ÍÊǶÔÓÚÕâ¸öµÄ½âÊÍ£º
Ê×ÏÈÊÇËÙ¶È£¬¶ÔÓÚIDAÀ´·ÖÎöÒ»¸öС³ÌÐòÊǷdz£·Ç³£µÄ¿ì£¬µ«ÊÇÈç¹û·ÖÎöÒ»¸ö´óµÄexeËü¾ÍÒª»¨·Ñ3¸öСʱ»ò¸ü¶àµÄʱ¼äÀ´È«Ãæ·ÖÎöexe¡£
Æä´Î£¬Èç¹ûÄã¶ÔÓÚÒ»¸öÖ¸¶¨µÄËÑË÷£¬IDA½«ºÜÂýµÄ£¬¶øÔÚw32dasmÖÐÔÚÎı¾·½ÃæÖÐËÑË÷ÊǺܿìµÄ¡£
µÚÈý£ºµ±·ÖÎöÒ»¸ö½öÓмòµ¥µÄ±£»¤µÄ³ÌÐòʱ£¬w32dasm¾ÍΪÊ×Ñ¡¡£ÒòΪÄã¾Í²»ÐèÒªÔÚIDAÄÇЩ¸½¼ÓµÄ¹¦ÄÜÁË¡£
ÉÏÃæµÄÈý¸öÒòËØ¿ÉÒÔ˵Ã÷Ò»ÇÐÁË :-) Èç¹ûÄãÖªµÀÆäËüµÄʹÓÃw32dasmÔÒòµÄ»°£¬Çë¸æËßÎÒ¡£
IV. ½áÊø
¡¡¡¡ÓÖÒ»¸ö½Ì³Ì½áÊøÁË¡£ÏíÊÜIDA and w32dasmÒÔ¼°ËùÓÐ.....ÏíÊÜÑо¿ºÍ±£³ÖѧϰºÍ¼ÌÐøÑо¿ºÍÆÆ½â°É¡£²»ÊÇΪÁ˽âÃÜ£¬½öÊÇÎÄÕ£¬Ð´ÏÂÄãµÄÎÄÕ£¬´«²¥ÄãµÄ֪ʶ¡£¶ÔÓÚ½âÃÜÕâÊÇÖØÒªµÄÀ´Ëµ¡£²»ÒªÓÃÓÚ½âÃܰɡ£
¸Ðл´ó¼Ò
The Blackbird
Endnote:
¡¡¡¡The Blackbird ´´×÷ÓÚ1999-2000
´ËÎÄÕ¿ÉÒÔ×ÔÓÉ·Ö·¢£¬³ö°æ£¬´òÓ¡¡¡µÈ¾¡¿ÉÄܳ¤µÄÐÞÊΡ£