올리 디버거로 열어보니 pushhad 명령어가 먼저 보인다.
패킹된 듯 하다.
peid로 확인해보니 aspack 2.000으로 패킹되어있다.
패킹을 풀어보자.
우선 oepcode를 구해야한다.
친절하게도 pophad와 returnpoint에 bp가 걸려있었다.
oep는 보통 return뒤에 나오는 코드이다.
따라서 oep는 00445834 이다.
oep를 구했으니 ollydump라는 플러그인을 통해서 덤프를 뜨자.
혹여나 ollydump플러그인이 없다면 위 파일을 다운받아서 플러그인폴더(올리디버거에 설정해둔)에 넣으면 된다.
표시된 부분들을 사진과 같이 바꾸자.(이 글과 똑같이 따라왔다면 굳이 바꾸지않아도 바껴있을거다.)
rebuild부분은 꼭! 체크를 해제해야한다!
제대로 설정해준 후 dump를 누른다.
1차 언팩 흔적,.
이제 IAT만 복구해주면 된다.
:
:
:
IAT복구는 ImportREC를 이용했다.
없다면 위 파일을 다운받아서 쓰면 된다.
10.exe(문제파일)을 실행시킨 후 선택해준다.(실행되고있는 파일만 선택 가능하다)
위에 표시된 OEP부분을 찾은 oep코드로 수정해준다.
autosearch를 누르면 설정한 oep코드에 맞게 rva와 size도 자동으로 설정된다.
get imports를 누르면 네모 박스 부분이 바뀐것을 볼 수 있다.
dll을 성공적으로 불러오면 yes, 못불러왔으면 no가 뜬다.
fix dump를 눌러 1차패킹된파일에 덮어써준다.
짠
올리디버거로 최종 언팩된 파일을 열자.
마우스 우클릭 후 사진처럼 선택해주면 코드안에 쓰인 문자열만 뜨게된다.
의심가는 문자열을 찾았으니 더블클릭으로 들어가보자.
성공 문자열 바로 위에 분기점이 존재한다.
따라서 opcode는 75 55 이다.
'Security > CodeEngn' 카테고리의 다른 글
CodeEngn_Basic_11 (0) | 2019.01.29 |
---|---|
CodeEngn_basic_09 (0) | 2018.12.10 |
CodeEngn_Basic_08 (0) | 2018.08.21 |
CodeEngn_Basic_07 (0) | 2018.08.19 |
CodeEngn_Basic_06 (0) | 2018.08.12 |