공개용 Writeup PE Password
2018. 6. 6. 01:24ㆍ0x02 Reverse Engineer/0x02. Reversing.kr
728x90
문제의도
PE PASSWORD Protector에 대해 이해를 하고 있는가?
패커가 언패킹이 되는 과정을 이해하고 있는가?
바이너리 열고 인증까지 소요시간
2017.12.01 ~ 2018.06.06
풀고 난 후 ..
패커를 직접 만들어 테스트를 해보고 싶어 졌다.
어셈블리어 코딩이 더 재밌어졌다.
보이는 것만 쫓아가다가는 때로는 진전이 없다.
풀기 위해 공부 한 것
PE Password Protector
Simple Writeup
Original과 Packed의 EntryPoint가 왜 달라져있는지를 생각해보아야 한다.
문제에서 패스워드를 입력하는 Dialog가 있다고 무조건 맹신하지 말자.
breakpoint를 걸지 않고 Trace하면 Win32API의 특성에 의해 Message 큐 루틴을 벗어날 수 없다.
적절하게 코드 패치를 해주어야 한다.
401000~3의 데이터에서 401004~7까지 Original 바이너리와 일치하기 위해서는 "어떠한 레지스터 하나"를 유심히 보고 코드를 작성해야 한다.
코드를 올바르게 작성한다면, 그 레지스터에 만족하는 값은 2개가 출력 된다.
그 값과 EAX 값을 이용하면 언패킹이 가능하다.
패스워드 입력 하는 부분
얻을 수 있는 EBX 2개
중요 루틴
플래그
앞으로 4개 남았다. 힘내자.
'0x02 Reverse Engineer > 0x02. Reversing.kr' 카테고리의 다른 글
Simple VM solve 공개용 (0) | 2018.12.24 |
---|---|
PEPassword (0) | 2018.06.06 |
공개용 CSharp Writeup (0) | 2018.06.04 |
CSharp (0) | 2018.06.04 |
SimpleVM 풀기 전 공부 1 (1) | 2018.06.01 |