我有四個功能一個DLL文件,我需要訪問四種功能,但他們沒有名字,只是入口點我知道。我必須弄清楚這四個功能的作用。 問題是,我如何在C#(.Net)中調用這些未知函數?我怎麼知道他們的參數和返回值是什麼? 該DLL是Sndvolsso.DLL
。它的功能在互聯網上無處可用(除非你能找到它們)如果有人知道我可以用來讀取參數和返回值的工具,那將是非常有用的。閱讀的Dll參數
Q
閱讀的Dll參數
0
A
回答
2
如果你的DLL是unmanged: -
使用IDA
- 拆卸DLL和發現導出的函數。
- 雙擊該函數並將其聲明顯示在IDA中。
在IDA user32.dll中的MessageBoxA的例子: -
.text:77D6EA11
.text:77D6EA11 ; int __stdcall MessageBoxA(HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType)
.text:77D6EA11
+0
那麼如何將其導出到C#?我的看起來比你的例子更令人困惑 –
0
參數/類型/簽名信息不會存儲在非託管的DLL文件。您可以使用LoadLibrary
和GetProcAddress
並使用序號來獲取每個導出函數的地址。但你得到的只是地址;你應該知道如何正確調用這些函數。
這將有助於你理解函數在二進制/機器代碼級別以及如何棧作品是如何工作的。
這裏是你的選擇:
- 正如你所說的,找到喜歡上網的外部源的信息。
- 如果你能找到PDB文件,這是調試信息文件,它是如何調試懂得位置在內存中的代碼行關聯起來。它將包含您要查找的所有元數據。但在你的情況下,我認爲你不能訪問這個。
- 如果您對彙編和理解二進制級別的可執行代碼感到滿意,請反彙編或調試DLL。看看它的期待,它如何使用堆棧。
否則,你將不得不妥協:
- 使用不同的庫。最實用,因爲說實話,如果你不知道什麼約這個
sndvolsso.dll
,那麼,即使你得到它的「工作」,你將失去一次出現的任何問題。 - 僱用可以做到這一點的人。
- 只需編寫自己的代碼,而不是使用此代碼。
但細想起來,你的問題並沒有真正意義。如果你不知道這些功能是什麼,你怎麼知道你需要它們?
+0
這是在操作系統級別控制聲音的DLL,以我的理解。我需要使用這個文件,因爲我試圖製作一個自定義的Windows shell。那謝謝啦。 –
2
您還可以使用的IDA 5.0免費版本。
相關問題
- 1. 閱讀參數
- 2. 閱讀參數url
- 3. Sinatra的閱讀參數
- 4. DynamSoft條碼閱讀器Dll
- 5. 閱讀參數,如在ASP.NET
- 6. ASP.NET - 閱讀MapPageRoute參數
- 7. 閱讀命令行參數
- 8. 閱讀參數Oracle Forms 10gR2
- 9. 如何閱讀Jenkins參數?
- 10. 閱讀路由參數angular2
- 11. Python系統參數閱讀'&'
- 12. 如何閱讀SendReplyToReceive參數
- 13. 從ARG /參數閱讀TASM
- 14. MSBuild任務閱讀DLL的版本
- 15. 如何閱讀新的XStreamConverter參數?
- 16. 閱讀Grails的配置參數
- 17. 閱讀的Perl CGI參數(輸入)
- 18. 如何閱讀傳遞的參數
- 19. Symfony2的閱讀路徑參數
- 20. 閱讀屏幕上輸入的參數
- 21. 請參閱WPF中的另一個DLL裏面的DLL
- 22. 閱讀Sqlite文件與「輕」DLL
- 23. 閱讀Cordova文件傳輸參數
- 24. 閱讀未知參數json javascript
- 25. 閱讀url參數到第二頁
- 26. 閱讀querystring與jQuery參數返回null
- 27. 隱藏URL參數和閱讀
- 28. 閱讀修建從NDK代碼參數
- 29. Haskell:閱讀多個命令行參數
- 30. execvp和閱讀命令參數
你想做什麼?爲什麼使用該特定的DLL? –
這應該是在操作系統級別控制聲音的DLL,以我的理解。我需要使用這個文件,因爲我試圖做一個自定義的Windows shell –