35C3 0pack (idapython)
St1tch
이 문제는 가장 쉬운문제이기도 하고 실제로 많이 풀리기도 했다. 다양한 문제풀이 방법이 있지만, 그냥 idapython을 이용해 풀어보았다.[ https://www.hex-rays.com/products/ida/support/idapython_docs/ ] [메인함수 부분] 해당 바이너리는 문제이름답게 packing이 되어있는 상태이다. 따라서 ida에서 동적디버깅을 통해 unpack된 상태에서 idapython을 이용해 간단하게 풀 수 있다. [한글자씩 비교하는 루틴] 한글자씩 비교하는 루틴이 15번 반복되고, 특정 주소 + offset에 있는 글자와 비교하는 방식이다. [unpack된 시점에서의 memory map] 특정 주소는 메모리맵을 보았을 때, offset 0번째를 기준으로 한다. unpack..