인터랙티브 디스어셈블러
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
인터랙티브 디스어셈블러는 다양한 운영 체제, 실행 파일 포맷, 프로세서, 컴파일러를 지원하는 소프트웨어로, 주로 리버스 엔지니어링 및 악성코드 분석에 사용된다. IDC 스크립트를 통한 기능 확장과 루비, 파이썬과 같은 스크립팅 언어 지원을 통해 사용자 정의 플러그인 개발을 가능하게 한다. 또한, 원격 디버깅, GDB 지원, Bochs 플러그인 등 다양한 디버깅 기능을 제공하여 동적 분석을 돕는다.
더 읽어볼만한 페이지
- 역어셈블러 - OllyDbg
OllyDbg는 32비트 디버거로, 리버스 엔지니어링, 소프트웨어 크래킹, 어셈블리 코드 편집, 프로그램 동작 확인, 악성코드 분석 등에 활용되며, 디스어셈블러 부분은 GNU GPL에 따라 자유 소프트웨어로 배포된다. - 역어셈블러 - 기드라
기드라는 미국 국가안보국에서 개발하여 2019년 오픈 소스로 공개한 리버스 엔지니어링 도구로, 자바로 작성되었으며 다양한 운영체제를 지원하고 디스어셈블러, 디컴파일러, 디버깅 기능 등을 제공하여 악성코드 분석 등 다양한 분야에 활용된다. - 디버거 - Valgrind
Valgrind는 동적 분석 도구들의 프레임워크로, 가상 머신 기반으로 작동하며 메모리 오류 감지, 멀티스레드 코드 분석 등 다양한 기능을 제공하지만, 정적 또는 스택 할당 데이터의 경계 오류는 모두 감지하지 못한다. - 디버거 - Eclipse (소프트웨어)
이클립스는 IBM에서 개발한 자바 기반의 통합 개발 환경으로, OSGi 서비스 플랫폼을 런타임 아키텍처로 사용하며, 플러그인을 통해 기능을 확장할 수 있고, 이클립스 퍼블릭 라이선스를 따르며, 한국어를 지원한다.
인터랙티브 디스어셈블러 - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
![]() | |
개발자 | Ilfak Guilfanov |
출시일 | 1991년 5월 21일 |
최신 버전 | 8.4 SP2 |
최신 버전 출시일 | 2024년 5월 27일 |
프로그래밍 언어 | C++ |
운영체제 | 마이크로소프트 윈도우 OS X 리눅스 |
언어 | 영어 러시아어 |
장르 | 역어셈블러 |
라이선스 | 사유 |
웹사이트 | IDA 공식 웹사이트 |
2. 스크립팅
IDA Pro는 스크립팅을 통해 기능을 확장하고 자동화할 수 있도록 지원한다. IDC 외에도 플러그인을 통해 루비, 파이썬 등 다양한 스크립트 언어를 사용할 수 있다.[1]
2. 1. IDC 스크립트
IDC는 인터랙티브 디스어셈블러의 기능을 확장할 수 있게 만들어 준다.[1] 사용자 스크립트 작성을 위한 기준으로 몇몇 도움이 되는 스크립트들이 제공된다.[1] 대부분의 빈번한 스크립트들은 생성된 코드의 추가적인 변경을 위해 사용된다.[1] 예를 들면 외부 기호 테이블(external symbol table)들은 원본 소스 코드의 함수 이름을 사용함으로써 로드될 수 있다.[1] IDA 스크립트와 발생한 문제들에 대한 지원을 위한 웹사이트가 있다.[1]사용자들은 IDC에 추가하거나 대신할 수 있는 용도로 사용되는 다른 스크립트 언어들을 통해 플러그인들을 개발하였다.[1] https://github.com/spoonm/idarub IdaRUB는 루비를, https://web.archive.org/web/20150506023607/http://d-dome.net/idapython IDAPython은 파이썬을 지원한다.[1]
2. 2. 기타 스크립팅 언어 지원
IDA Pro는 플러그인을 통해 다양한 스크립팅 언어를 지원한다. 루비를 지원하는 IdaRUB[1]와 파이썬을 지원하는 IDAPython[2] 등이 있다.3. 지원 환경
IDA Pro는 다양한 운영 체제, 실행 파일 포맷, 프로세서 및 컴파일러를 지원하여 폭넓은 환경에서 사용할 수 있다.[6]
지원 운영 체제, 실행 파일 포맷, 프로세서에 대한 자세한 내용은 각 하위 섹션을 참고하라.
IDA Pro에서 자동으로 라이브러리 함수를 인식하기 위해 지원하는 컴파일러/라이브러리는 다음과 같다.
컴파일러/라이브러리 |
---|
도스/윈도우용 볼랜드 C++ 5.x |
볼랜드 C++ 3.1 |
도스/윈도우용 볼랜드 C 빌더 v4 |
Cygwin용 GNU C++ |
비주얼 C++ |
마이크로소프트 QuickC |
마이크로소프트 Visual C++ |
도스/OS2용 Watcom C++ (16/32 bit) |
ARM C v1.2 |
유닉스용 GNU C++ |
3. 1. 지원 운영 체제
윈도우 x86와 ARM, 리눅스 x86, Mac OS X x86를 지원한다.[6]3. 2. 지원 실행 파일 포맷
인터랙티브 디스어셈블러는 다음 실행 파일 포맷을 지원한다.포맷 종류 | 설명 |
---|---|
PE 포맷 | COFF와 여기서 파생된 Win32/64/generic |
ELF | ELF와 여기서 파생된 것들 |
Mach-O | (Mach) |
NLM | (넷웨어) |
LC/LE/LX | OS/2 3.x와 다양한 도스 익스텐더들 |
NE | OS/2 2.x, Win16와 다양한 도스 익스텐더들 |
MZ | (MS-DOS) |
OMF | OMF와 여기서 파생된 것들 |
AIM | (포괄적으로) |
바이너리 | ROM 이미지나 COM 파일 |
3. 3. 지원 프로세서
인터랙티브 디스어셈블러는 다음과 같은 프로세서들을 지원한다.[6]지원 프로세서 |
---|
3. 4. 지원 컴파일러
Visual C++영어, GCC, 볼랜드 C++ 등 다양한 컴파일러를 지원한다.[6] 자동으로 라이브러리 함수를 인식하기 위해 지원하는 컴파일러와 라이브러리는 다음과 같다.컴파일러/라이브러리 |
---|
도스/윈도우용 볼랜드 C++ 5.x |
볼랜드 C++ 3.1 |
도스/윈도우용 볼랜드 C 빌더 v4 |
Cygwin용 GNU C++ |
비주얼 C++ |
마이크로소프트 QuickC |
마이크로소프트 Visual C++ |
도스/OS2용 Watcom C++ (16/32 bit) |
ARM C v1.2 |
유닉스용 GNU C++ |
4. 디버깅
IDA Pro는 다양한 디버거를 지원하여 동적 분석 기능을 제공한다.[7] GNU 디버거(gdb)를 통해 리눅스와 OS X 환경에서 디버깅을 할 수 있고, Bochs 플러그인을 이용해 손상된 UPX 또는 mpress로 압축된 실행 파일과 같은 간단한 응용 프로그램을 디버깅할 수 있다. 인텔 PIN 디버거, 기록 다시보기 기능도 지원한다.
4. 1. 원격 디버깅
IDA Pro는 윈도우, 리눅스, 맥 응용 프로그램들을 자신의 원래 환경에서 원격으로 디버깅할 수 있게 한다.[7] (주로 악성코드 디버깅을 위해 사용한다.)4. 2. GDB 지원
GNU 디버거(GDB)는 리눅스와 OS X를 지원하여, 원격으로 이들 환경에서 응용 프로그램을 디버깅할 수 있게 한다.[7]4. 3. 기타 디버거 지원
IDA Pro는 다음 디버거들을 지원한다.[7]참조
[1]
웹인용
IDA: celebrating 30 years of binary analysis innovation
https://hex-rays.com[...]
2021-05-20
[2]
웹인용
IDA 8.4.240527 (8.4sp2)
https://hex-rays.com[...]
2024-06-28
[3]
웹사이트
Hex-rays Home
http://www.hex-rays.[...]
[4]
웹사이트
IDA Pro 5.0 Freeware version download
http://www.hex-rays.[...]
[5]
웹인용
About Us
https://www.hex-rays[...]
Hex-Rays
2012-02-27
[6]
웹인용
FLIRT Compiler Support
http://www.hex-rays.[...]
Hex-Rays
[7]
서적
The IDA Pro Book: The Unofficial Guide to the World's Most Popular Disassembler
https://archive.org/[...]
No Starch Press
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com