Recent Posts
Recent Comments
Link
관리 메뉴

NaggingMachine

IDA Pro에서 원하는 위치에 함수 만들기 본문

TechnoBabbler

IDA Pro에서 원하는 위치에 함수 만들기

naggingmachine 2008. 11. 24. 23:37
그러니까 호출하고자 하는 함수의 주소를 테이블에 저장해 두고 있다가
Case 문에 따라서 함수를 주소로 호출하는 코드가 있다고 하자.

CALL [EDX+EAX+1C]

이 경우 IDA와 같은 디버거는 호출되는 함수의 시작 위치를 자동으로 인식하지 못하게 되어
완전히 낙동강 오리알 신세의 코드가 생성된다.
예를 들면, IDA에서 sub_XXXX로 시작하는 시작 위치는 지정되어 있지 않았지만,
마지막에 ret 코드는 있는 경우.

PUSH EBP
...
RET

그런데 HexRay같은 툴을 이용해서 원본 소스 코드를 추출하기 위해서는
반드시 IDA가 해당 코드를 sub 문으로 인식해야 하는데(Hexray는 sub문 단위로 C소스 생성)
이를 위해서는 간단히 시작 위치에 마우스 커서를 이동시켜놓고
마우스 오른쪽 버튼을 눌러 [Create Function] 메뉴를 선택한 후
Sub문의 이름을 입력하면 끝~!!!

예전에 했었던건데 까먹어서 한참을 해맸다는... -_-;;