서브웨이

CodeEngn Basic RCE L20 풀이 본문

Reverse Engineering/CodeEngn

CodeEngn Basic RCE L20 풀이

샌드위치메이커 2020. 1. 28. 12:52

마지막 문제인 만큼 뭔가 지금까지 배운것들의 총 집합일 것 같다. 한번 확인해보자.

예상과 다르게 패킹은 안되어있다.ㅎㅎ

일단 CRACKME3.KEY라는 파일의 존재여부를 확인하는 듯 하다. 파일을 만들어주자.

예시와 비슷하게 값을 넣어주자.

네번째 인자가 읽어들인 데이터의 길이로 리턴되기때문에 파일의 내용이 0x12글자 이상이어야 진행이 된다.

이후에 중단점이 걸린 곳으로 진행하면 아래와 같은 함수가 나온다.

실행해보니 CRACKME3의 내용을 불러와서 이걸로 무슨 일을 한다.

다 끝나면 또 다시 무슨 일을 한다.

cmp문을 일단 레지스터를 조작해서 지나가보면

이런 창이 나온다.

그럼 일단 8글자만 나오도록 9번째를 00으로 만들어야될것이다.

쉬운 이해를 위해 이걸 코드로 바꿔보자. 

대충 이런식으로 하면 된다. 

참고로 cmp문은 15~18번째 문자와 4020F9의 값을 비교해서 같으면 성공메시지를 출력한다.

일단 CodeEngn으로 만들어보자. 이것도 코드로 짜면 될 것 같다.

이렇게 짜면

이렇게 나온다. 일반 메모장같은 프로그램으론 2에 해당하는 아스키코드값을 입력을 못하므로 HxD를 사용하자.

이제 15~18번째 문자들을 알기 위해 일단 돌려보자.

수정해주자.

짜잔(참고로 인증할때 9~D는 그냥 00으로 함)

'Reverse Engineering > CodeEngn' 카테고리의 다른 글

CodeEngn Basic RCE L19 풀이  (0) 2020.01.23
CodeEngn Basic RCE L18 풀이  (0) 2020.01.21
CodeEngn Basic RCE L17 풀이  (0) 2020.01.20
CodeEngn Basic RCE L16 풀이  (0) 2020.01.17
CodeEngn Basic RCE L15 풀이  (0) 2020.01.16
Comments