상세 컨텐츠

본문 제목

[Write-up] CodeEngn Advance RCE 6

Reversing Write-Up/03.CodeEngn Advance

by RACC8N 2020. 2. 1. 12:41

본문

문제 : 남은 군생활은 몇일 인가

 

풀이 : 

프로그램을 실행시키면 확인을 누를때마다 계속해서 숫자가 올라간다.

 

디버거를 실행시켜보자.

 

안티 디버깅이 되어있으니 우회해보자.

 

안티디버깅 부분을 우회했다. 

 

메세지를 출력해주는 곳을 찾아보자.

 

MessageBox 함수를 찾았고 ebp에 전역일이 있다.

 

현재는 2인데 남은 전역일까지 계속 루프를 돈다.

 

그럼 루프를 탈출할 수 있는 분기문이 있을 것이고, 그 분기문 직전에 cmp 해주는 값이 남은 전역일임을 예상할 수 있다.

 

계속 흐름을 따라가보면 cmp ebp, eax 명령어를 볼 수 있는데 eax는 현재 일 수이며, ebp는 남아있는 총 전역일임을 알 수 있다. 316을 10진수로 바꾸면 790, 즉 790일 남았다.

 

 

관련글 더보기

댓글 영역