I try to reverse engineering an application and I came to the point that I don't understand. I have the following disassembled code with gdb
:
│0x7ffff76f7e4b <_ZN16CRRegistratorImp8RegisterEbPv+587> je 0x7ffff76f7ce6 <_ZN16CRRegistratorImp8RegisterEbPv+230> │
│0x7ffff76f7e51 <_ZN16CRRegistratorImp8RegisterEbPv+593> mov rdi,QWORD PTR [rbp+0x10] │
│0x7ffff76f7e55 <_ZN16CRRegistratorImp8RegisterEbPv+597> mov rax,QWORD PTR [rdi] │
│0x7ffff76f7e58 <_ZN16CRRegistratorImp8RegisterEbPv+600> call QWORD PTR [rax+0x30] │
│0x7ffff76f7e5b <_ZN16CRRegistratorImp8RegisterEbPv+603> test al,al │
│0x7ffff76f7e5d <_ZN16CRRegistratorImp8RegisterEbPv+605> je 0x7ffff76f7ce6 <_ZN16CRRegistratorImp8RegisterEbPv+230> │
│0x7ffff76f7e63 <_ZN16CRRegistratorImp8RegisterEbPv+611> jmp 0x7ffff76f7d29 <_ZN16CRRegistratorImp8RegisterEbPv+297>
│0x7ffff76f7e68 <_ZN16CRRegistratorImp8RegisterEbPv+616> xor edx,edx │
│0x7ffff76f7e6a <_ZN16CRRegistratorImp8RegisterEbPv+618> mov rsi,r12 │
│0x7ffff76f7e6d <_ZN16CRRegistratorImp8RegisterEbPv+621> mov rdi,rbp │
│0x7ffff76f7e70 <_ZN16CRRegistratorImp8RegisterEbPv+624> call 0x7ffff7596518 <_Z18CallRegGuiCallbackP13CRRegistratorPv13ERegGUIAction@plt> │
│0x7ffff76f7e75 <_ZN16CRRegistratorImp8RegisterEbPv+629> jmp 0x7ffff76f7e41 <_ZN16CRRegistratorImp8RegisterEbPv+577> │
│0x7ffff76f7e77 <_ZN16CRRegistratorImp8RegisterEbPv+631> mov edx,0x4 │
│0x7ffff76f7e7c <_ZN16CRRegistratorImp8RegisterEbPv+636> mov rsi,r12 │
│0x7ffff76f7e7f <_ZN16CRRegistratorImp8RegisterEbPv+639> mov rdi,rbp │
│0x7ffff76f7e82 <_ZN16CRRegistratorImp8RegisterEbPv+642> call 0x7ffff7596518 <_Z18CallRegGuiCallbackP13CRRegistratorPv13ERegGUIAction@plt>
This is not the whole procedure, but I think it is not needed. What I want to know is, how to get to to the address 0x7ffff76f7e68
(+616
).
I was thinking that somewhere in this procedure I will find something like this instruction:
jmp 0x7ffff76f7e68 <_ZN16CRRegistratorImp8RegisterEbPv+616>
but there is no such instruction in this procedure and it is not possible to get it there because on address +611
there is the the jmp
instruction. So I have the following questions:
- Is it dead code?
Is it possible to jump directly to this specific address (
+616
) from other procedure?Is there another way to get to this address?