为什么 gcc 对 x64 共享库强制使用 PIC?
尝试使用 gcc 将非 PIC 代码编译到 x64 上的共享库会导致错误,类似于: /usr/bin/ld: /tmp/ccQ2ttcT.o: relocation R_X86_64_32 against `a local sy…
如何解释 x86-64 上的段寄存器访问?
有了这个函数: mov 1069833(%rip),%rax # 0x2b5c1bf9ef90 add %fs:0x0,%rax retq 我如何解释第二条指令并找出RAX中添加了什么?…
从 xmm 寄存器提取数据到“标准”;变量,内在变量
如何从 xmm 寄存器中提取 2 个字节或任意数量的字节? 目前我正在使用一个数组来转储整个寄存器,然后访问我想要的字节。然而,这似乎没有那么有效。…
使用 Code::Blocks 编译时针对不同的 CPU - 理解错误
我正在使用 Code::Blocks 开发一个 C 应用程序,并且需要面向多个平台(32 位、64 位)。我的开发盒是64位的,所以我尝试在项目设置中检查编译器的i38…
x86、x32 和 x64 架构之间的区别?
请解释一下x86、x32和x64之间的区别?当涉及到 x86 和 x32 时,它有点令人困惑,因为大多数时候 32 位程序在 x86 上运行... 相关/可能的重复,其中还…
Linux 针对执行 shellcode 的安全措施
我正在学习计算机安全的基础知识,并尝试执行我编写的一些 shellcode。我按照此处给出的步骤 http://dl.packetstormsecurity.net/papers/shellcode/ow…
如何在 x86-64 上使用 ptrace?
我正在遵循此处的教程,并针对x86-64(基本上将 eax 替换为 rax 等)以便编译: #include #include #include #include #include #include #include in…
工具链(编译器/调试器)中的错误?
gdb、gcc 或两者都有严重错误,我不知道是什么。我创建了一个 POC 来在 gcc (GCC) 4.6.1 20110819(预发布) 和 GNU gdb (GDB) 7.3.50.20110908-cvs …
对于少于四个参数的函数是否需要保留堆栈空间?
刚刚开始学习 x64 汇编,我有一个关于函数、参数和堆栈的问题。据我了解,函数中的前四个参数在 Windows 中传递给 rcx、rdx、r8 和 r9 寄存器(以及用…
无法在 64 位 Windows 7 上构建 32 位 asp.net 应用程序部署包
我正在构建一个将部署在 32 位服务器上的 Web 应用程序,使用 cproj_deploy 和 Web 部署项目来构建我的 msi 文件。如果我在 XP 上构建它,一切都会正…
gettimeofday 系统调用如何工作?
gettimeofday 是一个 x86-86 的系统调用,根据此页面 (只需在框中搜索gettimeofday): int gettimeofday(struct timeval *tv, struct timezone *tz)…