CodeEngn Challenges : Basic 11 문제 풀이

안녕하세요!


테라트입니다


전공글에 소홀했습니다 ㅠㅠ


(_ _) 반성,,,


앞으로도 소홀할지도,, 크흠



11번 문제 풀이 시작합니다


URL : https://codeengn.com/challenges/basic/11




OEP와 Stolenbyte를 찾으라고 하네요


Stolenbyte?? 라고 하시는 분들


지난 문제 풀이에서 설명적어놓았으니 참고하시기 바랍니다



동적실행 먼저 해보겠습니다!



OK를 클릭하면 keyfile을 체크한다고 하네요



흐으으음, 나는 파일을 찾을 수 없어! 라고 합니다


OEP를 찾으라는데 어떤 패킹인지 힌트를 얻을 수 있을지 모르니


Exeinfo를 통해 확인해보겠습니다



아~ UPX 패킹이네요!


매우 좋습니다


언패킹을 진행해보겠습니다~


[지난 문제 풀이 참고]

- UPX 패킹에 대해

- Import REC 사용하여 UPX 패킹



언패킹을 실행하고 올리디버거로 열어서 확인해보았습니다


전에 보았던 문제와 동일하게 함수 시작부분이 NOP으로 채워져있는 것을 확인할 수 있습니다



주소값 옆의 OP코드 부분의 NOP 개수를 세어보면 12Byte가 나옵니다


12Byte를 확인 후 패킹 전 프로그램으로 돌아가서 UPX 패킹이 풀리는 POPAD 부분으로 가보겠습니다




12Byte가 NOP으로 채워져있던 것을 확인했으니

POPAD 뒤에 오는 코드 중 12Byte를 세어보면 다음 3줄이 나옵니다



OEP와 Stolenbyte 정답을 구했네요


Stolenbyte의 값인 6A0068002040006812204000 와

OEP 값인 00401000 값을 붙여서 써주시면 정답이 되겠습니다


004010006A0068002040006812204000





수고하셨습니다 :)


댓글, 0

1 2 3 4 5 6 7 8 9 ··· 20

테라트

Since 2018.07.03 / IT 관련 정보, 일상의 공유를 위한 블로그