CapstoneDelphi
Version 5.0.1
Capstonedelphi是Capstone拆卸器庫的Delphi且免費的Pascal綁定。它支持Capstone 5,並提供了一種友好而簡單的類型安全性API,該API非常容易學習,並且很快就可以拿起。
Capstone是一個拆卸框架,其目標是成為安全界二進制分析和逆轉的最終障礙引擎。
要安裝Capstonedelphi綁定,請按照以下步驟:
克隆存儲庫:
git clone https://github.com/delphilite/CapstoneDelphi.git將Capstonedelphi source目錄添加到項目或IDE的搜索路徑中。
確保系統上安裝了Capstone 5庫。您可以從PYPI,Anaconda,Archlinuxarm等更新預編譯的Capstone 5.0.1二進制庫。
現在,應在Delphinus軟件包管理器中列出Capstonedelphi。
通過Delphinus安裝後,請確保重新啟動Delphi,否則在您的測試項目中可能找不到單元。
其中包括Capstone.pas中的包裝紙類TCapstone 。示例Bellow是不完整的,但它可能會給您留下深刻的印象。
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 Development Team創建和維護Capstone拆卸框架。