1581, 75/80 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   twinz
   - ¾î¼Àºí¸®¾î 2

http://www.hackerschool.org/HS_Boards/zboard.php?id=Free_Lectures&no=814 [º¹»ç]


5. Assembly ¸í·É¾î



MOV <Destination>, <Source> - Move. °ªÀ» ´ëÀÔÇÏ·Á°í ÇÒ¶§ »ç¿ëÇÑ´Ù. »ç¿ë ¹æ¹ý¿¡´Â <Destination>¿¡´Â ·¹Áö½ºÅÍ, ¸Þ¸ð¸®µîÀÌ ¿Ã ¼ö ÀÖÀ¸¸ç <Source>¿¡´Â <Destination>¿Í °°Àº °Í ÀÌ¿Ü¿¡ Á÷Á¢ÀûÀÎ °ª µîÀÌ ¿Ã ¼ö ÀÖ´Ù.
Example:
MOV EAX, 14h
MOV EAX, DWORD PTR SS:[EBP-14]
MOV DWORD PTR SS:[EBP-14], EDX



MOVS, MOVSB, MOVSW, MOVSD(Move String Byte or Word or DWord) - ESI°¡ °¡¸£Å°´Â °÷ÀÇ °ªµéÀ» Byte(1byte), Word(2byte), DWord(4byte)Å©±â¸¸À½ EDI°¡ °¡¸£Å°´Â °÷À¸·Î À̵¿½ÃŲ´Ù.

MOVSX(Move with Sign-Extended) - Byte³ª WordÅ©±âÀÇ Operand¸¦ Word³ª DWord»çÀÌÁî·Î ´Ã·ÁÁØ´Ù. ºÎÈ£´Â À¯ÁöµÈ´Ù.



MOVZX(Move with Zero-Extended) - Byte³ª WordÅ©±âÀÇ Operand¸¦ Word³ª DWord»çÀÌÁî·Î ´Ã·ÁÁØ´Ù. ¿¬»ê ÈÄ Ã¤¿öÁöÁö ¾ÊÀº °ø°£¿¡´Â 0À¸·Î ¸Å²Û´Ù.



INT <Value> - Interrupt. ÇØ´ç Value¿¡ µû¸¥ Interrupt¸¦ ¹ß»ý½ÃŲ´Ù. <Value>¿¡ ÇØ´çÇÏ´Â °ÍµéÀÌ ³Ê¹« ¸¹À¸¹Ç·Î ´ÙÀ½¿¡ ´õ¿í ÀÚ¼¼ÇÏ°Ô ´Ù·ç±â·Î ÇÏÀÚ.
Example:
INT 21h



ADD <Destination>, <Source> - Addition. °£´ÜÇÏ´Ù. <Destination>+<Source>ÇÑ °ªÀ» <Destination>¿¡ ÀúÀåÇÑ´Ù. <Destination>¿¡´Â ·¹Áö½ºÅÍ, ¸Þ¸ð¸®µîÀÌ ¿Ã ¼ö ÀÖÀ¸¸ç <Source>¿¡´Â <Destination>¿Í °°Àº °Í ÀÌ¿Ü¿¡ Á÷Á¢ÀûÀÎ °ª µîÀÌ ¿Ã ¼ö ÀÖ´Ù.
Example:
MOV EAX, 5h
MOV EBX, 12h
ADD EAX, 5h  ; EAX¿¡´Â 5h + 5h = Ah(10Áø¼ö·Î 10)°¡ ÀúÀåµÈ´Ù.
ADD EAX, EBX ; EAX¿¡´Â Ah + 12h = 1Ch(10Áø¼ö·Î 28)°¡ ÀúÀåµÈ´Ù.



