【问题标题】:The meaning of LOBYTE(some_var) = 0; in IDA HexRays?LOBYTE(some_var) = 0 的含义;在 IDA HexRays 中?
【发布时间】:2020-09-03 07:59:06
【问题描述】:

我阅读了一些关于 LOBYTE 是用于提取低字节的宏的信息,但我看到的东西完全奇怪。它看起来像给函数设置值 -_- 我不是专业的逆向工程师并这样做,因为我没有其他选择。

所以一些算法逐字节读取文件。它在某个地方

fread(&third_block_first_zero_byte, 1u, 1u, hd6_file_ptr);

然后它会做

LOBYTE(third_block_first_zero_byte) = 0;

那么……它到底是做什么的?从单个字节变量中提取低字节......哎呀......这伤害了我的大脑。

【问题讨论】:

    标签: reverse-engineering ida


    【解决方案1】:

    这两行代码是不相关的。

    fread(&third_block_first_zero_byte, 1u, 1u, hd6_file_ptr);
    

    本例中的 fread 函数从位于内存中的文件对象流中返回单个元素('hd6_file_ptr' 是指向流的指针)。

    LOBYTE(third_block_first_zero_byte) = 0;
    

    上面一行只是从当前存储在“third_block_first_zero_byte”变量中的值中检索低位字节并将其重新赋值为零。

    类似查询here

    参考: http://www.cplusplus.com/reference/cstdio/fread/

    【讨论】:

      猜你喜欢
      • 2017-07-20
      • 2020-12-12
      • 2017-03-21
      • 2023-04-06
      • 2015-08-10
      • 2021-12-16
      • 1970-01-01
      • 2017-05-02
      • 2010-10-15
      相关资源
      最近更新 更多