dll的两个问题!!!在线等!!!!!

sheik101 2008-07-28 11:23:13
1:
DLL注入的问题。就是我一个程序。打开就注入进一个程序!但是。每次打开都注入一次。而我和程序又有可能连着打开很多次。因为是用的循环一直监视一些窗体。
会造成占用cpu PF非常高甚至X机。要怎么检测只注入一次,就是如果已经注入过了就不再注入了。。。!

2: DLL注入后。1分钟检测一次某个窗体不存在的话就关闭自身DLL。要怎么结束自身的注入退出呢。

希望给具体代码!!!小弟在此先谢过拉。
...全文
91 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
coffeemay 2008-07-31
  • 打赏
  • 举报
回复
1:
DLL注入的问题。就是我一个程序。打开就注入进一个程序!但是。每次打开都注入一次。而我和程序又有可能连着打开很多次。因为是用的循环一直监视一些窗体。
会造成占用cpu PF非常高甚至X机。要怎么检测只注入一次,就是如果已经注入过了就不再注入了。。。!

创建互斥体比如CreateMutex、CreateSimphone.... 判断互斥体是否已经存在,如果允许宿主程序开多个实例那么可以在互斥体的名称包含进程ID来区分

2: DLL注入后。1分钟检测一次某个窗体不存在的话就关闭自身DLL。要怎么结束自身的注入退出呢。

希望给具体代码!!!小弟在此先谢过拉。
最简单的方法还是用汇编写
push 0
push esp
push 0
push 0
call getmodulehandle
push eax
push Freelibrary
push 4
push 0
push createthread
ret

在delphi里还是要对getmodulehandle Freelibrary createthread 地址处理一下(分别用GetProcAddress取真实地址,delphi call Api利用jmp call方式,并非真实api地址)。。。。。
swayi21 2008-07-31
  • 打赏
  • 举报
回复
用COM
Alex-16888 2008-07-31
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 xjjrocker 的回复:]
注入前进行唯一性判断哦。
有个思路就是,类似应用程序只能打开一个实例的处理方法。
[/Quote]
同意
xjjrocker 2008-07-30
  • 打赏
  • 举报
回复
注入前进行唯一性判断哦。
有个思路就是,类似应用程序只能打开一个实例的处理方法。
amdwinter 2008-07-29
  • 打赏
  • 举报
回复
关注too
opqhjb_2002 2008-07-29
  • 打赏
  • 举报
回复
关注一下。

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