SUB <Destination>, <Source> - Subtact. ADD¸í·É¾î¿Í »ç¿ë¹ýÀº µ¿ÀÏÇÏ´Ù. ´ÜÁö ±â´ÉÀº »©ÁÖ´Â ¿ªÇÒÀ̶ó´Â°Å!
Example:
MOV EAX, 4h
SUB EAX, 3h ; EAX¿¡´Â 4h - 3h = 1h°¡ ÀúÀåµÈ´Ù.



INC <Target> - Increments. Ÿ°ÙÀÇ °ª¿¡¼­ 1À» Áõ°¡½ÃŲ´Ù. <Target>¿¡´Â ·¹Áö½ºÅÍ, ¸Þ¸ð¸®µîÀÌ ¿Ã ¼ö ÀÖÀ¸¸ç, Á÷Á¢ÀûÀÎ °ªÀº ºÒ°¡´ÉÇÏ´Ù.
Example:
MOV EAX, 4h
INC EAX     ; EAX¿¡´Â 4h¿¡¼­ 1Áõ°¡µÈ °ªÀÎ 5h°¡ ÀúÀåµÈ´Ù.



DEC <Target> - Decrements. Ÿ°ÙÀÇ °ª¿¡¼­ 1À» °¨¼Ò½ÃŲ´Ù. <Target>¿¡´Â ·¹Áö½ºÅÍ, ¸Þ¸ð¸®µîÀÌ ¿Ã ¼ö ÀÖÀ¸¸ç, Á÷Á¢ÀûÀÎ °ªÀº ºÒ°¡´ÉÇÏ´Ù.
Example:
MOV EAX, 4h
DEC EAX     ; EAX¿¡´Â 4h¿¡¼­ 1°¨¼öÇÑ °ªÀÎ 3h°¡ ÀúÀåµÈ´Ù.



JMP <Location> - Jump. ¾î¶°ÇÑ Àå¼Ò·Î Á¡ÇÁÇÑ´Ù. ½±°Ô »ý°¢Çؼ­ GOTO¹®À» »ý°¢ÇÏ¸é µÉ°ÍÀÌ´Ù. <Location>¿¡´Â Á¡ÇÁÇÒ °÷ÀÇ ÄÚµåÁÖ¼Ò¸¦ ´ã°íÀÖ´Â ·¹Áö½ºÅͳª ¸Þ¸ð¸®µîÀÌ ¿Ã ¼ö ÀÖ´Ù.
Example:
JMP 0041D983
JMP DWORD PTR SS:[EBP-14]



** Conditional JUMP **



JMP¸í·É¾î¿Í °°´Ù. ´ÜÁö Á¶°Ç¿¡ µû¶ó¼­ JumpÇÒÁö ¾ÈÇÒÁö°¡ °áÁ¤µÇ¹Ç·Î Conditional Jump¶ó°í ÇÏ°Ú´Ù. Conditional JUMP´Â CMP¸í·É¾î¿Í °°ÀÌ »ç¿ëµÈ´Ù.



CMP <Target1>, <Target2> - µÎ Ÿ°ÙÀ» ºñ±³Çؼ­ Flag Register¸¦ º¯°æ½ÃŲ´Ù. <Target1>ÀÌ <Target2>º¸´Ù ÀÛÀ¸¸é CF°¡ SetµÇ°í, °°À¸¸é ZF°¡ SetµÇ°í ÀÌ·±°Í µéÀÌ ÀÖ±äÇÏÁö¸¸, ´ÙÀ½¿¡ ¿Ø¸¸Çϸé Conditional Jump°¡ Àֱ⶧¹®¿¡ Jump¹® Àǹ̷ΠÀÌÇØÇϵµ·Ï ÇÏ°í CMP·Î ÀÎÇÑ Flag º¯È­´Â ±×³É ³Ñ¾î°¡µµ·Ï ÇÏ°Ú´Ù.
Example:
CMP EAX, EBX



