유닉스 시스템에서 바이너리 파일을 편집하는 방법
Windows 시스템에는 바이너리 파일을 편집하는 데 사용할 수있는 많은 타사 편집기가 있습니다. 나는 * nix 시스템에도 비슷한 것이 있어야한다고 믿습니다. 유닉스에서 바이너리 파일을 어떻게 편집 할 수 있습니까?
ghex2 GNOME 유틸리티를 사용해 볼 수도 있습니다. 이것은 당신에게 자동화 된 hex-to-ASCII를 측면에 제공 할뿐만 아니라 하단에 다양한 문자 / 정수 디코딩을 제공합니다. (출처 : googlepages.com )
Vim에서 : %! xxd 를 입력 하여 hexeditor로 바꿀 수 있습니다 . : %! xxd -r 일반 모드로 돌아갑니다. xxd는 vim 설치로 제공됩니다.
vim을 사용하여 바이너리 파일을 편집하는 방법에 대한 몇 가지 설명은 여기 를 참조 하십시오 ( 문제를 방지하려면 : set binary 로 끓여서 텍스트를 변경하려면 "R"또는 "r"명령 만 사용하고 문자는 삭제하지 마십시오).
Emacs 팬이라면 Emacs 로 바이너리 파일을 편집하는 방법에 대한 가이드를 보려면 여기 를 참조 하십시오 .
Linux / Unix에는 훨씬 더 많은 hexeditor가 있습니다 ....
Ubuntu에서 hexedit를 사용합니다.
sudo apt-get install hexedit
당신은 wikipedia 를 확인할 수 있습니다 .
특히 BIEW를 선호합니다 .
Bless 는 고품질의 완전한 기능을 갖춘 16 진수 편집기입니다.
mono / Gtk #로 작성되었으며 기본 플랫폼은 GNU / Linux입니다. 그러나 mono 및 Gtk #이 실행하는 모든 플랫폼에서 문제없이 실행할 수 있어야합니다. 주요 기능 Bless는 현재 다음과 같은 기능을 제공합니다.
- 대용량 데이터 파일 및 블록 장치를 효율적으로 편집합니다.
- 다단계 실행 취소-작업을 다시 실행합니다.
- 사용자 정의 가능한 데이터보기.
- 화면에서 빠른 데이터 렌더링.
- 여러 탭.
- 빠른 찾기 및 교체 작업.
- 데이터 변환 테이블.
- 고급 복사 / 붙여 넣기 기능.
- 파일에서 선택 패턴 일치 강조 표시.
- 플러그인 기반 아키텍처.
- 텍스트 및 html로 데이터 내보내기 (플러그인이있는 기타).
- 데이터에 대한 비트 연산.
- 포괄적 인 사용자 설명서.
http://home.gna.org/bless/에서 복사
내가 개발하고 hexvi을 극복 :%!xxd
하고 bvi
의 한계.
Hexvi
풍모
- vim과 유사한 키 바인딩 및 명령
- 특정 오프셋으로 이동
- 삽입, 바꾸기, 삭제
- 물건 검색 (PCRE 정규식)
- 모든 것이 명령이며
hexvirc
- 색 구성표
- 대용량 파일 지원
- 여러 파일 지원 (탭을 통해)
- 파이썬 그래서 해킹 할 엔트리 레벨은 C보다 낮아야합니다
- CLI를 통해
단점
- 2016 년 3 월 현재 알파이므로 기능이 누락되었지만 작업 중입니다.
- 파일 저장
- 실행 취소 / 다시 실행
- 명령 역사
- 시각적 선택
- man 페이지
- 자동 완성 없음
bvi
풍모
- vim과 유사한 키 바인딩 및 명령
- 특정 오프셋으로 이동
- 삽입, 삭제, 바꾸기
- 물건 검색 (텍스트 및 16 진수)
- 실행 취소 / 다시 실행
- CLI를 통해
단점
- 그 정력 기능에 대한 - 불행하게도, 그것은 가장 기본적인 것들을 이해하고 확실히이 점에서 더 많은 사랑이 필요합니다 (예 : 이해하지 못하는
:wq
,하지만 이해:w
와:q
) - 시각적 선택이 전혀 지원되지 않습니다.
- 탭 / 분할 화면 지원 없음
- 자주 충돌
- 대용량 파일을 지원하지 않음
- 명령 이력 없음
- 자동 완성 없음
I like KHexEdit, which is part of KDE
Its "Windows style" UI is probably quite quick to learn for most people (compared to Vim or Emacs anyway :)
There's lightweight binary editor, check hexedit. http://www.linux.org/apps/AppId_6968.html. I tried using it for editing ELF binaries in Linux at least.
I made wxHexEditor, it's open sourced, written with C++/wxWidgets GUI libs and can open even your exabyte sized disk!
Just try.
As variant, you can use radare2:
> r2 -w /usr/bin/ls
[0x004049d0]>V
[0x004049d0 14% 1104 (0x0:-1=1)]> x @ entry0
- offset - | 0 1 2 3 4 5 6 7 8 9 A B C D E F| 0123456789ABCDEF
0x004049d0 |31ed 4989 d15e 4889 e248 83e4 f050 5449| 1.I..^H..H...PTI
0x004049e0 |c7c0 103a 4100 48c7 c1a0 3941 0048 c7c7| ...:A.H...9A.H..
0x004049f0 |202a 4000 e877 dcff fff4 660f 1f44 0000| *@..w....f..D..
0x00404a00 |b807 e661 0055 482d 00e6 6100 4883 f80e| ...a.UH-..a.H...
0x00404a10 |4889 e576 1bb8 0000 0000 4885 c074 115d| H..v......H..t.]
0x00404a20 |bf00 e661 00ff e066 0f1f 8400 0000 0000| ...a...f........
0x00404a30 |5dc3 0f1f 4000 662e 0f1f 8400 0000 0000| ]...@.f.........
0x00404a40 |be00 e661 0055 4881 ee00 e661 0048 c1fe| ...a.UH....a.H..
0x00404a50 |0348 89e5 4889 f048 c1e8 3f48 01c6 48d1| .H..H..H..?H..H.
0x00404a60 |fe74 15b8 0000 0000 4885 c074 0b5d bf00| .t......H..t.]..
0x00404a70 |e661 00ff e00f 1f00 5dc3 660f 1f44 0000| .a......].f..D..
0x00404a80 |803d c19b 2100 0075 1155 4889 e5e8 6eff| .=..!..u.UH...n.
0x00404a90 |ffff 5dc6 05ae 9b21 0001 f3c3 0f1f 4000| ..]....!......@.
0x00404aa0 |bf10 de61 0048 833f 0075 05eb 930f 1f00| ...a.H.?.u......
0x00404ab0 |b800 0000 0048 85c0 74f1 5548 89e5 ffd0| .....H..t.UH....
0x00404ac0 |5de9 7aff ffff 662e 0f1f 8400 0000 0000| ].z...f.........
0x00404ad0 |488b 0731 d248 f7f6 4889 d0c3 0f1f 4000| H..1.H..H.....@.
For details about how work in visual mode you can read here
For small changes, I have used hexedit:
http://rigaux.org/hexedit.html
Simple but fast and useful.
나는 wxHexEditor에 대한 좋은 경험을 가지고 있습니다 ... 드라이브를 16 진수로 편집하는 경우 메뉴를 통해 수행하는지 확인하십시오.
Devices -> Open Disk Device -> SCSI Disk Drive Partition #_N_
참고 URL : https://stackoverflow.com/questions/839227/how-to-edit-binary-file-on-the-unix-systems
'code' 카테고리의 다른 글
스위치가 열거 형인 경우 기본값의 사용법은 무엇입니까? (0) | 2020.12.06 |
---|---|
반응 구성 요소에서 CSS 파일을 가져 오는 방법은 무엇입니까? (0) | 2020.12.06 |
오늘 자정에 NSDate 객체를 어떻게 얻을 수 있습니까? (0) | 2020.12.06 |
타임 스탬프에서 T와 Z는 정확히 무엇을 의미합니까? (0) | 2020.12.05 |
OS X에서 "dnu"명령을 사용하는 방법은 무엇입니까? (0) | 2020.12.05 |