첫번째로 패킹의 유무를 확인 해보았다.

보아하니 패킹이 되어있지는 않은것 같다. 

문제에서 하드디스크의 이름을 CodeEngn으로 바꾸면 나오는 시리얼값을 입력하라고 하였다.

그래서 하드디스크의 이름을 관리자 권한으로 변경해주었다.

그리고 나서 Olly DBG로 실행을 해보았다.

패킹이 되어 있지 않아서 시리얼 값을 비교하는 함수가 있을것이라고 추측을 해보았다

IstrcmpiA 함수가 있었다. 이 함수가 서로서로 시리얼 값을 비교해서 성공과 에러 메세지를 띄어주는 곳으로 점프 시키는것 같다. 

함수의 위치로 이동해보았다.

4562-ABEX가 아직 무엇인지는 모르겠으나, 밑의 주소에 CodeEngn이라는 문자열을 PUSH하고 있다.

아마도 하드디스크의 이름을 바꿨을때 이곳으로 PUSH 되는것 같다.

계속 실행을 해보았다.

기존의 CodeEngn 문자열에 4562-ABEX 문자열이 뒤에 추가되었다. 아마 이런식으로 시리얼 값이 정해지는것 같다.

게속 실행해보았다.

 

Code라는 문자가 1글자씩 뒤로 밀리는것을 볼수있는데, 분기가 2번도는것을 보아 2글자씩 뒤로 밀리는것 같다 

그래서 CodeEngn -> EqfgEngn으로 2글자가 밀려서 시리얼값이 생성된다.

L2C-5781이라는 새로운 문자열이 또 보인다 아직은 잘모르겠지만 게속 실행해보았다.

새로 시리얼 값이 생성된것을 볼 수 있다. 

아까 2글자씩 밀렸던 EqfgEngn4562-ABEX의 앞에 L2C-5781이라는 문자열이 추가되었다 

따라서 07.exe의 Serial 값은 L2C-5781EqfgEngn4562-ABEX인것을 알 수있다.

그래서 입력을 해보았다.

성공 메세지가 출력되는것을 확인할 수 있다.

그리고 하드디스크 이름은 원래대로 해주었다.

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

Code Engn Basic RCE level 9  (0) 2021.01.25
Code Engn Basic RCE level 8  (0) 2020.12.04
Code Engn Basic RCE level 6  (0) 2020.12.02
Code Engn Basic RCE level 5  (0) 2020.08.16
Code Engn Basic RCE level4  (0) 2020.08.16

+ Recent posts