mirror of
https://github.com/EchoStretch/kstuff-lite.git
synced 2026-10-19 02:09:50 -05:00
70 lines
801 B
NASM
70 lines
801 B
NASM
use64
|
|
|
|
global _start
|
|
global memcpy
|
|
global memset
|
|
extern main
|
|
extern addr__dynlib_dlsym
|
|
extern elf_main
|
|
extern _end
|
|
|
|
section .text.startup ; needed for correct linkage with -O2
|
|
|
|
_start:
|
|
jmp start2
|
|
db 'E', 'L', 'F' ; internal magic for the patcher script
|
|
dq _sdata-_start
|
|
start2:
|
|
jmp start3
|
|
|
|
times 24-($-_start) db 0
|
|
dq elf_main-_start
|
|
dq 64
|
|
|
|
times 56-($-_start) db 0
|
|
dw 2
|
|
|
|
times 64-($-_start) db 0
|
|
|
|
; segment 1 -- rx
|
|
dd 1
|
|
dd 5
|
|
dq 0
|
|
dq 0
|
|
dq 0
|
|
dq _sdata-_start
|
|
dq _sdata-_start
|
|
dq 0
|
|
|
|
; segment 2 -- rw
|
|
dd 1
|
|
dd 6
|
|
dq _sdata-_start
|
|
dq _sdata-_start
|
|
dq _sdata-_start
|
|
dq _end-_start
|
|
dq _end-_start
|
|
dq 0
|
|
|
|
start3:
|
|
mov [rel addr__dynlib_dlsym], rdi
|
|
jmp main
|
|
|
|
memcpy:
|
|
mov rax, rdi
|
|
mov rcx, rdx
|
|
rep movsb
|
|
ret
|
|
|
|
memset:
|
|
movzx eax, sil
|
|
mov rsi, rdi
|
|
mov rcx, rdx
|
|
rep stosb
|
|
mov rax, rsi
|
|
ret
|
|
|
|
section .data
|
|
_sdata:
|
|
db 1
|