Znn3bq.jpeg
ÉÇÍ·´óѧº£Ñó¿ÆÑ§½ÓÊܵ÷¼Á
²é¿´: 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 [BASE + INDEX*SCALE + DISPLACEMENT]

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

» ²ÂÄãϲ»¶

ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû

sdlj8051

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

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
ÒÑÔÄ   »Ø¸´´ËÂ¥   ¹Ø×¢TA ¸øTA·¢ÏûÏ¢ ËÍTAºì»¨ TAµÄ»ØÌû
Ïà¹Ø°æ¿éÌø×ª ÎÒÒª¶©ÔÄÂ¥Ö÷ sdlj8051 µÄÖ÷Ìâ¸üÐÂ
×î¾ßÈËÆøÈÈÌûÍÆ¼ö [²é¿´È«²¿] ×÷Õß »Ø/¿´ ×îºó·¢±í
[¿¼ÑÐ] Çóµ÷¼Á +10 ºÎÆøÕý 2026-04-13 11/550 2026-04-13 19:42 by lbsjt
[¿¼ÑÐ] »¯¹¤Ñ§Ë¶294·Ö£¬Çóµ¼Ê¦ÊÕÁô +23 yzyzx 2026-04-12 26/1300 2026-04-13 18:44 by sxdj2
[˶²©¼ÒÔ°] ÓÐûÓÐѧУ²ÄÁÏרҵÊÕ¿çµ÷(Ò»Ö¾Ô¸085410) +13 momo(Éϰ¶°æ) 2026-04-06 16/800 2026-04-13 15:27 by Xurambo2014
[¿¼ÑÐ] ²ÄÁÏ¿¼Ñе÷¼Á +29 ÔÆÄ¾´ï´ï 2026-04-11 31/1550 2026-04-13 13:32 by lyh³ÀÏʦ
[¿¼ÑÐ] ÉúÎïѧ308·ÖÇóµ÷¼Á£¨Ò»Ö¾Ô¸»ª¶«Ê¦´ó£©×ö¹ý·Ö×ÓʵÑé +9 ÏàÐűػá¹ââÍòÕ 2026-04-07 10/500 2026-04-13 10:20 by ¿Éµ­²»¿ÉÍü
[¿¼ÑÐ] 0831Ò»ÂÖµ÷¼Áʧ°ÜÇóÖú +10 СÐÜî£î£_s 2026-04-11 10/500 2026-04-12 22:43 by ³¤¹­°Á
[¿¼ÑÐ] 086000µ÷¼Á +6 Ê®Æßsa 2026-04-07 6/300 2026-04-12 11:05 by ´óÁ¦Ë®ÊÖÁ¦´óÎÞÇ
[¿¼ÑÐ] 085410 273Çóµ÷¼Á +10 X1999 2026-04-09 10/500 2026-04-12 09:24 by ÄæË®³Ë·ç
[¿¼ÑÐ] ҩѧר˶µ÷¼Á +8 ? һ·Éú?»¨? 2026-04-10 10/500 2026-04-11 21:21 by zhouxiaoyu
[¿¼ÑÐ] 283Çóµ÷¼Á +22 ÄǸöàà×Ó 2026-04-09 22/1100 2026-04-11 10:41 by ÄæË®³Ë·ç
[¿¼ÑÐ] 283Çóµ÷¼Á£¬¹¤¿Æ£¡ +12 ËÕ´òË®7777 2026-04-08 12/600 2026-04-11 10:28 by ÄæË®³Ë·ç
[¿¼ÑÐ] Çóµ÷¼Á +13 Ñ©·ê¶¬ 2026-04-10 13/650 2026-04-11 09:58 by Öí»á·É
[¿¼ÑÐ] Ò»Ö¾Ô¸¿ó´ó£¬²ÄÁϹ¤³Ìר˶314·Ö£¬0856¿Éµ÷¶¼¿ÉÒÔ +15 ÎÞи¿É»÷µÄ¾ÞÈË 2026-04-09 15/750 2026-04-10 18:10 by hmn_wj
[¿¼ÑÐ] 071000ÉúÎïѧµ÷¼ÁÇóÖú +17 zzzzwww 2026-04-09 20/1000 2026-04-10 15:55 by Çóµ÷¼Ázz
[¿¼ÑÐ] 296Çóµ÷¼Á +6 Íô£¡£¿£¡ 2026-04-08 6/300 2026-04-10 11:02 by mattzhming
[¿¼ÑÐ] 311Çóµ÷¼Á +6 surte 2026-04-08 13/650 2026-04-09 14:00 by surte
[¿¼ÑÐ] 086004 Çóµ÷¼Á 309 +7 Yin DY 2026-04-08 7/350 2026-04-09 13:59 by Delta2012
[¿¼ÑÐ] ²ÄÁϹ¤³Ì322 +18 ¹þ¹þ¹þºðºðºð¹þ 2026-04-07 19/950 2026-04-09 10:44 by cymywx
[¿¼ÑÐ] 328Çóµ÷¼Á +17 lftmya 2026-04-07 18/900 2026-04-09 08:05 by 5268321
[¿¼ÑÐ] Ò»Ö¾Ô¸211£¬»¯Ñ§Ñ§Ë¶£¬310·Ö£¬±¾¿ÆÖصãË«·Ç£¬Çóµ÷¼Á +10 ŬÁ¦·Ü¶·112 2026-04-07 10/500 2026-04-08 15:01 by screening
ÐÅÏ¢Ìáʾ
ÇëÌî´¦ÀíÒâ¼û