Unsigned
JA(JUMP if ABOVE)                                     CF=0 and ZF=0
JAE(JUMP if ABOVE or EQUAL)                    CF=0
JB(JUMP if BELOW)                                     CF=1
JBE(JUMP if BELOW or EQUAL)                    CF=1 and ZF=1
JNA(JUMP if NOT ABOVE)                            CF=1 or ZF=1
JNAE(JUMP if NOT ABOVE or EQUAL)           CF=1
JNB(JUMP if NOT BELOW)                            CF=0
JNBE(JUMP if NOW BELOW or EQUAL)          CF=0 and ZF=0
JE(JUMP if EQUAL)                                      ZF=1
JNE(JUMP if NOT EQUAL)                             ZF=0

Signed
JG(JUMP if GREATER)                                 ZF=0 and SF=OF
JGE(JUMP if GREATER or EQUAL)                SF=OF
JL(JUMP if LOWER)                                     SF!=OF
JLE(JUMP if LOWER or EQUAL)                    ZF=1 and SF!=OF
JNG(JUMP if NOT GREATER)                        ZF=1 or SF!=OF
JNGE(JUMP if NOT GREATER or EQUAL)       SF!=OF
JNL(JUMP if NOT LOWER)                            SF=OF
JNLE(JUMP if NOT LOWER or EQUAL)           ZF=0 and SF=OF
JE(JUMP if EQUAL)                                     ZF=1
JNE(JUMP if NOT EQUAL)                            ZF=0

Flag
JC(JUMP if CARRY flag set)                        CF=1
JNC(JUMP if NOT CARRY flag set)               CF=0
JO(JUMP if OVERFLOW flag set)                  OF=1
JNO(JUMP if NOT OVERFLOW flag set)         OF=0
JP(JUMP if PARITY flag set)                        PF=1
JNP(JUMP if NOT PARITY flag set)               PF=0
JPE(JUMP if PARITY is EVEN)                     PF=1
JPO(JUMP if PARITY is ODD)                      PF=0
JS(JUMP if SIGNAL flag set)                       SF=1
JNS(JUMP if NOT SIGNAL flag set)              SF=0
JCXZ(JUMP if CX is ZERO)                       CX=0

AND <Destination>, <Source> - Logical AND. ³í¸®È¸·Î¿¡ À־ÀÇ AND¿¬»êÀ» ¼öÇàÇÑ´Ù. ±×¸®°í AND¿¬»êÀ» ½ÃÇàÇÒ¶§, OF, CF´Â ÃʱâÈ­µÇ°í, ZF´Â SetµÉ ¼ö ÀÖ´Ù.
Example:
AND EAX, EBX

CALL <Location> - Call. ¸»±×´ë·Î ÇÔ¼ö¸¦ ºÎ¸¦¶§ »ç¿ëÇÑ´Ù. Jump¿Í °°´Ù°í ´À²¸ÁúÁöµµ ¸ð¸£Áö¸¸ Call¹®À» ½ÃÇàÇÒ °æ¿ì ½ºÅÿ¡ Call¹®ÀÌ ½ÃÇàµÈ°ÍÀ» Push¸¦ Çϸç ReturnÀÌ °¡´ÉÇÏ´Ù.
Example:
CALL 0041D983
CALL DWORD PTR [EBX]

DIV <Target> - Division. EAX¸¦ <Target>À¸·Î ³ª´©´Â ¿¬»êÀÌ´Ù. °á°ú·Î ¸òÀºEAX¿¡ ³ª¸ÓÁö´Â ECX¿¡ µé¾î°£´Ù.
Example:
MOV EAX, 64h
MOV ECX, 9h
DIV ECX       ; 64h(100) / 9h(9) = ¸ò : 0Bh(11) , ³ª¸ÓÁö 1hÀ̹ǷÎ
                EAX = 0Bh, ECX = 1h°¡ ÀúÀåµÈ´Ù.



