NWBinAnalyzer เป็นเครื่องมือ Python สำหรับวิเคราะห์และแยกข้อความที่อ่านได้จากไฟล์ binary ที่คอมไพล์แล้วของ NW.js (.bin) เครื่องมือนี้ช่วยให้นักวิจัยด้านความปลอดภัยและผู้ที่ต้องการศึกษาโครงสร้างของแอปพลิเคชัน NW.js สามารถเข้าใจเนื้อหาของไฟล์ที่คอมไพล์แล้วได้ง่ายขึ้น
NWBinAnalyzer (NW.js Binary Analyzer)
- NW = NW.js Framework
- Bin = Binary File
- Analyzer = เครื่องมือวิเคราะห์
- เรียนรู้โครงสร้างไฟล์ binary ของ NW.js
- ศึกษาการทำงานของ V8 JavaScript Engine
- วิเคราะห์การเข้ารหัสและการจัดเก็บข้อมูลใน constant pool
- เข้าใจการทำงานของระบบ packaging ในแอปพลิเคชัน desktop
- ถอดรหัสข้อความ UTF-8 โดยตรง
- ตรวจหาข้อความที่ลงท้ายด้วย null terminator
- แยกข้อความที่มี length prefix (1, 2, และ 4 ไบต์)
- ตรวจหา Base64 encoded strings
- ตรวจหา Hexadecimal encoded strings
- วิเคราะห์รูปแบบของข้อมูล binary
- การจัดหมวดหมู่: แบ่งประเภทข้อความที่พบตามวัตถุประสงค์:
- การเรียกใช้ API และฟังก์ชัน
- เส้นทางไฟล์และทรัพยากร
- URL และ network endpoints
- การดำเนินการเข้ารหัส
- โมดูล Node.js
- ข้อความแสดงข้อผิดพลาด
- ข้อความน่าสงสัย
- รหัสสั้นๆ (อาจเป็นการปกปิด)
- หาความเชื่อมโยงระหว่างข้อความต่างๆ
- ตรวจหาข้อความที่มี prefix หรือ suffix คล้ายกัน
- วิเคราะห์ความสัมพันธ์เชิงโครงสร้าง
- 🌐 การสื่อสารผ่านเครือข่าย (HTTP requests)
- 🔐 การดำเนินการเข้ารหัส
- 📁 การจัดการระบบไฟล์
- ⚙️ Worker threads และการประมวลผลเบื้องหลัง
- ✅ การตรวจสอบความถูกต้องของโค้ดและข้อมูล
- 📥 การดาวน์โหลดและอัปโหลดไฟล์
- 📝 ระบบ logging
- 🔄 ฟังก์ชัน auto-update
⚠️ การตรวจสอบความปลอดภัยและป้องกันการแก้ไข
- Python 3.6 หรือใหม่กว่า
- ไม่ต้องติดตั้ง library เพิ่มเติม (ใช้ standard library เท่านั้น)
-
ดาวน์โหลดโค้ด
git clone https://github.com/Netizen-alt/NWBinAnalyzer.git cd NWBinAnalyzer
-
ตรวจสอบ Python version
python --version # หรือ python3 --version
-
ทดสอบการทำงาน
python app.py --help
python app.py <ไฟล์.bin>
# วิเคราะห์ไฟล์ binary
python app.py _bac_logic.bin
# วิเคราะห์ไฟล์หลายๆ ไฟล์
python app.py file1.bin
python app.py file2.bin
[+] Magic Header OK: 8e06dec0
[+] Constant Pool Entries: 28
[00] Length: 79
Binary data (79 bytes):
Magic bytes: 1cccf146
Unique bytes: 45/256
[13] Length: 129
Extracted strings: ['createHash']
[+] String Analysis:
📋 API CALLS (15):
- 'createHash'
- 'readFileSync'
- 'writeRequestBody'
- 'verifySignature'
...
📋 CRYPTO RELATED (8):
- 'RSA-SHA256'
- 'aes-128-gcm'
- 'sha'
...
[+] Detected Functionality:
🌐 Network communication (HTTP requests)
🔐 Cryptographic operations
📁 File system operations
✅ Code/data verification
NWBinAnalyzer/
├── app.py # ไฟล์หลักของเครื่องมือ
├── README.md # คู่มือการใช้งาน (ไฟล์นี้)
├── examples/ # ตัวอย่างไฟล์ทดสอบ
├── docs/ # เอกสารเพิ่มเติม
└── LICENSE # ใบอนุญาตการใช้งาน
อ่านค่า variable-length integer จาก binary data (รูปแบบที่ V8 ใช้)
แยกข้อความที่อ่านได้จาก binary data ด้วยวิธีต่างๆ
วิเคราะห์โครงสร้างของ binary data เพื่อหารูปแบบและคุณสมบัติ
จัดหมวดหมู่ข้อความที่พบตามวัตถุประสงค์การใช้งาน
หาความสัมพันธ์และการเชื่อมโยงระหว่างข้อความต่างๆ
วิเคราะห์ฟังก์ชันการทำงานของโปรแกรมจากข้อความที่พบ
- Magic Header:
8e 06 de c0
(4 ไบต์แรก) - Constant Pool Count: Variable-length integer
- Constant Pool Entries: แต่ละ entry มี length และ data
- ใช้ 7 บิตต่อไบต์สำหรับข้อมูล
- บิตที่ 8 เป็น continuation bit
- Little-endian byte order
- Null-terminated strings: ลงท้ายด้วย
\0
- Length-prefixed strings: มี length อยู่ข้างหน้า
- Raw UTF-8 sequences: ข้อความ UTF-8 โดยตรง
- เครื่องมือนี้แสดงเฉพาะ constant pool strings เท่านั้น
- ไม่สามารถ decompile V8 bytecode ได้อย่างสมบูรณ์
- อาจมีข้อความบางส่วนที่แยกไม่ได้เนื่องจากการเข้ารหัสพิเศษ
- การวิเคราะห์เพื่อความปลอดภัย
- การศึกษาโครงสร้างแอปพลิเคชัน
- การวิจัยด้าน reverse engineering
- การเรียนรู้เทคโนโลยี V8 และ NW.js
เมื่อเครื่องมือพบข้อความเหล่านี้ในไฟล์:
createHash
,verifySignature
→ ระบบเข้ารหัสreadFileSync
,writeRequestBody
→ การจัดการไฟล์https://
,fetch
→ การสื่อสารเครือข่ายsussy
,verification failed
→ ระบบตรวจสอบความปลอดภัย
NWBinAnalyzer พัฒนาขึ้นเพื่อการศึกษาเท่านั้น กรุณาใช้งานอย่างมีจริยธรรมและเคารพสิทธิ์ของผู้อื่น
หากคุณใช้งาน NWBinAnalyzer ในงานวิจัยหรือโปรเจค กรุณาอ้างอิงดังนี้:
NWBinAnalyzer - NW.js Binary File Analyzer
เครื่องมือวิเคราะห์ไฟล์ Binary ของ NW.js เพื่อการศึกษา