OZ1NG의 뽀나블(Pwnable)

[Tips] 어셈블리어 코딩, div 명령어 오류 본문

Tips

[Tips] 어셈블리어 코딩, div 명령어 오류

OZ1NG 2019. 5. 16. 00:45

가끔씩 어셈블리어로 코딩을 할때 div 명령어를 옳게 사용해도 에러가 떠서 프로그램이 그냥 종료되는 경우가 있습니다.

 

이때 디버깅을 해보면 보통 

[그림1] div 명령어 오류

위와 같이 Integer overflow가 일어났다고 합니다.

 

[Integer overflow가 뜨는 이유] 
https://stackoverflow.com/questions/5606895/integer-overflow-problem

 

영알못인 제가 대충 해석한 바로는 edx에 뭔 값이 있으면 어떠한 연산에 의해 edx에 뭔 값이 저장되고, 그 값이 Integer overflow가 되기 때문에 안된다는 것입니다.

 

아무튼 결론적으로 이 버그를 해결하는 방법은

edx레지스터를 0으로 초기화를 하고 div 명령어를 사용하시면 해결 됩니다.

Comments