20130916 어셈블리 - 전영기
push ebpmovebp, esp pusheaxpushecxpushedxpushfd ;기존 플래그비트를 저장하기 위함이다. 도중에 add 연산자가 있어 플래그비트를 바꿔버린다.pushebx movebx, esp ;esp를 ebx에 저장movesp, [ebp + 8]addesp, 40pusheax ;순차로 넣기pushecxpushedx movesp, ebx ;esp복구 popebx ;ebp복구popedx ;flag bit edx에 저장 moveax, esp ;eax에 esp저장movesp, [ebp + 8]addesp, 28 pushebx ;순차적으로 넣기movecx, ebp ;초기 esp주소addecx, 12pushecxmovecx, [ebp] ; 초기 ebppush ecxpushesipushedimo..
2013. 9. 16.
130913 금 조유진
.386.MODEL FLAT PUBLIC _linux.CODE_linux PROC NEAR32; 총 24 사이클( 엔트리+엑시트 백업 푸시팝 제외) pushebpmovebp, esp pushebx;2pushecx;2pushedx;2 ; 8moveax, 1;2movebx, 2;2movecx, 3;2movedx, 4;2 ; 6pusheax;2moveax, [ebp+8]; 4 ; 2popDWORD PTR[eax];4 ; 2movDWORD PTR[eax+4], ebx;2 ; 2movDWORD PTR[eax+8], ecx;2 ; 2movDWORD PTR[eax+12], edx;2 popedx;2popecx;2popebx;2 movesp, ebppopebpret _linux ENDP END
2013. 9. 13.