Unicode string in PE is processed incorrectly
- Dominant language
- C++
- Stars
- 8.6k
- Forks
- 1k
- PR merge metrics
- No merged PRs in 30d
Description
I wrote some code sample as below to display Unicode string in VS2019 under windows;
'
printf("请输入字符串:");
'
the .dsm file show the string correctly.

but in .ll, the decompiled code is wrong, the Unicode string is translated to i64.

we expected it is translated to below
**unnamed_addr constant [16 x i8] c"\c7\eb\ca\e4\c8\eb\d7\d6 \b7\fb\b4\ae\a3\ba\00\00"**
PE file attatched in below:
[Project2.zip](https://github.com/avast/retdec/files/6180924/Project2.zip)
Contributor guide
No contributing guide indexed for this repository
Research direction
Start by reproducing the report with the attached Project2.zip on Windows and compare the generated .dsm and .ll outputs for the Unicode string. Done means the decompiled LLVM output preserves the string as the expected byte-array constant rather than translating it to i64.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- reverse-engineering
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100