본문 바로가기

개인 공부/리버싱

Reversing Lena3

레나3 문제 풀이(RegisterMe, RegisterMe.Oops)

풀이에 사용된 프로그램

OS : Proxmox, Windows10

S/W : OllyDBG, PEview, HxD


※ 레나2 문제는 레나 1과 똑같은 문제라서 레나 3을 풀겠습니다

 

00. RegisterMe.exe 실행해서 문제 파하기

00-1) 처음 폴더에 2개의 실행파일을 확인

RegsiterMe.exe를 실행시켜본다

files

처음 Remve the nags to register가 뜨고 You need to register me now! 가 뜨고

Oops! I am not registered!! 가 뜨는 것을 확인

실행되는 순서

 

01. 디버거로 실행 파일 파악하기

처음 0x401011 ~ 0x40101F에서 nags가 나오는 것을 볼 수 있다

이것을 안나오게 하기위해 엔트리 포인터를 실행시켜 0x401024로 프로그램을 실행시키기로 한다

RegisterMe.exe OllyDBG

OllyDBG의 메모리 맵(M)을 통해 엔트리 포인트를 수정하기 위해 덤프 위치를 파악한다

Memory Map

엔트리 포인트 부분을 클릭하여 Dump를 확인한다

Dump, Dump 수정

Dump에서 보면 AddressOfEntryPoint를 확인하고 어디서 실행되는지 확인한다

0x4000E8에 존재하는 것을 확인 했으니 Dump에서 들어가 00 10 00 00 을 24 10 00 00 으로 수정한다

Copy to executable file
파일 업데이트

덤프를 수정하고 파일을 저장한다

실행 결과 순서

파일을 수정했지만 Oops! I am not registerd !! 가 나오는 것을 확인했다

이것을 수정하기 위해 이전에 수정했던 실행파일을 디버거로 다시 확인한다

RegisterMe01.exe -> OllyDBG

0x401039 ~ 0x401052에서 Oops를 출력시키는 것을 확인했다

이 부분을 JMP시켜서 화면에 출력되지 않게 수정한다 

JMP 0x40104C

JMP문을 하는데 NOP 2개가 생성된 것을 확인할 수 있는데

NOP이 들어가는 이유는 수정 전 코드의 크기를 동일하게 만들어주기 위해 크기에 맞게 NOP 코드를 넣어준다  

Copy to executable -> Selection

수정한 코드부분을 드래그하고 오른쪽 클릭 후 Copy to executable -> Selection을 클릭하여 파일을 저장한다

결과

이제 결과가 잘 나오는 것을 확인했다


02. 다른 실행 파일 RegisterMe.Oops.exe 문제 파악하기

Bad or unknown format of 32-bit executable file
Opps->OllyDBG

실행파일에 PE가 문제가 있어 엔트리 포인트를 잡지 못하는 것을 알 수 있다

어떤 문제가 있는지 PE 구조를 확인해본다

PEview -> Oops

PEView 툴을 통해 PE 구조를 봤을 때 구조가 깨진 것을 볼 수 있다

이것을 해결하기위해 헥스 코드 에디터를 이용해서 RegisterMe,RegisterMe.Oops

두 파일을 비교해서 RegisterMe.Oops 실행 파일을 수정한다

두 파일 비교

두 파일을 비교해서 다른 부분을 수정해 나간다(F6을 누를 경우 문제 있는 부분을 찾아준다 )

문제 모두 수정

모두 수정한 후 실행파일을 저장해준다

수정한 파일 실행
RegisterMe.Oops01.exe -> OllyDBG

수정 후 디버거에 넣었을 때 잘 실행되는 것을 확인할 수 있다

그리고 위에서 했던 방법으로 수정해서 실행시키면 끝이난다

'개인 공부 > 리버싱' 카테고리의 다른 글

Reversing Lena4  (0) 2023.05.31
Reversing Lena1  (0) 2023.05.24
Reverse Engineering-12(FSC_Level2)  (0) 2023.05.18
Reverse Engineering-11(FSC_Level1)  (0) 2023.05.11
Reverse Engineering-10 (MFC)  (1) 2023.05.08