맥콜 이 아닌 appcall of IDA PRO

IDA 5.6 버전에서 부터 지원되는 appcall은 디버깅 중에 특정 함수를 호출할 수 있는 기능을 제공한다.
예전부터 이런 기능이 있었으면 좋겠다 생각했는데 ida에서 이 기능을 추가시켰다.

몇몇 환경에서 유용하게 사용될 수 있다.

1. 내가 원하는 인자 값으로 함수를 실행시켜 결과 값을 확인하고자 할때

-> 함수 인자 값을 정의해주는 것도 중요하지만 함수 본문에 전역 변수가 데이터 변수가 있다면
    해당 변수를 실제 실행 환경에 맞게 셋팅해줘야 appcall 을 통한 함수 실행이 정상적으로 동작 할 것이다

2. 내가 원하는 함수 리턴 값을 가지는 인자 값을 확인하고자 할때

-> 원하는 리턴 값이 나올때 까지 인자 값을 랜덤하게 생성. (복호화, 디코딩 시에 유용)

3. 특정 영역에 인코딩된 악성코드를 디코딩 할때

-> 특정 영역에 인코딩되어 저장된 악성코드를 디코딩 함수를 서치하여 APPCALL로 호출하여
    디코딩 시킨 후 메모리 덤프로 복원

이거 외의 Fuzzing at function level 등의 많은 경우에 활용될 수 있지만, 실제 운영 환경의 Context를 
보장해줘야 함수가 정상적으로 실행되므로 제한적으로 사용되는건 어쩔 수 없을 꺼 같다

최근 발표된 IDA Pro 6.4 의 새로운 기능에서 64비트 바이너리를 APPCALL에서 지원한다고 나와있다.

* other debugging improvement
- added support for SystemV AMD64 ABI: now you can use Appcall when debugging x64 Linux binaries
   

by codexb | 2012/12/15 20:43 | 트랙백

트랙백 주소 : http://leony.egloos.com/tb/5703391
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]

◀ 이전 페이지          다음 페이지 ▶