@isopodlabs/binary_libs 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CompoundDocument.d.ts +10 -10
- package/dist/CompoundDocument.js +45 -43
- package/dist/arch.js +2 -2
- package/dist/clr.d.ts +75 -54
- package/dist/clr.js +126 -114
- package/dist/elf.d.ts +26 -20
- package/dist/elf.js +61 -61
- package/dist/mach.d.ts +176 -146
- package/dist/mach.js +101 -101
- package/dist/pe.d.ts +133 -103
- package/dist/pe.js +99 -95
- package/package.json +4 -5
package/dist/pe.d.ts
CHANGED
|
@@ -1,40 +1,41 @@
|
|
|
1
|
-
import * as
|
|
1
|
+
import * as bin from '@isopodlabs/binary';
|
|
2
|
+
import { ReadCLR } from './clr';
|
|
2
3
|
declare const FILE_HEADER: {
|
|
3
|
-
Machine:
|
|
4
|
-
NumberOfSections:
|
|
5
|
-
TimeDateStamp:
|
|
6
|
-
PointerToSymbolTable:
|
|
7
|
-
NumberOfSymbols:
|
|
8
|
-
SizeOfOptionalHeader:
|
|
9
|
-
Characteristics:
|
|
4
|
+
Machine: bin.TypeT<string>;
|
|
5
|
+
NumberOfSections: bin.TypeT<number>;
|
|
6
|
+
TimeDateStamp: bin.TypeT<number>;
|
|
7
|
+
PointerToSymbolTable: bin.TypeT<number>;
|
|
8
|
+
NumberOfSymbols: bin.TypeT<number>;
|
|
9
|
+
SizeOfOptionalHeader: bin.TypeT<number>;
|
|
10
|
+
Characteristics: bin.TypeT<number>;
|
|
10
11
|
};
|
|
11
|
-
declare const Section_base: (new (s:
|
|
12
|
+
declare const Section_base: (new (s: bin._stream) => {
|
|
12
13
|
Name: string;
|
|
13
14
|
VirtualSize: number;
|
|
14
|
-
VirtualAddress:
|
|
15
|
+
VirtualAddress: bin.hex<number | bigint>;
|
|
15
16
|
SizeOfRawData: number;
|
|
16
|
-
PointerToRawData:
|
|
17
|
-
PointerToRelocations:
|
|
18
|
-
PointerToLinenumbers:
|
|
17
|
+
PointerToRawData: bin.hex<number | bigint>;
|
|
18
|
+
PointerToRelocations: bin.hex<number | bigint>;
|
|
19
|
+
PointerToLinenumbers: bin.hex<number | bigint>;
|
|
19
20
|
NumberOfRelocations: number;
|
|
20
21
|
NumberOfLinenumbers: number;
|
|
21
22
|
Characteristics: Record<string, bigint | boolean> | Record<string, number | boolean>;
|
|
22
23
|
}) & {
|
|
23
|
-
get: <X extends abstract new (...args: any) => any>(this: X, s:
|
|
24
|
+
get: <X extends abstract new (...args: any) => any>(this: X, s: bin._stream) => InstanceType<X>;
|
|
24
25
|
};
|
|
25
26
|
export declare class Section extends Section_base {
|
|
26
|
-
data?:
|
|
27
|
-
constructor(r:
|
|
27
|
+
data?: bin.MappedMemory;
|
|
28
|
+
constructor(r: bin.stream);
|
|
28
29
|
get flags(): number;
|
|
29
30
|
}
|
|
30
31
|
export declare class COFF {
|
|
31
32
|
static check(data: Uint8Array): boolean;
|
|
32
|
-
header:
|
|
33
|
-
opt?:
|
|
33
|
+
header: bin.ReadType<typeof FILE_HEADER>;
|
|
34
|
+
opt?: bin.ReadType<typeof OPTIONAL_HEADER> & (bin.ReadType<typeof OPTIONAL_HEADER32> | bin.ReadType<typeof OPTIONAL_HEADER64>);
|
|
34
35
|
sections: Section[];
|
|
35
36
|
constructor(data: Uint8Array);
|
|
36
37
|
}
|
|
37
|
-
declare const COFFSymbol_base: (new (s:
|
|
38
|
+
declare const COFFSymbol_base: (new (s: bin._stream) => {
|
|
38
39
|
a: number;
|
|
39
40
|
b: number;
|
|
40
41
|
c: number;
|
|
@@ -46,116 +47,145 @@ declare const COFFSymbol_base: (new (s: binary._stream) => {
|
|
|
46
47
|
Symbol: string;
|
|
47
48
|
Module: string;
|
|
48
49
|
}) & {
|
|
49
|
-
get: <X extends abstract new (...args: any) => any>(this: X, s:
|
|
50
|
+
get: <X extends abstract new (...args: any) => any>(this: X, s: bin._stream) => InstanceType<X>;
|
|
50
51
|
};
|
|
51
52
|
export declare class COFFSymbol extends COFFSymbol_base {
|
|
52
53
|
static check(data: Uint8Array): boolean;
|
|
53
54
|
constructor(data: Uint8Array);
|
|
54
55
|
}
|
|
55
|
-
export declare class pe_stream extends
|
|
56
|
+
export declare class pe_stream extends bin.stream {
|
|
56
57
|
pe: PE;
|
|
57
58
|
constructor(pe: PE, data: Uint8Array);
|
|
59
|
+
translate_rva(addr: number): bin.MappedMemory | undefined;
|
|
58
60
|
get_rva(): Uint8Array | undefined;
|
|
59
61
|
}
|
|
60
62
|
declare const DOS_HEADER: {
|
|
61
|
-
magic:
|
|
62
|
-
cblp:
|
|
63
|
-
cp:
|
|
64
|
-
crlc:
|
|
65
|
-
cparhdr:
|
|
66
|
-
minalloc:
|
|
67
|
-
maxalloc:
|
|
68
|
-
ss:
|
|
69
|
-
sp:
|
|
70
|
-
csum:
|
|
71
|
-
ip:
|
|
72
|
-
cs:
|
|
73
|
-
lfarlc:
|
|
74
|
-
ovno:
|
|
63
|
+
magic: bin.TypeT<number>;
|
|
64
|
+
cblp: bin.TypeT<number>;
|
|
65
|
+
cp: bin.TypeT<number>;
|
|
66
|
+
crlc: bin.TypeT<number>;
|
|
67
|
+
cparhdr: bin.TypeT<number>;
|
|
68
|
+
minalloc: bin.TypeT<number>;
|
|
69
|
+
maxalloc: bin.TypeT<bin.hex<number | bigint>>;
|
|
70
|
+
ss: bin.TypeT<number>;
|
|
71
|
+
sp: bin.TypeT<number>;
|
|
72
|
+
csum: bin.TypeT<number>;
|
|
73
|
+
ip: bin.TypeT<number>;
|
|
74
|
+
cs: bin.TypeT<number>;
|
|
75
|
+
lfarlc: bin.TypeT<number>;
|
|
76
|
+
ovno: bin.TypeT<number>;
|
|
75
77
|
};
|
|
76
78
|
declare const EXE_HEADER: {
|
|
77
|
-
res:
|
|
78
|
-
oemid:
|
|
79
|
-
oeminfo:
|
|
80
|
-
res2:
|
|
81
|
-
lfanew:
|
|
79
|
+
res: bin.TypeT<number[]>;
|
|
80
|
+
oemid: bin.TypeT<number>;
|
|
81
|
+
oeminfo: bin.TypeT<number>;
|
|
82
|
+
res2: bin.TypeT<number[]>;
|
|
83
|
+
lfanew: bin.TypeT<number>;
|
|
82
84
|
};
|
|
83
85
|
interface DirectoryInfo {
|
|
84
|
-
read
|
|
86
|
+
read: (pe: PE, data: bin.MappedMemory) => unknown;
|
|
85
87
|
}
|
|
86
|
-
export declare const DIRECTORIES:
|
|
88
|
+
export declare const DIRECTORIES: {
|
|
89
|
+
readonly EXPORT: {
|
|
90
|
+
readonly read: (pe: PE, data: bin.MappedMemory) => (string | number | bin.MappedMemory | undefined)[][];
|
|
91
|
+
};
|
|
92
|
+
readonly IMPORT: {
|
|
93
|
+
readonly read: (pe: PE, data: bin.MappedMemory) => [string, any][];
|
|
94
|
+
};
|
|
95
|
+
readonly RESOURCE: {
|
|
96
|
+
readonly read: (pe: PE, data: bin.MappedMemory) => Record<string, any>;
|
|
97
|
+
};
|
|
98
|
+
readonly EXCEPTION: DirectoryInfo;
|
|
99
|
+
readonly SECURITY: DirectoryInfo;
|
|
100
|
+
readonly BASERELOC: DirectoryInfo;
|
|
101
|
+
readonly DEBUG_DIR: DirectoryInfo;
|
|
102
|
+
readonly ARCHITECTURE: DirectoryInfo;
|
|
103
|
+
readonly GLOBALPTR: DirectoryInfo;
|
|
104
|
+
readonly TLS: DirectoryInfo;
|
|
105
|
+
readonly LOAD_CONFIG: DirectoryInfo;
|
|
106
|
+
readonly BOUND_IMPORT: DirectoryInfo;
|
|
107
|
+
readonly IAT: DirectoryInfo;
|
|
108
|
+
readonly DELAY_IMPORT: DirectoryInfo;
|
|
109
|
+
readonly CLR_DESCRIPTOR: {
|
|
110
|
+
readonly read: typeof ReadCLR;
|
|
111
|
+
};
|
|
112
|
+
};
|
|
113
|
+
type DirectoryName = keyof typeof DIRECTORIES;
|
|
114
|
+
type DirectoryReadResult<T extends DirectoryName> = typeof DIRECTORIES[T] extends {
|
|
115
|
+
read: (pe: PE, data: bin.MappedMemory) => infer R;
|
|
116
|
+
} ? R : bin.MappedMemory | undefined;
|
|
87
117
|
export declare const DATA_DIRECTORY: {
|
|
88
|
-
VirtualAddress:
|
|
89
|
-
Size:
|
|
118
|
+
VirtualAddress: bin.TypeT<number>;
|
|
119
|
+
Size: bin.TypeT<number>;
|
|
90
120
|
};
|
|
91
|
-
type Directory =
|
|
121
|
+
type Directory = bin.ReadType<typeof DATA_DIRECTORY>;
|
|
92
122
|
declare const OPTIONAL_HEADER: {
|
|
93
|
-
Magic:
|
|
94
|
-
MajorLinkerVersion:
|
|
95
|
-
MinorLinkerVersion:
|
|
96
|
-
SizeOfCode:
|
|
97
|
-
SizeOfInitializedData:
|
|
98
|
-
SizeOfUninitializedData:
|
|
99
|
-
AddressOfEntryPoint:
|
|
100
|
-
BaseOfCode:
|
|
123
|
+
Magic: bin.TypeT<string>;
|
|
124
|
+
MajorLinkerVersion: bin.TypeT<number>;
|
|
125
|
+
MinorLinkerVersion: bin.TypeT<number>;
|
|
126
|
+
SizeOfCode: bin.TypeT<number>;
|
|
127
|
+
SizeOfInitializedData: bin.TypeT<number>;
|
|
128
|
+
SizeOfUninitializedData: bin.TypeT<number>;
|
|
129
|
+
AddressOfEntryPoint: bin.TypeT<bin.hex<number | bigint>>;
|
|
130
|
+
BaseOfCode: bin.TypeT<bin.hex<number | bigint>>;
|
|
101
131
|
};
|
|
102
132
|
declare const OPTIONAL_HEADER32: {
|
|
103
|
-
BaseOfData:
|
|
104
|
-
ImageBase:
|
|
105
|
-
SectionAlignment:
|
|
106
|
-
FileAlignment:
|
|
107
|
-
MajorOperatingSystemVersion:
|
|
108
|
-
MinorOperatingSystemVersion:
|
|
109
|
-
MajorImageVersion:
|
|
110
|
-
MinorImageVersion:
|
|
111
|
-
MajorSubsystemVersion:
|
|
112
|
-
MinorSubsystemVersion:
|
|
113
|
-
Win32VersionValue:
|
|
114
|
-
SizeOfImage:
|
|
115
|
-
SizeOfHeaders:
|
|
116
|
-
CheckSum:
|
|
117
|
-
Subsystem:
|
|
118
|
-
DllCharacteristics:
|
|
119
|
-
SizeOfStackReserve:
|
|
120
|
-
SizeOfStackCommit:
|
|
121
|
-
SizeOfHeapReserve:
|
|
122
|
-
SizeOfHeapCommit:
|
|
123
|
-
LoaderFlags:
|
|
124
|
-
DataDirectory:
|
|
133
|
+
BaseOfData: bin.TypeT<bin.hex<number | bigint>>;
|
|
134
|
+
ImageBase: bin.TypeT<bin.hex<number | bigint>>;
|
|
135
|
+
SectionAlignment: bin.TypeT<number>;
|
|
136
|
+
FileAlignment: bin.TypeT<number>;
|
|
137
|
+
MajorOperatingSystemVersion: bin.TypeT<number>;
|
|
138
|
+
MinorOperatingSystemVersion: bin.TypeT<number>;
|
|
139
|
+
MajorImageVersion: bin.TypeT<number>;
|
|
140
|
+
MinorImageVersion: bin.TypeT<number>;
|
|
141
|
+
MajorSubsystemVersion: bin.TypeT<number>;
|
|
142
|
+
MinorSubsystemVersion: bin.TypeT<number>;
|
|
143
|
+
Win32VersionValue: bin.TypeT<number>;
|
|
144
|
+
SizeOfImage: bin.TypeT<number>;
|
|
145
|
+
SizeOfHeaders: bin.TypeT<number>;
|
|
146
|
+
CheckSum: bin.TypeT<number>;
|
|
147
|
+
Subsystem: bin.TypeT<number>;
|
|
148
|
+
DllCharacteristics: bin.TypeT<Record<string, bigint | boolean> | Record<string, number | boolean>>;
|
|
149
|
+
SizeOfStackReserve: bin.TypeT<number>;
|
|
150
|
+
SizeOfStackCommit: bin.TypeT<number>;
|
|
151
|
+
SizeOfHeapReserve: bin.TypeT<number>;
|
|
152
|
+
SizeOfHeapCommit: bin.TypeT<number>;
|
|
153
|
+
LoaderFlags: bin.TypeT<number>;
|
|
154
|
+
DataDirectory: bin.TypeT<Record<string, {
|
|
125
155
|
VirtualAddress: number;
|
|
126
156
|
Size: number;
|
|
127
157
|
}>>;
|
|
128
158
|
};
|
|
129
159
|
declare const OPTIONAL_HEADER64: {
|
|
130
|
-
ImageBase:
|
|
131
|
-
SectionAlignment:
|
|
132
|
-
FileAlignment:
|
|
133
|
-
MajorOperatingSystemVersion:
|
|
134
|
-
MinorOperatingSystemVersion:
|
|
135
|
-
MajorImageVersion:
|
|
136
|
-
MinorImageVersion:
|
|
137
|
-
MajorSubsystemVersion:
|
|
138
|
-
MinorSubsystemVersion:
|
|
139
|
-
Win32VersionValue:
|
|
140
|
-
SizeOfImage:
|
|
141
|
-
SizeOfHeaders:
|
|
142
|
-
CheckSum:
|
|
143
|
-
Subsystem:
|
|
144
|
-
DllCharacteristics:
|
|
145
|
-
SizeOfStackReserve:
|
|
146
|
-
SizeOfStackCommit:
|
|
147
|
-
SizeOfHeapReserve:
|
|
148
|
-
SizeOfHeapCommit:
|
|
149
|
-
LoaderFlags:
|
|
150
|
-
DataDirectory:
|
|
160
|
+
ImageBase: bin.TypeT<bin.hex<number | bigint>>;
|
|
161
|
+
SectionAlignment: bin.TypeT<number>;
|
|
162
|
+
FileAlignment: bin.TypeT<number>;
|
|
163
|
+
MajorOperatingSystemVersion: bin.TypeT<number>;
|
|
164
|
+
MinorOperatingSystemVersion: bin.TypeT<number>;
|
|
165
|
+
MajorImageVersion: bin.TypeT<number>;
|
|
166
|
+
MinorImageVersion: bin.TypeT<number>;
|
|
167
|
+
MajorSubsystemVersion: bin.TypeT<number>;
|
|
168
|
+
MinorSubsystemVersion: bin.TypeT<number>;
|
|
169
|
+
Win32VersionValue: bin.TypeT<number>;
|
|
170
|
+
SizeOfImage: bin.TypeT<number>;
|
|
171
|
+
SizeOfHeaders: bin.TypeT<number>;
|
|
172
|
+
CheckSum: bin.TypeT<number>;
|
|
173
|
+
Subsystem: bin.TypeT<number>;
|
|
174
|
+
DllCharacteristics: bin.TypeT<Record<string, bigint | boolean> | Record<string, number | boolean>>;
|
|
175
|
+
SizeOfStackReserve: bin.TypeT<bigint>;
|
|
176
|
+
SizeOfStackCommit: bin.TypeT<bigint>;
|
|
177
|
+
SizeOfHeapReserve: bin.TypeT<bigint>;
|
|
178
|
+
SizeOfHeapCommit: bin.TypeT<bigint>;
|
|
179
|
+
LoaderFlags: bin.TypeT<number>;
|
|
180
|
+
DataDirectory: bin.TypeT<Record<string, {
|
|
151
181
|
VirtualAddress: number;
|
|
152
182
|
Size: number;
|
|
153
183
|
}>>;
|
|
154
184
|
};
|
|
155
185
|
export declare class PE {
|
|
156
186
|
static check(data: Uint8Array): boolean;
|
|
157
|
-
header:
|
|
158
|
-
opt?:
|
|
187
|
+
header: bin.ReadType<typeof DOS_HEADER> & bin.ReadType<typeof EXE_HEADER>;
|
|
188
|
+
opt?: bin.ReadType<typeof OPTIONAL_HEADER> & (bin.ReadType<typeof OPTIONAL_HEADER32> | bin.ReadType<typeof OPTIONAL_HEADER64>);
|
|
159
189
|
sections: Section[];
|
|
160
190
|
constructor(data: Uint8Array);
|
|
161
191
|
get directories(): Record<string, {
|
|
@@ -164,14 +194,14 @@ export declare class PE {
|
|
|
164
194
|
}> | undefined;
|
|
165
195
|
FindSectionRVA(rva: number): Section | undefined;
|
|
166
196
|
FindSectionRaw(addr: number): Section | undefined;
|
|
167
|
-
GetDataRVA(rva: number, size?: number):
|
|
197
|
+
GetDataRVA(rva: number, size?: number): bin.MappedMemory | undefined;
|
|
168
198
|
GetDataRaw(addr: number, size: number): Uint8Array | undefined;
|
|
169
|
-
GetDataDir(dir: Directory):
|
|
170
|
-
ReadDirectory(name:
|
|
199
|
+
GetDataDir(dir: Directory): bin.MappedMemory | undefined;
|
|
200
|
+
ReadDirectory<T extends DirectoryName>(name: T): DirectoryReadResult<T>;
|
|
171
201
|
}
|
|
172
|
-
export declare function ReadExports(file: pe_stream): (string | number |
|
|
202
|
+
export declare function ReadExports(file: pe_stream): (string | number | bin.MappedMemory | undefined)[][];
|
|
173
203
|
export declare class DLLImports extends Array {
|
|
174
204
|
}
|
|
175
205
|
export declare function ReadImports(file: pe_stream): [string, any][];
|
|
176
|
-
export declare function ReadResourceDirectory(file:
|
|
206
|
+
export declare function ReadResourceDirectory(file: pe_stream, type?: number): Record<string, any>;
|
|
177
207
|
export {};
|