社区
进程/线程/DLL
帖子详情
如何修改一个进程的映像名称?
moncat
2004-08-23 11:10:28
本人在做一个项目时,遇到一个问题,就是---如题
因为一台机器上运行多个同一程序,所以想将每个程序作一个不同的映像名称来区别,不知能否实现,请高手指点
...全文
1421
12
打赏
收藏
如何修改一个进程的映像名称?
本人在做一个项目时,遇到一个问题,就是---如题 因为一台机器上运行多个同一程序,所以想将每个程序作一个不同的映像名称来区别,不知能否实现,请高手指点
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
12 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
tabris17
2004-10-27
打赏
举报
回复
那只有修改EPROCESS了,就是麻烦了一点,先要进ring0啊
nwpulipeng
2004-10-03
打赏
举报
回复
呵呵,帮顶混分
moncat
2004-10-02
打赏
举报
回复
to tabris17(四不象) :
看不明白啊,那具体我应该怎么修改映像名称呢?才能使任务管理那里显示修改后的名称?
tabris17
2004-08-25
打赏
举报
回复
还有,改文件名的话是不可行的
见下面的描述:
Q:
windows下创建进程有一个奇怪的现象,如果有个process1.exe文件,我运行它,在“任务管理器”里就可以看到process1.exe,然后结束进程,该process1.exe的文件名为“process2.exe”,再次运行,会发现在“任务管理器”里显示的名字仍是process1.exe,我称它为“残象”。
个人猜测是进程结束后,系统并没有销毁该进程的EPROCESS结构,而是残留在系统中,再次运行该程序时又使用了旧的EPROCESS结构
A:
这与EPROCESS没关系,你中途运行其他程序后再运行改名的exe,虽然EPROCESS
不同,但文件名仍一样。它会重新填充。但填充受已经读入的文件映像缓存影响。
若你改名后将exe文件用hex编辑器打开,随便写点完全一样的内容,保存,缓存刷新,
重运行你就可以看到变化了。
tabris17
2004-08-25
打赏
举报
回复
进程的映像名称是存放在EPROCESS结构中的
EPROCESSS结构在kernel memory,用户模式下不能随意访问
但是可以修改进程的PEB结构中的LoaderData结构指向的InLoadOrderModuleList来修改进程EXE模块的Module Filename
你可以参考下面的文章<<通过 PEB 改变进程名,实现“穿透”防火墙>>
http://20cn.net/~tabris17/article/p025.html
UDX协议
2004-08-24
打赏
举报
回复
简单的方法是,做个小程序,改名为exe1,exe2,...exe100.然后分别启动。
DentistryDoctor
2004-08-24
打赏
举报
回复
映像名称不是那么容易更改的,否则所有用WINDOWS的人都得骂娘了。
可以在程序中创建具名内核对象进行区别。
moncat
2004-08-24
打赏
举报
回复
因为我的程序是通过快捷方式启动的,启动时都有一个唯一的参数,如果要重命名再运行就麻烦很多了,听说什么DDK中关于rootkey的什么进程链可以做到,有哪位高手知道,救救我啊。。。
oyljerry
2004-08-24
打赏
举报
回复
用互斥判断是否重名,然后更改名字,用ShellExecute()启动
kugou123
2004-08-24
打赏
举报
回复
可以用CreateMutex建立一个互斥量,然后用GetLastError进行判断,如果返回ERROR_ALREADY_EXISTS,则表面该程序已经在运行了。然后可以调用CopyFile("a.exe","a1.exe",FALSE);如果原来名字为a.exe,则建立一个叫a1.exe的程序,和以前一样,再CreateProcess运行它。
holyeagle
2004-08-24
打赏
举报
回复
也可以如楼上说,在程序起来的时候,通过进程名先判断是否有相同的程序开启,如果有,复制一个新的程序,用shellexe开启,然后自己退出。
holyeagle
2004-08-24
打赏
举报
回复
可能和EProcess有关,查查这方面的资料
获取Windows
进程
:VC++
进程
管理器
本例将学习Windows系统
进程
管理器的开发,获取Windows
进程
:VC++
进程
管理器,通过设置List控件的表格扩展属性,可以显示
进程
映像
名称
、
进程
开启的线程数、PID、优先级;当用户拖动程序最小化窗口时,获得某一时刻系统的
进程
、堆(heap)、模块(module)或线程的快照信息,获得系统
进程
链表中第
一个
进程
的信息,把代表
进程
的ID号,存入数组中,便于中止,获得系统
进程
链表中下
一个
进程
的信息,获得
进程
的可执行文件的文件名,先获得该
进程
句柄,通过
进程
标识,利用数组ID指定的获得存在的
一个
进程
的句柄,中止
进程
,刷新
进程
……
获取系统
进程
可以获取计算机系统的
进程
映像
名,
进程
ID,CPU占用时间,启用内存等等
pid:Windows命令行,用于按ID和
映像
名称
列出和查找
进程
进程
号 用于按 ID 或
映像
名称
列出和查找
进程
的 Windows 命令行。 使用或更高版本构建。 用法 pid - 列出所有
进程
和各自的
进程
ID。 pid
- 列出所有图像
名称
匹配或包含
进程
。 不区分大小写。 pid
- 显示具有给定 ID 的
进程
(如果找到)。 在下。
最好用的任务管理器 可查看
映像
路径
用windows系统的朋友都遇到过这种情况,删除
一个
文件的时候总提示文件正在被使用,可是往往不知道到底是哪里在占用着,看任务管理器吧,也看不出个所以然来,因为windows xp下的任务管理器是不可以看
进程
的
映像
路径的。我之前为在
进程
里可查看
映像
路径在网上找了半天。但是网上down的一些绝大部分都是有木马的,还有的是取代了windows xp自带的任务管理器,功能也不是很理想。后来我自己整合出了
一个
windows xp 下的任务管理器出来。很简单,用winrar做了
一个
自动安装包,这个包会自动释放四个文件到系统目录下。360会报毒,但是文件本身是无毒的。请放心使用。安装之后任务管理器在
进程
状态栏下,点击 查看 >>> 选择列 ,会发现多了两个选项。
一个
是
映像
路径,
一个
是命令行。
映像
路径可以看当前
进程
使用的本机哪个文件,还可以右键选择打开所在文件夹,蛮好用的。
易语言取
进程
映像
路径及命令行参数
易语言取
进程
映像
路径及命令行参数系统结构:OpenProcess,Close,SetHandle,GetSaveHandle,GetProcessImagePathAndCommandLine,OpenProcess_API,CloseHandle,GetModuleHandleA,GetProcAddress,CreateRemoteThread,GetExitCodeThread,WaitFo
进程/线程/DLL
15,471
社区成员
49,181
社区内容
发帖
与我相关
我的任务
进程/线程/DLL
VC/MFC 进程/线程/DLL
复制链接
扫一扫
分享
社区描述
VC/MFC 进程/线程/DLL
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章