IDIV <Target> - Integer Division. DIV¿Í ¶È°°´Ù. ÇÏÁö¸¸ ´Ù¸¥Á¡Àº ºÎÈ£ÀÖ´Â Á¤¼ö¸¦ ´Ù·é´Ù´Â Á¡ÀÌ´Ù.



MUL <Target> - Multiplication. EAX¿Í <Target>À» °öÇÏ¿© EAX¿¡ ÀúÀåÇÑ´Ù.
Example:
MOV EAX, 2h
MUL 4h       ; EAX¿¡´Â 2h * 4h = 8h°¡ ÀúÀåµÈ´Ù.



IMUL <Value> - Integer Multiplication. EAX¿Í <Value>¸¦ °öÇÏ¿© EAX¿¡ ÀúÀåÇÑ´Ù.
IMUL <Destination>, <Value> - <Destination>°ú <Value>¸¦ °öÇÏ¿© <Destination>¿¡ ÀúÀåÇÑ´Ù.
IMUL <Destination>, <Value>, <Value> - 2°³ÀÇ <Value>¸¦ °öÇÑ ÈÄ¿¡ <Destination>¿¡ ÀúÀåÇÑ´Ù.



LEA <Destination>, <Source> - Load Effective Address. <Source>ÀÇ ½ÇÁ¦ ÁÖ¼Ò¸¦ <Destination>¿¡ ÀúÀåÇÑ´Ù. ÇÏÁö¸¸ ÀÌ ¿ëµµº¸´Ù´Â ºü¸¥ °è»êÀ» À§ÇØ ÁÖ·Î »ç¿ëµÈ´Ù. ¿¹¸¦µé¾î LEA EAX, DWORD PTR [2*EAX+ECX]¸¦ Çϸé, EAX¿¡ 2*EAX+ECX°è»ê°ªÀÌ µé¾î°¡°Ô µÈ´Ù.



NOP - No Operation. ¾Æ¹«°Íµµ ÇÏÁö ¾Ê´Â´Ù.



OR <Destination>, <Source> - Logical OR. ³í¸®È¸·Î¿¡ À־ÀÇ OR¿¬»êÀ» ¼öÇàÇÑ´Ù. ±×¸®°í OR¿¬»êÀ» ½ÃÇàÇÒ¶§, OF, CF´Â ÃʱâÈ­µÇ°í, ZF´Â SetµÉ ¼ö ÀÖ´Ù.
Example:
OR EAX, EBX



POP <Destination> - POP. ½ºÅÿ¡¼­ ESP°¡ °¡¸£Å°´Â °÷¿¡¼­ ÁÖ¼Ò°ªÀ» ºÒ·¯³»¾î <Destination>¿¡ ÀúÀåÇÑ´Ù. ±×¸®°í ESP´Â ´ÙÀ½°ªÀ» °¡¸£Å°°Ô µÈ´Ù.
Example:
POP EAX



PUSH <Source> - ½ºÅÿ¡ <Source>¸¦ Áý¾î³Ö´Â´Ù. ESP´Â ÃÖ±Ù¿¡ PUSHÇÑ °ªÀ» °¡¸£Å°°Ô µÈ´Ù.
Example:
PUSH EAX



RET - Return. ½ºÅÿ¡¼­ ÁÖ¼Ò¸¦ POPÇØ¿Â ÈÄ ±× ÁÖ¼Ò·Î µ¹¾Æ°£´Ù. PUSH¿Í RETÀ» Á¶ÇÕÇؼ­ JMPó·³ »ç¿ë ÇÒ ¼ö ÀÖ´Ù.



TEST <Target1>, <Target2> - ÀÌ ¿¬»êÀº ´ëºÎºÐÀÌ <Target1>°ú <Target2>°¡ °°°Ô ¼³Á¤µÈ´Ù. ¿¹¸¦µé¸é TEST EAX, EAX. ÀÌ ¿¬»êÀº ³í¸®È¸·ÎÀÇ AND¿¬»êÀ» ¼öÇàÇÏÁö¸¸ °á°ú°ªÀ» ÀúÀåÇÏÁö ¾Ê´Â´Ù. ´ÜÁö EAX=0ÀÏ°æ¿ì ZF=1ÀÌ µÇ°í EAX!=0ÀÏ°æ¿ì ZF=0ÀÌ µÈ´Ù. ±×¸®°í OF, CF´Â 0À̵ȴÙ.
Example:
TEST EAX, EAX



