
Periksa secara visual semua pertandingan Regex (dan sepupu mereka yang lebih seksi, lebih banyak jubah dan belati, Yara cocok) yang ditemukan dalam data biner dan/atau teks. Lihat apa yang terjadi ketika Anda memaksa berbagai pengkodean karakter pada byte yang cocok itu. Dengan warna.
pipx install yaralyzer
# Scan against YARA definitions in a file:
yaralyze --yara-rules /secret/vault/sigmunds_malware_rules.yara lacan_buys_the_dip.pdf
# Scan against an arbitrary regular expression:
yaralyze --regex-pattern ' good and evil.*ofs+w+byte ' the_crypto_archipelago.exe
# Scan against an arbitrary YARA hex pattern
yaralyze --hex-pattern ' d0 93 d0 a3 d0 [-] 9b d0 90 d0 93 ' one_day_in_the_life_of_ivan_cryptosovich.bin'/.+/' dan segera mendapatkan jendela ke semua byte dalam file yang hidup di antara tebasan depan. Kisah yang sama untuk kutipan, bom, dll. Regex yang dapat ditangani oleh Regex Yara didukung sehingga langit adalah batasnya.chardet adalah perpustakaan yang canggih untuk menebak pengkodean karakter dan dimanfaatkan di sini.chardet juga akan dimanfaatkan untuk melihat apakah byte sesuai dengan pola penyandian yang diketahui . Jika chardet cukup percaya diri (dapat dikonfigurasi) upaya untuk mendekode byte menggunakan pengkodean itu akan ditampilkan.Fungsionalitas Yaralyzer diekstraksi dari pdfalyzer ketika menjadi jelas bahwa memvisualisasikan dan mencocokkan pola decoding di binari memiliki lebih banyak utilitas daripada hanya dalam alat analisis PDF.
Yara, bagi mereka yang tidak sadar 1 , dicap sebagai alat analisis/peringatan malware tetapi sebenarnya jauh lebih sedikit dan jauh lebih sedikit dari itu. Salah satu cara untuk memikirkannya adalah bahwa Yara adalah mesin pencocokan ekspresi reguler pada steroid. Ini dapat menemukan kecocokan regex di binari seperti mesin regex apa pun tetapi juga dapat melakukan hal -hal yang jauh lebih liar seperti menggabungkan regex dalam kelompok logis, bandingkan regex dengan semua 256 versi xored dari biner, periksa base64 dan pengkodean lain dari pola, dan banyak lagi. Mungkin yang paling penting dari semua Yara memberikan format berbasis teks standar bagi orang untuk berbagi regex roided mereka dengan dunia. Semua fitur ini sangat berguna ketika menganalisis atau membalikkan malware, yang penulisnya cenderung menginvestasikan banyak waktu untuk membuat hal -hal sulit ditemukan.
Tapi ... itu juga semua Yara. Segala sesuatu yang lain terserah pengguna. Yara hanyalah mesin yang cocok dan jika Anda tidak tahu apa yang harus dicocokkan (atau bahkan pengkodean karakter apa yang mungkin dapat Anda ikuti), itu hanya membuat Anda sejauh ini. Saya mendapati diri saya sedikit frustrasi mencoba menggunakan Yara untuk melihat semua pertandingan dari beberapa pola kritis:
".+" Dan '.+' )/.+/ ). Slash depan membatasi ekspresi reguler dalam banyak implementasi dan saya mencoba untuk melihat apakah ada byte yang cocok dengan pola ini sebenarnya regex.Yara hanya memberi tahu Anda posisi byte dan string yang cocok tetapi tidak dapat memberi tahu Anda apakah byte itu adalah UTF-8, UTF-16, Latin-1, dll. (Atau tidak ada di atas). Saya juga mendapati diri saya ingin memahami apa yang terjadi di wilayah byte yang cocok dan tidak hanya dalam byte yang cocok. Dengan kata lain saya ingin ruang lingkup byte segera sebelum dan sesudah apa pun yang cocok.
Masukkan Yaralyzer , yang memungkinkan Anda dengan cepat memindai daerah -daerah di sekitar pertandingan sambil juga menunjukkan kepada Anda seperti apa daerah itu jika mereka dipaksa ke berbagai pengkodean karakter.
Penting untuk dicatat bahwa Yaralyzer bukanlah alat pembalikan malware penuh. Itu tidak dapat melakukan semua hal yang dilakukan alat seperti CyberChef dan tidak mencoba. Lebih dimaksudkan untuk memberi Anda gambaran visual yang cepat tentang daerah yang dicurigai dalam biner sehingga Anda dapat mengasah area yang mungkin ingin Anda periksa dengan alat yang lebih serius seperti CyberChef.
Pasang dengan pipx atau pip3 . pipx adalah solusi yang sedikit lebih baik karena menjamin setiap paket yang dipasang dengan itu akan diisolasi dari lingkungan Python lokal Anda. Tentu saja jika Anda tidak benar -benar memiliki lingkungan Python lokal, ini adalah poin yang diperdebatkan dan Anda dapat menginstal dengan pip / pip3 .
pipx install yaralyzer
Jalankan yaralyze -h untuk melihat opsi baris perintah (tangkapan layar di bawah).

Untuk info tentang mengekspor gambar SVG, HTML, dll., Lihat output contoh.
Jika Anda menempatkan file yang disebut .yaralyzer di direktori rumah Anda atau direktori kerja saat ini maka variabel lingkungan yang ditentukan dalam file .yaralyzer itu akan ditambahkan ke lingkungan setiap kali Yaralyzer dipanggil. Ini memberikan mekanisme untuk secara permanen mengonfigurasi berbagai opsi baris perintah sehingga Anda dapat menghindari mengetiknya berulang kali. Lihat contoh file .yaralyzer.example untuk melihat opsi mana yang dapat dikonfigurasi dengan cara ini.
Hanya satu file .yaralyzer yang akan dimuat dan direktori kerja .yaralyzer lebih diutamakan daripada direktori rumah .yaralyzer .
Yaralyzer adalah kelas utama. Ini memiliki berbagai konstruktor yang mendukung:
.yara di direktoribytes Jika Anda ingin mengulangi BytesMatch (seperti objek re.Match untuk pertandingan yara) dan BytesDecoder (melacak statistik upaya decoding) yang dikembalikan oleh yaralyzer, Anda dapat melakukannya seperti ini:
from yaralyzer . yaralyzer import Yaralyzer
yaralyzer = Yaralyzer . for_rules_files ([ '/secret/rule.yara' ], 'lacan_buys_the_dip.pdf' )
for bytes_match , bytes_decoder in yaralyzer . match_iterator ():
do_stuff () Yaralyzer dapat mengekspor visualisasi ke HTML, teks berwarna ANSI, dan gambar vektor SVG menggunakan fungsionalitas ekspor file yang disertai dengan kaya. SVG dapat diubah menjadi gambar format png dengan alat seperti Inkscape atau cairosvg . Dalam pengalaman kami, mereka berdua bekerja meskipun kami telah melihat beberapa kesal dengan cairosvg .
Pengguna PYPI: Jika Anda membaca dokumen ini di PYPI, ketahuilah bahwa itu membuat jauh lebih baik di GitHub. Gambar cantik, catatan kaki yang berfungsi, dll.


chardet.detect() tentang kemungkinan byte Anda dalam pengkodean/bahasa yang diberikan: 
rich dalam beberapa cara. Untuk saat ini output konsol adalah yang "lebih benar" sehingga umumnya ok. Lihat issue_with_output_to_console_correct vs issue_with_output_to_txt_file_incorrect.pngchardetSeperti saya sampai saat ini. ↩