문서 기록

  2013 6 10 월요일 12:24 AM 작성 완료.

 

문서 내용

  디스어셈블 라이브러리 정리

 

문서내용

 

Distorm64

사용용도

  16 비트, 32 비트, 64 비트 - x86, AMD64 명령어 집합(instruction set) 사용하는 코드 디스어셈블

 

제작언어

  C 언어

 

사용약관

  이중 라이센스(Dual Licnse) - GPL v3 상용 라이센스(Commercial License)

 

주의사항

  GPL 라이브러리 파일과, 상용 라이센스용 라이브러리가 다르다.

  GPL이기 때문에 파이프나 소켓을 통해 라이브러리를 사용하지 않는 GPL 따라야한다.

  (동적 링킹이든, 정적 링킹이든 프로세스의 주소 영역에서 사용되는 것은 GPL 의해

   배포된 프로그램으로부터 파생된 프로그램으로 간주한다.)

  Python에서 사용 가능

 

관련 사이트

  홈페이지 : http://www.ragestorm.net/distorm/

  프로젝트(GPL v3) 페이지 : https://code.google.com/p/distorm/

 

개인적인 생각

  volatility에서  라이브러리를 사용하는 코드를 봤는데 사용법이 쉽게 느껴졌다.

  거기다 문서화 작업도 되어 있으니 프로그램을 오픈소스로 만들 생각이면 가장 좋다고 생각되는 

  라이브러리이다.

 

Udis86

사용용도

  16비트 ,32 비트, 64 비트 명령어 집합(instruction set) 사용하는 코드 디스어셈블

 

제작언어

  C언어

 

사용약관

  2-clause license(FreeBSD License)

 

주의사항

  -

 

관련 사이트

  홈페이지 : http://udis86.sourceforge.net/

  프로젝트 페이지 : https://github.com/vmt/udis86

 

개인적인 생각

  문서화도 괜찮고, 라이센스도 간편하고 64비트 디스어셈블도 지원하고 좋네!

 

BeaEngine

사용용도

  IA-32, Intel64 명령어 집합(instruction set) 사용하는 코드 디스어셈블

 

제작언어

  C 언어(Windows API 미사용. 순수 C로만 작성)

 

사용약관

  LGPL v3.0

 

주의사항

  LGPL 사용 약관 참조할 .

  (웹상에서 찾을 있는 LGPL 대한 설명이 많이 복잡하다.)

 

관련 사이트

  홈페이지 : http://beatrix2004.free.fr/BeaEngine/index1.php

 

개인적인 생각

  MASM32, AT&T, NASM 3가지 구문(syntex)으로 디스어셈블이 가능하므로 기능이 필요할  

  사용하면 좋겠다.

  관련 문서 상태는 별로다.

  라이센스에 관해선 말이 있는데, 상에서 떠도는 의견들이 많이 상반되어 있어 모르겠다. -_-;;

  LGPL 라이센스가 2007년에 3.0 버전이 새로 나와 이전 버전과 의견이 분분한건가?

 

libdasm

사용용도

  x86 명령어 집합(instruction set) 사용하는 코드 디스어셈블

 

제작언어

  C언어(순수 C로만 작성된거 같음)

 

사용약관

  3-clause license(New BSD License)

 

주의사항

  32bit 명령어 셋의 디스어셈블만 지원한다.

 

관련 사이트

  제작자 블로그 : http://corkami.blogspot.kr/search/label/libdasm

  프로젝트 페이지 : https://code.google.com/p/libdasm/

 

개인적인 생각

  2006년까지 개발이 진행되어온 라이브러리이기 때문에 64bit 디스어셈블을 지원안하는건가?

  New BSD 저작권과 보증책임이 없다는 점만 명시하면 된다.

 

libdisam

사용용도

  x86 명령어 집합(instruction set) 사용하는 코드 디스어셈블

 

제작언어

  C언어(리눅스 기반)

  Perl(C언어로 작성된 라이브러리를 이용하는거 같음)

 

사용약관

  명시되어있지 않음.

 

주의사항

  최신 배포 년도는 2008.

 

관련 사이트

  홈페이지 : http://bastard.sourceforge.net/libdisasm.html

  프로젝트 페이지 : http://sourceforge.net/projects/bastard/files/libdisasm/

 

개인적인 생각

  사용법이 복잡해보이네.. 문서화도 별로고..

  리눅스에서만 사용 가능하네.. 리눅스 라이브러리를 DLL 변경하는 프로젝트도 있다던데

  다른 좋은 디스어셈블러가 없는 이상 윈도우에서 이걸 사용할 필요는 없을 하다.

 

Hacker Disassembler Engine

사용용도

  x86 명령어 집합(instruction set) 사용하는 코드 디스어셈블

 

제작언어

  ?

 

사용약관

  ?

 

주의사항

  정식 배포 사이트가 없는 같음.(개발자의 홈페이지 에러)

 

관련 사이트

  홈페이지 : http://vx.netlux.org/index.html?id=eh04

  다운로드http://forum.tuts4you.com/topic/9426-hacker-disassembler-engine-source-code/

 

개인적인 생각

  .. 프로그램일지도? 홈페이지가 접속이 안되니 정확한 내용을 수가 없다.

 

libdiassemble

사용용도

  x86 명령어 집합(instruction set) 사용하는 코드 디스어셈블
 

제작언어

  파이썬(Python)

 

사용약관

  GPL v2.1

 

주의사항

  파이썬 라이브러리.

 

관련 사이트

  다운로드 : http://www.immunitysec.com/resources-freesoftware.shtml

 

개인적인 생각

  GPL이라 이거 사용할 바에 distorm 사용하는게 좋겠다.

 

결과 정리

  윈도우에서 디스어셈블 라이브러리를 사용해야할 때에는

  distorm64(GPL), Udis86(FreeBSD), BeeEngine(LGPL) 셋 중에 사용하자.


참고 문헌

라이브러리 홈페이지 프로젝트 페이지(본문 참고).


이철남, 권순선, 최민석, 이진태

오픈소스SW 라이선스 가이드, 정보통신부, 2007 

URL : http://www.olis.or.kr/ossw/license/open_source_guide.pdf.


http://www.jopenbusiness.com/mediawiki/index.php/GNU_Lesser_General_Public_License_3.0.

http://en.wikipedia.org/wiki/BSD_licenses.


'Programming > C/C++' 카테고리의 다른 글

[C++] String to Hex 변환  (0) 2012.10.12
메모리 내의 문자열 검색  (2) 2010.08.25
AND