Capstonedelphi adalah pengikatan Pascal Delphi dan gratis untuk Perpustakaan Disassembler Capstone. Ini mendukung Capstone 5 dan menyediakan API yang ramah dan sederhana yang sangat mudah dipelajari dan cepat dipelajari dan cepat diambil.
Capstone adalah kerangka kerja pembongkaran dengan target menjadi mesin Disasm Utama untuk analisis biner dan membalikkan di komunitas keamanan.
Untuk memasang ikatan capstonedelphi, ikuti langkah -langkah ini:
Klon Repositori:
git clone https://github.com/delphilite/CapstoneDelphi.gitTambahkan Direktori Sumber Capstonedelphi ke jalur pencarian proyek atau IDE.
Pastikan Anda memiliki perpustakaan Capstone 5 yang diinstal pada sistem Anda. Anda dapat memperbarui Capstone Precompiled 5.0.1 Perpustakaan Biner dari PYPI, Anaconda, Archlinuxarm, dll.
Capstonedelphi sekarang harus terdaftar di Delphinus Package Manager.
Pastikan untuk memulai kembali Delphi setelah menginstal melalui Delphinus jika tidak unit tidak dapat ditemukan di proyek pengujian Anda.
Termasuk adalah kelas pembungkus TCapstone di Capstone.pas . Contoh di bawah tidak lengkap, tetapi mungkin memberi Anda kesan bagaimana menggunakannya.
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 .Untuk lebih banyak contoh berdasarkan API tingkat rendah, lihat kasus uji di bawah direktori tes.
Untuk informasi yang lebih rinci, lihat dokumentasi batu penjuru.
Kontribusi dipersilakan! Harap bayar repositori ini dan kirimkan permintaan tarik dengan perbaikan Anda.
Proyek ini dilisensikan di bawah Lisensi Publik Mozilla 2.0. Lihat file lisensi untuk detailnya.
Terima kasih khusus kepada tim pengembangan batu penjuru karena telah menciptakan dan mempertahankan kerangka pembongkaran batu penjuru.