LOBYTE(some_var) = 0;的含义在 IDA HexRays 中?

The meaning of LOBYTE(some_var) = 0; in IDA HexRays?

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

所以一些算法逐字节读取文件。某处确实如此

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

然后再做

LOBYTE(third_block_first_zero_byte) = 0;

所以...它到底是做什么的?从单字节变量中提取低字节...哎哟...伤脑筋了

这两行代码没有关联。

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

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

LOBYTE(third_block_first_zero_byte) = 0;

上一行只是从当前存储在 'third_block_first_zero_byte' 变量中的值中检索低位字节,并将其重新分配为零值。

类似查询here

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