Python
Java
PHP
IOS
Android
Nodejs
JavaScript
Html5
Windows
Ubuntu
Linux
如何获取没有0x00或0xFF字节的x86_64中的指令指针?
有没有一种方法可以在不使用指令指针 RIP 的情况下访问指令指针 RIP 中的值call随后是一个pop用汇编语言 或者是否有机器代码操作码可以做到这一点 我一直在谷歌搜索没有明确的结果 我的问题是机器代码中不能有任何零 否则我会收到 SI
Assembly
x8664
Shellcode
programcounter
rdi 寄存器用于无参数函数的目的
考虑这个简单的函数 struct Foo int a int b int c int d int e int f Foo foo Foo f f a 1 f b 2 f c 3 f d 4 f e 5 f f 6 return f 它生成以
c
Assembly
x8664
callingconvention
ABI
如何在不链接libc.so的情况下访问段寄存器?
我正在尝试在 Ubuntu 20 10 上使用 NASM 版本 2 15 04 在 64 位程序集中编写一个简单的堆栈金丝雀 执行下面的代码会导致在使用命令进行汇编和链接时出现分段错误nasm felf64 canary asm ld ca
NASM 无法声明初始化数据[关闭]
Closed 这个问题是无法重现或由拼写错误引起 help closed questions 目前不接受答案 由于某种原因我无法编译 nasm 程序 如果我尝试在 data 部分中放入某些内容 则会出错 error comma expect
Assembly
nasm
x8664
了解 intel 汇编中的 %rip 寄存器
关于以下小代码 在另一篇关于结构大小和正确对齐数据的可能性的文章中对此进行了说明 struct char Data1 short Data2 int Data3 char Data4 x unsigned fun void x Data1
Assembly
x8664
addressingmode
relativeaddressing
为什么 GCC 减去 1 并比较 <= 2?在汇编中使用 2 的幂时 cmp 是否更快?
我正在编写一些代码来将屏幕清除为特定颜色 C 代码 void clear screen unsigned int color void memory int height int width unsigned int pixel unsig
c
Assembly
gcc
x86
x8664
printf 上的分段错误 - NASM 64 位 Linux
我尝试使用输入四个浮点数scanf 将它们存储到堆栈中 然后使用vmovupd将它们复制到寄存器以供使用 我的问题是 当我尝试输出这 4 个数字时 程序段错误位于printf 我认为这是堆栈的问题 但我尝试多次弹出 一次多条指令 但无济于事
Linux
Assembly
x8664
nasm
callingconvention
nasm:在运行时从 rip(指令指针)获取重定位二进制文件的偏移量
我有一个适用于 x86 64 的 multiboot2 兼容 ELF 文件 其中启动符号定义在start asm NASM 汇编文件 multiboot2 标头包含relocatable tag 因为 GRUB 不支持 multiboot2
Assembly
x8664
nasm
positionindependentcode
如何以可跨 Linux、Windows 和 MacOS 移植的方式收集 Python 3 中的当前架构?
我正在尝试找到一种可移植的方式来收集当前的架构 例如x86 64 or AArch64 我将用它来填充一个标志 例如is x86 使用Python 3 它看起来像import platform platform machine 函数是正确的
python
python3x
x86
x8664
ARM64
汇编部分 .code 和 .text 的行为不同
我是装配新手 从我所学到的 code与 text 但是使用下面的代码会崩溃 code segment data msg db hello world 0xa len equ msg section text global start sta
Assembly
x8664
nasm
ELF
为什么“分段错误”在 C 中仍然存在
操作系统中的分段是一个与时间本身一样古老的概念 至少根据我的教授的说法 大多数现代操作系统已经放弃了分段的概念 现在主要依靠分页来实现内存保护 从而防止每个进程访问除自己的内存之外的任何其他内存 那么我们如何在 C 中仍然遇到 分段错误 在
c
operatingsystem
segmentationfault
x8664
memorysegmentation
如何写入LLDB中的XMM寄存器
我正在尝试使用 LLDB API 从 python 中的寄存器读取和写入值 对于通用寄存器 我一直在使用frame register register name value读取和写入寄存器值 这对我来说很成功 然而 当我接近浮点寄存器时 我
python
x86
x8664
SSE
LLDB
为什么 x86-64 System V 调用约定在寄存器中传递参数而不是仅在堆栈中传递参数?
为什么 32 位 C 将所有函数参数直接压入堆栈 而 64 位 C 将前 6 个参数放入寄存器 其余参数压入堆栈 所以 32 位堆栈看起来像 arg2 arg1 return address old rbp 虽然 64 位堆栈看起来像 ar
gcc
Assembly
x8664
callingconvention
汇编编码 strdup. Malloc 在共享库中调用
我有一个问题 调用 malloc 时无法编译 strdup 当我不调用 malloc 时 它会完美地编译我的共享库 所以如果有人可以帮助我 那就太好了 这是我的代码 BITS 64 DEFAULT REL global my strdup
Assembly
sharedlibraries
nasm
x8664
将 scanf 与 x86-64 GAS 组件结合使用
我在尝试调用系统函数 scanf 以在我的 x86 汇编程序中工作时遇到了很多问题 目前我已经让它从标准中读取 但是它只会读取没有段错误的字符 我不知道为什么 指定字符串是 d 我在网上看到的 x86 中的 scanf 示例使用 quark
Assembly
x86
scanf
x8664
gnuassembler
在 64 位机器上,我可以安全地并行操作 64 位四字的各个字节吗?
背景 我正在对图像中的行和列进行并行操作 我的图像是 8 位或 16 位像素 而我使用的是 64 位机器 当我并行对列进行操作时 两个相邻列可能共享相同的 32 位int或 64 位long 基本上 我想知道是否可以安全地并行操作同一四字的
c
Multithreading
imageprocessing
parallelprocessing
x8664
Intel x86 与 AMD x86 CPU 上的访问性能不一致
我已经实现了一个带有结构内存布局数组的简单线性探测哈希图 该结构包含键 值和指示条目是否有效的标志 默认情况下 该结构体由编译器填充 因为键和值是 64 位整数 但该条目仅占用 8 个布尔值 因此 我也尝试以未对齐访问为代价来打包结构 由于
x8664
intel
cpuarchitecture
memoryalignment
amdprocessor
Linux:大型 int 数组:mmap 与查找文件?
假设我有一个数据集 它是存储在 4TB HDD ext4 文件系统上的文件中的 1e12 32 位整数 4 TB 数组 考虑到数据很可能是随机的 或者至少看起来是随机的 pseudo code for long long i 0 i lt
Linux
memory
memorymanagement
filesystems
x8664
CMPXCHG16B 正确吗?
尽管我不确定为什么 但这似乎并不完全正确 建议会很好 因为 CMPXCHG16B 的文档非常少 我没有任何英特尔手册 template lt gt inline bool cas volatile types uint128 t src t
c
gcc
x8664
inlineassembly
compareandswap
程序集 - 无法设置断点 lldb
我用这些选项组装了nasm O0 g f macho64但 lldb 抱怨 无法将断点解析到任何实际位置 当我尝试在文件中的行号处设置任何断点时 我已经开始尝试学习 OS X 的 64 位汇编 但到目前为止这确实是一个挑战 似乎几乎没有任何
MacOS
Assembly
nasm
x8664
LLDB
«
1 ...
3
4
5
6
7
8
9
...23
»