首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

WIN7相干输入法注入:LoadLibrary和GetProcAddress

2012-12-22 
WIN7有关输入法注入:LoadLibrary和GetProcAddress本帖最后由 gaerelva 于 2012-10-11 14:41:14 编辑前提:1

WIN7有关输入法注入:LoadLibrary和GetProcAddress
本帖最后由 gaerelva 于 2012-10-11 14:41:14 编辑 前提:
1. 我用VB做了个标准DLL test.dll(用插件,有输出函数,用Depends查看都正常)
2.在XP系统测试一切正常
3.在WIN7系统 C++做了个EXE程序LoadLibrary(test.dll)成功 GetProcAddress成功

遇到问题:
a.用C++做了个输入法DLL里面用LoadLibrary(VB DLL),LoadLibrary为空。
  getLastError:内存位置访问无效
b.使用:LoadLibraryEx("C:\\test.dll", NULL, LOAD_LIBRARY_AS_DATAFILE); //必须带路径才成功
  GetProcAddress返回为NULL,GetLastError好像是126 应该是LoadLibraryEx的问题吧。
c.我用c++做了个用来调用的test2.dll WIN7下一切正常

感觉问题出在VB 的DLL test.dll 但是用EXE程序 直接LoadLibrary和GetProcAddress都成功,
那说明这个标准DLL没有任何问题,不知道 a 的方法问题出在哪里,
用b方法GetProcAddress还返回NULL getLastError为 找不到指定的模块

请高人指点!

谢谢
[解决办法]
VB做的“标准dll”只能用VB调用。因为它需要初始化VB的虚拟机(msvbvm60),对于其它语言来说,虽然可以成功调用dll,但是因为虚拟机没有初始化,执行里面的代码必然出错。

搞这些奇技淫巧没有什么意义。
[解决办法]
最新更新:
问题和VB DLL有关系,

1. DLL里的testF() 执行Form1.Show vbModal 可以运行 但是在EXE窗口之上 ,EXE窗口不可用,还有个非常严重的问题是 不是在目标窗口注入。。是在本窗口。。

2.使用vbAdvance插件:在XP下一切正常 目标窗口正常注入
RuntimeInitialize aa
Form1.Show vbModal
但在WIN7下 程序就死了 死在RuntimeInitialize aa,我想他的左右就是让这个注入窗口不在目标窗口之上,
但是vbAdvance很早就停止更新了,有没有大牛有WIN7下的解决方案?

谢谢!
[解决办法]

引用:
前提:
1. 我用VB做了个标准DLL test.dll(用插件,有输出函数,用Depends查看都正常)
2.在XP系统测试一切正常
3.在WIN7系统 C++做了个EXE程序LoadLibrary(test.dll)成功 GetProcAddress成功

遇到问题:
a.用C++做了个输入法DLL里面用LoadLibrary(VB DLL),LoadLibrary为空。
  g……


奇技淫巧 可能对你来说没什么意义
对于我来说这是很有用的,毕竟要用好VB就要弄懂这些,请指教WIN7下如何初始化呢?

也请教其他大牛,谢谢

热点排行