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

问题描述 投票:0回答:1

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

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

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

然后再做

LOBYTE(third_block_first_zero_byte) = 0;

那么... 它到底是干什么的?从一个单字节变量中提取低字节......哎呀......这让我很伤脑筋。

reverse-engineering ida
1个回答
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'变量&amp中的值中获取低阶Byte,并将其重新赋值为0。

类似的查询 此处

参考资料。http:/www.cplusplus.comreferencecstdiofread

© www.soinside.com 2019 - 2024. All rights reserved.