Rizin
unix-like reverse engineering framework and cli tools
Main Page
Related Pages
Modules
Namespaces
Namespace List
Namespace Members
All
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
z
Functions
_
a
b
c
d
e
f
g
h
i
l
m
n
p
r
s
t
u
v
w
Variables
_
a
b
c
d
e
f
g
h
i
k
l
m
n
o
p
r
s
t
u
v
w
x
z
Enumerations
Classes
Class List
Class Index
Class Hierarchy
Class Members
All
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
~
Functions
_
a
b
c
d
e
f
g
h
i
l
m
o
p
r
s
t
u
v
w
x
z
~
Variables
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerations
Enumerator
b
d
e
h
i
k
n
p
r
s
w
Properties
Events
Related Functions
Files
File List
File Members
All
$
.
[
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
[
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
$
.
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Typedefs
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
y
z
Enumerator
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Macros
_
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
•
All
Classes
Namespaces
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Properties
Events
Friends
Macros
Modules
Pages
p9bin.h
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: 2008 Anant Narayanan
2
// SPDX-License-Identifier: LGPL-3.0-only
3
4
#ifndef P9BIN_H
5
#define P9BIN_H
6
7
#include <
rz_util.h
>
8
9
/*
10
* Binary loader for Plan 9's a.out executable format
11
*
12
* Copyright (C) 2008 Anant Narayanan
13
*/
14
struct
plan9_exec
{
15
unsigned
long
magic
;
/* magic number */
16
unsigned
long
text
;
/* size of text segment */
17
unsigned
long
data
;
/* size of initialized data */
18
unsigned
long
bss
;
/* size of uninitialized data */
19
unsigned
long
syms
;
/* size of symbol table */
20
unsigned
long
entry
;
/* entry point */
21
unsigned
long
spsz
;
/* size of pc/sp offset table */
22
unsigned
long
pcsz
;
/* size of pc/line number table */
23
};
24
25
#define HDR_MAGIC 0x00008000
/* header expansion */
26
27
#define _MAGIC(f, b) ((f) | ((((4 * (b)) + 0) * (b)) + 7))
28
#define A_MAGIC _MAGIC(0, 8)
/* 68020 */
29
#define I_MAGIC _MAGIC(0, 11)
/* intel 386 */
30
#define J_MAGIC _MAGIC(0, 12)
/* intel 960 (retired) */
31
#define K_MAGIC _MAGIC(0, 13)
/* sparc */
32
#define V_MAGIC _MAGIC(0, 16)
/* mips 3000 BE */
33
#define X_MAGIC _MAGIC(0, 17)
/* att dsp 3210 (retired) */
34
#define M_MAGIC _MAGIC(0, 18)
/* mips 4000 BE */
35
#define D_MAGIC _MAGIC(0, 19)
/* amd 29000 (retired) */
36
#define E_MAGIC _MAGIC(0, 20)
/* arm */
37
#define Q_MAGIC _MAGIC(0, 21)
/* powerpc */
38
#define N_MAGIC _MAGIC(0, 22)
/* mips 4000 LE */
39
#define L_MAGIC _MAGIC(0, 23)
/* dec alpha */
40
#define P_MAGIC _MAGIC(0, 24)
/* mips 3000 LE */
41
#define U_MAGIC _MAGIC(0, 25)
/* sparc64 */
42
#define S_MAGIC _MAGIC(HDR_MAGIC, 26)
/* amd64 */
43
#define T_MAGIC _MAGIC(HDR_MAGIC, 27)
/* powerpc64 */
44
45
#define TOS_SIZE 14
/* Size of Top of Stack: 56 / 4 */
46
#define HDR_SIZE 0x20
47
#define STR_ADDR 0x1000
/* Start Address */
48
#define TXT_ADDR HDR_SIZE + ex.text
/* TEXT Address */
49
#define DAT_ADDR STR_ADDR + PAGE_ALIGN(TXT_ADDR)
/* DATA&BSS Address */
50
51
/*---*/
52
53
#define p9bin_open(x) fopen(x, "r"
)
54
#define p9bin_close(x) fclose(x)
55
56
/* Reads four bytes from b. */
57
int
rz_bin_p9_get_arch
(
RzBuffer
*
b
,
int
*
bits
,
int
*big_endian);
58
59
#endif
bits
int bits(struct state *s, int need)
Definition:
blast.c:72
rz_bin_p9_get_arch
int rz_bin_p9_get_arch(RzBuffer *b, int *bits, int *big_endian)
Definition:
p9bin.c:7
rz_util.h
b
#define b(i)
Definition:
sha256.c:42
plan9_exec
Definition:
p9bin.h:14
plan9_exec::magic
unsigned long magic
Definition:
p9bin.h:15
plan9_exec::syms
unsigned long syms
Definition:
p9bin.h:19
plan9_exec::data
unsigned long data
Definition:
p9bin.h:17
plan9_exec::spsz
unsigned long spsz
Definition:
p9bin.h:21
plan9_exec::bss
unsigned long bss
Definition:
p9bin.h:18
plan9_exec::text
unsigned long text
Definition:
p9bin.h:16
plan9_exec::pcsz
unsigned long pcsz
Definition:
p9bin.h:22
plan9_exec::entry
unsigned long entry
Definition:
p9bin.h:20
rz_buf_t
Definition:
rz_buf.h:43
librz
bin
format
p9
p9bin.h
Generated by
1.9.1