about summary refs log tree commit diff stats
path: root/subx/teensy
diff options
context:
space:
mode:
authorKartik Agaram <vc@akkartik.com>2018-07-06 23:13:03 -0700
committerKartik Agaram <vc@akkartik.com>2018-07-06 23:33:42 -0700
commit517a471bc0945657dc331c16d4bed74c7dc5b3b5 (patch)
treeacf3d4efd4adf77994f688592e2e1f972089c4a3 /subx/teensy
parent21b5cf52e2e31e26529d9b47fc6fafdf88a73f75 (diff)
downloadmu-517a471bc0945657dc331c16d4bed74c7dc5b3b5.tar.gz
4316
Second attempt at commit 4291. We'll now not copy the headers into
memory, but we'll still allocate space for them. Still some security
benefits, and I'm gaining confidence that I understand the ELF format.
Diffstat (limited to 'subx/teensy')
-rwxr-xr-xsubx/teensy/test5bin96 -> 96 bytes
-rw-r--r--subx/teensy/test5.s15
2 files changed, 9 insertions, 6 deletions
diff --git a/subx/teensy/test5 b/subx/teensy/test5
index 4d2da664..f3c9730d 100755
--- a/subx/teensy/test5
+++ b/subx/teensy/test5
Binary files differdiff --git a/subx/teensy/test5.s b/subx/teensy/test5.s
index d549306b..ca7c86e4 100644
--- a/subx/teensy/test5.s
+++ b/subx/teensy/test5.s
@@ -25,11 +25,14 @@ ehdrsize  equ  $ - ehdr
 
 phdr:                                                 ; Elf32_Phdr
               dd      1                               ;   p_type
-              dd      0                               ;   p_offset
-              dd      $$                              ;   p_vaddr
-              dd      $$                              ;   p_paddr
-              dd      filesize                        ;   p_filesz
-              dd      filesize                        ;   p_memsz
+              # don't copy ehdr or phdr into the first segment.
+              dd      0x54                            ;   p_offset
+              # but you can't save on bytes for them, because p_align.
+              # messing with the ORG won't help you here.
+              dd      0x08048054                      ;   p_vaddr
+              dd      0x08048054                      ;   p_paddr
+              dd      codesize                        ;   p_filesz
+              dd      codesize                        ;   p_memsz
               dd      5                               ;   p_flags
               dd      0x1000                          ;   p_align
 phdrsize  equ  $ - phdr
@@ -39,4 +42,4 @@ _start:
   mov eax, 1
   int 0x80
 
-filesize      equ     $ - $$
+codesize      equ     $ - _start