about summary refs log tree commit diff stats
diff options
context:
space:
mode:
authorVladislav HrĨka <41523109+nofiv@users.noreply.github.com>2019-02-12 16:11:10 +0100
committerCamille Mougey <commial@gmail.com>2019-02-12 16:11:10 +0100
commit96fb382668783075568962c13495368e31ba9514 (patch)
tree6730d43fc6e8f319bb966bd3491001e0b1a350cf
parent1f884d4e08eef12207b66ab1b3baebac016afe68 (diff)
downloadmiasm-96fb382668783075568962c13495368e31ba9514.tar.gz
miasm-96fb382668783075568962c13495368e31ba9514.zip
lstrcat fix (#968)
my_lstrcat couldn't process unicode strings before
Diffstat (limited to '')
-rw-r--r--miasm2/os_dep/win_api_x86_32.py8
1 files changed, 4 insertions, 4 deletions
diff --git a/miasm2/os_dep/win_api_x86_32.py b/miasm2/os_dep/win_api_x86_32.py
index 5d6e4765..df679074 100644
--- a/miasm2/os_dep/win_api_x86_32.py
+++ b/miasm2/os_dep/win_api_x86_32.py
@@ -1490,20 +1490,20 @@ def kernel32_lstrlen(jitter):
     my_strlen(jitter, whoami(), jitter.get_str_ansi, len)
 
 
-def my_lstrcat(jitter, funcname, get_str):
+def my_lstrcat(jitter, funcname, get_str, set_str):
     ret_ad, args = jitter.func_args_stdcall(['ptr_str1', 'ptr_str2'])
     s1 = get_str(args.ptr_str1)
     s2 = get_str(args.ptr_str2)
-    jitter.vm.set_mem(args.ptr_str1, s1 + s2)
+    set_str(args.ptr_str1, s1 + s2)
     jitter.func_ret_stdcall(ret_ad, args.ptr_str1)
 
 
 def kernel32_lstrcatA(jitter):
-    my_lstrcat(jitter, whoami(), jitter.get_str_ansi)
+    my_lstrcat(jitter, whoami(), jitter.get_str_ansi, jitter.set_str_ansi)
 
 
 def kernel32_lstrcatW(jitter):
-    my_lstrcat(jitter, whoami(), jitter.get_str_unic)
+    my_lstrcat(jitter, whoami(), jitter.get_str_unic, jitter.set_str_unic)
 
 
 def kernel32_GetUserGeoID(jitter):