1581, 5/80 ȸ¿ø°¡ÀÔ  ·Î±×ÀΠ 
   salangi11
   ¸®¹ö½º ¿£Áö´Ï¾î¸µ (¾î¼Àºí¸®) -1

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


¸®¹ö½º ¿£Áö´Ï¾î¸µÀ» À§ÇÑ ¾î¼Àºí¸®







1. C¿Í ¾î¼Àºí¸®¸¦ ºñ±³ÇÒ ¶§, ¾î¼Àºí¸®´Â Çѹø¿¡ ÇϳªÀÇ µ¿ÀÛ.




2. Áö±Ý ¹è¿ì´Â °ÍÀº IA-32(°¡Àå ´ëÁßÈ­µÈ °Í.)




3. ±âº»ÇüÅ : "¸í·É¾î + ÀÎÀÚ"




4. ¿ÉÄÚµå(opcode)=¸í·É¾î




5. ÀÎÀÚ : ¾î¶² Àå¼Ò? + ¸í·É¾î¿¡ ¿µÇâ ¹Þ´Â °Í = ¿ÀÆÛ·£µå(operand)




6. push¸¦ ¾²¸é ½ºÅÿ¡ °ªÀÌ ³Ö¾îÁü.


½ºÅÃÀ̶õ?

½ºÅÃ(stack)Àº ¸ðµç ¿ø¼ÒµéÀÇ »ðÀÔ(insert)°ú »èÁ¦(delete)°¡ ¸®½ºÆ®ÀÇ ÇÑÂÊ ³¡¿¡¼­¸¸ ¼öÇàµÇ´Â Á¦ÇÑ Á¶°ÇÀ» °¡Áö´Â ¼±Çü ÀÚ·á ±¸Á¶(linear data structure)·Î¼­, »ðÀÔ°ú »èÁ¦°¡ ÀϾ´Â ¸®½ºÆ®ÀÇ ³¡À» topÀ̶ó ÇÏ°í, ´Ù¸¥ ÇÑÂÊ ³¡À» bottomÀ̶ó ÇÑ´Ù. ½ºÅÃÀº Á¾Á¾ pushdown stackÀ̶ó°íµµ Çϴµ¥, ½ºÅÃÀÇ top¿¡ »õ·Î¿î ¿ø¼Ò¸¦ »ðÀÔÇÏ´Â °ÍÀ» push¶ó ÇÏ°í, °¡Àå ÃÖ±Ù¿¡ »ðÀÔµÈ ¿ø¼Ò¸¦ ÀǹÌÇÏ´Â ½ºÅÃÀÇ topÀ¸·ÎºÎÅÍ ÇÑ ¿ø¼Ò¸¦ Á¦°ÅÇÏ´Â °ÍÀ» popÀ̶ó ÇÑ´Ù. ÀÌ¿Í °°Àº ½ºÅà ¿¬»óÀº Ç×»ó ½ºÅÃÀÇ top¿¡¼­ ¹ß»ýÇϹǷΠtop Æ÷ÀÎÅÍÀÇ °ªÀ» 1¾¿ Áõ°¡ ¶Ç´Â °¨¼Ò½ÃÅ´À¸·Î½á ¼öÇàµÈ´Ù.


[³×À̹ö Áö½Ä¹é°ú] ½ºÅà [stack] (ÄÄÇ»ÅÍÀÎÅͳÝIT¿ë¾î´ë»çÀü, 2011. 1. 20., ÀÏÁø»ç)




7. movµµ push¶û ºñ½ÁÇѵ¥, Á¶±Ý ´Ù¸§

ex) push 12

=>´Â ½ºÅÿ¡ 12¶ó´Â °ªÀ» ³Ö´Â °Í

mov oo, 1000

=>oo¿¡´Ù°¡ 1000 ³Ö´Â °Í.



memcpy´Â ¸Þ¸ð¸® º¹»ç ÇÔ¼ö°í, strcpy´Â ¹®ÀÚ¿­ Àüü º¹Á¦ ÇÔ¼ö¶ó C¾ð¾î¿¡¼­ º¼ ¶§, ÀÌ°Í°ú °°´Ù°í ÇØÁÙ ¼ö ÀÖÀ» °Í °°´Ù.




