본문 바로가기
Programming/Hacking & Security

[Reversing] 반복문의 동작 원리 by 용호

by ★용호★ 2010. 5. 26.

2010년 5월 25일 화요일



 

401025 부분이 반복되는 부분




 

다음 구문은 무한 루프의 while 나타낸다. (while(1))



 

아래 처음 cmp부분은 if문을 나타낸다. 이어서 아래에 또다시 cmp 나오는데 else if 일까 아니면

새로 시작하는 if 일까?,  새로시작하는 if 구문이다.  이유는 만약 else if 또는 else 라면 jmp 되는 곳이

같아야 한다. 하지만 위에선 401020으로 jmp 하고 아래에선 401050으로 jmp 수행한다.





 

다음과 같이 위의 if문에서 jmp되는 곳과 아래의 조건의 jmp되는 곳이 같으므로 401050부분은

Else if 문을 의미한다.




 

여기서 조건이 두개라는 것은 if 안의 if 이거나 and(&&), or(||) 연산자를 이용한 조건이라는 의미이다.

Jmp 되는 곳이 같으므로 이것은 &&연산을 수행한  if문을 말한다.






 


아래
코드는 for문의 형태, for문의 동작원리를 파악하면 된다.

초기 값은 구문 밖에 존재, 증감식이 조건식 위에 존재 하므로 초기값 jmp 한다.

반복은 body수행 증감식으로 jmp 함으로써 반복이 이루어진다.

 





 

For문에 초기값과 증감 부분이 없으며 while 같은 방식으로 동작한다.




▶ 코드




댓글