XOR <Destination>, <Source> - Logical Exclusive OR. ³í¸®È¸·Î¿¡ À־ XOR¿¬»êÀ» ¼öÇàÇÑ´Ù. XOR¿¬»êÀ» ½ÃÇàÇÒ¶§, OF, CF´Â ÃʱâÈ­µÇ°í, ZF´Â SetµÉ ¼ö ÀÖ´Ù. ÀÌ ¿¬»êÀº XOR EAX, EAXó·³ ¸¹ÀÌ »ç¿ëµÇ´Âµ¥, ÀÌ·¸°Ô ÇÒ °æ¿ì XOR=0ÀÌ µÈ´Ù. ÀÌÀ¯´Â Á÷Á¢ Çغ¸¸é ¾Ë°ÍÀÌ´Ù.
Example:
XOR EAX, EBX
XOR EAX, EAX     ; EAX=0ÀÌ µÊ.



LODS, LODSB, LODSW, LODSD(Load String Byte, Word, DWord) - ESI°¡ °¡¸£Å°´Â °÷¿¡¼­ ÁöÁ¤ÇÑ Å©±â(Byte, Word, DWord) ¸¸Å­ Àоî¿Í EAX¿¡ º¹»çÇÑ´Ù. ESI´Â º¹»çÇѸ¸Å­ À̵¿ÇÑ´Ù.



STOS, STOSB, STOSW, STOSD(Store String Byte, Word, DWord) - EAX¿¡ µé¾îÀÌÀÖ´Â µ¥ÀÌÅ͸¦ ÁöÁ¤ÇÑ Å©±â¸¸Å­ EDI°¡ °¡¸£Å°´Â ÁÖ¼Ò¿¡ º¹»çÇÑ´Ù. EDI´Â º¹»çµÈ ¸¸Å­ À̵¿ÇÑ´Ù.



CLD(Clear Direction flag), STD(Set Direction flag) - Direction Flag¸¦ SetÇϰųª ClearÇÒ¶§ »ç¿ëÇÑ´Ù.



CMC(Complement Carry flag), CLC(Clear Carry flag), STC(Set Carry flag) - Carry flag¸¦ ¼ø¼­´ë·Î ¹ÝÀü, Clear, Set½ÃŲ´Ù.



SHL <Destination>, <Value> - Shift Logical Left. <Destination>¿¡ <Value>¸¸Å­ Shift¿¬»êÀ» ¿ÞÂÊÀ¸·Î ¼öÇàÇÑ´Ù. ¸¸¾à <Destination>º¸´Ù Ä¿Áú°æ¿ì CF=1ÀÌ µÈ´Ù.



SHR <Destination>, <Value> - Shift Logical Right. SHL°ú ±â´ÉÀº µ¿ÀÏÇϸç Shift¿¬»êÀÌ ¿À¸¥ÂÊÀ¸·Î ÁøÇàµÈ´Ù.



ROL <Destination>, <Value> - Rotate Left. SHL°ú ±â´ÉÀº µ¿ÀÏÇÏ´Ù. ´ÜÁö ÀÚ¸®¼ö°¡ ´Ã¾î³¯°æ¿ì ÇØ´ç ºñÆ®°¡ ¿À¸¥ÂÊ ³¡À¸·Î À̵¿ÇÑ´Ù.



