2009-07-08 6 views
1

어떻게하면 리눅스 용으로 간단한 디스어셈블러를 쓸 수 있습니까? 사용할 라이브러리가 있습니까? 나는 단지 "효과가있다"는 것을 필요로한다.리눅스 디스어셈블러

+0

어떤 아키텍처가 대상이 되는가? 이는 OS보다 훨씬 관련이 있기 때문입니다. – DaveR

+0

미안 아키텍처를 생략했습니다. x86에서 분해하려고합니다. – Lopoc

답변

5

먼저 ELF file format을 이해해야합니다. 그런 다음 아키텍처의 opcode에 따라 코드 섹션을 처리 할 수 ​​있습니다.

8

하나를 쓰는 대신 Objdump을 시도하십시오.

귀하의 의견과 처음부터 구현하고자하는 바램에 따라, 나는 이것이 학교 프로젝트라고 생각합니다. objdump의 소스를 얻을 수 있고 그것이 사용하는 라이브러리와 기술을 볼 수 있습니다. BFD 라이브러리가 유용 할 수 있습니다.

+0

저는 제 프로젝트의 목표가 아니며, 보통 모든 종류의 디버거와 디스어셈블러를 사용합니다. – Lopoc

0

당신은 ERESI 리버스 엔지니어링 소프트웨어 인터페이스는 리버스 엔지니어링 및 프로그램 조작을위한 맞춤형 도메인 특정 언어와 다중 아키텍처 바이너리 분석 프레임 워크입니다 ERESI

의 코드를 살펴 수 있습니다.

1

binutils의 일부로 배포되는 라이브러리 인 libbfd와 libopcode를 사용할 수 있습니다. 이 라이브러리의 힘의 예로서

http://www.gnu.org/software/binutils/

는 온라인 디스어셈블러 (ODA)를 확인하십시오.

http://www.onlinedisassembler.com

는 ODA는 아키텍처의 무수를 지원하며 기본 기능 세트를 제공합니다. 라이브 뷰에 바이너리 데이터를 입력하고 입력 할 때 디스 어셈블리가 표시되는 것을 보거나 디스 어셈블 할 파일을 업로드 할 수 있습니다. 이 사이트의 좋은 점은 해체에 대한 링크를 다른 사람들과 공유 할 수 있다는 것입니다.