geajack

Untitled

May 3rd, 2021
728
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. BITS 64
  2.  
  3. ET_EXEC equ 0x02
  4. _start equ 0x400000
  5.  
  6. header:
  7.     db 0x7f, "ELF"
  8.     db 2
  9.     db 1
  10.     db 1
  11.     db 0
  12.     db 0
  13.     db 0, 0, 0, 0, 0, 0, 0
  14.     dw ET_EXEC
  15.     dw 0x3e                 ; Machine (x64)
  16.     dd 1                    ; ELF Version
  17.     dq _start               ; Entry point address
  18.     dq program_header_table
  19.     dq section_header_table
  20.     dd 0                    
  21.     dw end_of_header        ; Size of this header
  22.     dw end_of_program_header_table - program_header_table                   ; Size of PHT entry
  23.     dw 1                    ; Number of PHT entries
  24.     dw 64                   ; Size of SHT entry
  25.     dw (end_of_section_header_table - section_header_table) / 64                    ; Number of SHT entries
  26.     dw 4                    ; Section names table index
  27. end_of_header:
  28. program_header_table:
  29.     dd 1 ; Type: Loadable segment
  30.     dd 5 ; Flags
  31.     dq text
  32.     dq _start ; Virtual
  33.     dq _start ; Physical
  34.     dq end_of_text - text
  35.     dq end_of_text - text
  36.     dq 0x1000 ; Alignment
  37. end_of_program_header_table:
  38. section_header_table:
  39. ;.null----------------------------
  40.     times 64 db 0
  41. ;---------------------------------
  42. ;.text----------------------------
  43.     dd shstr_text - shstrtab ; Name offset in .shstrtab
  44.     dd 1 ; Type: Program data
  45.     dq 6 ; Flags
  46.     dq _start
  47.     dq text
  48.     dq end_of_text - text
  49.     dd 0
  50.     dd 0
  51.     dq 16
  52.     dq 0
  53. ;---------------------------------
  54. ;.symtab--------------------------
  55.     dd shstr_symtab - shstrtab ; Name offset in .shstrtab
  56.     dd 2 ; Type: String table
  57.     dq 0 ; Flags
  58.     dq 0
  59.     dq symtab
  60.     dq end_of_symtab - symtab
  61.     dd 3 ; Associated section index
  62.     dd 3 ; Extra info
  63.     dq 8 ; Alignment
  64.     dq 24 ; Size of each entry
  65. ;---------------------------------
  66. ;.strtab--------------------------
  67.     dd shstr_strtab - shstrtab ; Name offset in .shstrtab
  68.     dd 3 ; Type: String table
  69.     dq 0 ; Flags
  70.     dq 0
  71.     dq strtab
  72.     dq end_of_strtab - strtab
  73.     dd 0
  74.     dd 0
  75.     dq 1
  76.     dq 0
  77. ;---------------------------------
  78. ;.shstrtab------------------------
  79.     dd shstr_shstrtab - shstrtab ; Name offset in .shstrtab
  80.     dd 3 ; Type: String table
  81.     dq 0 ; Flags
  82.     dq 0
  83.     dq shstrtab
  84.     dq end_of_shstrtab - shstrtab
  85.     dd 0
  86.     dd 0
  87.     dq 1
  88.     dq 0
  89. ;---------------------------------
  90. end_of_section_header_table:
  91.  
  92. ;--------------------------------;
  93. ;            Sections            ;
  94. ;--------------------------------;
  95. ;---------------------------------
  96. text:
  97.     mov rax, 60
  98.     mov rdi, 222
  99.     syscall
  100. end_of_text:
  101. ;---------------------------------
  102. shstrtab:
  103.                     db 0
  104.     shstr_text:     db ".text", 0
  105.     shstr_shstrtab: db ".shstrtab", 0
  106.     shstr_strtab:   db ".strtab", 0
  107.     shstr_symtab:   db ".symtab", 0
  108. end_of_shstrtab:
  109. ;---------------------------------
  110. strtab:
  111.     db 0
  112.     db "_start", 0
  113. end_of_strtab:
  114. ;---------------------------------
  115. symtab:
  116.     ; null
  117.     times 24 db 0
  118.     ; section
  119.     dd 0
  120.     db 3
  121.     db 0
  122.     dw 1
  123.     dq _start
  124.     dq 0
  125.     ; _start
  126.     dd 1
  127.     db 0x10 ; Type
  128.     db 0
  129.     dw 1 ; SHT index
  130.     dq _start ; Value
  131.     dq 0 ; Size
  132. end_of_symtab:
  133. ;---------------------------------
RAW Paste Data