Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
rapid7
GitHub Repository: rapid7/metasploit-framework
Path: blob/master/data/templates/src/elf/exe/elf_mips64_template.s
28810 views
1
; build with:
2
; nasm elf_mips64_template.s -f bin -o template_mips64_linux.bin
3
4
%define WORD_BE(value) (((value & 0xFF) << 8) | ((value >> 8) & 0xFF))
5
%define DWORD_BE(dword) (((dword & 0xFF) << 24) | \
6
((dword & 0xFF00) << 8) | \
7
((dword >> 8) & 0xFF00) | \
8
((dword >> 24) & 0xFF))
9
%define QWORD_BE(qword) ( \
10
((qword & 0x00000000000000FF) << 56) | \
11
((qword & 0x000000000000FF00) << 40) | \
12
((qword & 0x0000000000FF0000) << 24) | \
13
((qword & 0x00000000FF000000) << 8) | \
14
((qword >> 8) & 0x000000FF00000000) | \
15
((qword >> 24) & 0x0000FF0000000000) | \
16
((qword >> 40) & 0x00FF000000000000) | \
17
((qword >> 56) & 0xFF00000000000000) )
18
19
BITS 64
20
21
org 0x400000
22
ehdr: ; Elf32_Ehdr
23
db 0x7F, "ELF", 2, 2, 1, 0 ; e_ident
24
db 0, 0, 0, 0, 0, 0, 0, 0 ;
25
dw WORD_BE(2) ; e_type = ET_EXEC for an executable
26
dw WORD_BE(0x08) ; e_machine = MIPS
27
dd 0 ; e_version
28
dq QWORD_BE(0x400078) ; e_entry
29
dq QWORD_BE(0x40) ; e_phoff
30
dq 0 ; e_shoff
31
dd 0 ; e_flags
32
dw WORD_BE(0x40) ; e_ehsize
33
dw WORD_BE(0x38) ; e_phentsize
34
dw WORD_BE(0x1) ; e_phnum
35
dw 0 ; e_shentsize
36
dw 0 ; e_shnum
37
dw 0 ; e_shstrndx
38
39
ehdrsize equ $ - ehdr
40
41
phdr: ; Elf32_Phdr
42
dd DWORD_BE(1) ; p_type = PT_LOAD
43
dd DWORD_BE(7) ; p_flags = rwx
44
dq 0 ; p_offset
45
dq QWORD_BE(0x400000) ; p_vaddr
46
dq QWORD_BE(0x400000) ; p_paddr
47
dq QWORD_BE(0xA00000) ; p_filesz
48
dq QWORD_BE(0xA00000) ; p_memsz
49
dq QWORD_BE(0x1000) ; p_align
50
51
phdrsize equ $ - phdr
52
53
global _start
54
55
_start:
56
57