| ²é¿´: 554 | »Ø¸´: 1 | |||
| µ±Ç°Ö÷ÌâÒѾ´æµµ¡£ | |||
sdlj8051½ð³æ (ÖøÃûдÊÖ)
|
[½»Á÷]
32λ´úÂëÓÅ»¯³£Ê¶[תÌù]
|
||
|
32λ´úÂëÓÅ»¯³£Ê¶ Ô×÷Õß: Benny/29A ·Òë¸Äд:hume/ÀäÓêÆ®ÐÄ [×¢Òâ:Õâ²»ÊÇðÐðÄѧÉàµÄ·Òë,ÎÒ¾¡Á¿ÒÔÎÒµÄÀí½â´«´ïÔÎĵı¾Òâ] ¹ØÓÚ´úÂëÓÅ»¯µÄÎÄÕÂʵÔÚÌ«¶àÁË,Òź¶µÄÊǴ󲿷ÖÎÒ¶¼Ã»Óп´,¾¡¹ÜËûÃǾͰÚÔÚÎҵĴ²±ß(ÿµ±ÎÒÒª¿´µÄʱºò¾ÍÈ̲»×¡´ò¹þÇ·...ºÙºÙ).ÕâÆªÎÄÕ½϶ÌËùÒÔ·ÁËÒ»ÏÂ. ´úÂëÓÅ»¯µÄº¬Òå: ´úÂëÓÅ»¯µÄÄ¿±êµ±È»ÊÇÌå»ýСºÍËÙ¶È¿ì,µ«ÊÇÔÚͨ³£µÄÇé¿ö϶þÕß¾ÍÏóÓãºÍÐÜÕÆÒ»Ñù²»Äܵüæ,ÎÒÃÇͨ³£Ñ°ÕÒµÄÊÇÕâ¶þÕßµÄÕÛÖÐ,¾¿¾¹Ó¦¸ÃÆ«ÏòºÎ·½,ÄǾ͵þßÌå¿´ÎÒÃǵÄʵ¼ÊÐèÒª. µ«ÓÐЩ³£Ê¶ÊÇÎÒÃÇÓ¦¸ÃÀμǵÄ,ÏÂÃæ¾Í½áºÏÎÒÃÇ×î³£Óöµ½µÄ¾ßÌåÇé¿öÀ´Âþ̸һÏÂ: 1.¼Ä´æÆ÷Çå0 ÎÒ¾ø¶Ô²»ÏëÔÙ¿´µ½ÏÂÃæµÄд·¨: 1) mov eax, 00000000h ;5 bytes ¿´ÆðÀ´ÉÏÃæµÄд·¨ºÜ·ûºÏÂß¼,µ«ÄãÓ¦µ±Òâʶµ½»¹Óиü¼ÓÓÅ»¯µÄд·¨: 2) sub eax, eax ;2 bytes 3) xor eax, eax ;2 bytes ¿´¿´ºóÃæµÄ×Ö½ÚÊýÄã¾ÍÓ¦¸ÃÀí½âΪʲôҪÕâô×÷ÁË,³ý´ËÖ®Íâ,ÔÚËÙ¶ÈÉÏҲûÓÐËðʧ,ËûÃÇÒ»Ñù¿ì,µ«Äãϲ»¶xor»¹ÊÇsubÄØ?ÎÒÊDZȽÏϲ»¶xor,ÔÒòºÜ¼òµ¥,ÒòΪÎÒÊýѧ²»ºÃ.... ²»¹ýMicrosoft±È½Ïϲ»¶sub....ÎÒÃÇÖªµÀwindowsÔËÐеÄÂý....(ºÇºÇ,µ±È»ÊÇÍæÐ¦Õâ²¢²»ÊÇÕæÕýÔÒòX-D!) 2.²âÊԼĴæÆ÷ÊÇ·ñΪ0 ÎÒÒ²²»Ï£Íû¿´µ½ÏÂÃæµÄ´úÂë: 1) cmp eax, 00000000h ;5 bytes je _label_ ;2/6 bytes (short/near) [* ×¢ÒâºÜ¶àÖ¸ÁîÕë¶Ôeax×÷ÁËÓÅ»¯,ÄãÒª¾¡¿ÉÄÜ¶àµØÊµÓÃeax,±ÈÈçCMP EAX, 12345678h (5 bytes) Èç¹ûÄãʹÓÃÆäËû¼Ä´æÆ÷,¾ÍÊÇ6bytes *] ÈÃÎÒÃÇ¿´¿´,¼òµ¥µÄ±È½ÏÖ¸Áî¾ÓȻҪÓÃ7/11 bytes,No No No,ÊÔÊÔÏÂÃæµÄд·¨: 2) or eax, eax ;2 bytes je _label_ ;2/6 (short/near) 3) test eax, eax ;2 bytes je _label_ ;2/6 (short/near) ºÇºÇ,Ö»ÓÐ4/8 bytes,¿´¿´ÎÒÃǿɽÚÊ¡¶àÉÙ×Ö½Ú°¡3/4×Ö½Ú...ÄÇô½ÓÏÂÀ´µÄÎÊÌâÊÇÄãϲ»¶OR»¹ÊÇTESTÄØ,¾ÍÎÒ¸öÈ˶øÑÔ,±È½Ïϲ»¶TEST,ÒòΪtest²»¸Ä±äÈκμĴæÆ÷,²¢²»ÏòÈκμĴæÆ÷дÈëÄÚÈÝ,Õâͨ³£ÄÜÔÚpentium»úÉÏÈ¡µÃ¸ü¿ìµÄÖ´ÐÐËÙ¶È. ±ð¸ßÐ˵ÄÌ«Ôç,ÒòΪ»¹ÓиüÖµµÃÎÒÃǸßÐ˵ÄÊÂÇé,¼ÙÈçÄãÒªÅжϵĵÄÊÇeax¼Ä´æÆ÷,ÄÇô¿´¿´ÏÂÃæµÄ,ÊDz»ÊǸüÓÐÆô·¢? 4) xchg eax, ecx ;1 byte jecxz _label_ ;2 bytes ÔÚ¶ÌÌø×ªµÄÇé¿öÏÂÎÒÃDZÈ2)ºÍ3)ÓÖ½ÚÊ¡ÁË1×Ö½Ú.oh....___... 3.²âÊԼĴæÆ÷ÊÇ·ñΪ0FFFFFFFFh һЩAPI·µ»Ø-1,Òò´ËÈçºÎ²âÊÔÕâ¸öֵĨ?¿´Äã¿ÉÄÜÓÖÒªÕâÑù: 1) cmp eax, 0ffffffffh ;5 bytes je _label_ ;2/6 bytes hey,²»ÒªÕâÑù,д´úÂëµÄʱºòÏëÒ»Ïë,ÓÚÊÇÓÐÁËÏÂÃæµÄд·¨: 2) inc eax ;1 byte je _label_ ;2/6 bytes dec eax ;1 byte ¿ÉÒÔ½ÚÊ¡3 bytes²¢ÇÒÖ´ÐÐËÙ¶È»á¸ü¿ì. 4.ÖüĴæÆ÷Ϊ0FFFFFFFFh ¿´¿´¼ÙÈçÄãÊÇApiµÄ×÷Õß,ÈçºÎ·µ»Ø-1?ÕâÑùÂð? 1) mov eax, 0ffffffffh ;5 bytes ¿´ÁËÉÏÃæµÄ²»»áÔÙÕâôXXXÁ˰É?¿´¿´ÏÂÃæµÄ: 2) xor eax, eax / sub eax, eax ;2 bytes dec eax ;1 byte ½Úʡһ¸ö×Ö!»¹ÓÐд·¨: 3) stc ;1 byte sbb eax, eax ;2 bytes ÕâÓÐʱ»¹¿ÉÒÔÓÅ»¯µô1 byte: jnc _label_ sbb eax, eax ;2 bytes only! _label_: ... ÎÒÃÇΪʲôÓÃasmÄØ?Õâ¾ÍÊÇÔÒò. 5.¼Ä´æÆ÷Çå0²¢ÒÆÈëµÍ×ÖÊýÖµ 1) xor eax, eax ;2 bytes mov ax, word ptr [esi+xx] ;4 bytes ????--->²»»á°É,Õâ¿ÉÄÜÊÇ×î¶à³õѧÕßµÄд·¨ÁË,ÎÒµ±È»ÔÀ´Ò²ÊÇ,¿´ÁËbennyµÄÎÄÕÂÖ®ºóÎÒ¾ö¶¨¸ÄдΪ: 2) movzx eax, word ptr [esi+xx] ;4 bytes ÊÕ»ñ2 bytes! ÏÂÃæµÄ 3) xor eax, eax ;2 bytes mov al, byte ptr [esi+xx] ;3 bytes ¾ÍÏàÓ¦¸ÄΪ: 4) movzx eax, byte ptr [esi+xx] ;4 bytes ÎÒÃÇÓ¦µ±¾¡¿ÉÄÜÀûÓÃmovzx 5) xor eax, eax ;2 bytes mov ax, bx ;3 bytes ÒòΪִÐÐËٶȲ»Âý²¢Í¨³£ÄܽÚÊ¡×Ö½Ú... 6) movzx eax, bx ;3 bytes 6.¹ØÓÚpush,ÏÂÃæÊÇ×ÅÖØ´úÂëÌå»ýµÄÓÅ»¯,ÒòΪ¼Ä´æÆ÷²Ù×÷×ÜÒª±ÈÄÚ´æ²Ù×÷Òª¿ì. 1) mov eax, 50h ;5 bytes ÕâÑù¾ÍСÁË1 word 2) push 50h ;2 bytes pop eax ;1 byte µ±²Ù×÷ÊýÖ»ÓÐ1×Ö½Úʱºò,pushÖ»ÓÐ2 bytes,·ñÔò¾ÍÊÇ5 bytes,¼Çס! ÏÂÒ»¸öÎÊÌâ,Ïò¶ÑÕ»ÖÐѹÈë7¸ö0 3) push 0 ;2 bytes push 0 ;2 bytes push 0 ;2 bytes push 0 ;2 bytes push 0 ;2 bytes push 0 ;2 bytes push 0 ;2 bytes Õ¼ÓÃ14×Ö½Ú,ÏÔÈ»²»ÄÜÂúÒâ,ÓÅ»¯Ò»Ï 4) xor eax, eax ;2 bytes push eax ;1 byte push eax ;1 byte push eax ;1 byte push eax ;1 byte push eax ;1 byte push eax ;1 byte push eax ;1 byte ¿ÉÒÔ¸ü½ô´Õ,µ«»áÂýÒ»µãµÄÐÎʽÈçÏÂ: 5) push 7 ;2 bytes pop ecx ;1 byte _label_: push 0 ;2 bytes loop _label_ ;2 bytes ¿ÉÒÔ½ÚÊ¡7×Ö½Ú.... ÓÐʱºòÄã¿ÉÄÜ»á´Ó½«Ò»¸öÖµ´ÓÒ»¸öÄÚ´æµØÖ·×ªÒÆµ½ÁíÍâÄÚ´æµØÖ·,²¢ÇÒÒª±£´æËùÓмĴæÆ÷: 6) push eax ;1 byte mov eax, [ebp + xxxx] ;6 bytes mov [ebp + xxxx], eax ;6 bytes pop eax ;1 byte ÊÔÊÔpush,pop 7) push dword ptr [ebp + xxxx] ;6 bytes pop dword ptr [ebp + xxxx] ;6 bytes 7.³Ë·¨ µ±eaxÒѾ·ÅÈë±»³ËÊý,Òª³Ë28h,ÈçºÎÀ´Ð´? 1) mov ecx, 28h ;5 bytes mul ecx ;2 bytes ºÃÒ»µãµÄд·¨ÈçÏÂ: 2) push 28h ;2 bytes pop ecx ;1 byte mul ecx ;2 bytes ÍÛÕâ¸ö¸üºÃ:: 3) imul eax, eax, 28h ;3 bytes intelÔÚÐÂCPUÖÐÌṩеÄÖ¸Áî²¢²»ÊǰÚÉè,ÐèÒªÄãµÄʹÓÃ. 8.×Ö·û´®²Ù×÷ ÄãÈçºÎ´ÓÄÚ´æÈ¡µÃÒ»¸ö×Ö½ÚÄØ? ËÙ¶È¿ìµÄ·½°¸: 1) mov al/ax/eax, [esi] ;2/3/2 bytes inc esi ;1 byte ´úÂëСµÄ·½°¸: 2) lodsb/w/d ;1 byte ÎұȽÏϲ»¶lodÒòΪËûС,ËäÈ»ËÙ¶ÈÂýÁ˵ã. ÈçºÎµ½´ï×Ö·û´®Î²ÄØ? JQwerty's method: 9) lea esi, [ebp + asciiz] ;6 bytes s_check: lodsb ;1 byte test al, al ;2 bytes jne s_check ;2 bytes Super's method: 10) lea edi, [ebp + asciiz] ;6 bytes xor al, al ;2 bytes s_check: scasb ;1 byte jne s_check ;2 byte Ñ¡ÔñÄÄÒ»¸ö?SuperµÄÔÚ386ÒÔϵĸü¿ì,JQwertyµÄÔÚ486ÒÔ¼°pentiumÉϸü¿ì,Ìå»ýÒ»Ñù,Ñ¡ÔñÓÉÄã. 9.¸´ÔÓÒ»µãµÄ... ¼ÙÉèÄãÓÐÒ»¸öDWORD±í,ebxÖ¸Ïò±íµÄ¿ªÊ¼,ecxÊÇÖ¸Õë,ÄãÏë¸øÃ¿¸ödoword¼Ó1,¿´¿´ÈçºÎ×÷: 1) pushad ;1 byte imul ecx, ecx, 4 ;3 bytes add ebx, ecx ;2 bytes inc dword ptr [ebx] ;2 bytes popad ;1 byte ¿ÉÒÔÓÅ»¯Ò»µã,µ«ÊǺÃÏñûÈËÓÃ: 2) inc dword ptr [ebx+4*ecx] ;3 bytes Ò»ÌõÖ¸Áî¾Í½ÚÊ¡6×Ö½Ú,¶øÇÒËٶȸü¿ì,¸üÒ×¶Á,µ«ºÃÏñûÓÐʲôÈËÓÃ?...why? »¹¿ÉÒÔÓÐÁ¢¼´Êý: 3) pushad ;1 byte imul ecx, ecx, 4 ;3 bytes add ebx, ecx ;2 bytes add ebx, 1000h ;6 bytes inc dwor ptr [ebx] ;2 bytes popad ;1 byte ÓÅ»¯Îª: 4) inc dword ptr [ebx+4*ecx+1000h] ;7 bytes ½ÚÊ¡ÁË8×Ö½Ú! ¿´Ò»ÏÂleaÖ¸ÁîÄÜΪÎÒÃǸɵãÊ²Ã´ÄØ? lea eax, [12345678h] eaxµÄ×îºó½á¹ûÊÇÊ²Ã´ÄØ?ÕýÈ·´ð°¸ÊÇ12345678h. ¼ÙÉè EBP = 1 lea eax, [ebp + 12345678h] ½á¹ûÊÇ123456789h....ºÇºÇ±È½ÏÒ»ÏÂ: lea eax, [ebp + 12345678h] ;6 bytes ========================== mov eax, 12345678h ;5 bytes add eax, ebp ;2 bytes 5) ¿´¿´: mov eax, 12345678h ;5 bytes add eax, ebp ;2 bytes imul ecx, 4 ;3 bytes add eax, ecx ;2 bytes 6) ÓÃleaÀ´½øÐÐһЩ¼ÆËãÎÒÃŽ«´ÓÌå»ýÉϵõ½ºÃ´¦: lea eax, [ebp+ecx*4+12345678h] ;7 bytes ËÙ¶ÈÉÏÒ»ÌõleaÖ¸Áî¸ü¿ì!²»Ó°Ïì±ê־λ...¼ÇסÏÂÃæµÄ¸ñʽ,ÔÚÐí¶àµØ·½ÉÆÓÃËûÃÇÄã¿ÉÒÔ½Úʡʱ¼äºÍ¿Õ¼ä. OPCODE [ Last edited by sdlj8051 on 2006-10-6 at 12:45 ] |
» ²ÂÄãϲ»¶
ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£©½ÓÊÜ¿çרҵ
ÒѾÓÐ7È˻ظ´
Çóµ÷¼Á
ÒѾÓÐ11È˻ظ´
085600²ÄÁÏÓ뻯¹¤329·ÖÇóµ÷¼Á
ÒѾÓÐ13È˻ظ´
»¯Ñ§070300 Çóµ÷¼Á
ÒѾÓÐ18È˻ظ´
085600²ÄÁÏÓ뻯¹¤349·ÖÇóµ÷¼Á
ÒѾÓÐ12È˻ظ´
273Çóµ÷¼Á
ÒѾÓÐ5È˻ظ´
Ò»Ö¾Ô¸211£¬»¯Ñ§Ñ§Ë¶£¬310·Ö£¬±¾¿ÆÖصãË«·Ç£¬Çóµ÷¼Á
ÒѾÓÐ21È˻ظ´
¿¼ÑÐÓ¢Ò»ÊýÒ»338·Ö
ÒѾÓÐ8È˻ظ´
302Çóµ÷¼Á
ÒѾÓÐ10È˻ظ´
327Çóµ÷¼Á
ÒѾÓÐ14È˻ظ´
sdlj8051
½ð³æ (ÖøÃûдÊÖ)
- Ó¦Öú: 0 (Ó×¶ùÔ°)
- ¹ó±ö: 0.1
- ½ð±Ò: 1149.8
- ºì»¨: 3
- Ìû×Ó: 2254
- ÔÚÏß: 18.1Сʱ
- ³æºÅ: 71297
- ×¢²á: 2005-05-30
- רҵ: µç·Óëϵͳ
|
10.ÏÂÃæÊǹØÓÚ²¡¶¾Öض¨Î»ÓÅ»¯µÄ,¾å¶¾ÈËÊ¿ÇëÈÆÐÐ... ÏÂÃæµÄ´úÂëÄã²»Ó¦¸ÃİÉú 1) call gdelta gdelta: pop ebp sub ebp, offset gdelta ÔÚÒÔºóµÄ´úÂëÖÐÎÒÃÇÕâÑùʹÓÃdeltaÀ´±ÜÃâÖØ¶¨Î»ÎÊÌâ lea eax, [ebp + variable] ÕâÑùµÄÖ¸ÁîÔÚÓ¦ÓÃÄÚ´æÊý¾ÝµÄʱºòÊDz»¿É±ÜÃâµÄ,Èç¹ûÄÜÓÅ»¯Ò»ÏÂ,ÎÒÃŽ«»áµÃµ½Êý±¶ÊÕÒæ,´ò¿ªÄãµÄsice»òÕßtrw»òÕßollydbgµÈµ÷ÊÔÆ÷,¿´¿´: 3) lea eax, [ebp + 401000h] ;6 bytes ¼ÙÈçÊÇÏÂÃæÕâÑù 4) lea eax, [ebp + 10h] ;3 bytes Ò²¾ÍÊÇ˵Èç¹ûebpºóÃæ±äÁ¿ÊÇ1×ֽڵϰ,×ܵÄÖ¸Áî¾ÍÖ»ÓÐ3×Ö½Ú ÐÞ¸ÄÒ»ÏÂ×î³õµÄ¸ñʽ±äΪ: 5) call gdelta gdelta: pop ebp ÔÚijЩÇé¿öÏÂÎÒÃǵÄÖ¸Áî¾ÍÖ»ÓÐ3×Ö½ÚÁË,¿ÉÒÔ½ÚÊ¡3×Ö½Ú,ºÙºÙ,ÈÃÎÒÃÇ¿´¿´: 6) lea eax, [ebp + variable - gdelta] ;3 bytes ºÍÉÏÃæµÄÊǵÈЧµÄ,µ«ÊÇÎÒÃÇ¿ÉÒÔ½ÚÊ¡3×Ö½Ú,¿´¿´CIH... 11.ÆäËû¼¼ÇÉ: Èç¹ûEAXСÓÚ80000000h,edxÇå0: -------------------------------------------------- 1) xor edx, edx ;2 bytes, but faster 2) cdq ;1 byte, but slower ÎÒһֱʹÓÃcdq,Ϊʲô²»ÄØ?Ìå»ý¸üС... ÏÂÃæÕâÖÖÇé¿öÒ»°ã²»ÒªÊ¹ÓÃespºÍebp,ʹÓÃÆäËû¼Ä´æÆ÷. ----------------------------------------------------------- 1) mov eax, [ebp] ;3 bytes 2) mov eax, [esp] ;3 bytes 3) mov eax, [ebx] ;2 bytes ½»»»¼Ä´æÆ÷ÖÐ4¸ö×Ö½ÚµÄ˳Ðò?ÓÃbswap --------------------------------------------------------- mov eax, 12345678h ;5 bytes bswap eax ;2 bytes ;eax = 78563412h now Wanna save some bytes replacin' CALL ? --------------------------------------- 1) call _label_ ;5 bytes ret ;1 byte 2) jmp _label_ ;2/5 (SHORT/NEAR) Èç¹û½ö½öÊÇÓÅ»¯,²¢ÇÒ²»ÐèÒª´«µÝ²ÎÊý,Ç뾡Á¿ÓÃjmp´úÌæcall ±È½Ï reg/mem ʱÈçºÎ½Úʡʱ¼ä: ------------------------------------------ 1) cmp reg, [mem] ;slower 2) cmp [mem], reg ;1 cycle faster ³Ë2³ý2ÈçºÎ½Úʡʱ¼äºÍ¿Õ¼ä? ------------------------------------------------------------ 1) mov eax, 1000h mov ecx, 4 ;5 bytes xor edx, edx ;2 bytes div ecx ;2 bytes 2) shr eax, 4 ;3 bytes 3) mov ecx, 4 ;5 bytes mul ecx ;2 bytes 4) shl eax, 4 ;3 bytes loopÖ¸Áî ------------------------ 1) dec ecx ;1 byte jne _label_ ;2/6 bytes (SHORT/NEAR) 2) loop _label_ ;2 bytes ÔÙ¿´: 3) je $+5 ;2 bytes dec ecx ;1 byte jne _label_ ;2 bytes 4) loopXX _label_ (XX = E, NE, Z or NZ) ;2 bytes loopÌå»ýС,µ«486ÒÔÉϵÄcpuÉÏÖ´ÐÐËÙ¶È»áÂýÒ»µã... ±È½Ï: --------------------------------------------------------- 1) push eax ;1 byte push ebx ;1 byte pop eax ;1 byte pop ebx ;1 byte 2) xchg eax, ebx ;1 byte 3) xchg ecx, edx ;2 bytes Èç¹û½ö½öÊÇÏëÒÆ¶¯ÊýÖµ,ÓÃmov,ÔÚpentiumÉÏ»áÓнϺõÄÖ´ÐÐËÙ¶È: 4) mov ecx, edx ;2 bytes ±È½Ï: -------------------------------------------- 1) δÓÅ»¯: lbl1: mov al, 5 ;2 bytes stosb ;1 byte mov eax, [ebx] ;2 bytes stosb ;1 byte ret ;1 byte lbl2: mov al, 6 ;2 bytes stosb ;1 byte mov eax, [ebx] ;2 bytes stosb ;1 byte ret ;1 byte --------- ;14 bytes 2) ÓÅ»¯ÁË: lbl1: mov al, 5 ;2 bytes lbl: stosb ;1 byte mov eax, [ebx] ;2 bytes stosb ;1 byte ret ;1 byte lbl2: mov al, 6 ;2 bytes jmp lbl ;2 bytes --------- ;11 bytes ¶ÁÈ¡³£Êý±äÁ¿,ÊÔÊÔÔÚÖ¸ÁîÖÐÖ±½Ó¶¨Òå: ----------------------------- ... mov [ebp + variable], eax ;6 bytes ... ... variable dd 12345678h ;4 bytes 2) ÓÅ»¯Îª: mov eax, 12345678h ;5 bytes variable = dword ptr $ - 4 ... ... mov [ebp + variable], eax ;6 bytes ºÇºÇ,ºÃ¾Ãû¿´µ½ÕâôÓÐȤµÄ´úÂëÁË,ǰÌáÊDZàÒëµÄʱºòÖ§³Ö´úÂë¶ÎµÄдÈëÊôÐÔÒª±»ÉèÖÃ. ×îºó½éÉÜδ¹«¿ªÖ¸ÁîSALC,ÏÖÔڵĵ÷ÊÔÆ÷¶¼Ö§³Ö...ʲôº¬ÒåÄØ:¾ÍÊÇCFλÖÃ1µÄ»°¾Í½«alÖÃΪ0xff ------------------------------------------------------------------ 1) jc _lbl1 ;2 bytes mov al, 0 ;2 bytes jmp _end ;2 bytes _lbl: mov al, 0ffh ;2 bytes _end: ... 2) SALC db 0d6h ;1 byte ------------------------------------------------------------------>over... |
2Â¥2006-08-23 13:56:51














»Ø¸´´ËÂ¥