簡體   English   中英

從 c#.exe 中提取特征(方法、字符串等)

[英]Extract feature(methods, strings etc.) from c# .exe

我正在尋找一種以編程方式提取信息的方法,例如聲明的方法、聲明和調用的函數、字符串等,來自在 c# 中編寫的 a.exe 中的類似信息。 我考慮過獲取 AST 然后對其進行分析,我找到了一些示例,但它們指向死鏈接。 我嘗試使用 .NET 的反射,但無法達到我需要的效果。 有什么建議嗎?

例子:

輸入:helloWorld.exe

output:

  • 字符串:“你好,世界!”
  • 聲明 function: PrintHelloWorld
  • 稱為 function:PrintHelloWorld,Console.WriteLine

或類似的東西。

您可以使用ICSharpCode.Decompiler庫來反編譯您需要的方法。

這里有一個例子:

var assemblyPath = @"MyPath\Demo.ConsoleApp.dll";
var decompiler = new CSharpDecompiler(assemblyPath, new DecompilerSettings());
var name = new FullTypeName("Demo.ConsoleApp.Foo");
ITypeDefinition typeInfo = decompiler.TypeSystem.MainModule.Compilation.FindType(name).GetDefinition();
var tokenOfFirstMethod = typeInfo.Methods.First().MetadataToken;
Console.WriteLine(decompiler.DecompileAsString(tokenOfFirstMethod));

這里是nuget package

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM