返回信息流同一个DLL,用DLL注入程序把它注入到其他进程中去,可以正常运行,但如果是用改注册表AppInit_DLLs的方式来注入,DLL貌似无法正常跑起来,虽然我可以用其他软件来确定这个DLL是注入进去了……
谁来解释一下这是为什么……是不是在DLL的编写上需要做些修改?
这是一条镜像帖。来源:北邮人论坛 / security / #20962同步于 2009/1/18
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Security机器人发帖
[求助]DLL注入的问题……
smilefufu
2009/1/18镜像同步12 回复
订阅后,新回复会通过你的通知中心匿名送达。
9 条回复
如何“貌似无法正常跑起来”?
【 在 smilefufu (FuFu) 的大作中提到: 】
: 同一个DLL,用DLL注入程序把它注入到其他进程中去,可以正常运行,但如果是用改注册表AppInit_DLLs的方式来注入,DLL貌似无法正常跑起来,虽然我可以用其他软件来确定这个DLL是注入进去了……
: 谁来解释一下这是为什么……是不是在DLL的编写上需要做些修改?
就是说,假如我的DLL注入到别的进程以后,它会弹一个MessageBox出来。如果是用注入工具注入的话,这个MessageBox会显示出来。但如果是用AppInit_DLLs 的方法,这个MessageBox不会出来。
另外,我用IceSword确认过了,两种方法都把DLL注入进去了的。所以结论就是“貌似无法正常跑起来”。
【 在 flyingkisser 的大作中提到: 】
: 如何“貌似无法正常跑起来”?
appinit_dlls里的dll会注入到所有的启动进程里,做这个注入首先要做的就是在dll内部选定好宿主进程,不能所有进程都插
按你这种做法,messagebox早都被干死了
你的意思是弹出来的MessageBox还会被继续注入一个DLL,然后造成无限弹MessageBox?
【 在 rebirthatsix 的大作中提到: 】
: appinit_dlls里的dll会注入到所有的启动进程里,做这个注入首先要做的就是在dll内部选定好宿主进程,不能所有进程都插
: 按你这种做法,messagebox早都被干死了
【 在 smilefufu 的大作中提到: 】
: 你的意思是弹出来的MessageBox还会被继续注入一个DLL,然后造成无限弹MessageBox?
不会,而是根本弹不出来
因为在GUI还没启动的情况下,messagebox调用是无法成功的
如果你在dll内部做进程选择,只加载一些启动顺序比较靠后的进程或者用户程序进程,那就应该可以弹,例如explorer,ie,ff等
好吧 经过和昕哥的讨论 以及baidu。。
终于似乎明白了
AppInit_Dlls里的DLL 任何需要用到USER32.DLL的进程 都会通过LOADLIBRARY加载
但是由于使用MessageBox需要先加载USER32.DLL 所以你必须保证USER32.DLL比你自己的DLL先加载才能成功
(*^__^*) 嘻嘻…… 希望答对了。。。。