CodeEngn Basic 09

Kail-KM
|2015. 6. 1. 01:51

문제 확인








풀이


아래와 같이 POPAD를 찾은 후에 JUMP를 통하여 OEP로 가기전에 이루어지는 동작이 바로 StolenByte이다. 

아래와 같이 OEP로 점프하기 바로 전에 스택을 보면 위의 붉은 상자 부분이 Stack에 Push 되어 있는 것을 확인 할 수가 있다. 이러한 것이 바로 StolenByte로써 이를 구하는 문제 였던 것이다. 

그렇다면 이러한 StolenByte가 제대로 스택에 있는지 확인하기 위해 OEP로 JUMP 해볼 경우 아래와 같이 Stack에는 이미 Push 되어 있는 StolenByte를 확인 할 수가 있다.




추가풀이


OEP를 찾은 후를 계속 풀어 본다면 우선 이 프로그램은 키파일이 있는 지를 확인 하는 것이다. 따라서 CreateFile 함수를 통하여 해당 파일이 존재하는지( Mode = OPEN EXISTING) 확인을 하고 그 해당 파일의 크기가 0x12인지 확인하기 위하여 GetFileSize 함수를 통하여 확인을 한다. 따라서 해당 폴더에 abex.l2c 라는 파일이 18Byte의 크기로 존재하여야 프로그램이 성공적으로 실행이 된다.





'Reversing > CodeEngn' 카테고리의 다른 글

CodeEngn Basic 11  (0) 2015.06.01
CodeEngn Basic 10  (0) 2015.06.01
CodeEngn Basic 08  (0) 2015.06.01
CodeEngn Basic 07  (0) 2015.06.01
CodeEngn Basic 06  (0) 2015.06.01