Can anyone help me understand this asm code (It's short)

I'm trying to learn shellcode for a project
in comp science

but I


  • btw i get a seg fault
    on mov %al,0x7(%esi)
    Program received signal SIGSEGV, Segmentation fault.
    0x0000000000400085 in _start ()
    (gdb) disas _start
    Dump of assembler code for function _start:
    0x0000000000400080 <_start+0>: jmp 0x4000a2 <_start+34>
    0x0000000000400082 <_start+2>: pop %rsi
    0x0000000000400083 <_start+3>: xor %eax,%eax
    #This line
    ->0x0000000000400085 <_start+5>: addr32 mov %al,0x7(%esi)
    0x0000000000400089 <_start+9>: addr32 lea (%esi),%ebx
    0x000000000040008c <_start+12>: addr32 mov %ebx,0x8(%esi)
    0x0000000000400090 <_start+16>: addr32 mov %eax,0xc(%esi)
    0x0000000000400094 <_start+20>: mov $0xb,%al
    0x0000000000400096 <_start+22>: mov %esi,%ebx
    0x0000000000400098 <_start+24>: addr32 lea 0x8(%esi),%ecx
    0x000000000040009c <_start+28>: addr32 lea 0xc(%esi),%edx
    0x00000000004000a0 <_start+32>: int $0x80
    0x00000000004000a2 <_start+34>: callq 0x400082 <_start+2>
    0x00000000004000a7 <_start+39>: (bad)
    0x00000000004000a8 <_start+40>: (bad)
    0x00000000004000a9 <_start+41>: imul $0x414a6873,0x2f(%rsi),%ebp
    0x00000000004000b0 <_start+48>: rex.B
    0x00000000004000b1 <_start+49>: rex.B
    0x00000000004000b2 <_start+50>: rex.B
    0x00000000004000b3 <_start+51>: rex.WXB
    0x00000000004000b4 <_start+52>: rex.WXB
    0x00000000004000b5 <_start+53>: rex.WXB
    0x00000000004000b6 <_start+54>: rex.WXB add %bpl,(%r14)
    End of assembler dump.
  • This post has been deleted.
  • This post has been deleted.
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!