@isopodlabs/binary_libs 1.2.0 → 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/LICENSE.txt +21 -0
- package/README.md +4 -1
- 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/cvinfo.d.ts +26 -0
- package/dist/cvinfo.js +930 -0
- 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 +162 -132
- package/dist/pe.js +178 -172
- package/package.json +46 -43
- package/dist/CompoundDocument.js.map +0 -1
- package/dist/arch.js.map +0 -1
- package/dist/clr.js.map +0 -1
- package/dist/elf.js.map +0 -1
- package/dist/mach.js.map +0 -1
- package/dist/pe.js.map +0 -1
package/dist/pe.d.ts
CHANGED
|
@@ -1,136 +1,191 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
|
|
3
|
-
magic: binary.TypeT<number>;
|
|
4
|
-
cblp: binary.TypeT<number>;
|
|
5
|
-
cp: binary.TypeT<number>;
|
|
6
|
-
crlc: binary.TypeT<number>;
|
|
7
|
-
cparhdr: binary.TypeT<number>;
|
|
8
|
-
minalloc: binary.TypeT<number>;
|
|
9
|
-
maxalloc: binary.TypeT<binary.hex<number | bigint>>;
|
|
10
|
-
ss: binary.TypeT<number>;
|
|
11
|
-
sp: binary.TypeT<number>;
|
|
12
|
-
csum: binary.TypeT<number>;
|
|
13
|
-
ip: binary.TypeT<number>;
|
|
14
|
-
cs: binary.TypeT<number>;
|
|
15
|
-
lfarlc: binary.TypeT<number>;
|
|
16
|
-
ovno: binary.TypeT<number>;
|
|
17
|
-
};
|
|
18
|
-
declare const EXE_HEADER: {
|
|
19
|
-
res: binary.TypeT<number[]>;
|
|
20
|
-
oemid: binary.TypeT<number>;
|
|
21
|
-
oeminfo: binary.TypeT<number>;
|
|
22
|
-
res2: binary.TypeT<number[]>;
|
|
23
|
-
lfanew: binary.TypeT<number>;
|
|
24
|
-
};
|
|
25
|
-
export declare class pe_stream extends binary.stream {
|
|
26
|
-
pe: PE;
|
|
27
|
-
constructor(pe: PE, data: Uint8Array);
|
|
28
|
-
get_rva(): Uint8Array | undefined;
|
|
29
|
-
}
|
|
1
|
+
import * as bin from '@isopodlabs/binary';
|
|
2
|
+
import { ReadCLR } from './clr';
|
|
30
3
|
declare const FILE_HEADER: {
|
|
31
|
-
Machine:
|
|
32
|
-
NumberOfSections:
|
|
33
|
-
TimeDateStamp:
|
|
34
|
-
PointerToSymbolTable:
|
|
35
|
-
NumberOfSymbols:
|
|
36
|
-
SizeOfOptionalHeader:
|
|
37
|
-
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>;
|
|
38
11
|
};
|
|
39
|
-
declare const Section_base: (new (s:
|
|
12
|
+
declare const Section_base: (new (s: bin._stream) => {
|
|
40
13
|
Name: string;
|
|
41
14
|
VirtualSize: number;
|
|
42
|
-
VirtualAddress:
|
|
15
|
+
VirtualAddress: bin.hex<number | bigint>;
|
|
43
16
|
SizeOfRawData: number;
|
|
44
|
-
PointerToRawData:
|
|
45
|
-
PointerToRelocations:
|
|
46
|
-
PointerToLinenumbers:
|
|
17
|
+
PointerToRawData: bin.hex<number | bigint>;
|
|
18
|
+
PointerToRelocations: bin.hex<number | bigint>;
|
|
19
|
+
PointerToLinenumbers: bin.hex<number | bigint>;
|
|
47
20
|
NumberOfRelocations: number;
|
|
48
21
|
NumberOfLinenumbers: number;
|
|
49
22
|
Characteristics: Record<string, bigint | boolean> | Record<string, number | boolean>;
|
|
50
23
|
}) & {
|
|
51
|
-
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>;
|
|
52
25
|
};
|
|
53
26
|
export declare class Section extends Section_base {
|
|
54
|
-
data?:
|
|
55
|
-
constructor(r:
|
|
27
|
+
data?: bin.MappedMemory;
|
|
28
|
+
constructor(r: bin.stream);
|
|
56
29
|
get flags(): number;
|
|
57
30
|
}
|
|
31
|
+
export declare class COFF {
|
|
32
|
+
static check(data: Uint8Array): boolean;
|
|
33
|
+
header: bin.ReadType<typeof FILE_HEADER>;
|
|
34
|
+
opt?: bin.ReadType<typeof OPTIONAL_HEADER> & (bin.ReadType<typeof OPTIONAL_HEADER32> | bin.ReadType<typeof OPTIONAL_HEADER64>);
|
|
35
|
+
sections: Section[];
|
|
36
|
+
constructor(data: Uint8Array);
|
|
37
|
+
}
|
|
38
|
+
declare const COFFSymbol_base: (new (s: bin._stream) => {
|
|
39
|
+
a: number;
|
|
40
|
+
b: number;
|
|
41
|
+
c: number;
|
|
42
|
+
Architecture: string;
|
|
43
|
+
Id: number;
|
|
44
|
+
Length: number;
|
|
45
|
+
Value: number;
|
|
46
|
+
Type: number;
|
|
47
|
+
Symbol: string;
|
|
48
|
+
Module: string;
|
|
49
|
+
}) & {
|
|
50
|
+
get: <X extends abstract new (...args: any) => any>(this: X, s: bin._stream) => InstanceType<X>;
|
|
51
|
+
};
|
|
52
|
+
export declare class COFFSymbol extends COFFSymbol_base {
|
|
53
|
+
static check(data: Uint8Array): boolean;
|
|
54
|
+
constructor(data: Uint8Array);
|
|
55
|
+
}
|
|
56
|
+
export declare class pe_stream extends bin.stream {
|
|
57
|
+
pe: PE;
|
|
58
|
+
constructor(pe: PE, data: Uint8Array);
|
|
59
|
+
translate_rva(addr: number): bin.MappedMemory | undefined;
|
|
60
|
+
get_rva(): Uint8Array | undefined;
|
|
61
|
+
}
|
|
62
|
+
declare const DOS_HEADER: {
|
|
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>;
|
|
77
|
+
};
|
|
78
|
+
declare const EXE_HEADER: {
|
|
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>;
|
|
84
|
+
};
|
|
58
85
|
interface DirectoryInfo {
|
|
59
|
-
read
|
|
86
|
+
read: (pe: PE, data: bin.MappedMemory) => unknown;
|
|
60
87
|
}
|
|
61
|
-
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;
|
|
62
117
|
export declare const DATA_DIRECTORY: {
|
|
63
|
-
VirtualAddress:
|
|
64
|
-
Size:
|
|
118
|
+
VirtualAddress: bin.TypeT<number>;
|
|
119
|
+
Size: bin.TypeT<number>;
|
|
65
120
|
};
|
|
66
|
-
type Directory =
|
|
121
|
+
type Directory = bin.ReadType<typeof DATA_DIRECTORY>;
|
|
67
122
|
declare const OPTIONAL_HEADER: {
|
|
68
|
-
Magic:
|
|
69
|
-
MajorLinkerVersion:
|
|
70
|
-
MinorLinkerVersion:
|
|
71
|
-
SizeOfCode:
|
|
72
|
-
SizeOfInitializedData:
|
|
73
|
-
SizeOfUninitializedData:
|
|
74
|
-
AddressOfEntryPoint:
|
|
75
|
-
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>>;
|
|
76
131
|
};
|
|
77
132
|
declare const OPTIONAL_HEADER32: {
|
|
78
|
-
BaseOfData:
|
|
79
|
-
ImageBase:
|
|
80
|
-
SectionAlignment:
|
|
81
|
-
FileAlignment:
|
|
82
|
-
MajorOperatingSystemVersion:
|
|
83
|
-
MinorOperatingSystemVersion:
|
|
84
|
-
MajorImageVersion:
|
|
85
|
-
MinorImageVersion:
|
|
86
|
-
MajorSubsystemVersion:
|
|
87
|
-
MinorSubsystemVersion:
|
|
88
|
-
Win32VersionValue:
|
|
89
|
-
SizeOfImage:
|
|
90
|
-
SizeOfHeaders:
|
|
91
|
-
CheckSum:
|
|
92
|
-
Subsystem:
|
|
93
|
-
DllCharacteristics:
|
|
94
|
-
SizeOfStackReserve:
|
|
95
|
-
SizeOfStackCommit:
|
|
96
|
-
SizeOfHeapReserve:
|
|
97
|
-
SizeOfHeapCommit:
|
|
98
|
-
LoaderFlags:
|
|
99
|
-
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, {
|
|
100
155
|
VirtualAddress: number;
|
|
101
156
|
Size: number;
|
|
102
157
|
}>>;
|
|
103
158
|
};
|
|
104
159
|
declare const OPTIONAL_HEADER64: {
|
|
105
|
-
ImageBase:
|
|
106
|
-
SectionAlignment:
|
|
107
|
-
FileAlignment:
|
|
108
|
-
MajorOperatingSystemVersion:
|
|
109
|
-
MinorOperatingSystemVersion:
|
|
110
|
-
MajorImageVersion:
|
|
111
|
-
MinorImageVersion:
|
|
112
|
-
MajorSubsystemVersion:
|
|
113
|
-
MinorSubsystemVersion:
|
|
114
|
-
Win32VersionValue:
|
|
115
|
-
SizeOfImage:
|
|
116
|
-
SizeOfHeaders:
|
|
117
|
-
CheckSum:
|
|
118
|
-
Subsystem:
|
|
119
|
-
DllCharacteristics:
|
|
120
|
-
SizeOfStackReserve:
|
|
121
|
-
SizeOfStackCommit:
|
|
122
|
-
SizeOfHeapReserve:
|
|
123
|
-
SizeOfHeapCommit:
|
|
124
|
-
LoaderFlags:
|
|
125
|
-
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, {
|
|
126
181
|
VirtualAddress: number;
|
|
127
182
|
Size: number;
|
|
128
183
|
}>>;
|
|
129
184
|
};
|
|
130
185
|
export declare class PE {
|
|
131
186
|
static check(data: Uint8Array): boolean;
|
|
132
|
-
header:
|
|
133
|
-
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>);
|
|
134
189
|
sections: Section[];
|
|
135
190
|
constructor(data: Uint8Array);
|
|
136
191
|
get directories(): Record<string, {
|
|
@@ -139,39 +194,14 @@ export declare class PE {
|
|
|
139
194
|
}> | undefined;
|
|
140
195
|
FindSectionRVA(rva: number): Section | undefined;
|
|
141
196
|
FindSectionRaw(addr: number): Section | undefined;
|
|
142
|
-
GetDataRVA(rva: number, size?: number):
|
|
197
|
+
GetDataRVA(rva: number, size?: number): bin.MappedMemory | undefined;
|
|
143
198
|
GetDataRaw(addr: number, size: number): Uint8Array | undefined;
|
|
144
|
-
GetDataDir(dir: Directory):
|
|
145
|
-
ReadDirectory(name:
|
|
146
|
-
}
|
|
147
|
-
export declare class COFF {
|
|
148
|
-
static check(data: Uint8Array): boolean;
|
|
149
|
-
header: binary.ReadType<typeof FILE_HEADER>;
|
|
150
|
-
opt?: binary.ReadType<typeof OPTIONAL_HEADER> & (binary.ReadType<typeof OPTIONAL_HEADER32> | binary.ReadType<typeof OPTIONAL_HEADER64>);
|
|
151
|
-
sections: Section[];
|
|
152
|
-
constructor(data: Uint8Array);
|
|
153
|
-
}
|
|
154
|
-
declare const COFFSymbol_base: (new (s: binary._stream) => {
|
|
155
|
-
a: number;
|
|
156
|
-
b: number;
|
|
157
|
-
c: number;
|
|
158
|
-
Architecture: string;
|
|
159
|
-
Id: number;
|
|
160
|
-
Length: number;
|
|
161
|
-
Value: number;
|
|
162
|
-
Type: number;
|
|
163
|
-
Symbol: string;
|
|
164
|
-
Module: string;
|
|
165
|
-
}) & {
|
|
166
|
-
get: <X extends abstract new (...args: any) => any>(this: X, s: binary._stream) => InstanceType<X>;
|
|
167
|
-
};
|
|
168
|
-
export declare class COFFSymbol extends COFFSymbol_base {
|
|
169
|
-
static check(data: Uint8Array): boolean;
|
|
170
|
-
constructor(data: Uint8Array);
|
|
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 {};
|