如果我通过注入DLL的方式注入了一个exe,如何判断这个exe运行的是个服务,还是普通exe

koji004 2013-08-19 10:48:19
自己写了个程序注入到服务程序,有个问题,服务程序既可以注册成一个服务运行,也可以双击运行。我希望注入后能判断这个服务程序是以一个服务在运行还是以普通exe在运行,不同的状态有不同的功能,请问如何判断是最好的方法。

自己有两个方法:
方法一:根据运行的用户名来判断,一般服务是运行在SYSTEM帐号下,而双击运行的话是运行在当前登录用户下,但这样有个问题,服务是可以设置以某个帐号来运行的,所以不可行。

方法二:以session来判断,WIN7的服务都是运行在session 0上的,但XP不管是服务还是都是运行在session 0上,所以这个方法也不可行。

求高手指点。。。若能解决,另外一帖的分数也送上
http://bbs.csdn.net/topics/390553724这一帖我自己问得不好。。。。
...全文
219 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
W1nds 2013-08-21
  • 打赏
  • 举报
回复
获取当前环境变量%USERPROFILE% 服务进程指向的都是LocalService或是NetworkService 用户一般都是对应的用户名吧
青化某 2013-08-20
  • 打赏
  • 举报
回复
反汇编看看程序有没有注册服务的代码
koji004 2013-08-20
  • 打赏
  • 举报
回复
这个方法我试过了,好像在服务启动时进程ID一直取到的是0,服务到已启动状态才可以取到正确的进程ID

不过里面判断父进程的文法貌似靠谱。谢谢
fishion 2013-08-20
  • 打赏
  • 举报
回复
结合使用EnumServicesStatusEx呢? http://www.qqgb.com/Program/VC/VCJQ/Program_168205.html

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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