Advertisement
Madmouse

stack based binary obfuscation with ROP

Aug 8th, 2015
172
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. [bits 64]
  2.  
  3. section .text
  4. global _start
  5.  
  6. org 0x08048000
  7. ehdr:                                      ; Elf64_Ehdr
  8.     db 0x7F, "ELF", 2, 1, 1, 0         ;   e_ident
  9.     times 8 db      0
  10.     dw 2                               ;   e_type
  11.     dw 62                              ;   e_machine
  12.     dd 1                               ;   e_version
  13.     dq _start                          ;   e_entry
  14.     dq phdr - $$                       ;   e_phoff
  15.     dq 0                               ;   e_shoff
  16.     dd 0                               ;   e_flags
  17.     dw ehdrsize                        ;   e_ehsize
  18.     dw phdrsize                        ;   e_phentsize
  19.     dw 1                               ;   e_phnum
  20.     dw 0                               ;   e_shentsize
  21.     dw 0                               ;   e_shnum
  22.     dw 0                               ;   e_shstrndx
  23.     ehdrsize equ $ - ehdr
  24. phdr:                                      ; Elf64_Phdr
  25.     dd 1                               ;   p_type
  26.     dd 7                               ;   p_flags
  27.     dq 0                               ;   p_offset
  28.     dq $$                              ;   p_vaddr
  29.     dq $$                              ;   p_paddr
  30.     dq filesize                        ;   p_filesz
  31.     dq filesize                        ;   p_memsz
  32.     dq 0x1000                          ;   p_align
  33.     phdrsize equ $ - phdr
  34. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  35.  
  36. _start:
  37. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  38. ; exit syscall
  39.     mov rax, 0x909090050f583c6a
  40.     push rax            ; push the code above to stack
  41.  
  42. ;    xor rdx, rdx
  43. ;    mov dl, 15
  44. ;    syscall
  45.     mov rax, 0x90050f0fb2d23148
  46.     push rax
  47.  
  48. ;    xor rax, rax
  49. ;    mov al, 1
  50. ;    mov rdi, rax
  51.     mov rax, 0xc7894801b0c03148
  52.     push rax
  53.  
  54. ;    push rsi
  55. ;    push rsp
  56. ;    pop rsi
  57. ;    xor rdx, rdx
  58. ;    mov dl, 8
  59.     mov rax, 0x08b2d231485e5456
  60.     push rax
  61.  
  62. ;    sub rsp, 32
  63. ;    mov rsi, 0x0a2121216f6c6548
  64.     mov rax, 0x0a2121216f6c6548
  65.     push rax
  66.     mov rax, 0xbe4820ec83489090
  67.     push rax
  68.  
  69.  
  70. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
  71.     push rsp            ; return pointer
  72.     ret ; run code
  73.  
  74. filesize equ $ - $$
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement