Skip to content

Commit ff89044

Browse files
authored
Merge pull request #814 from DK99/dev
fix lstrcmpiW/lstrscmpiA and add lstrcmpW/lstrscmpA
2 parents 902e01b + 295e387 commit ff89044

File tree

1 file changed

+27
-3
lines changed

1 file changed

+27
-3
lines changed

qiling/os/windows/dlls/kernel32/winbase.py

Lines changed: 27 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,9 +250,8 @@ def hook_lstrlenW(ql: Qiling, address: int, params):
250250
# );
251251
@winsdkapi(cc=STDCALL, dllname=dllname)
252252
def hook_lstrcmpiW(ql, address, params):
253-
# Copy String2 into String
254-
str1 = params["lpString1"]
255-
str2 = params["lpString2"]
253+
str1 = params["lpString1"].lower()
254+
str2 = params["lpString2"].lower()
256255
if str1 == str2:
257256
return 0
258257
elif str1 > str2:
@@ -270,6 +269,31 @@ def hook_lstrcmpiA(ql, address, params):
270269
return hook_lstrcmpiW.__wrapped__(ql, address, params)
271270

272271

272+
# int lstrcmpW(
273+
# LPCWSTR lpString1,
274+
# LPCWSTR lpString2
275+
# );
276+
@winsdkapi(cc=STDCALL, dllname=dllname)
277+
def hook_lstrcmpW(ql, address, params):
278+
str1 = params["lpString1"]
279+
str2 = params["lpString2"]
280+
if str1 == str2:
281+
return 0
282+
elif str1 > str2:
283+
return 1
284+
else:
285+
return -1
286+
287+
288+
# int lstrcmpA(
289+
# LPCSTR lpString1,
290+
# LPCSTR lpString2
291+
# );
292+
@winsdkapi(cc=STDCALL, dllname=dllname)
293+
def hook_lstrcmpA(ql, address, params):
294+
return hook_lstrcmpW.__wrapped__(ql, address, params)
295+
296+
273297
# HRSRC FindResourceA(
274298
# HMODULE hModule,
275299
# LPCSTR lpName,

0 commit comments

Comments
 (0)