[英]How can I decompile native within C#
我正在研究程序(可執行)。 我使用ILSpy反編譯程序。 在查看源代碼時,我發現了一個看起來像這樣的函數:
/ <Module>
[SuppressUnmanagedCodeSecurity]
[MethodImpl(MethodImplOptions.Unmanaged | MethodImplOptions.PreserveSig)]
internal unsafe static extern PointerObject* Function(sbyte*);
沒有執行。 我該如何拆卸?
具有extern
關鍵字的方法表示在某些外部文件中指定了該方法的實現。 您可以在MSDN Docs中閱讀有關extern
更多信息。 通常,您會看到一個DLLImportAttribute
,它將指定在其中實現該方法的程序集的名稱。
MethodImpOptions.Unmanaged
表示正在對非托管代碼(C,C ++等)進行調用,而MethodImpOptions.PreserveSig
表示所調用的方法具有完全相同的方法簽名。
除此之外,我不能告訴你太多。
由於這是一個本地調用,因此您需要一個本地反匯編程序。 有很多可供選擇的輸出水平差異很大,但是您很可能需要對x86匯編和Windows編程有很好的了解,才能從反匯編中獲得有用的信息-例如,這與反匯編的C#代碼完全不同。
本機代碼可能在單獨的DLL中,或在同一程序集中的本機模塊中-您需要檢查該extern
定義所指向的位置。
免責聲明:在您所在的地方,拆卸和/或使用通過這種方式獲得的任何知識可能是非法的; 確保您了解適用法律。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.