Saya punya file, sedikit lebih besar dari 500MB, yang menyebabkan beberapa masalah.
Saya yakin masalahnya ada pada konvensi end of line (EOL) yang digunakan. Saya ingin melihat file dalam bentuk mentah yang tidak diinterpretasikan (1) untuk mengkonfirmasi konvensi EOL file.
Bagaimana saya bisa melihat "biner" dari file menggunakan sesuatu yang dibangun di dalam Windows 7? Saya lebih suka menghindari keharusan mengunduh apa pun yang tambahan.
(1) Rekan kerja saya dan saya membuka file dalam editor teks, dan mereka menunjukkan garis seperti yang diharapkan. Tetapi kedua editor teks akan membuka file dengan konvensi EOL yang berbeda dan menafsirkannya secara otomatis. (TextEdit dan Emacs 24.2. Untuk Emacs saya telah membuat file kedua dengan hanya menggunakan 4K byte pertama head -c4096
pada kotak linux dan membukanya dari kotak windows saya.
Saya mencoba menggunakan hexl-mode di Emacs, tetapi ketika saya pergi ke hexl-mode dan kembali ke mode teks, isi buffer telah berubah, menambahkan ^ M yang terlihat di akhir setiap baris, jadi saya tidak percaya itu saat ini.
Saya percaya masalah ini mungkin pada karakter akhir baris yang digunakan. Para editor rekan kerja saya dan saya mencoba (1) secara otomatis mengenali konvensi garis akhir dan menunjukkan kepada kami garis. Dan berdasarkan bukti lain saya percaya konvensi EOL adalah carriage return saja. (2) hanya kembali.
Untuk mengetahui apa yang sebenarnya ada dalam file tersebut, saya ingin melihat isi biner dari file tersebut, atau setidaknya beberapa ribu byte file, lebih disukai di Hex, meskipun saya dapat bekerja dengan desimal atau oktal. Hanya angka nol yang cukup sulit untuk dilihat.
MEMPERBARUI
Kecuali yang disarankan DEBUG
, semua jawaban di bawah ini berfungsi sampai batas tertentu. Saya telah memilih masing-masing sebagai bermanfaat. Pertanyaan saya tidak lengkap. Dalam menguji setiap solusi yang disarankan, saya menemukan bahwa saya benar-benar ingin melihat heks berdampingan dan konten teks, dan bahwa saya ingin itu menjadi sesuatu di mana ketika saya meletakkan kursor di atas sesuatu, baik nilai byte atau karakter teks, hal yang cocok pada sisi lain akan disorot.
Saya benar-benar memecahkan masalah saya ketika Emacs hexl-mode mulai bekerja "dengan benar". Jadi saya akhirnya tidak menggunakan jawaban ini, hanya mengujinya. (Benar-benar harus menyelidiki perilaku aneh Emacs dan mengajukan laporan bug.)
Jawaban:
Anda memerlukan "hex editor". Saya telah menggunakan "Hex Editor Neo" selama bertahun-tahun dan ini sangat bagus. Ini tersedia dalam versi gratis dan berbayar . (Dan saya yakin ada alat serupa lainnya yang tersedia.)
sumber
Jika Anda memiliki PowerShell versi 5.0 atau yang lebih baru, Anda dapat menggunakan
powershell
fungsi bawaanFormat-Hex
sumber
Format-Hex
tidak tersedia di PowerShell saya; Saya hanya mendapatkan kesalahan "tidak dikenali"Dibangun di, cepat dan kotor: mulai
powershell
, jalankan:TotalCount adalah hitungan byte yang ingin Anda baca dari file.
Google 'powershell hexdump' untuk mendapatkan versi yang lebih halus / bisa diterapkan.
Jika Anda memiliki Windows Resource Kit Tools (bukan built-in, tetapi tutup) Anda juga dapat menggunakan utilitas garis cmd yang disebut
list.exe
. Ini adalah editor kecil dengan mode hex. Dirancang khusus untuk bekerja dengan file besar:sumber
list.exe /?
perintah bantuan tidak memberikan banyak info, tetapi begitu di dalam editor tekan saja?
untuk melihat perintah.H
membuka Hex editor, &F1
matikan cara Hex ditampilkanIni juga berfungsi untuk semuanya setelah XP:
certutil -encodehex MyProgram.exe MyProgram.txt
XP memerlukan Paket Alat Administrasi Windows Server 2003 dari sini:
https://www.microsoft.com/en-us/download/details.aspx?id=16770
sumber
Salin file ke nama dengan
.COM
ekstensi, di mana nama dasar tidak lebih dari delapan karakter. MenjalankanIni akan memberi
-
prompt ' '. Mengetikberulang kali untuk d isplay file 128 byte pada suatu waktu. Mengetik
untuk menampilkan 128 byte dimulai dari alamat , yang harus diketik dalam hex, di mana awal file adalah alamat 100. Ketik
untuk menampilkan dari alamat 1 ke alamat 2 . Mengetik
untuk menampilkan num byte (panjang) mulai dari alamat . num juga dimasukkan dalam hex. Gunakan
Q
untuk berhenti.Sebagai contoh,
sumber
C:\>attrib debug.exe /s
. Hasil:File not found - debug.exe
. Tidak dapat menemukan pernyataan resmi, debug tidak lagi didukung , tetapi dari apa yang saya lihat di web sepertinya dukungan debug telah dihapus beberapa saat yang lalu. Saya menemukan DebugDiag dari Microsoft. (Unduhan ekstra.) Melakukan debugging? Mungkin itu mendukung melihat file di HEX? Dikirim sebagai file .MSI. Membutuhkan kata sandi admin untuk menginstal. Saya bukan satu.head -c4096 bigFileName > smallFileName
di linux untuk mendapatkan 4 KB pertama dari file. Garis cukup kecil sehingga empat KB memiliki banyak saluran untuk keperluan sayahexdump -C
saat di Linux?HxD adalah hex editor portabel, yang berarti tidak diperlukan instalasi, dan tidak lebih dari satu file exe.
http://mh-nexus.de/en/hxd/
Opsi lain yang serupa portabel adalah Frhed:
http://frhed.sourceforge.net/en/screenshots/
sumber
Karena Windows 7 dilengkapi dengan kerangka kerja dotnet 3.5 bawaan, Anda akan memiliki kompiler C # bawaan, sehingga Anda dapat mengambil, misalnya, daftar dari http://illegalargumentexception.blogspot.co.uk/2008/04/c- file-hex-dump-application.html dan kemudian kompilasi menggunakan
dan Anda harus berakhir dengan printhex.exe yang akan menampilkan karakter hex dan ascii.
sumber
Ini tidak ideal, tetapi jika Anda benar-benar tidak ingin mengunduh apa pun, maka Anda dapat mencoba menggunakan fc / b (yaitu membandingkan file dalam mode biner) untuk membandingkan file ini dengan file lain yang sama sekali berbeda, dan itu akan menunjukkan kepada Anda hex nilai setiap byte yang berbeda. Anda mungkin akan mendapatkan beberapa nilai yang kebetulan sama di kedua file dan karenanya dapat dilewati dari output, tetapi Anda dapat mengetahui apakah itu terjadi dengan memeriksa nilai-nilai yang hilang di kolom offset.
sumber
Anda dapat menggunakan fungsi PowerShell di bawah ini bersama Get-Content untuk melihat hexdump dari isi file, yaitu
Get-Content -Encoding Byte 'MyFile.bin' | Format-HexDump
,. Dibutuhkan sekitar 23 detik untuk membuang file 222 KB dan, jika diinginkan, hasilnya dapat diarahkan ke file teks untuk mempermudah pemeriksaan dump.Output terlihat seperti ini:
sumber
Karena teks Sublim adalah editor favorit saya, saya menggunakan plugin-nya untuk melihat file hex. http://facelessuser.github.io/HexViewer/
sumber
Saya tahu Anda menggunakan Emacs tetapi pengguna Vim dapat menggunakan
xxd
utilitas:yaitu
sumber