리버싱을 하다보면 hexray 기능이 원하는 대로 동작이 않거나
원하는 코드로 패치해야하는 경우가있다. 이때 ida가 파일을 열어둔 상태에서는 hex 에디터로 변경이 되지않으므로
ida를 종료하고 수정해야하는 단점이 존재한다.
그래서 "idapython을 내 입맛대로 수정해서 사용할 수 없을까?" 로 시작하게 됬으나 구글에 검색이 잘 될 정도로 간단했다.
ida 폴더내에 python\idc.py 파일을 수정하면 아이다를 켰을때 명령 커맨드에서 실행할 수 있다.
아래 소스는 중간 지점에 추가해주어도 되고, idc.py를 붙여넣어도 된다.
[ Source ]
def memcpy(ea, value): global bkpoint global bkdata bkpoint=ea bkdata="" for i in range(0,len(value)): bkdata+=chr(Byte(ea+i)) PatchByte(ea+i,ord(value[i])) def unmemcpy(): for i in range(0,len(bkdata)): PatchByte(bkpoint+i,ord(bkdata[i]))
idc.py 이 파일을 python 디렉토리에 붙여넣기해도 같은 동작을 한다.
IDA 초기 화면
memcpy(0x00401000,"\x90\x90\x90\x90") 를 실행한 코드
unmemcpy() 를 통하여 가장 최근에 적용한 memcpy를 되돌릴 수 있다.
반응형
'리버싱' 카테고리의 다른 글
[IDA] ida sig 리버싱을 편하게 할래 - FLIRT 기능! (0) | 2016.01.20 |
---|---|
[GDB] GDB Find 명령어 (6) | 2016.01.20 |
[IDA] IDA에 스킨을 입혀봤다 (0) | 2016.01.19 |
[IOS] 넥슨 모바일 게임 1위 HIT 분석 (1) | 2016.01.07 |
IOS App 분석 (0) | 2016.01.07 |
댓글