문제를 보면 OEP와 OPCODE를 동시에 구해야하는 문제이다.
압축을 풀어준 뒤 DIE로 분석해보았다.
ASPack을 다운받아야하는데 이뮤니티 디버거로 그냥 풀어보겠다.
ASPACK을 언패킹하는 방법
PUSHAD -> 압축해제 -> POPAD -> OEP
exe파일을 실행시키면 다음과 같이 뜬다.
RETN 0C로 이동해본다.
POPAD를 찾기위해
RETN 0C 근처에 브레이크를 걸어주고 실행시켜본다.
아까는 없었던 값이 PUSH에 생긴다.
여기서 445834가 OEP이다.
F7을 통해 들어가준 뒤 문장열을 쉽게 분석하기 위해
Shift A를 눌러주면 다음과 같이 바뀐다.
성공을 했다고 뜨는 문자열을 쉽게 찾을 수 있다.
더블클릭을 해 이동을 하고 위 쪽으로 가 분기하는 지점을 찾는다.
여기서 75 55가 OPCODE가 된다.
앞에서 찾은 둘을 합처주면 정답이 된다.