ROR <Destination>, <Value> - Rotate Reft. SHR°ú ±â´ÉÀº µ¿ÀÏÇÏ´Ù. ´ÜÁö ÀÚ¸®¼ö°¡ ¾ø¾îÁú°æ¿ì ÇØ´ç ºñÆ®°¡ ¿ÞÂÊ ³¡À¸·Î À̵¿ÇÑ´Ù.





** ÀÌ ±ÛÀÇ ÀúÀÛ±ÇÀº ¸ðµÎ ÀúÀÚ¿¡°Ô ÀÖ½À´Ï´Ù.
   ¼öÁ¤, ¹èÆ÷½Ã ÀúÀÛ±ÇÀ» Ç¥½ÃÇØÁֽñ⠹ٶø´Ï´Ù.
** ¿ÀŸ, À߸øµÈ ³»¿ëÀÌ ÀÖÀ¸¸é Àû±ØÀûÀ¸·Î ¾Ë·ÁÁֽñ⠹ٶø´Ï´Ù :)
** Áú¹®»çÇ× ¶ÇÇÑ Àû±ØÀûÀ¸·Î ¹Þ°Ú½À´Ï´Ù.

Copyright (c) NEWMS 2007 All right Reserved.
Posted by newms
Studying Area/Reverse Engineering l

  Hit : 8868     Date : 2007/08/27 08:45



    
101   1-4 ³ëÁîÀÇ C world (±âÃÊÀûÀÎ ÄÚµåÂ¥º¸±â!)      xownsdk2
08/19 7149
100   1[1]     ¹é¹ÎÁØõÀç
08/31 4784
99   0¹ø¼½ÅÍ º£µå¼½ÅÍÀÏ°æ¿ì..[2]     ROK.AF
03/02 8052
98   - ¾î¼Àºí¸®¾î 3[1]     twinz
08/27 7029
  - ¾î¼Àºí¸®¾î 2     twinz
08/27 8867
96   - ¾î¼Àºí¸®¾î 1[1]     twinz
08/27 8993
95   - ½Ã½ºÅÛ º¸¾È     twinz
08/27 7003
94   - ¼­¹ö°ü¸®ÀÚ¸¦ À§ÇÑ 50°¡Áö ºñ¹ý     twinz
08/27 9501
93   - ¹«½ÃµÇ´Â ¿ÀÇÁ ½ºÅÄ´õµåº¸¾È     twinz
08/27 7044
92   - ¹é¾÷¸í·É¾îÀÇ Á¾·ù     twinz
08/27 9325
91   - µµÃ» , ÇØÅ· ºÒ°¡´ÉÇÑ ¼¼»óÀ̿´٠    twinz
08/25 8049
90   - ´ÙÀÌÇϵå 4.0 ÆÄÀ̾ÀÏ Çö½Ç °¡´É[2]     twinz
08/25 8624
89   - ÄÄÇ»ÅÍ ¹ÙÀÌ·¯½ºÀÇ Á¾·ù[1]     twinz
08/27 8729
88   - [º¸¾È³ëÆ®] º¿[1]     twinz
08/28 7647
87   - [º¸¾È³ëÆ®] Æ÷Æ®½ºÄ³´× (2)     twinz
08/28 9510
86   - [º¸¾È³ëÆ®] Æ÷Æ®½ºÄ³´× (1)     twinz
08/28 8002
85   - [º¸¾È³ëÆ®] ÄíÅ°[4]     twinz
08/28 9184
84   - [º¸¾ÈÆÁ] ¸®´ª½º     twinz
08/28 7729
83   - [º¸¾ÈÆÁ] ÇÁ·Î±×·¡¹Ö Äڵ庸ȣ (2)     twinz
08/28 7920
82   - [º¸¾ÈÆÁ] ÇÁ·Î±×·¡¹Ö Äڵ庸ȣ (1)     twinz
08/28 10399
[1]..[71][72][73][74] 75 [76][77][78][79][80]

Copyright 1999-2024 Zeroboard / skin by Hackerschool.org / Secure Patch by Hackerschool.org