diff options
| -rw-r--r-- | miasm2/os_dep/win_api_x86_32.py | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/miasm2/os_dep/win_api_x86_32.py b/miasm2/os_dep/win_api_x86_32.py index d9c659d3..b223fa89 100644 --- a/miasm2/os_dep/win_api_x86_32.py +++ b/miasm2/os_dep/win_api_x86_32.py @@ -1418,8 +1418,10 @@ def kernel32_lstrcpyn(jitter): ret_ad, args = jitter.func_args_stdcall(["ptr_str1", "ptr_str2", "mlen"]) s2 = jitter.get_str_ansi(args.ptr_str2) - s2 = s2[:args.mlen] - jitter.vm.set_mem(args.ptr_str1, s2) + if len(s2) >= args.mlen: + s2 = s2[:args.mlen - 1] + log.info("Copy '%r'", s2) + jitter.set_str_ansi(args.ptr_str1, s2) jitter.func_ret_stdcall(ret_ad, args.ptr_str1) |