바이너리 파일 컴파일 해제
글쓴이: kanjaggy / 작성시간: 목, 2009/06/04 - 10:23오전
*.bin 으로 만들어진 파일들을 종종 만나곤 합니다.
물론 아무 생각 없이 chmod 777이든 권한 변경하고 설치만 했었는데
이거 역으로 디컴파일이든 압축 해제 같은 방법으로
설치 파일을 나눠 보고 싶은데 혹시 방법이 없는지요
어떻게 bin파일로 만들었는짖 bin파일 만들기 전에는 무엇이 있었는지 궁금해서요
Forums:
제가 아는 범위 내에서는....
bin 파일은 binary, 말 그대로 이진 데이터를 갖고 있는 파일입니다.
저는 간단하게 시스템에서 CPU가 바로 읽고 해석할 수 있는 형태의 명령으로 이해하고 있습니다.
jdk 설치용으로 제공되는 .bin의 경우는 자동 압축해제 명령이 앞에 붙어 있는 경우입니다.
(아직 그 내용을 직접 해석 해보지는 않았습니다)
압축해제 되면서 명령이 바로 실행되어 설치되는 것이지요.
몇몇 디어셈블러 등을 통해서 그 이전 형태의 모습을 비슷하게 추적할 수 있으나,
원래 소스가 어떤 형태인지 제작자가 특별히 넣어주지 않는다면
알 수 없습니다. 어셈블리를 분석해야겠지요.
아래는 제 시스템에서 테스트한 예제입니다.
# nasm nasm_test1.asm -f bin -o nasm_test1.bin -l nasm_test1.lst
nasm_test1.dmp 파일이 nasm_test1.bin을 역어셈한 내용입니다.
# ndisasm -b 32 nasm_test1.bin > nasm_test1.dmp
보다 자세한 내용은 역어셈||disassembly 등을 참고해 보세요.
-------------------
Go to the U-City
----------------------------------------------------------------------------------------
Don't Feed the Trolls!
----------------------------------------------------------------------------------------
ㅜ.ㅜ 파일이 사라지네요
nasm을 설치하고 위와 같이 실행 해봤는데
# nasm nasm_test1.asm -f bin -o nasm_test1.bin -l nasm_test1.lst
요 문장을 실행하니
bin 파일이 자동 삭제 되버리네요;;;; 덤프 뜰세도 없이;;;
ㅜ.ㅜ
그런데 대개 저런
그런데 대개 저런 식으로 배포되는 프로그램은, 인스톨러 옵션 중 압축만 푸는 게 있거나, 임시 폴더에 압축을 푼 후 실행되는 방식이기 때문에 굳이 어렵게 역어셈블하실 필요가 없습니다. 대개 도움말은 -h 옵션이므로, 도움말을 보고 압축만 푸는 옵션을 사용하거나 임시 폴더를 통째로 복사하십시오.
---- 절취선 ----
http://blog.peremen.name
파일 포맷부터 ...
파일 포맷부터 알아보시기 바랍니다.
다음 명령어로 어떤 포맷인지 알아보실 수 있습니다.
file -b FILENAME
--------------------Signature--------------------
Light a candle before cursing the darkness.
파일 포맷 입니다.
file -b (파일이름) 한 결과
ELF 32-bit LSB executable, Intel 80386, version 1(SYSV), dynamically linked(uses shared libs), for GNU/Linux 2.2.5, stripped
라고 나오네요
이게 무슨 뜻인가요
아참 그리고 파일 파일 다음에 -h 라고 붙이니 too many arguments라고 뜨네요 아마 추가옵션을 못붙이게 되있는거 같습니다.
그냥 인스톨만 되는 파일인지라
설치되는 경로도 파악 할수가 없어서요
댓글 달기