首頁
社區(qū)
課程
招聘
程序調用外部的exe中某個函數,該函數依賴其他庫,運行時報錯

大概情況是這樣的。我需要用到某個程序的某個函數。這個函數在EXE中,我程序里很直接的用了LoadLibraryW,和加載dll一樣的方法來加載exe程序。結果調用這個入口的時候崩潰了。
上面那個是現象,我現在大概的解決思路是兩個:
1.其實有點懷疑是調用外部庫的原因,我看了exe底下的文件只有dll,應該是動態(tài)調用的,但我搜索了一下exe中并沒有LoadLibraryW這幾個dll,我有點懷疑是靜態(tài)加載了這些的dll。那我應該有什么方法可以讓exe加載lib呢?
2.子進程啟動一個這個exe(狀態(tài)可能會比我直接加載會正確),然后附加這個進程去調用這個函數,不知道能不能這么騷操作??梢蕴狳c一下這種操作方式叫做什么?
本人小白,很多東西不知道對不對,請各位大神們指點一下。

收藏
1條回答
0346954 2021-6-28 2021-6-28編輯
  1. 懷疑exe靜態(tài)加載了dll 可以驗證一下,vs帶的工具叫 dumpbin.exe,使用everything搜索電腦中是否有這個工具(也可以網上下載depends on工具),然后在cmd下輸入 dumpbin /imports xxx.exe 即可輸出這個exe靜態(tài)調用了哪些dll中的什么函數
    2.這個思路是可行的,使用子進程的方式啟動這個exe,然后調用exe中的某一個函數(需要知道這個函數在進程內存空間的地址),這種方式叫做注入,最簡單的有遠線程注入,調用API CreateRemoteThread等函數。
回復