檢視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。
檢視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。