首页
社区
课程
招聘
程序调用外部的exe中某个函数,该函数依赖其他库,运行时报错

大概情况是这样的。我需要用到某个程序的某个函数。这个函数在EXE中,我程序里很直接的用了LoadLibraryW,和加载dll一样的方法来加载exe程序。结果调用这个入口的时候崩溃了。
上面那个是现象,我现在大概的解决思路是两个:
1.其实有点怀疑是调用外部库的原因,我看了exe底下的文件只有dll,应该是动态调用的,但我搜索了一下exe中并没有LoadLibraryW这几个dll,我有点怀疑是静态加载了这些的dll。那我应该有什么方法可以让exe加载lib呢?
2.子进程启动一个这个exe(状态可能会比我直接加载会正确),然后附加这个进程去调用这个函数,不知道能不能这么骚操作。可以提点一下这种操作方式叫做什么?
本人小白,很多东西不知道对不对,请各位大神们指点一下。

收藏
1条回答
0346954 2021-6-28 2021-6-28编辑
  1. 怀疑exe静态加载了dll 可以验证一下,vs带的工具叫 dumpbin.exe,使用everything搜索电脑中是否有这个工具(也可以网上下载depends on工具),然后在cmd下输入 dumpbin /imports xxx.exe 即可输出这个exe静态调用了哪些dll中的什么函数
    2.这个思路是可行的,使用子进程的方式启动这个exe,然后调用exe中的某一个函数(需要知道这个函数在进程内存空间的地址),这种方式叫做注入,最简单的有远线程注入,调用API CreateRemoteThread等函数。
回复