c++ - 如何使用 NASM 程序集读取和修改文件的字节,并使用 C++ 打开/关闭文件?

标签 c++ linux assembly file-io nasm

在 Linux CentOS 中为 32 位程序使用 C++ 和 NASM 程序集。

我想用 C++ 打开一个文件,然后用 NASM Assembly 修改它。

听说您可以创建一个fstream,并将其指针作为参数发送给NASM 中的一个函数,然后您可以对该指针中的字节进行操作.

以上似乎对我不起作用,因为将指向 fstream 的指针发送到 NASM 似乎不会产生文件中的字节。我最多只能读取文件中的字节,将它们放入 char vector 中并将其作为参数发送给我的 NASM 函数,但我在那里所做的修改不会影响文件,对吧?

我获取字节的方式是 http://www.cplusplus.com/doc/tutorial/files/ 中描述的方式,在“二进制文件”下。

如何使用 NASM 程序集读取和修改文件的字节,并使用 C++ 打开/关闭文件?

最佳答案

将文件的所有数据加载到内存中,并传递一个指向该内存的指针。完成后,简单地将(现在修改的)数据写回文件。

关于c++ - 如何使用 NASM 程序集读取和修改文件的字节,并使用 C++ 打开/关闭文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20188123/

相关文章:

c - GCC在将整数强制转换为 float 期间生成的FPU操作

linux - Sphinx searchd 错误 : Query failed: expected searchd protocol version 1+, 得到版本 '0'

linux - 在调用 syncfs() 之前我需要关闭文件吗

c++ - 为什么 std::(i)ostream 将有符号/无符号字符视为文本而不是整数?

c++ - 努力理解 'member initializing'

linux - docker 复制目录中具有给定扩展名的所有文件

gcc - 64 位整数的 cmpxchg 示例

linux - 为什么我需要在系统调用读取之前调用系统调用写入以使其接受用户输入?

c++ - 奇怪的 winAPI 行为

c++ - Boost 中的 DEFINE_TYPE_NAME 是如何工作的?