2017. 8. 20. 01:39ㆍ0x02 Reverse Engineer/0x01. CodeEngn
문제: The program that verifies the password got missed up and ceases to execute. Find out what the password is.
바이너리 실행:
|
[그림 1] 으잉..? 뭐야 뭐야~ |
|
[그림 2] PE가 아닌데 시그니처는 MZ다 ? ? |
의심이 된다. 이럴 땐 매직넘버를 확인할 수 있는 Hexadecimal을 볼 수 있는 아무 프로그램이나 실행시켜본다. 나는 HxD가 있어서 이것을 이용해보겠다.
|
[그림 3] 4D 5A는 파일시그니처 MZ이다. |
☆ 잠시 알고 갑시다 ☆
PE파일은 무엇일까요?
윈도우 실행 파일에 붙어 있는 정보를 PE 파일이라고 부르면서 이 놈은 커다란 구조체로 구성되어 있으며 내부에 수 많은 테이블과 멤버가 존재한다.
종류 로는 exe, scr, dll, ocx, sys, obj 가 있다.
종류 |
설명 |
EXE |
실행 파일 |
SCR |
화면 보호기 |
DLL |
동적 라이브러리 |
OCX |
라이브러리(Active X) |
SYS |
시스템 드라이버 |
OBJ |
오브젝트 파일 |
|
그렇다면, 잘못된 파일은 아니라는거고 (실행파일은 맞다는거고)
문제를 한번 더 상기해보자...
해당 파일은 패스워드를 입력해야 하는 바이너리인데 손상이 되어서 실행이 안된다.
하지만, 비밀번호는 무엇인지 알 수 있나보다. 그렇다면? HEXA값에 쏘옥 숨어있을 수도 있다.
당장 확인하러 뛰어간다` ~~ `
|
[그림 4] 이 부분은 메모리에 로드 된 PE구조 |
|
[그림 5] 해당 바이너리에서 사용되는 함수와 DLL들... |
|
[그림 6] 실패문장, 성공문장, 그리고... 정답.. |
이 문제는 손상된 파일의 비밀번호를 알아내려면 헥사 에디터를 열어야 하는데 이것에 대해 아는지 테스트 하는 문제 인 것 같다.
'0x02 Reverse Engineer > 0x01. CodeEngn' 카테고리의 다른 글
[CodeEngn Basic 7] WHAT ABOUT THE CHANGE BY 'CodeEngn' (0) | 2017.08.20 |
---|---|
[CodeEngn Basic 6] You Find OEP (0) | 2017.08.20 |
[CodeEngn Basic 4] Do you know antiDebug? (0) | 2017.08.20 |
[CodeEngn Basic 3] Do you know VB in Function? (0) | 2017.08.20 |
[CodeEngn Basic 1] Do you Know GetDriveType? (0) | 2017.08.20 |