如何将这些伪 unicode 数据声明代码翻译成 MASM 风格的代码?
Posted
技术标签:
【中文标题】如何将这些伪 unicode 数据声明代码翻译成 MASM 风格的代码?【英文标题】:How to translate these pseudo unicode data declaration code into MASM style code? 【发布时间】:2014-02-24 19:03:05 【问题描述】:我有一些从 IDA Pro 生成的伪 asm 代码,如下所示:
aR6033AttemptTo:
unicode 0, <R6033>
dw 0Dh, 0Ah
unicode 0, <- Attempt to use MSIL code >
unicode 0, <from this assembly during n>
unicode 0, <ative code initialization>
而这个变量就是这样使用的:
dd offset aR6033AttemptTo
我知道是否有单行 unicode 声明,我可以使用它:
include \masm32\macros\macros.asm
....
WSTR aNull_0, "this is a unicode string"
但是我该如何处理多行声明呢?特别是有dw 0Dh, 0Ah,谁能帮帮我?谢谢!
【问题讨论】:
【参考方案1】:自己创建 UNICODE 字符串?!?!
普通字符串是 ASCII - 每个字符 1 个字节(声明为 BYTE),UNICODE 字符串是每个字符 2 个字节(声明为 WORD)
UniString word 'I', 13, 10, \
'a','m', 13, 10, \
'a', 13, 10, \
'M','u','l','t','i', ' ', 'l','i','n','e', 13, 10, \
'U','N','I','C','O','D','E', ' ', 's','t','r','i', 'n', 'g','!',0, 0
让我们用 Unicode MessageBox
测试它
Invoke MessageBoxW, 0, offset UniString, NULL, MB_ICONINFORMATION
现在,所有的打字都可能很乏味,我肯定没有把这些都打出来。我有一个带有源代码的程序,当您输入变量名、一些 ASCII 文本时,它会将您的字符串输出为 UNICODE 定义的字符串。 Unicode String Variable Creator 链接中的那个,只会做单行字符串。您可以像我一样修改它以创建多行字符串。将底部 2 编辑控件更改为富文本控件修改转换循环以添加 13 和 10 用于回车和换行。
【讨论】:
以上是关于如何将这些伪 unicode 数据声明代码翻译成 MASM 风格的代码?的主要内容,如果未能解决你的问题,请参考以下文章