StolenByte를 구하시오 Ex) 75156A0068352040
StolenByte란
Packer가 이동시킨 코드의 윗부분을 의미한다.
언패킹을 해도 정상 실행되지 않는다.
정상 실행하려면 이동시킨 코드를 제자리로 돌려놓고 IAT를 복구하면 된다.
UPX로 패킹된 파일의 경우 POPAD 이후 JMP 전 코드들을 의미한다.
PE 파일 정보 확인
UPX Packer로 패킹된 PE 파일임을 알 수 있다.
패킹된 PE파일을 디스어셈블 했을 때, POPAD 이후부터가 stolen byte이다.
stolenbyte는 OEP로 점프 전 push되므로, push되는 3바이트가 stolenbyte에 해당한다.
6A0068002040006812204000
upx로 언패킹을 한다.
x32dbg를 이용해서 F9로 EntryPoint를 찾아서 F7로 실행시기면 처음에 MessageBox를 띄운다.
정상 실행되지 않는 것 같아 보인다.
언패킹된 PE 파일의 EntryPoint로 이동해보면 12바이트가 stolenbyte로 원래 코드가 밀린 것을 확인할 수 있다.
정답은 stolenbyte인 6A0068002040006812204000로 인증시 Success!가 뜬다.
CodeEngn Basic RCE L12 (0) | 2021.05.23 |
---|---|
CodeEngn Basic RCE L11 (0) | 2021.05.23 |
abex crackme #1 with code injection(코드 인젝션, 메모리 덤프) (0) | 2021.05.18 |
abex crackme #2 (0) | 2021.05.18 |
리버싱 입문 1.7 리버싱에 필요한 도구 (0) | 2021.05.17 |