assembly - 汇编:Dword 到 Hex 转换问题
问题描述
我是逆向工程的新手,在与 IDA 合作时,我看到wstring
“CPRE”已在该rdata
部分中进行了如下转换:
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?有人可以帮忙吗?
代码是 32bit 和 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
s 可以删除,但已包括在内以明确宽度。
推荐阅读
- xcode - 如何在线程 1 中修复此错误:+ [NSBundle runUIApplicationMainWithArgc: argv:]:
- dm-script - 如何将一个图像显示在另一个图像之上?
- php - 在 Laravel 应用程序中,如何直接在数据库中更改用户密码?
- point-clouds - 如何在一组组中标记点?
- javascript - 如何在 REACT 中的条件后将状态值重置为默认值?
- mongodb - 使用 Mongoose 进行多集合连接/连接查询,类似于 SQL 中的联合查询
- reactjs - 使用 useState React 钩子将值添加到状态对象中的数组
- javascript - 对包含数字和字符串javascript的表行进行排序
- javascript - 有没有办法在像 Angular 这样的 ReactJS 中为组件(如逻辑、html 和 CSS)制作单独的文件?
- ruby-on-rails - Rails Minitest API 连接 - NoMethodError:未定义的方法“调用”