liminfo

IDA Pro Reference

IDA Pro 디스어셈블러 레퍼런스

25개 결과

IDA Pro Reference 소개

이 IDA Pro 레퍼런스는 IDA Pro 대화형 디스어셈블러와 Hex-Rays 디컴파일러를 위한 검색 가능한 치트시트입니다. 필수 디스어셈블리 단축키(Space 그래프/텍스트 전환, G 주소 이동, N 심볼 이름 변경, X 교차 참조, 세미콜론 주석), 디컴파일러 조작(F5 의사 C 코드 생성, Y 타입 설정, T 구조체 멤버 변환), 뷰 탐색을 다룹니다.

idc 모듈(get_bytes, set_name, get_func_name), idautils 모듈(Functions 이터레이터), ida_search 모듈(바이너리 패턴 검색), idaapi(분석 완료 대기 auto_wait)를 사용한 IDAPython 스크립팅 예제를 포함합니다. 구조체 관리(Shift+F9, Alt+Q, D 데이터 타입 전환, A 문자열 변환)와 패치 워크플로우도 다룹니다.

리버스 엔지니어, 악성코드 분석가, 취약점 연구원, 익스플로잇 개발자, CTF 참가자가 IDA Pro 키보드 단축키, IDAPython 코드 스니펫, 패치 절차, 플러그인 사용법(Findcrypt 암호화 상수, Class Informer C++ RTTI, BinDiff 바이너리 비교)을 즉시 확인할 수 있도록 설계되었습니다.

주요 기능

  • IDA Pro 필수 단축키: Space(그래프/텍스트), G(이동), N(이름 변경), X(교차 참조), 세미콜론(주석)
  • Hex-Rays 디컴파일러: F5(디컴파일), Y(타입 설정), T(구조체 멤버), Tab(뷰 전환)
  • idc.get_bytes, idautils.Functions, ida_search.find_binary, idc.set_name 등 IDAPython 스크립팅
  • 구조체 관리: Shift+F9(구조체 목록), Alt+Q(구조체 적용), D(데이터 타입 순환), A(문자열)
  • 바이너리 패치: Edit 메뉴 바이트 패치, 어셈블리 패치, 입력 파일 적용, Keypatch 플러그인
  • 플러그인: Findcrypt(암호화 탐지), Class Informer(C++ RTTI/vtable), BinDiff(바이너리 비교)
  • 배치 스크립팅을 위한 idaapi.auto_wait 자동 분석 완료 대기
  • 디스어셈블리, 디컴파일, 스크립팅, 구조체, 패치, 플러그인 카테고리별 필터링

자주 묻는 질문

IDA Pro에서 가장 중요한 단축키는 무엇인가요?

IDA Pro의 핵심 단축키는 Space(그래프/텍스트 뷰 전환), G(주소 또는 함수명으로 이동), N(심볼 이름 변경), X(교차 참조 표시), 세미콜론(반복 가능 주석 추가), 콜론(일반 주석), F5(Hex-Rays 디컴파일), Y(변수/함수 타입 설정), Tab(어셈블리와 디컴파일 뷰 전환)입니다.

IDA Pro에서 Hex-Rays 디컴파일러를 어떻게 사용하나요?

F5를 눌러 현재 함수의 의사 C 코드를 생성합니다. Y로 변수나 함수 타입을 설정하고(예: int __cdecl main(int argc, char **argv)), N으로 변수 이름을 변경하며(v1을 buffer_size로), T로 오프셋 접근을 구조체 멤버 접근으로 변환합니다(*(a1+8)이 a1->field_8로). Tab으로 어셈블리와 디컴파일 뷰를 전환합니다.

IDAPython 스크립팅은 어떤 기능을 다루나요?

idc.get_bytes()로 메모리 읽기, idautils.Functions()로 모든 함수 순회, idc.get_func_name()으로 함수 이름 가져오기, ida_search.find_binary()로 바이트 패턴 검색, idc.set_name()으로 심볼 이름 설정, idaapi.auto_wait()로 배치 스크립트에서 자동 분석 완료 대기 등을 다룹니다.

IDA Pro에서 바이너리를 어떻게 패치하나요?

Edit, Patch program, Change byte로 바이트를 직접 수정합니다(예: 75를 90으로 변경하여 jnz를 nop으로). Edit, Patch program, Assemble로 어셈블리 명령어를 작성합니다. Keypatch 플러그인(Ctrl+Alt+K)이 더 편리한 인터페이스를 제공합니다. 패치 후 Edit, Patch program, Apply patches to input file로 변경사항을 적용합니다.

IDA Pro에서 구조체는 어떻게 다루나요?

Shift+F9로 구조체 목록을 열고, Insert로 새 구조체를 추가합니다. Alt+Q로 변수에 구조체 타입을 적용하면 오프셋 접근이 명명된 필드 접근으로 변환됩니다. D를 반복 눌러 데이터 타입을 순환(db, dw, dd, dq)하고, A로 바이트를 ASCII 문자열로 해석합니다.

이 레퍼런스에 포함된 IDA Pro 플러그인은 무엇인가요?

3가지 필수 플러그인을 다룹니다: Findcrypt는 바이너리에서 암호화 상수(AES, DES, RSA)를 자동 탐지하고, Class Informer는 C++ vtable과 RTTI 정보를 분석하여 클래스 계층을 재구성하며, BinDiff는 두 바이너리를 비교하여 함수를 매칭하고 패치 분석이나 변종 탐지를 위한 차이점을 식별합니다.

IDAPython으로 바이트 패턴을 어떻게 검색하나요?

ida_search.find_binary()에 시작 주소, 종료 주소(전체 바이너리는 idc.BADADDR), 16진수 패턴 문자열(예: 함수 프롤로그 "48 89 5C 24"), 기수 16, idc.SEARCH_DOWN 플래그를 전달합니다. 첫 번째 일치 주소를 반환하며, 찾지 못하면 BADADDR를 반환합니다.

이 IDA Pro 레퍼런스는 무료인가요?

네, 이 IDA Pro 치트시트는 계정 등록 없이 완전 무료입니다. 모든 단축키, IDAPython 예제, 패치 절차, 플러그인 가이드를 브라우저에서 카테고리별로 검색하고 필터링할 수 있습니다. liminfo.com의 무료 리버스 엔지니어링 및 보안 레퍼런스 도구 모음의 일부입니다.