
ตรวจสอบการแข่งขัน Regex ทั้งหมด (และ Sexier, Cloak และ Dagger Cousins ของพวกเขามากขึ้น, การแข่งขัน Yara) ที่พบในข้อมูลไบนารีและ/หรือข้อความ ดูว่าจะเกิดอะไรขึ้นเมื่อคุณบังคับให้เข้ารหัสอักขระต่าง ๆ ตามไบต์ที่ตรงกัน ด้วยสี
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'/.+/' และรับหน้าต่างเข้าไปในไบต์ทั้งหมดในไฟล์ที่อาศัยอยู่ระหว่างสแลชหน้า เรื่องราวเดียวกันสำหรับคำพูด, BOMS, ฯลฯ regex yara สามารถรองรับได้จึงได้รับการสนับสนุนดังนั้นท้องฟ้าจึงเป็นขีด จำกัดchardet เป็นห้องสมุดที่มีความซับซ้อนสำหรับการคาดเดาการเข้ารหัสตัวละครและเป็นประโยชน์ต่อที่นี่chardet จะได้รับการยกระดับเพื่อดูว่าไบต์พอดีกับรูปแบบของการเข้ารหัสที่รู้จัก หรือไม่ หาก chardet มีความมั่นใจเพียงพอ (กำหนดค่า) ความพยายามในการถอดรหัสไบต์โดยใช้การเข้ารหัสนั้นจะปรากฏขึ้นฟังก์ชั่นของ Yaralyzer ถูกสกัดจาก pdfalyzer เมื่อเห็นได้ชัดว่าการมองเห็นและการจับคู่รูปแบบการจับคู่ในไบนารีมียูทิลิตี้มากกว่าในเครื่องมือวิเคราะห์ PDF
Yara สำหรับผู้ที่ไม่ทราบ 1 เป็นตราสินค้าเป็นเครื่องมือวิเคราะห์มัลแวร์/การแจ้งเตือน แต่จริงๆแล้วมันมีทั้งมากขึ้นและน้อยกว่านั้นมาก วิธีหนึ่งที่จะคิดเกี่ยวกับมันคือ Yara เป็นเครื่องยนต์ที่จับคู่การแสดงออกปกติบนสเตียรอยด์ มันสามารถค้นหาการจับคู่ regex ในไบนารีเช่นเครื่องยนต์ regex ใด ๆ แต่มันยังสามารถทำสิ่งที่กว้างไกลเช่นรวม regexes ในกลุ่มตรรกะเปรียบเทียบ regexes กับรุ่นที่ 256 Xored ทั้งหมดของไบนารีตรวจสอบ base64 และการเข้ารหัสอื่น ๆ ของรูปแบบและอื่น ๆ บางทีที่สำคัญที่สุดของ Yara ทั้งหมดมีรูปแบบข้อความมาตรฐานสำหรับผู้คนใน การแบ่งปัน 'regexes rogeed กับโลก คุณสมบัติทั้งหมดเหล่านี้มีประโยชน์อย่างยิ่งเมื่อวิเคราะห์หรือย้อนกลับมัลแวร์วิศวกรรมซึ่งผู้เขียนมักจะลงทุนเวลามากในการทำสิ่งที่หาได้ยาก
แต่ ... นั่นคือทั้งหมดที่ Yara ทำ อย่างอื่นขึ้นอยู่กับผู้ใช้ Yara เป็นแค่เอ็นจิ้นการจับคู่และถ้าคุณไม่รู้ว่าจะจับคู่อะไร (หรือแม้กระทั่งการเข้ารหัสตัวละครที่คุณอาจจับคู่ได้) มันจะทำให้คุณได้รับจนถึงตอนนี้ ฉันพบว่าตัวเองรู้สึกหงุดหงิดเล็กน้อยที่พยายามใช้ Yara เพื่อดูการแข่งขันทั้งหมดของรูปแบบที่สำคัญบางอย่าง:
".+" และ '.+' )/.+/ ) Slashes ด้านหน้าแบ่งเขตการแสดงออกอย่างสม่ำเสมอในการใช้งานหลายอย่างและฉันพยายามดูว่าไบต์ใด ๆ ที่ตรงกับรูปแบบนี้เป็น regexes จริง หรือไม่Yara เพียงแค่บอกตำแหน่งไบต์และสตริงที่ตรงกัน แต่มันไม่สามารถบอกคุณได้ว่าไบต์เหล่านั้นเป็น UTF-8, UTF-16, ละติน -1 ฯลฯ (หรือไม่มีข้อใดข้างต้น) ฉันยังพบว่าตัวเองต้องการที่จะเข้าใจสิ่งที่เกิดขึ้น ในภูมิภาค ของไบต์ที่ตรงกันและไม่เพียง แต่ ใน ไบต์ที่ตรงกัน กล่าวอีกนัยหนึ่งฉันต้องการกำหนดขอบเขตไบต์ทันทีก่อนและหลังสิ่งที่เข้าคู่กัน
เข้าสู่ Yaralyzer ซึ่งช่วยให้คุณสแกนภูมิภาครอบการแข่งขันได้อย่างรวดเร็วในขณะเดียวกันก็แสดงให้คุณเห็นว่าภูมิภาคเหล่านั้นจะเป็นอย่างไรหากพวกเขาถูกบังคับให้เข้าสู่การเข้ารหัสตัวละครต่างๆ
เป็นสิ่งสำคัญที่จะต้องทราบว่า Yaralyzer ไม่ได้เต็มไปด้วยเครื่องมือการย้อนกลับของมัลแวร์ มันไม่สามารถทำทุกสิ่งที่เป็นเครื่องมืออย่าง CyberChef และมันไม่ได้พยายาม มันมีจุดประสงค์มากขึ้นที่จะให้ภาพรวมการมองเห็นอย่างรวดเร็วของภูมิภาคผู้ต้องสงสัยในไบนารีเพื่อให้คุณสามารถฝึกฝนในพื้นที่ที่คุณอาจต้องการตรวจสอบด้วยเครื่องมือที่จริงจังมากขึ้นเช่น CyberChef
ติดตั้งด้วย pipx หรือ pip3 pipx เป็นวิธีแก้ปัญหาที่ดีกว่าเล็กน้อยเนื่องจากรับประกันว่าแพ็คเกจใด ๆ ที่ติดตั้งไว้จะถูกแยกออกจากสภาพแวดล้อมที่เหลือของ Python ในพื้นที่ของคุณ แน่นอนถ้าคุณไม่มีสภาพแวดล้อม Python ในท้องถิ่นนี่เป็นจุดที่สงสัยและคุณสามารถติดตั้งด้วย pip / pip3
pipx install yaralyzer
เรียกใช้ yaralyze -h เพื่อดูตัวเลือกบรรทัดคำสั่ง (ภาพหน้าจอด้านล่าง)

