CodeEngn Advance06 풀이
Wargame | CTF/Reversing

CodeEngn Advance06 풀이

띠용... 문제가 남은 군생활 구하는 문제입니다.. 무슨 프로그램인지 궁금하네요 ㅋㅋㅋ

실행하면 이런 메세지가뜨고 확인을누르면 숫자가 1씩 계속증가합니다.

아마도 어떤특정한 값이되면 프로그램이 종료될거같네요. 

메세지박스를 출력하는부분입니다.  프로그램종료를위해 값을비교하는부분이 밑에있겠다라고 예상해볼수있습니다.

트레이싱하다보니 메세지박스의 내용안에 값을세팅하는 부분이있었습니다.

이값은 eax값을 받아와서 출력을위해 숫자값을 아스키코드값으로 변경 시켜주고 있었는데요. 아마 프로그램종료를 위해 eax값이랑 어떤부분을 비교하겠죠? 그럼 eax값이 어디서 세팅되는지 알아보아야된다는 생각에 치트엔진을 써보았습니다.

치트엔진이 생각외로좋더라구요 특정주소에 쓰거나 접근하는 주소를 찾는데는 참 편리합니다. 

메세지박스의 내용부분의 값을 저장하는 스택을 찾았고, 해당스택에 값을 쓰는 부분을 찾았습니다.

여기서 ebp에있는값을 넘겨주고있군요. 여기서 이 1씩증가하는 값이랑 어떤값을 비교해서 분기문으로 프로그램 종료가 될거라 예상했습니다. 그래서 해당 스택의 주소에 access 하는 하드웨어브레이크를 걸었습니다. 치트엔진으로 하셔도됩니다. 같은원리라고 알고있습니다.

브레이크를건후 run을 시켜주었더니 딱 어떤값이랑 비교하는 부분을 찾았습니다. ebp값은 0x316이고 eax값이 1씩증가하는 값입니다.

답은 10진수로 790이네요. MD5해시로 변환하라고 하였으므로 최종답은 2DACE78F80BC92E6D7493423D729448E 입니다. 

풀이완료!



'Wargame | CTF > Reversing' 카테고리의 다른 글

CodeEngn Malware01 풀이  (0) 2018.08.07
CodeEngn Advance07 풀이  (0) 2018.04.30
CodeEngn Advance05 풀이  (0) 2018.03.26
CodeEngn Advance04 풀이  (0) 2018.03.26
CodeEngn Advance03 풀이  (0) 2018.03.26