如何解决汇编:Dword到十六进制转换问题
我是逆向工程的新手,在使用IDA时,我发现wstring
部分中的rdata
'CPRE'转换如下:
rdata:00417B30 ; const WCHAR Caption
rdata:00417B30 Caption dd 500043h
rdata:00417B34 dword_417B34 dd 450052h
rdata:00417B38 word_417B38 dw 0
rdata:00417B3A align 4
为什么?我的意思是,43h
是'C'的十六进制,50h
是'P'的十六进制,但是为什么在00之间呢?
有人可以帮忙吗?
代码为32位,IDA为idafreeware64。
解决方法
如您所说,这些是宽字符串,由宽(16位)字符组成。
这些dd
常量是4字节(32位)。反汇编没有显示给您的是这些常量中有高阶0字节:
500043h
确实是00500043h
。它由两个字符0050h
(P)和0043h
(C)组成。
其他两个字母也是如此。它们之间没有00h
,它是文字中第一个(低阶)字符的一部分。
这可以减少混乱(尽管仍将其保留为原始数据,而不是解析为wstring):
rdata:00417B30 Caption dw 0043h
rdata:00417B32 word_417B32 dw 0050h
rdata:00417B34 word_417B34 dw 0052h
rdata:00417B36 word_417B36 dw 0045h
rdata:00417B38 word_417B38 dw 0
可以放置00
的位置,但其中的内容是为了清楚显示宽度。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。