为什么 Intel Pin 无法检测开放系统调用?
我正在尝试构建一个 pintool,它应该能够检测针对特定文件/目录的 open() 系统调用,并将文件路径参数替换为另一个值。 例如,下面是我想要检测的非常…
多核处理器中的所有核心是否共享控制寄存器?
我阅读了AMD和Intel手册中对CR0.CD标志的介绍,得到以下2个问题: CR0的设置是否影响所有核心?换句话说,每个核心都有一组独立的控制寄存器吗? 将 C…
使用 NASM 和 mingw 命令时出现编译错误
我想玩一下汇编。首先,我创建了一个小asm脚本并尝试编译它。第一步一切都很顺利: nasm -felf64 hello.asm 但是当我尝试使用 ld -o hello.o 你好 从 …
如何使用 nasm、x86_64、linux 函数修改堆栈(使用“ret”关键字)?
TL;DR 如何在使用ret时修改堆栈或在使用其他东西时实现类似的效果? 你好世界, 我正在尝试为我的语言制作一个编译器, 目前一切都是内联的,它使得 …
我正在尝试在动态链接后导出进程的内容,以便制作 PE 的静态版本。可以这样吗?
假设我有一个利用动态链接库的 PE,并且我想静态链接所有内容。而且我没有源代码,因此不能选择使用编译器标志。我一直在试图弄清楚如何做到这一点。 …
strcasecmp 实现不打印
我正在开发一个小项目,我必须从 C 库重新编码一个函数。实际上我正在开发 strcasecmp: BITS 64 %include "minilib.inc" section .text my_strcasecm…
无法写入 x64 程序集中使用 malloc/calloc 请求的内存
这是我在这个平台上的第一个问题。我正在尝试修改图像文件的像素并将它们复制到 calloc 请求的内存中。当代码尝试在偏移量 16360 处取消引用指向使用 …
C 纤维在 printf 上崩溃
我正在用 C 创建纤维线程系统,遵循 https://graphitemaster.github.io/纤维/。我有一个设置和恢复上下文的函数,我想要完成的是将函数作为具有自己的…
强制 Linux 在共享 CPU 缓存的 CPU 核心上调度进程
现代 AMD CPU 由多个 CCX 组成。每个 CCX 都有一个单独的 L3 缓存。 可以设置进程关联来将进程限制为某些CPU核心。 有没有办法强制 Linux 在共享 L3 …
为什么GDB说这个地址正在被调用
我编写了一个非常简单的 C 程序来将“hello world”打印到屏幕上。但在拆解过程中,我发现了一些奇怪的现象。 test.c: #include #include int main()…
汇编中的 x86 jge 与 jle
我目前正在准备考试,但我不明白这个汇编问题的答案:这个 asm 是 GCC 从 C 源代码的输出,除了 jge 指令。应该有什么指令? 正确答案显然是 jle,但…
多架构 docker 构建 python arm64 命令 '('lsb_release', '-a')'返回非零退出状态 1
为了解决这个问题,我有一个名为 script.py 的 hello world python 脚本。 def hello_world(): print("hello world") if __name__ == "__main__": hel…
AMD Monitorx 指令的正确语法是什么?
Ryzen 支持 monitorx 指令,如 cpuid 标志所示。不幸的是,Visual Studio masm 汇编器似乎不喜欢这些说明,并且网上关于如何使用它们的文档很少。 以…