汇编代码中%rsi的值

时间:2017-09-25 04:40:13

标签: assembly reverse-engineering

我正在研究二进制炸弹的修改版本,但我仍然坚持%rsi的价值。它是否与第5行有关并将值移入rax

由于

Dump of assembler code for function phase_2:

=> 0x00000000004011c7 <+0>: sub    $0x8,%rsp
0x00000000004011cb <+4>:    cmp    $0x3,%rdi  //contains 3 values
0x00000000004011cf <+8>:    je     0x4011df <phase_2+24>  //check values if equal to three
0x00000000004011d1 <+10>:   callq  0x401bd7 <bomb_explosion>
0x00000000004011d6 <+15>:   mov    $0xffffffffffffffff,%rax
0x00000000004011dd <+22>:   jmp    0x401214 <phase_2+77>
0x00000000004011df <+24>:   not    %rsi
...

1 个答案:

答案 0 :(得分:1)

RSI包含函数的第二个参数。 (第一个参数在RDI中。)

对于符合System V ABI(Linux,OS X,一般大多数UNIX; Windows uses a different calling convention)的x86-64系统,函数的前六个整数和指针参数是RDI,RSI, RDX,RCX,R8和R9。浮点参数在XMM(SSE)寄存器中传递。