티스토리 뷰
1.
폼에 그림을 그릴 수 있게 되어있고, "Check" 버튼을 누르면 "Wrong!" 이 출력된다.
MessageBox 가 뜨는 시점에 프로그램을 suspend 시켜 caller address 를 찾아낸다.
2.
MessageBox 를 호출한 부분에서 위로 올라가 보면 루프문을 돌면서 특정 데이터를 90000번동안 체크하는 구문을 볼 수 있다.
더 위로 올라가 보면, 체크하는 데이터의 포인터가 담긴 ECX와 ECX+EAX 에 대략 직접 그린 그림과, 프로그램 내의 리소소를 가지고 있는 거라고 추측해 볼 수 있다.
사진과 그린 그림이 일치하는지 90000번 확인해, 다르지 않다면 00401500 함수를 실행하고, 루린을 종료한다.
바로 루틴을 실행해 보았으나 아무 일도 일어나지 않았고, exe 안에 들어있는 사진을 꺼내 확인해 볼 필요가 있다.
3.
ResourceHacker 과 같은 프로그램으로 exe 내의 리소스 데이터를 추출한다.
다만, 이 파일에는 사진 파일(bmp)와 같은 헤더가 붙어있지 않으므로, 헤더를 붙여 주어야 한다.
임의로 그림판과 같은 곳에서 bmi.bmiHeader 에서 얻을 수 있는 그림 크기의 파일을 생성하고, 헥스 에디터로 사진 픽셀 데이터를 바꾸어 주면,
사진에 있는 정답을 확인할 수 있다.
'Reversing > * reversing.kr' 카테고리의 다른 글
reversing.kr - Easy ELF (0) | 2016.07.22 |
---|---|
reversing.kr - Ransomware (0) | 2016.07.22 |
reversing.kr - Music Player (0) | 2016.07.21 |
reversing.kr - Easy Keygen (0) | 2016.07.20 |
reversing.kr - Replace (0) | 2016.07.19 |
댓글