首頁>Club>
6
回覆列表
  • 1 # 蠻夷豈敢犯邊

    檢視dll函式介面的方法,都有統一的方法,就是使用dependen工具,但是,這個工具看不了函式的引數,那麼,這時候有什麼方法,方法有二:一個使用逆向的方法,如使用IDA,二是利用vs的提示功能,一般情況下,只有一個DLL檔案,我們無法知道dll中函式的引數,透過DLL檢視工具也只可以知道DLL中函式的名字,如 Dependency。

    一般可以透過如下方式:

    #define DllImport __declspec( dllimport )

    #define DllExport __declspec( dllexport )

    或者

    #define DllImport extern "C" __declspec( dllimport )

    #define DllExport extern "C" __declspec( dllexport )

    DllExport void func();

    DllExport int i = 10;

    DllExport int j;

    DllExport int n;

    匯入匯出dll中的函式,但是匯入的時候,需要知道函式原型(返回值+函式名+引數型別);

    檢視動態連結庫中函式引數型別的方法,方法如下:

    1:指定一個動態連結庫檔案:如:dllproj.dll。

    2:VC建立除錯工程,動態方式呼叫 dllproj.dll ;透過Dependency指定想要檢視的函式;

    如:

    3:透過除錯進入斷點,檢視dllFunction指標,就可以看到函式名和函式引數型別;

    (注:暫時還無法檢視返回值型別,如有哪位明知道,可以補充一下

    );

    如:

    今天又發現一個更簡單的方法:

    當前目錄的任意dll中的函式都可以;

    CD /D %~dp0undname -f ?getnglabal@@YAHXZ

    pause。

  • 中秋節和大豐收的關聯?
  • 怎麼判斷自挖井的水質?