8. ¾î¼Àºí¸®´Â ´Ü¼ø


->´Ü¼øÇÔ¿¡¼­ ¾î·Á¿òÀÌ ³ª¿È.




C¾ð¾î·Î´Â ½±°Ô Ç¥ÇöÇÒ ¼ö ÀÖ´Â °ÍÀÌ ¸Å¿ì ±æ°Ô Ç¥ÇöµÉ ¼ö ¹Û¿¡ ¾øÀ¸´Ï±î.




9. ·¹Áö½ºÅÍ

IA-32ÀÇ ¹ü¿ë ·¹Áö½ºÅÍ´Â ÃÑ 8°³, ·¹Áö½ºÅ͸¦ 'º¯¼ö'¶ó°í »ý°¢ÇÏÀÚ. CPU°¡ »ç¿ëÇÏ´Â º¯¼ö¶ó°í.

¿¬»ê ·¹Áö½ºÅÍ·Î EAX, EDX, ECX, EBX°¡ ÀÖÀ¸¸ç ÁÖ¼Ò ·¹Áö½ºÅÍ·Î ESI EDIµîÀÌ Á¸ÀçÇÑ´Ù.




9-1. ¿¬»ê ·¹Áö½ºÅÍ




EAX : »ê¼ú °è»êÀ» Çϸç, ¸®ÅÏ°ª(ÄÄÇ»ÅÍ ÇÁ·Î±×·¡¹Ö¿¡¼­ return ¹®Àº ÇöÀçÀÇ ÇÔ¼ö¿¡¼­ °ªÀ̳ª ÁÖ¼Ò¸¦ ¹ÝȯÇÒ ¶§ »ç¿ëÇÑ´Ù.)À» Àü´ÞÇÑ´Ù.

°¡Àå ¸¹ÀÌ ¾²´Â ·¹Áö½ºÅÍ. ¿¬»ê¿¡¼­ »ç¿ëµÈ´Ù.

EAXÀÇ A°¡ AccumulatorÀÇ ¾àÀÚÀÌ´Ù.




EDX : EAX¿Í °°ÀÌ ¿¬»ê¿¡ ÀÌ¿ëÇϵÇ, ¸®ÅÏ °ªÀÇ ¿ëµµ·Î »ç¿ëµÇÁö ¾Ê´Â´Ù.




ECX : ¹Ýº¹¹®À» »ç¿ëÇÒ ¶§, ¹Ýº¹¿¡¼­ Å»ÃâÇϱâÀ§ÇÑ ¿ªÇÒÀÌ ÇÊ¿äÇÏ´Ù. Á¶°ÇÀ» ¼³Á¤ÇÏ°í (i<10) ±× Á¶°ÇÀ» Áõ°¡½ÃÅ°´Â Ä«¿îÆÃ(i++)À» ÅëÇØ

¹Ýº¹¹®À» Áß´ÜÇÏ°í Å»ÃâÇÏ°Ô µÈ´Ù. ¾î¼Àºí¸®¿¡¼­ »ç¿ëµÇ´Â Ä«¿îÆÃÀ̶ó ºÎ¸¦ ¼ö ÀÖ´Â ECX´Â óÀ½ Ãʱ⠰ª¿¡¼­ 1¾¿ °¨¼ÒÇÏ°í, Ä«¿îÅÍ(i)°¡ 0ÀÌ µÉ ¶§, ¹Ýº¹¹®À» Áß´ÜÇÑ´Ù.

C°¡ countÀÇ ¾àÀÚÀÌ´Ù.




EBX : ÀÇ¹Ì ¾ø´Ù. ºÎÁ·Çؼ­ °ø°£ÀÌ ´õ ÇÊ¿äÇÒ ¶§, »ç¿ëÇÑ´Ù.







9-2. ÁÖ¼Ò ·¹Áö½ºÅÍ




