调用DLL后,主程序可以退出,进程管理器中显示的进程名为*.dll,请问怎么实现呢?

时间:2022-09-29 13:14:06
主程序exe调用DLL文件,DLL中包含所有窗体,方法。exe把dll调用之后,exe退出,dll继续运行。任务管理器中显示的进程名是*.dll,而不是主程序*.exe,这种方法,我觉得适合更新频繁的程序。
    以前见过“简单霸主外挂”就用的这种方法,执行主程序后,进程管理器中查看显示的是*.bak。

这种模式怎么实现的呢?

21 个解决方案

#1


Up

#2


顶啊顶啊。这个问题有点难啊

#3


DLL注入进程(exe)后修改了进程(exe)的PE表.

#4


用CreateProcess来创建运行它吧.

#5


接分快乐

:) ...
学习也快乐哈

#6


更新频繁的程序?自己写更新模块很困难么?

#7


Juchiyufei :

CreateProcess 怎么去执行dll文件呢? 请问应该怎么做。

yjgx007 :
   DLL注入进程(exe)后修改了进程(exe)的PE表.
   程序执行的顺序是exe启动,然后再去启动一个dll,exe再退出,dll继续运行。在windows任务管理器上显示的进程名是*.dll。
   你说的dll注入,是不是不合适呢?
jiangshe:
   我想问的是这种方式怎么实现,其实要应用到哪个方面,那都是后话了,并不重要,我说的更新程序,这是一个例子。

   我只是觉得在windows任务管理器上显示的进程名是*.dll,这个很新奇,想搞清楚是怎么做的。
 

#8


楼主开玩笑了
DLL只能加载到进程里(exe)运行,自己是不可能运行的
所以不可能留在进程管理器中

#9


问专家上有这样的回答:http://www.china-askpro.com/msg50/qa34.shtml

操作系统:Win9x/Win2k/Win2003.NET 
    编程工具:VB 6.0 
    问题:我遇到过这样一个程序,我不知道是怎么做的。描述如下: 
    这个程序有两个文件.一个是.EXE文件,另外一个是扩展名为.WYN的文件.执行这个.exe文件之后,在XP的进程管理器中显示的却是那个.WYN文件,而那个.exe文件却没有显示.似乎是.exe文件加载了.wyn后就中断了.而实际的操作是由.wyn文件完成的.我在进程管理器里面"结束进程",却没有效果.只有选择"结束任务"才能退出。 
    我将.wyn文件改名为.exe 文件执行,却不可以.请问这是怎么回事?? 
    水平: 中级(无声狂啸)  
    
     .WYN文件其实是个dll文件,作为一个dll文件只需要导出一个函数,函数中可以进行创建窗口等任何动作,需要注意的是"模块状态的切换",在vc中可以使用宏AFX_MANAGE_STATE(AfxGetStaticModuleState())自动管理,然后父进程只需要执行该导出函数后就可以撒手退出了。 
 

#10


AFX_MANAGE_STATE(AfxGetStaticModuleState())只是状态切换啊。

能实现我说的功能吗?我试了一下,好像不行呢。

#11


gz

#12


gz

#13


ding

#14


我来学习!

#15


该DLL很有可能是一个钩子。。或者类似的东东。

#16


而且有应该是全局的钩子哦。

#17


再等等。应该会有人知道了吧!

#18


d

#19


需要注意的是:

在windows进程中,显示的名字是:
abc.bak
而正常的进程应该是abc.exe

如果说abc.bak 就是 abc.exe直接改后缀exe为bak.
那么把abc.bak名字还原为abc.exe时,双击运行,又不能执行。

#20


DLL注入进程(exe)后修改了进程(exe)的PE

#21


该回复被版主删除

#1


Up

#2


顶啊顶啊。这个问题有点难啊

#3


DLL注入进程(exe)后修改了进程(exe)的PE表.

#4


用CreateProcess来创建运行它吧.

#5


接分快乐

:) ...
学习也快乐哈

#6


更新频繁的程序?自己写更新模块很困难么?

#7


Juchiyufei :

CreateProcess 怎么去执行dll文件呢? 请问应该怎么做。

yjgx007 :
   DLL注入进程(exe)后修改了进程(exe)的PE表.
   程序执行的顺序是exe启动,然后再去启动一个dll,exe再退出,dll继续运行。在windows任务管理器上显示的进程名是*.dll。
   你说的dll注入,是不是不合适呢?
jiangshe:
   我想问的是这种方式怎么实现,其实要应用到哪个方面,那都是后话了,并不重要,我说的更新程序,这是一个例子。

   我只是觉得在windows任务管理器上显示的进程名是*.dll,这个很新奇,想搞清楚是怎么做的。
 

#8


楼主开玩笑了
DLL只能加载到进程里(exe)运行,自己是不可能运行的
所以不可能留在进程管理器中

#9


问专家上有这样的回答:http://www.china-askpro.com/msg50/qa34.shtml

操作系统:Win9x/Win2k/Win2003.NET 
    编程工具:VB 6.0 
    问题:我遇到过这样一个程序,我不知道是怎么做的。描述如下: 
    这个程序有两个文件.一个是.EXE文件,另外一个是扩展名为.WYN的文件.执行这个.exe文件之后,在XP的进程管理器中显示的却是那个.WYN文件,而那个.exe文件却没有显示.似乎是.exe文件加载了.wyn后就中断了.而实际的操作是由.wyn文件完成的.我在进程管理器里面"结束进程",却没有效果.只有选择"结束任务"才能退出。 
    我将.wyn文件改名为.exe 文件执行,却不可以.请问这是怎么回事?? 
    水平: 中级(无声狂啸)  
    
     .WYN文件其实是个dll文件,作为一个dll文件只需要导出一个函数,函数中可以进行创建窗口等任何动作,需要注意的是"模块状态的切换",在vc中可以使用宏AFX_MANAGE_STATE(AfxGetStaticModuleState())自动管理,然后父进程只需要执行该导出函数后就可以撒手退出了。 
 

#10


AFX_MANAGE_STATE(AfxGetStaticModuleState())只是状态切换啊。

能实现我说的功能吗?我试了一下,好像不行呢。

#11


gz

#12


gz

#13


ding

#14


我来学习!

#15


该DLL很有可能是一个钩子。。或者类似的东东。

#16


而且有应该是全局的钩子哦。

#17


再等等。应该会有人知道了吧!

#18


d

#19


需要注意的是:

在windows进程中,显示的名字是:
abc.bak
而正常的进程应该是abc.exe

如果说abc.bak 就是 abc.exe直接改后缀exe为bak.
那么把abc.bak名字还原为abc.exe时,双击运行,又不能执行。

#20


DLL注入进程(exe)后修改了进程(exe)的PE

#21


该回复被版主删除