我有一些从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 ,有人能给我一些帮助吗?谢谢!
答案 0 :(得分:2)
自己创建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个编辑控件更改为richtext控件,修改转换循环以添加13和10 for Carriage Return和Line Feeds。