x86-64是Intel x86架构的64位扩展
将32位偏移量添加到x86-64 ABI的指针时是否需要符号或零扩展?
简介:我正在查看汇编代码来指导我的优化,并在将int32添加到指针时看到许多符号或零扩展。 void Test(int * out,int offset){out [offset] = 1; } ----...
我有以下内容:foo:movl $ 0,%eax // result = 0 cmpq%rsi,%rdi // rdi = x,rsi = y? jle .L2 .L3:addq%rdi,%rax // ...
所以在本书中编写的以下程序intlen()中,当我读取与该程序对应的汇编语言时,intlen()提供了受保护的Canary值,以及几个值......
在先前调用string :: find之后添加内存分配和memset会导致它返回npos。为什么?
我正在逆向设计一个名为Monster Hunter World的游戏来添加一个更好的鼠标处理子程序,我的软件中会弹出一个非常奇怪的错误。我不知道究竟是什么导致它...
在x86-64架构中,两个寄存器具有特殊用途:FS和GS。在linux 2.6。*中,FS寄存器似乎用于存储线程本地信息。那是对的吗?什么存储在fs:0?...
x86_64上的OSX gettimeofday系统调用似乎不起作用
我正在使用64位代码通过syscall指令调用gettimeofday。我无法得到任何结果,并通过Dtrace告诉我这个电话没有错误,但寄存器我......
我是第一次学习计算机系统的学生(有计算机系统:程序员的观点)。我们正在进行汇编,我开始理解x86_64的命令后缀...
为什么修改指令导致巨大的i-cache和i-TLB在x86上未命中?
以下代码片段仅使用一条RET指令创建一个函数(fun)。循环重复调用该函数并在返回后覆盖RET指令的内容。 #...
我在研究x86-64的时候对条件分支很困惑。 compq%rax,%rdi jl .L2哪一个是正确的理解?如果%rax <%rdi,如果%rax>%rdi则跳转到L2,跳转到L2
[程序集x86-64]具体来说,我试图将137,799转换为十四进制,然后转换为ASCII值,应该是“3830B”,但我得到“3830;”,所以我的最后一个数字对某些人来说是错误的...
我目前正在逆向工程游戏,我遇到了一个需要调用GetRawInputData的问题,它希望将pcbSize作为其参数之一。通常在C中我会写sizeof(...
为什么NOP的数量似乎会影响shellcode是否成功执行?
我正在学习缓冲区溢出(仅用于教育目的),并且在使用NOP滑动技术来执行shellcode时,出现了一些问题,为什么shellcode有时会......
为什么int 3以64位生成SIGSEGV而不是停止调试器?
在32位模式编程中,我曾经在我的程序中使用int 3,用于使用调试器在指定位置停止(将指令嵌入到源中)。现在64位似乎不是......
我正在寻找一种公式/方法来衡量一条指令的速度,或者更具体地说是通过CPU周期给出每条指令的“得分”。让我们采取以下装配计划......
我正在尝试教育自己关于堆栈溢出并使用这些-fno-stack-protector标志玩了一下,并尝试了解如何在进程中管理内存。我编译了......
我正在尝试创建一个将为我打印十进制数的宏。我的想法是将数字除以10,将余数转换为ASCII并将其推入堆栈,直到比率为0.我......
我只是在学习汇编和堆栈框架中的函数等等,所以我一直在查看gdb中的堆栈框架,因为我运行递归算法来查看会发生什么。如果我运行一些递归...
linux x86_64 vm gcc错误的可执行输出架构,exec文件格式错误
我正在使用GNU / Linux 64位Oracle VM编译一个简单的c程序main.c:int main(){return 0; } gcc命令是:gcc -c main.c -o output当运行:./ output时,它会导致错误:“不能......
我对x86-64环境中的参数传递过程感到好奇,因此我编写了一段代码。 //a.c extern int shared; int main(){int a = 100;交换(&a,&shared); ...