Table of Contents
Disassemblers와 Decompilers는 무엇입니까?
이 소프트웨어는 소프트웨어를 개발하는 데 필요한 모든 것을 제공합니다. 이 소프트웨어를 사용하면 소프트웨어를 개발하는 데 필요한 모든 것을 고려할 수 있습니다. 이 소프트웨어를 사용하면 소프트웨어를 개발하는 데 필요한 모든 것을 고려할 수 있습니다. 이 소프트웨어를 사용하면 소프트웨어를 개발할 수 있습니다. 이 소프트웨어를 개발하는 데 필요한 모든 것을 고려할 수 있습니다. 이 소프트웨어를 사용하면 소프트웨어를 개발할 수 있습니다. 이 소프트웨어를 개발하는 데 필요한 모든 것을 고려할 수 있습니다. 이 소프트웨어를 사용하면 소프트웨어를 개발할 수 있습니다. 이 소프트웨어를 개발할 수 있습니다. 이 소프트웨어를 사용하면 소프트웨어를 개발할 수 있습니다.
Disassemblers 작업 방법
Disassemblers는 바이너리 파일-PE, ELF, Mach-O 또는 원시 펌웨어 이미지에 직접 작동하며 해당 어셈블리 mnemonics에 매핑합니다. 이 프로세스는 x86, ARM, 또는 MIPS와 같은 프로세서의 지시 설정 아키텍처 (ISA)에 의존합니다. Disassemblers는 선형 스윕 (코드를 통해 순차적으로) 또는 반복적인 트래버스 (따로 제어 흐름)를 사용하여 [FID]를 식별합니다. [FID]는 다음과 같은 내용과 상호 작용합니다. [FID]는 다음과 같습니다. [FID]
Decompilers 작업
Decompilers는 분석 패스를 사용하여 요약 수준을 올리는 데 집합을 결합합니다. 먼저, 그들은 바이너리를 분해합니다. 그런 다음 제어 흐름 그래프 (CFG) 및 데이터 ‐ flow 분석을 구축하여 변수 사용 및 유형 추적합니다. 패턴 매칭 및 허리즘은 일반적인 높은 수준의 구성을 재구성하는 데 적용됩니다 : 루프, 그런 다음 ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐ ‐
Disassemblers 및 Decompilers의 사용
보안 분석 및 취약성 연구
보안 전문가는 일상적으로 약점을 위한 독점 소프트웨어를 감사하는 디컴파일러와 디컴파일러를 사용합니다. 이진을 시험함으로써, 그들은 메모리 손상 버그, 부적절한 입력 검증, 또는 하드 코딩된 자격 증명을 식별할 수 있습니다. 이진의 발견과 같은 악명 높은 사건은 OpenSSL 또는 backdoors에서 펌웨어에서 OpenSSL 또는 backdoors에서 취약점의 발견을 통해 펌웨어로 시작되었습니다. Decompiled 코드는 분석가에 도움이 되는 기능을 이해하는 데 도움이 되는 것입니다.
Malware 분석
Malware 샘플은 소스 코드로 거의 배포되지 않습니다. 분석가들은 악의적 인 페이로드를 이해하기 위해 의존하고 암호화 루틴을 식별하고, 명령 및 제어 통신을 추적합니다. Decompilers는 더 많은 관리 가능한 가짜 코드 표현으로 obfuscated 바이너리 blobs을 변환하여이 작업을 가속화합니다. Radare2]과 Ghidra[[LT:FLT:3]]]])는 특히 대중적인 영역이기 때문에 대중적 인 영역이기 때문에 인기가 있습니다.
분실 또는 Legacy Source Code 복구
기존 소프트웨어를 유지하면서 기존의 소스를 빈번하게 잃어버린 버전 컨트롤 또는 인력 턴오버로 잃어버리십시오. Decompilation은 코드베이스의 기능적인 동등성을 재구성할 수 있으며 유지 보수 또는 현대 플랫폼에 포팅할 수 있습니다. decompiled 출력이 중요하게 정리될 수 있지만, 그렇지 않으면 얻을 수 없습니다.
학습 추진 알고리즘 및 상호 운용성
Competitors 또는 open-source 프로젝트는 독점적인 의정서 또는 파일 체재로 상호작용할 필요가 있을지도 모릅니다. 관련 binaries를 분해하는 것은 알고리즘의 구조, 자료 체재 및 국가 기계를 계시합니다. 이것은 레거시 소프트웨어를 위한 호환성 하락에서 보충의 발달에서 일반적입니다. 마찬가지로, 개발자는 플러그인을 쓰고거나 닫히는 자원 신청을 확장하는 것은 수시로 engineer 바이너리 공용영역을 반전해야 합니다.
인기 Disassemblers 과 Decompilers
IDA Pro (무능적 인 분산제)
IDA Pro는 이진 분석을위한 de facto 표준입니다. 그것은 수십 개의 CPU 아키텍처를 지원하며 강력한 스크립트 인터페이스 (IDAPython)을 제공하며 Hex‐Rays decompiler 플러그인과 통합합니다. 크로스 참조, 그래프보기 및 디버거는 분해 및 디컴퓨테이션 모두를위한 포괄적 인 플랫폼을 만듭니다. IDA는 상업 소프트웨어이지만, 프리웨어 버전 (IDA Free)은 제한된 사용을위한 사용할 수 있습니다.
Ghidra의
국가 보안 기관에 의해 개발 및 오픈 소스로 출시, Ghidra rivals IDA 많은 존경. 그것은 내장 decompiler, 프로그래밍 가능한 API (Python 또는 Java) 및 공동 분석 기능을 포함합니다. Ghidra의 decompiler는 x86, ARM 및 PowerPC binaries에 특히 강한. 그것은 무료로 사용 하 고 플러그인 개발자의 큰 커뮤니티가 있다. 자세한 내용은 [[[[[[[[[[[[[[[[]]]]]][[[[[[[]]]]]]]][[[[[]]]]]]]][[[[[]]]]]]]]]]]]]]]]]][[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]]
레이더2
Radare2는 분해, 분해 (] 또는 플러그인) 및 디버깅 기능을 제공하는 명령행동 역설계 프레임워크입니다. 모듈화와 스크립트가 높으며, 자동화 및 통합에 이상적입니다. Radare2는 무료이며 오픈 소스입니다.
Hex-Rays Decompiler의 장점
Hex‐Rays는 x86, x64, ARM 및 PowerPC를 지원하는 IDA Pro 용 상용 디컴파일러 플러그인입니다. 그것은 C-like pseudocode를 안정적으로 생산하며 가장 정확한 디컴파일로 널리 알려져 있습니다. 많은 보안 회사 및 취약 연구원은 작업 흐름에 필수적인 Hex-Ray를 고려합니다.
다른 주목할만한 도구
- Hopper (macOS 및 Linux) - 사용자 친화적 인 GUI를 가진 분해 및 분해를 모두 제공합니다.
- Binary Ninja – 우용성과 강한 중간 언어에 초점을 맞춘 현대 역설계 플랫폼.
- objdump[ 과 ]readelf]] (GNU 비스듬한) – 유닉스 시스템에 빠른 검사를 위한 기본적인 disassemblers.
도전과제
Compiled Code Complexity(부동산)
Compiler 최적화 (인린, 루프 언롤, 일정한 폴딩) 원래 소스에서 크게 다이빙 기계 코드를 생산합니다. Decompilers는 낮은 수준의 시퀀스에서 높은 수준의 시퀀스를 재구성해야합니다. 주변 또는 잘못된 출력으로 이어질 수 있습니다. 가상화 기반 패터, 제어 ‐ 썰물 평평, 그리고 불투명 predicates-further complicate 분석과 같은 고급 obfuscation 기술.
법적 및 라이센스
역설계는 여러 관할권에 합법적으로 제한됩니다. 미국, 유럽 저작권 지침 (DMCA)에서 디지털 밀레니엄 저작권법 (Digital Millennium Copyright Act)은 국제 협력, 보안 연구, 교육을위한 역공학을 면제 할 수있는 규정을 포함하지만 경계는 다릅니다. 항상 당신이 스스로하지 않거나 분석 할 권한을 가지고 있지 않는 제품을 분해하거나 분해하기 전에 법적 상담을 상담하십시오. 유용한 자원은 Electronic Frontier Foundation의 예외 : DMCA[FLT]].[FLT]].[FLT]]]].
불완전한 산출
Disassemblers는 모든 코드 경로 (예를 들어, 간접적인 점프를 통해 계산된 주소)를 처리할 수 없으며, decompilers는 복잡한 데이터 구조 또는 인라인 함수를 재구성하지 못합니다. 출력은 종종 수동 교정 및 주석이 필요합니다. 경험 분석가들은 분해 및 decompiled 조회 사이에 교체하여 프로그램의 정신 모델을 개발합니다.
법률 및 윤리적 프레임
미국 연방 정부는 미국 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 규정을 준수합니다. 미국 정부는 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 정책에 따라 연방 정부의 규정을 준수합니다.
Ethical use는 소프트웨어 제작자의 권리를 존중합니다. 독점적인 제품의 정확한 기능을 복제하기 위해 추출된 코드를 사용하지 않으며, 허가 없이 기밀 알고리즘을 게시하지 않습니다. 산업 모범 사례는 역방향 엔지니어링을 통해 발견된 취약점의 책임감이 있습니다.
법률 측면에 더 깊은 다이빙을 위해서는 U.S. 저작권 사무소의 공정 사용 지수와 ]CISA 텍스트를 읽어야 합니다.
디스셈블과 디컴파일의 미래 동향
Machine‐Learning 향상된 분석
최근 연구는 기능 분류에 신경 네트워크를 사용, 가변 유형 식별, 심지어는 매우 수준의 언어 문으로 이진 스펫을 직접. 여전히 실험 동안, AI ‐ 아시스트 역 공학은 손상 또는 큰 궤적의 분석을 가속화 약속.
향상된 플랫폼 적용
새로운 교육 세트가 등장 (RISC‐V, WebAssembly, etc.), 분해 및 디컴파일러 개발자가 지원 추가됩니다. 예를 들어, 이미 30개 이상의 아키텍처를 지원하며 커뮤니티 기여는 IoT 마이크로컨트롤러 및 블록체인 가상 머신에 대한 도달을 확장하고 있습니다.
Cloud ‐Based 협업
이진 닌자의 클라우드 분석 및 Ghidra의 공유 프로젝트 파일과 같은 도구는 역설계 팀을 가능하게 합니다. 이 추세는 협업 소프트웨어 개발을 향해 더 넓은 움직임을 미러링하고, 특히 큰, 복잡한 breaches 또는 악성 코드 캠페인 분석에 도움이 됩니다.
관련 기사
이 웹 사이트는 귀하가 웹 사이트를 탐색하는 동안 귀하의 경험을 향상시키기 위해 쿠키를 사용합니다. 이 쿠키들 중에서 필요에 따라 분류 된 쿠키는 웹 사이트의 기본적인 기능을 수행하는 데 필수적이므로 브라우저에 저장됩니다. 또한이 웹 사이트의 사용 방식을 분석하고 이해하는 데 도움이되는 제 3 자 쿠키를 사용합니다. 이 쿠키는 귀하의 동의하에 만 브라우저에 저장됩니다. 이러한 쿠키를 거부 할 수도 있습니다. 이러한 쿠키 중 일부를 선택 해제하면 검색 환경에 영향을 미칠 수 있습니다. 이러한 쿠키는 이러한 쿠키를 거부 할 수도 있습니다. 이러한 쿠키 중 일부를 선택 해제하면 검색 환경에 영향을 미칠 수 있습니다.