NAME=ELF: corkami tiny.elf - entry0
FILE=bins/elf/analysis/tiny.elf
ARGS=-1
CMDS=<<EOF
%v entry0; e asm.bytes=true; pdq 4 @ entry0;
echo -- 1 --
oml
echo -- 2 --
iSS
echo -- 3 --
e log.level=1
aF
echo -- 4 --
e analysis.in=io.maps
aF
e log.level=3
pd 10
afb
echo -- 4.5 --
e io.ff=false
pd 4
e io.ff=true
echo -- 5 --
af-
e io.0xff=0
e analysis.nonull=16
aF
ahi du @ 0x10020
pd 10
afb
echo -- 6 --
af-
e analysis.nonull=0
e analysis.from=0
e analysis.to=0x30000
e analysis.limits=true
aF
pd 10
afb
echo -- 7 --
afb-*
afb
echo -- 8 --
afb+ entry0 entry0 `aos 4`
afb
echo -- 9 --
pdf
EOF
EXPECT=<<EOF
WARNING: Failed to read ELF header (e_phnum).
WARNING: Failed to read ELF header (e_shentsize).
WARNING: Failed to read ELF header (e_shnum).
WARNING: Failed to read ELF header (e_shstrndx).
WARNING: The binary seems to be a tiny elf (45 bytes). Reload e_phnum value.
WARNING: Number of sections is 0.
WARNING: phdr entry: p_offset (0x0) + p_filesz (65568 bytes) > binary size (45 bytes).
WARNING: phdr entry: p_offset (0x0) and p_vaddr (0x10000) are not congruent for p_align (0xc0312ab3).
WARNING: The segment 0 at 0x4 seems to be invalid.
WARNING: ELF header e_shstrndx value (0) >= number of sections (0).
WARNING: Failed to initialize section string table.
0x10020
WARNING: Failed to read chunk of size 0x101 at 0x10020 from io.
0x00010020   entry0:
0x00010020                 b32a  mov bl, 0x2a
0x00010022                 31c0  xor eax, eax
0x00010024                   40  inc eax
0x00010025                 cd80  int 0x80
-- 1 --
 1 fd: 3 +0x00000000 0x00010000 * 0x0002001f r-- fmap.LOAD0
-- 2 --
     paddr    size      vaddr   vsize      align perm name  
------------------------------------------------------------
0x00000000 0x10020 0x00010000 0x10020 0xc0312ab3 -r-- LOAD0
0x00000000    0x2d 0x00010000    0x2d        0x0 -rw- ehdr
-- 3 --
VERBOSE: Address not mapped or not executable at 0x10020.
-- 4 --
WARNING: Failed to read chunk of size 0x101 at 0x10020 from io.
/ entry0();
|           0x00010020      b32a           mov   bl, 0x2a              ; '*' ; 42
|           0x00010022      31c0           xor   eax, eax
|           0x00010024      40             inc   eax
|           0x00010025      cd80           int   0x80
|           0x00010027      003400         add   byte [eax+eax*1], dh
|           0x0001002a      2000           and   byte [eax], al
\           0x0001002c      01ff           add   edi, edi
            0x0001002e      ff             invalid
            0x0001002f      ff             invalid
            0x00010030      ff             invalid
0x00010020 0x0001002e 00:0000 14
-- 4.5 --
ERROR: Incomplete buffer read: expected 0x101 bytes, got 13 bytes.
WARNING: Failed to read chunk of size 0x101 at 0x10020 from io.
/ entry0();
|           0x00010020      b32a           mov   bl, 0x2a              ; '*'
|           0x00010022      31c0           xor   eax, eax
|           0x00010024      40             inc   eax
|           0x00010025      cd80           int   0x80
-- 5 --
WARNING: Failed to read chunk of size 0x101 at 0x10020 from io.
/ entry0();
|           0x00010020      b32a           mov   bl, 42                ; '*'
|           0x00010022      31c0           xor   eax, eax
|           0x00010024      40             inc   eax
|           0x00010025      cd80           int   0x80
|           0x00010027      003400         add   byte [eax+eax*1], dh
|           0x0001002a      2000           and   byte [eax], al
\           0x0001002c      0100           add   dword [eax], eax
            0x0001002e      0000           add   byte [eax], al
            0x00010030      0000           add   byte [eax], al
            0x00010032      0000           add   byte [eax], al
0x00010020 0x0001002e 00:0000 14
-- 6 --
WARNING: Failed to read chunk of size 0x101 at 0x10020 from io.
/ entry0();
|           0x00010020      b32a           mov   bl, 42                ; '*'
|           0x00010022      31c0           xor   eax, eax
|           0x00010024      40             inc   eax
|           0x00010025      cd80           int   0x80
|           0x00010027      003400         add   byte [eax+eax*1], dh
|           0x0001002a      2000           and   byte [eax], al
|           0x0001002c      0100           add   dword [eax], eax
|           0x0001002e      0000           add   byte [eax], al
|           0x00010030      0000           add   byte [eax], al
|           0x00010032      0000           add   byte [eax], al
0x00010020 0x0001fc1e 00:0000 64510 j 0x0001fc1e
0x0001fc1e 0x0002f81c 00:0000 64510 j 0x0002f81c
0x0002f81c 0x00030000 00:0000 2020
-- 7 --
-- 8 --
0x00010020 0x00010027 00:0000 7
-- 9 --
/ entry0();
|           0x00010020      b32a           mov   bl, 42                ; '*'
|           0x00010022      31c0           xor   eax, eax
|           0x00010024      40             inc   eax
\           0x00010025      cd80           int   0x80
EOF
RUN
