Beaenginedelphi adalah pengikatan pascal Delphi dan gratis untuk Beaengine. Ini mendukung Beaengine dan menyediakan API jenis-aman yang ramah dan sederhana yang sangat mudah dipelajari dan cepat dipelajari.
Beaengine adalah perpustakaan C yang dirancang untuk memecahkan kode instruksi dari 16 bit, 32 bit dan 64 bit arsitektur intel. It includes standard instructions set and instructions set from FPU, MMX, SSE, SSE2, SSE3, SSSE3, SSE4.1, SSE4.2, VMX, CLMUL, AES, MPX, AVX, AVX2, AVX512 (VEX & EVEX prefixes), CET, BMI1, BMI2, SGX, UINTR, KL, TDX and AMX extensions. Jika Anda ingin menganalisis kode berbahaya dan lebih umum kode yang dikaburkan, Beaengine mengirimkan kembali struktur kompleks yang menggambarkan dengan tepat instruksi yang dianalisis.
Untuk menginstal Beaenginedelphi Binding, ikuti langkah -langkah ini:
Klon Repositori:
git clone https://github.com/delphilite/BeaEngineDelphi.gitTambahkan Direktori Sumber Beaenginedelphi ke proyek pencarian proyek atau IDE.
Beaenginedelphi 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 catatan pembungkus TDisasm di BeaEngineDelphi.pas . Contoh di bawah tidak lengkap, tetapi mungkin memberi Anda kesan bagaimana menggunakannya.
uses
SysUtils, BeaEngineDelphi;
procedure DisAsmFunctionCode ( const AFunc: Pointer);
var
aDisasm: TDisasm;
nLen: LongWord;
pData: PByte;
B, S: string;
begin
FillChar(aDisasm, SizeOf(TDISASM), 0 );
aDisasm.EIP := UIntPtr(AFunc);
{ $IFDEF CPUX64 }
aDisasm.Archi := ARCHI_X64;
{ $ELSE }
aDisasm.Archi := ARCHI_X32;
{ $ENDIF }
aDisasm.Options := NoTabulation + MasmSyntax;
pData := PByte(AFunc);
repeat
nLen := Disasm(aDisasm);
B := BufferToHex(pData, nLen);
S := Format( ' %.8x %-16s %s ' , [aDisasm.EIP, B, aDisasm.CompleteInstr]);
Writeln(S);
aDisasm.EIP := aDisasm.EIP + nLen;
Inc(pData, nLen);
until (aDisasm.Instruction.Opcode = OPCODE_RET) or (nLen <= 0 );
end ;
begin
try
WriteLn( ' BeaEngine: ' , BeaEngineVersionInfo, ' , DisAsm ExpandFileNameCase ... ' );
WriteLn( ' ' );
DisAsmFunctionCode(@SysUtils.ExpandFileNameCase);
WriteLn( ' ' );
WriteLn( ' Done. ' );
except
on E: Exception do
WriteLn( ' Error Decompiler: ' , E.Message);
end ;
ReadLn;
end .Untuk contoh lebih lanjut berdasarkan API tingkat rendah, lihat kasus uji di bawah direktori demo.
Untuk informasi yang lebih rinci, lihat dokumentasi Beaengine.
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 Beaengine karena telah menciptakan dan memelihara Beaengine.