From d4573641976dd1042088d66c80622ea9429dde88 Mon Sep 17 00:00:00 2001 From: Bryan Roe Date: Mon, 8 Apr 2019 15:41:41 -0700 Subject: [PATCH] Updated, so getService() on Windows will show owning user --- modules/service-manager.js | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/modules/service-manager.js b/modules/service-manager.js index 3ca6207..1550c64 100644 --- a/modules/service-manager.js +++ b/modules/service-manager.js @@ -100,6 +100,7 @@ function serviceManager() this.proxy.CreateMethod('EnumServicesStatusExA'); this.proxy.CreateMethod('OpenServiceA'); this.proxy.CreateMethod('QueryServiceStatusEx'); + this.proxy.CreateMethod('QueryServiceConfigA'); this.proxy.CreateMethod('QueryServiceConfig2A'); this.proxy.CreateMethod('ControlService'); this.proxy.CreateMethod('StartServiceA'); @@ -253,6 +254,19 @@ function serviceManager() } } + var query_service_configa_DWORD = this.GM.CreateVariable(4); + this.proxy.QueryServiceConfigA(h, 0, 0, query_service_configa_DWORD); + if (query_service_configa_DWORD.toBuffer().readUInt32LE() > 0) + { + var query_service_configa = this.GM.CreateVariable(query_service_configa_DWORD.toBuffer().readUInt32LE()); + if(this.proxy.QueryServiceConfigA(h, query_service_configa, query_service_configa._size, query_service_configa_DWORD).Val != 0) + { + var val = query_service_configa.Deref(this.GM.PointerSize == 4 ? 28 : 48, this.GM.PointerSize).Deref().String; + Object.defineProperty(retVal, 'user', { value: val }); + } + } + + var failureactions = this.GM.CreateVariable(8192); var bneeded = this.GM.CreateVariable(4); if (this.proxy.QueryServiceConfig2A(h, 2, failureactions, 8192, bneeded).Val != 0)