Skip to content

Commit b9eb7fb

Browse files
authored
Merge pull request #158 from fireeye/minor-improvements
minor improvements
2 parents 04dbe7d + 302edfe commit b9eb7fb

File tree

2 files changed

+17
-2
lines changed

2 files changed

+17
-2
lines changed

speakeasy/winenv/api/usermode/advapi32.py

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1297,3 +1297,18 @@ def EnumServicesStatus(self, emu, argv, ctx={}):
12971297

12981298
# TODO: Populate service status output
12991299
return 1
1300+
1301+
@apihook('OpenService', argc=3, conv=_arch.CALL_CONV_STDCALL)
1302+
def OpenService(self, emu, argv, ctx={}):
1303+
'''
1304+
SC_HANDLE OpenServiceA(
1305+
SC_HANDLE hSCManager,
1306+
LPCSTR lpServiceName,
1307+
DWORD dwDesiredAccess
1308+
);
1309+
'''
1310+
hSCManager, lpServiceName, dwDesiredAccess = argv
1311+
cw = self.get_char_width(ctx)
1312+
svcname = self.read_mem_string(lpServiceName, cw)
1313+
argv[1] = svcname
1314+
return self.get_handle()

speakeasy/winenv/api/usermode/kernel32.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -451,7 +451,7 @@ def Process32First(self, emu, argv, ctx={}):
451451
data = self.mem_cast(pe, pe32)
452452
pe.th32ProcessID = proc.get_pid()
453453
if cw == 2:
454-
pe.szExeFile = proc.image.encode('utf-16le') + b'\x00'
454+
pe.szExeFile = proc.image.encode('utf-16le') + b'\x00\x00'
455455
else:
456456
pe.szExeFile = proc.image.encode('utf-8') + b'\x00'
457457

@@ -490,7 +490,7 @@ def Process32Next(self, emu, argv, ctx={}):
490490
data = self.mem_cast(pe, pe32)
491491
pe.th32ProcessID = proc.get_pid()
492492
if cw == 2:
493-
pe.szExeFile = proc.image.encode('utf-16le') + b'\x00'
493+
pe.szExeFile = proc.image.encode('utf-16le') + b'\x00\x00'
494494
else:
495495
pe.szExeFile = proc.image.encode('utf-8') + b'\x00'
496496

0 commit comments

Comments
 (0)