Capstonedelphi เป็น Delphi และ Pascal ที่มีผลผูกพันฟรีสำหรับห้องสมุด Disassembler Capstone รองรับ CapStone 5 และให้ API ที่ปลอดภัยและเป็นมิตรที่ง่ายซึ่งง่ายต่อการเรียนรู้และรับได้อย่างรวดเร็ว
Capstone เป็นกรอบการถอดชิ้นส่วนโดยมีเป้าหมายในการเป็นเอ็นจิ้น Disasm ที่ดีที่สุดสำหรับการวิเคราะห์แบบไบนารีและการย้อนกลับในชุมชนความปลอดภัย
ในการติดตั้งการเชื่อมโยง capstonedelphi ให้ทำตามขั้นตอนเหล่านี้:
โคลนที่เก็บ:
git clone https://github.com/delphilite/CapstoneDelphi.gitเพิ่มไดเรกทอรี Capstonedelphi Source ลงในโครงการหรือเส้นทางการค้นหาของ IDE
ตรวจสอบให้แน่ใจว่าคุณติดตั้งไลบรารี Capstone 5 ในระบบของคุณ คุณสามารถอัปเดต Capstone 5.0.1 Binary Libraries จาก PYPI, Anaconda, Archlinuxarm ฯลฯ
ตอนนี้ Capstonedelphi ควรอยู่ในรายการใน Delphinus Package Manager
ตรวจสอบให้แน่ใจว่าได้รีสตาร์ท Delphi หลังจากติดตั้งผ่าน Delphinus มิฉะนั้นหน่วยอาจไม่พบในโครงการทดสอบของคุณ
รวมอยู่ในคลาส wrapper TCapstone ใน Capstone.pas ตัวอย่างตะโกนไม่สมบูรณ์ แต่อาจทำให้คุณประทับใจว่าจะใช้มันได้อย่างไร
uses
SysUtils, Capstone;
procedure DisAsmFunctionCode ( const AFunc: Pointer; ASize: Integer = - 1 );
var
aInsn: TCsInsn;
disasm: TCapstone;
nAddr: UInt64;
nSize: NativeUInt;
begin
if ASize < 0 then
nSize := MaxInt
else nSize := ASize;
disasm := TCapstone.Create;
with disasm do
try
{ $IFDEF CPUX64 }
Mode := [csm64];
{ $ELSE }
Mode := [csm32];
{ $ENDIF }
Arch := csaX86;
nAddr := UInt64(AFunc);
if Open(AFunc, nSize) then
while GetNext(nAddr, aInsn) do
begin
WriteLn(aInsn.ToString);
if (ASize < 0 ) and (aInsn.mnemonic = ' ret ' ) then
Break;
end ;
finally
Free;
end ;
end ;
begin
try
WriteLn(Format( ' Capstone Engine: v%s(%s), DisAsm ExpandFileNameCase ... ' , [TCapstone.LibraryVersion, TCapstone.EngineVersion]));
WriteLn( ' ' );
DisAsmFunctionCode(@SysUtils.ExpandFileNameCase);
WriteLn( ' ' );
WriteLn( ' Done. ' );
ReadLn;
except
on E: Exception do
WriteLn(Format( ' Error Decompiler: %s ' , [E.Message]));
end ;
end .สำหรับตัวอย่างเพิ่มเติมตาม API ระดับต่ำโปรดดูกรณีทดสอบภายใต้ไดเรกทอรีการทดสอบ
สำหรับข้อมูลรายละเอียดเพิ่มเติมโปรดดูเอกสาร Capstone
ยินดีต้อนรับ! โปรดแยกที่เก็บนี้และส่งคำขอดึงพร้อมการปรับปรุงของคุณ
โครงการนี้ได้รับใบอนุญาตภายใต้ใบอนุญาตสาธารณะ Mozilla 2.0 ดูไฟล์ใบอนุญาตสำหรับรายละเอียด
ขอขอบคุณเป็นพิเศษกับทีมพัฒนา Capstone สำหรับการสร้างและบำรุงรักษากรอบการถอดประกอบ Capstone