어셈블리어를 이용한 while 반복문
2017. 2. 24. 01:15
어셈블리어를 이용한 while 반복문
- H3X0R, s1ipp3r 팀 소속 윤석찬(ch4n3) -
요즘들어서 웹만 파지 말고 이것저것 다 해봐야겠다는 생각이 많이 들었습니다. 제 꿈이 제로데이 취약점을 찾는 거라서, 취약점 찾기에는 리버싱이 핵심이라는 생각 덕분에 리버싱을 공부 중입니다.
평소에 어셈블리어에 대한 안좋은 인식을 갖고 있었는데, 점점 배우다 보니 C언어(보다는 아니지만)처럼 익숙해지고 있습니다.
오늘은 제가 C언어로 짠 while 반복문을 공유하겠습니다. _asm 을 이용했어요~
#include <stdio.h>
int main(void) {
int n = 10;
printf("[*] C언어로 된 while 문(n : %d)\n", n);
while (n != 0) {
n--;
}
printf("[*] 실행이 끝난 while 문 (n : %d)\n\n", n);
n = 10;
printf("[*] 어셈으로 된 while 문(n : %d)\n", n);
_asm {
MOV n, 10
MOV ecx, 10
TOP:
CMP ecx, 0
JE BOTTOM
DEC ecx
JMP TOP
BOTTOM:
MOV n, ecx
}
printf("[*] 실행이 끝난 while 문 (n : %d)\n", n);
return 0;
}
어제는 코드엔진의 basic 001 문제를 풀었고, 오늘은 이렇게 코딩을 하니까 공부가 더 잘되는 것 같기도 합니다ㅋㅋㅋㅋㅋㅋ
디미고가서도 이렇게 열심히 공부할 수 있었으면 좋겠다~~~