ESI : ½ÃÀÛÁö À妽º




EDI : ¸ñÀûÁö À妽º




ESIÀÇ °ªÀ» EDI·Î º¹»çÇÑ´Ù°í »ý°¢ÇÏ¸é ½¬¿ò. (S¿Í D°¡ Source¿Í DestinationÀÇ ¾àÀÚ.)







9-3. ¼¼ºÎ(ÇÏÀ§) ·¹Áö½ºÅÍ




AX : 16ºñÆ®(2¹ÙÀÌÆ®)

AH : 8ºñÆ®(1¹ÙÀÌÆ®)

AL : 8ºñÆ®(1¹ÙÀÌÆ®)




Ex) EAX°¡ 0xabcdefgh¶ó¸é

EAXÀÇ AX´Â efgh, AH´Â de, ALÀº gh´Ù.



​Ã߽Š: »¡¸® À¯Ä¡¿ø»ý¿¡¼­ Å»ÃâÇϸé ÁÁ°Ú´Ù.
        ¹º°¡ ¿À·ùÀÖÀ¸¸é ¸»ÇØÁֽʽÿÀ!!!


Âü°í : ¸®¹ö½º ¿£Áö´Ï¾î¸µ ¹ÙÀ̺í. À§Å°¹é°ú

  Hit : 7778     Date : 2017/02/21 11:59



    
1501   ¤·¤µ¤¸?     rabbitlycat
05/08 5392
1500   lcd7132´Ô [1]     rabbitlycat
05/08 5152
1499   ½ºÅ©¸³Æ®¾Ë·ÁÁֽǺÐ~2     lcd7132
05/03 5728
1498   ½ºÅ©¸³Æ®¾Ë·ÁÁֽǺÐ~1     lcd7132
05/03 5802
1497   ½ºÅ©¸³Æ®¾Ë·ÁÁֽǺÐ~     lcd7132
05/03 5667
1496   µðÁöÅÐÆ÷·»½Ä2±Þ ½Ç±â µû½ÅºÐ     rabbitlycat
04/30 5597
1495   ¿ö°ÔÀÓ ¹®Á¦ ÈùÆ®Á» ÁֽǺР±¸ÇÔ     rabbitlycat
04/30 5928
1494   °ü¸®ÀÚ´Ô ÀÖ±ä ÇÑ°¡¿ä??[1]     rabbitlycat
04/30 5410
1493   BOFÃ¥ ÀÔ¹®ÀÚ ÃßõÁ» ÇØÁÖ¼¼¿ä!     rabbitlycat
04/30 5878
1492   ½ºÅ©¸³Æ® ¾Ë·ÁÁֽǺÐ~2     lcd7132
04/29 5709
1491   ½ºÅ©¸³Æ® ¾Ë·ÁÁֽǺÐ~1     lcd7132
04/29 5469
1490   ½ºÅ©¸³Æ® ¾Ë·ÁÁֽǺÐ~     lcd7132
04/29 5680
1489   ·¹º§¾÷!2     lcd7132
04/27 5354
1488   ·¹º§¾÷!1     lcd7132
04/27 5249
1487   ·¹º§¾÷!     lcd7132
04/27 5011
1486   ´ëÇлý°­Áº¸°í½Í¾î¿ä     lcd7132
04/26 5617
1485   Á¤º¸°øÀ¯ÇÏ´Â ´ÜÅå¹æÀÕÀ¸¸é ºÎŹÁ»¿ä     lcd7132
04/26 5199
1484   Á¤º¸°øÀ¯ÇÏ´Â ´ÜÅå¹æÀÕÀ¸¸é ºÎŹÁ»¿ä     lcd7132
04/26 5163
1483   ½ºÅ©¸³Æ® À߸¸µå½Ã´ÂºÐ~     lcd7132
04/26 5733
1482 ºñ¹Ð±ÛÀÔ´Ï´Ù  ÇØÄ¿½ºÄð °ü¸®ÀÚ´Ô²²     packer
03/20 2
[1][2][3][4] 5 [6][7][8][9][10]..[80]

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