คำแนะนำสำหรับการใช้งาน VBKiller
Killer เป็นเครื่องมือวิเคราะห์แบบย้อนกลับที่ได้รับความช่วยเหลือจาก VB ก่อนอื่น ผมขอบอกก่อนว่าไม่สามารถช่วยคุณถอดรหัสโปรแกรม VB ให้เป็นซอร์สโค้ด VB ได้ ทำได้เพียงทำให้การแยกส่วนของโปรแกรม VB ดูใกล้เคียงกับโค้ด VB เท่านั้น
เมื่อใช้กับ IDA คุณสามารถสร้างโครงสร้างคลาส ตารางเมธอด เนื้อหาฟังก์ชันของโปรแกรม VB และสร้างโครงสร้างตารางเมธอดได้เกือบทั้งหมด คุณสามารถระบุ CLSID ของ COM ที่อ้างอิงในโปรแกรม VB และใช้ ProgID เพื่อตั้งชื่อได้ โปรแกรม COM ใดๆ (ที่ไม่ใช่ VB ยังสามารถคอมไพล์ตารางเมธอดและเนื้อความของฟังก์ชัน และสร้างโครงสร้างตารางเมธอด โครงสร้างเหล่านี้สามารถใช้ในโปรแกรม VB ที่จะวิเคราะห์ได้ หลังจากกระบวนการเหล่านี้ โปรแกรม VB ที่จะวิเคราะห์ได้สร้างคลาสและวิธีการที่เป็นมาตรฐานจำนวนมากใน IDA และไม่ไกลจากวิศวกรรมย้อนกลับซอร์สโค้ด
วิธีใช้:
คลิกปุ่มเรียกดูเพื่อเลือกโปรแกรม COM, DLL หรือ Exe หรือ ocx หากไม่ใช่โปรแกรม VB ให้ทำเครื่องหมายที่ "โปรแกรมที่ไม่ใช่ VB" แล้วคลิกเพื่อดู กล่องทางด้านซ้ายแสดงรายการอินเทอร์เฟซ COM ทั้งหมดของโปรแกรมที่เลือก หากคุณต้องการดูคลาสและการแจงนับ คุณสามารถเลือก "แสดงคลาสทั้งหมดยกเว้นอินเทอร์เฟซ" คลิกที่อินเทอร์เฟซใดๆ และวิธีการทั้งหมดของอินเทอร์เฟซจะแสดงทางด้านขวา รวมถึงที่อยู่ในตารางวิธีการและที่อยู่จริงของเนื้อหาวิธีการ หากคุณต้องการแสดงวิธีพื้นฐานเจ็ดวิธีแรก คุณต้องเลือก "แสดงวิธีการของอินเทอร์เฟซพื้นฐาน" ถ้าเป็นโปรแกรมที่ไม่ใช่ VB จะมีที่อยู่ฐานรูปภาพและที่อยู่ฐานเสมือนทางด้านขวา อาจคำนวณที่อยู่นี้เป็นค่าเริ่มต้น หากไม่ถูกต้อง จำเป็นต้องแก้ไขด้วยตนเอง เนื่องจากที่อยู่ตารางวิธีการที่ได้รับจากโปรแกรมอยู่ในพื้นที่ทำงาน และต้องทราบว่าที่อยู่ฐานทั้งสองนี้ถูกแปลงเป็นที่อยู่ใน ไฟล์คงที่ ดังนั้นจึงมีความสำคัญมากและไม่สามารถกรอกได้ ไม่เช่นนั้นระบบจะรับรู้ถึงข้อผิดพลาด คลิกสร้าง IDC เพื่อสร้างไฟล์ IDC ที่สอดคล้องกับอินเทอร์เฟซที่เลือกในปัจจุบันไม่สามารถสร้าง IDC นี้ลงใน IDA และที่อยู่ของวิธีการที่เกี่ยวข้องสามารถระบุและประมวลผลได้โดยอัตโนมัติ คลิกสร้างทั้งหมดเพื่อสร้างไฟล์ IDC สำหรับอินเทอร์เฟซทั้งหมด (ใส่ไว้ในไฟล์เดียวกัน) เลือก "สร้างโครงสร้าง" และใช้ปุ่มสร้างสองปุ่มเพื่อสร้างสคริปต์การสร้างโครงสร้างที่สอดคล้องกับ COM นี้ โหลดโครงสร้าง IDC นี้ลงใน IDA และชุดของโครงสร้างที่เกี่ยวข้องจะถูกสร้างขึ้นใน IDA เช่น: หนึ่งในโปรแกรมที่วิเคราะห์ใช้การทำงานของฐานข้อมูล และการดำเนินการเข้ารหัสและถอดรหัส โดยทั่วไป จำเป็นต้องโหลดสคริปต์โครงสร้างของ ADO และ CAPICOM
VBKiller ยังมีฟังก์ชั่นการสแกนและระบุ COM ที่ยังไม่เสร็จสมบูรณ์
ในไดเร็กทอรีเดียวกัน มีไฟล์ c อื่นๆ หลายไฟล์
ในนั้น header.c จะรวมอยู่ในไฟล์ IDC ข้างต้น นี่เป็นไฟล์ฟังก์ชันสาธารณะ
vb.c เป็นเวอร์ชันแก้ไขของ vb.idc ที่เผยแพร่บนอินเทอร์เน็ต ยังไม่มีการเปลี่ยนแปลงมากนัก สคริปต์นี้สามารถใช้เพื่อสร้างโครงสร้างคลาสและตารางเหตุการณ์ของโปรแกรม VB
vboop.c เป็นสคริปต์ที่ออกแบบมาโดยเฉพาะเพื่อช่วยในการวิเคราะห์ฟังก์ชันเชิงวัตถุของ VB
วิธีการ Do_BasicOOP ภายในจะขึ้นอยู่กับตารางเหตุการณ์ที่สร้างขึ้นใน vb.c เป็นหลัก โดยประมวลผลเนื้อหาของฟังก์ชันที่เกี่ยวข้อง หากไม่ได้สร้างฟังก์ชัน ให้สร้างฟังก์ชัน เปลี่ยนชื่อฟังก์ชันให้สอดคล้องกับชื่อของตารางเหตุการณ์ และสร้าง แต่ละคลาสพร้อมกัน โครงสร้างตารางวิธีจะถูกวิเคราะห์ในภายหลัง
ParseAPI ใช้เพื่อประมวลผลฟังก์ชันภายในของ VB โดยจะสแกนการอ้างอิงโยงของฟังก์ชันที่ระบุทั้งหมด เพิ่มความคิดเห็นที่ทำซ้ำได้ให้กับฟังก์ชัน พยายามระบุพารามิเตอร์ และเพิ่มความคิดเห็นให้กับแต่ละพารามิเตอร์ หากพารามิเตอร์นั้นเป็นรีจิสเตอร์ ให้ค้นหาเพิ่มเติม แหล่งที่มาของข้อมูลการลงทะเบียนพร้อมข้อคิดเห็น ฟังก์ชันที่สแกนและความคิดเห็นระบุไว้ในโค้ด ปัจจุบัน ฟังก์ชันส่วนใหญ่ได้รับการระบุ คุณสามารถเพิ่มฟังก์ชันใหม่ได้ตามความต้องการ
วิธี ParseNew ใช้เพื่อสแกนการอ้างอิงโยง _vbaNew และ _vbaNew2 ทั้งหมด และพยายามระบุ CLSID ที่เกี่ยวข้อง หากสามารถระบุได้ ก็จะถูกแก้ไขเป็นชื่อโปรแกรมที่เกี่ยวข้องเพื่อให้ดูได้ง่าย มีการใช้งานการรับรู้ในตัว ปัจจุบันมีไม่มาก คุณสามารถเพิ่มของคุณเองได้ตามต้องการ การสแกนคือหากพบ CLSID ที่ไม่รู้จัก โปรแกรมจะเขียน CLSID ไปที่ UnKnown.txt ในไดเร็กทอรีเดียวกัน หลังจากวิเคราะห์แล้ว คุณสามารถตรวจสอบไฟล์ได้ หากพบ CLSID ที่ไม่รู้จัก ให้ไปที่รีจิสทรี CLSID และหลังจากได้ชื่อโปรแกรมแล้ว ให้เพิ่มลงในตำแหน่งที่เกี่ยวข้องในโปรแกรม