สำหรับข้อมูลเกี่ยวกับการส่งออกรูปภาพ SVG, HTML ฯลฯ ดูตัวอย่างเอาต์พุต
หากคุณวางไฟล์ที่เรียกว่า .yaralyzer ในไดเรกทอรีโฮมไดเรกทอรีของคุณหรือไดเรกทอรีการทำงานปัจจุบันตัวแปรสภาพแวดล้อมที่ระบุไว้ในไฟล์ .yaralyzer จะถูกเพิ่มเข้าไปในสภาพแวดล้อมในแต่ละครั้งที่ Yaralyzer ถูกเรียกใช้ นี่เป็นกลไกสำหรับการกำหนดค่าตัวเลือกบรรทัดคำสั่งต่างๆอย่างถาวรเพื่อให้คุณสามารถหลีกเลี่ยงการพิมพ์ซ้ำแล้วซ้ำอีก ดูตัวอย่างไฟล์ .yaralyzer.example เพื่อดูว่าตัวเลือกใดที่สามารถกำหนดค่าได้ด้วยวิธีนี้
ไฟล์ .yaralyzer เพียงหนึ่งไฟล์เท่านั้นที่จะโหลดและไดเรกทอรีการทำงานของ .yaralyzer มีความสำคัญกว่า. Yometory .yaralyzer
Yaralyzer เป็นคลาสหลัก มันมีความหลากหลายของตัวสร้างที่สนับสนุน:
.yara ทั้งหมดในไดเรกทอรีbytes หากคุณต้องการทำซ้ำผ่าน BytesMatch (เช่นวัตถุ re.Match สำหรับการจับคู่ yara) และ BytesDecoder (แทร็กการถอดรหัสสถิติสถิติ) วัตถุที่ส่งคืนโดย Yaralyzer คุณสามารถทำได้เช่นนี้:
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 สามารถส่งออกการสร้างภาพไปยัง HTML, ข้อความสี ANSI และภาพเวกเตอร์ SVG โดยใช้ฟังก์ชั่นการส่งออกไฟล์ที่มาพร้อมกับที่หลากหลาย SVG สามารถเปลี่ยนเป็นรูปภาพรูปแบบ png ด้วยเครื่องมือเช่น Inkscape หรือ cairosvg จากประสบการณ์ของเราพวกเขาทั้งคู่ทำงานแม้ว่าเราจะเห็นความผิดพลาดกับ cairosvg
ผู้ใช้ PYPI: หากคุณกำลังอ่านเอกสารนี้ใน PYPI โปรดทราบว่าจะทำให้ดีขึ้นมากใน GitHub ภาพสวยเชิงอรรถที่ใช้งานได้ ฯลฯ


chardet.detect() คิดเกี่ยวกับโอกาสที่ไบต์ของคุณอยู่ในการเข้ารหัส/ภาษาที่กำหนด: 
rich ในบางวิธี สำหรับตอนนี้เอาต์พุตคอนโซลคือ "ถูกต้องมากขึ้น" ดังนั้นโดยทั่วไปแล้วจึงโอเค issue_with_output_to_txt_file_incorrect.png issue_with_output_to_console_correctchardet s คำสั่งอย่างที่ฉันเป็นจนกระทั่งเมื่อไม่นานมานี้