어셈블리로 분해하려는 바이너리 코드가 있습니다. 이 코드는 구조화 된 exe 또는 dll 파일의 일부가 아니므로 objdump
및 gdb
은 인식하지 못합니다.원시 이진 코드를 어셈블리로 디 컴파일
어떻게 조립품을 분해 할 수 있습니까?
어셈블리로 분해하려는 바이너리 코드가 있습니다. 이 코드는 구조화 된 exe 또는 dll 파일의 일부가 아니므로 objdump
및 gdb
은 인식하지 못합니다.원시 이진 코드를 어셈블리로 디 컴파일
어떻게 조립품을 분해 할 수 있습니까?
GDB 및 objdump
은 System V ELF 2 진 파일의 섹션 정보를 사용하여 해체합니다. 즉, gdb
및 objdump
을 작동 시키려면 분석 할 코드가 ELF 바이너리이어야하며 바이너리는 바이너리의 레이아웃을 정확하게 설명하는 손상되지 않은 섹션 헤더 테이블을 가져야합니다.
어떻게 어셈블리로 디 컴파일 할 수 있습니까?
디 컴파일은 바이너리에서 소스 코드를 재구성하는 것입니다. 디스 어셈블리는 CPU 명령어를 어셈블리 언어로 변환하는 것입니다.
어셈블리로 분해하고 싶은 바이너리 코드가 있습니다.
분해 할 기계 코드가 있고 코드의 명령어 세트 아키텍처가 알려진 경우 Capstone disassembly framework 일 수 있습니다. 다음은 파이썬 바인딩을 사용하는 데모입니다 : Python tutorial for Capstone.
Radare2은 다른 옵션입니다.
이것이 도움이되지 않으면 StackExchange에 reverse engineering 사이트가있어 필요한 항목을 더 쉽게 찾을 수 있습니다.
이 코드의 형식을 아십니까? 그것은 어떤 플랫폼/아키텍처 등을위한 바이너리인가? –
예, 이것은 Windows 코드입니다. 이 코드는'VirtualAlloc'에 의해 할당 된 메모리에 복사 된 다음'CreateThread'와 함께 실행됩니다 Win32 API 호출 –
제 생각에는 apropriate win exe 헤더를 추가하여 [PE 형식] (https : //en.wikipedia)으로 만드십시오. org/wiki/Portable_Executable) 그리고 심지어 그렇지 않다면 100 % PE가 그것을 사용하여 disassemby하려고 시도하지 않는다. [PE 탐색기] (http://www.heaventools.com/PE_Explorer_disassembler.htm),하지만 전에는 그것을 테스트하지 않았습니다. –