@isopodlabs/binary_libs 0.1.5 → 0.2.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.
@@ -0,0 +1,409 @@
1
+ import * as binary from '@isopodlabs/binary';
2
+ import * as pe from './pe';
3
+ declare enum TABLE {
4
+ Module = 0,
5
+ TypeRef = 1,
6
+ TypeDef = 2,
7
+ Field = 4,
8
+ MethodDef = 6,
9
+ Param = 8,
10
+ InterfaceImpl = 9,
11
+ MemberRef = 10,
12
+ Constant = 11,
13
+ CustomAttribute = 12,
14
+ FieldMarshal = 13,
15
+ DeclSecurity = 14,
16
+ ClassLayout = 15,
17
+ FieldLayout = 16,
18
+ StandAloneSig = 17,
19
+ EventMap = 18,
20
+ Event = 20,
21
+ PropertyMap = 21,
22
+ Property = 23,
23
+ MethodSemantics = 24,
24
+ MethodImpl = 25,
25
+ ModuleRef = 26,
26
+ TypeSpec = 27,
27
+ ImplMap = 28,
28
+ FieldRVA = 29,
29
+ Assembly = 32,
30
+ AssemblyProcessor = 33,
31
+ AssemblyOS = 34,
32
+ AssemblyRef = 35,
33
+ AssemblyRefProcessor = 36,
34
+ AssemblyRefOS = 37,
35
+ File = 38,
36
+ ExportedType = 39,
37
+ ManifestResource = 40,
38
+ NestedClass = 41,
39
+ GenericParam = 42,
40
+ MethodSpec = 43,
41
+ GenericParamConstraint = 44
42
+ }
43
+ declare class clr_stream extends binary.stream {
44
+ heaps: Uint8Array[];
45
+ heap_sizes: number;
46
+ table_counts: number[];
47
+ constructor(buffer: Uint8Array, heaps: Uint8Array[], heap_sizes: number, table_counts: number[]);
48
+ getOffset(big: boolean): number;
49
+ getHeap(heap: number): Uint8Array;
50
+ getIndex(table: number): number;
51
+ getCodedIndex(B: number, trans: number[]): number;
52
+ getString(): string;
53
+ getGUID(): string;
54
+ getBlob(): Uint8Array;
55
+ }
56
+ declare class Indexed {
57
+ table: number;
58
+ constructor(table: number);
59
+ get(s: clr_stream): number;
60
+ }
61
+ declare class IndexedList extends Indexed {
62
+ get(s: clr_stream): number;
63
+ }
64
+ declare class CodedIndex {
65
+ trans: number[];
66
+ B: number;
67
+ constructor(trans: number[], B: number);
68
+ get(s: clr_stream): number;
69
+ }
70
+ declare const TableReaders: {
71
+ 0: {
72
+ generation: binary.TypeT<number>;
73
+ name: {
74
+ get(s: clr_stream): string;
75
+ put(_s: clr_stream, _v: number): void;
76
+ };
77
+ mvid: {
78
+ get(s: clr_stream): string;
79
+ put(_s: clr_stream, _v: number): void;
80
+ };
81
+ encid: {
82
+ get(s: clr_stream): string;
83
+ put(_s: clr_stream, _v: number): void;
84
+ };
85
+ encbaseid: {
86
+ get(s: clr_stream): string;
87
+ put(_s: clr_stream, _v: number): void;
88
+ };
89
+ };
90
+ 1: {
91
+ scope: CodedIndex;
92
+ name: {
93
+ get(s: clr_stream): string;
94
+ put(_s: clr_stream, _v: number): void;
95
+ };
96
+ namespce: {
97
+ get(s: clr_stream): string;
98
+ put(_s: clr_stream, _v: number): void;
99
+ };
100
+ };
101
+ 2: {
102
+ flags: binary.TypeT<number>;
103
+ name: {
104
+ get(s: clr_stream): string;
105
+ put(_s: clr_stream, _v: number): void;
106
+ };
107
+ namespce: {
108
+ get(s: clr_stream): string;
109
+ put(_s: clr_stream, _v: number): void;
110
+ };
111
+ extends: CodedIndex;
112
+ fields: IndexedList;
113
+ methods: IndexedList;
114
+ };
115
+ 4: {
116
+ flags: binary.TypeT<number>;
117
+ name: {
118
+ get(s: clr_stream): string;
119
+ put(_s: clr_stream, _v: number): void;
120
+ };
121
+ signature: {
122
+ get(s: clr_stream): Uint8Array;
123
+ put(_s: clr_stream, _v: number): void;
124
+ };
125
+ };
126
+ 6: {
127
+ code: binary.TypeT<number>;
128
+ implflags: binary.TypeT<number>;
129
+ flags: binary.TypeT<number>;
130
+ name: {
131
+ get(s: clr_stream): string;
132
+ put(_s: clr_stream, _v: number): void;
133
+ };
134
+ signature: {
135
+ get(s: clr_stream): Uint8Array;
136
+ put(_s: clr_stream, _v: number): void;
137
+ };
138
+ paramlist: IndexedList;
139
+ };
140
+ 8: {
141
+ flags: binary.TypeT<number>;
142
+ sequence: binary.TypeT<number>;
143
+ name: {
144
+ get(s: clr_stream): string;
145
+ put(_s: clr_stream, _v: number): void;
146
+ };
147
+ };
148
+ 9: {
149
+ clss: Indexed;
150
+ interfce: CodedIndex;
151
+ };
152
+ 10: {
153
+ clss: CodedIndex;
154
+ name: {
155
+ get(s: clr_stream): string;
156
+ put(_s: clr_stream, _v: number): void;
157
+ };
158
+ signature: {
159
+ get(s: clr_stream): Uint8Array;
160
+ put(_s: clr_stream, _v: number): void;
161
+ };
162
+ };
163
+ 11: {
164
+ type: binary.TypeT<number>;
165
+ parent: CodedIndex;
166
+ value: {
167
+ get(s: clr_stream): Uint8Array;
168
+ put(_s: clr_stream, _v: number): void;
169
+ };
170
+ };
171
+ 12: {
172
+ parent: CodedIndex;
173
+ type: CodedIndex;
174
+ value: {
175
+ get(s: clr_stream): Uint8Array;
176
+ put(_s: clr_stream, _v: number): void;
177
+ };
178
+ };
179
+ 13: {
180
+ parent: CodedIndex;
181
+ native_type: {
182
+ get(s: clr_stream): Uint8Array;
183
+ put(_s: clr_stream, _v: number): void;
184
+ };
185
+ };
186
+ 14: {
187
+ action: binary.TypeT<number>;
188
+ parent: CodedIndex;
189
+ permission_set: {
190
+ get(s: clr_stream): Uint8Array;
191
+ put(_s: clr_stream, _v: number): void;
192
+ };
193
+ };
194
+ 15: {
195
+ packing_size: binary.TypeT<number>;
196
+ class_size: binary.TypeT<number>;
197
+ parent: Indexed;
198
+ };
199
+ 16: {
200
+ offset: binary.TypeT<number>;
201
+ field: Indexed;
202
+ };
203
+ 17: {
204
+ signature: {
205
+ get(s: clr_stream): Uint8Array;
206
+ put(_s: clr_stream, _v: number): void;
207
+ };
208
+ };
209
+ 18: {
210
+ parent: Indexed;
211
+ event_list: IndexedList;
212
+ };
213
+ 20: {
214
+ flags: binary.TypeT<number>;
215
+ name: {
216
+ get(s: clr_stream): string;
217
+ put(_s: clr_stream, _v: number): void;
218
+ };
219
+ event_type: CodedIndex;
220
+ };
221
+ 21: {
222
+ parent: Indexed;
223
+ property_list: IndexedList;
224
+ };
225
+ 23: {
226
+ flags: binary.TypeT<number>;
227
+ name: {
228
+ get(s: clr_stream): string;
229
+ put(_s: clr_stream, _v: number): void;
230
+ };
231
+ type: {
232
+ get(s: clr_stream): Uint8Array;
233
+ put(_s: clr_stream, _v: number): void;
234
+ };
235
+ };
236
+ 24: {
237
+ flags: binary.TypeT<number>;
238
+ method: Indexed;
239
+ association: CodedIndex;
240
+ };
241
+ 25: {
242
+ clss: Indexed;
243
+ method_body: CodedIndex;
244
+ method_declaration: CodedIndex;
245
+ };
246
+ 26: {
247
+ name: {
248
+ get(s: clr_stream): string;
249
+ put(_s: clr_stream, _v: number): void;
250
+ };
251
+ };
252
+ 27: {
253
+ signature: {
254
+ get(s: clr_stream): Uint8Array;
255
+ put(_s: clr_stream, _v: number): void;
256
+ };
257
+ };
258
+ 28: {
259
+ flags: binary.TypeT<number>;
260
+ member_forwarded: CodedIndex;
261
+ name: {
262
+ get(s: clr_stream): string;
263
+ put(_s: clr_stream, _v: number): void;
264
+ };
265
+ scope: Indexed;
266
+ };
267
+ 29: {
268
+ rva: binary.TypeT<number>;
269
+ field: Indexed;
270
+ };
271
+ 32: {
272
+ hashalg: binary.TypeT<number>;
273
+ major: binary.TypeT<number>;
274
+ minor: binary.TypeT<number>;
275
+ build: binary.TypeT<number>;
276
+ rev: binary.TypeT<number>;
277
+ flags: binary.TypeT<number>;
278
+ publickey: {
279
+ get(s: clr_stream): Uint8Array;
280
+ put(_s: clr_stream, _v: number): void;
281
+ };
282
+ name: {
283
+ get(s: clr_stream): string;
284
+ put(_s: clr_stream, _v: number): void;
285
+ };
286
+ culture: {
287
+ get(s: clr_stream): string;
288
+ put(_s: clr_stream, _v: number): void;
289
+ };
290
+ };
291
+ 33: {
292
+ processor: binary.TypeT<number>;
293
+ };
294
+ 34: {
295
+ platform: binary.TypeT<number>;
296
+ minor: binary.TypeT<number>;
297
+ major: binary.TypeT<number>;
298
+ };
299
+ 35: {
300
+ major: binary.TypeT<number>;
301
+ minor: binary.TypeT<number>;
302
+ build: binary.TypeT<number>;
303
+ rev: binary.TypeT<number>;
304
+ flags: binary.TypeT<number>;
305
+ publickey: {
306
+ get(s: clr_stream): Uint8Array;
307
+ put(_s: clr_stream, _v: number): void;
308
+ };
309
+ name: {
310
+ get(s: clr_stream): string;
311
+ put(_s: clr_stream, _v: number): void;
312
+ };
313
+ culture: {
314
+ get(s: clr_stream): string;
315
+ put(_s: clr_stream, _v: number): void;
316
+ };
317
+ hashvalue: {
318
+ get(s: clr_stream): Uint8Array;
319
+ put(_s: clr_stream, _v: number): void;
320
+ };
321
+ };
322
+ 36: {
323
+ processor: binary.TypeT<number>;
324
+ assembly: Indexed;
325
+ };
326
+ 37: {
327
+ platform: binary.TypeT<number>;
328
+ major: binary.TypeT<number>;
329
+ minor: binary.TypeT<number>;
330
+ assembly: Indexed;
331
+ };
332
+ 38: {
333
+ flags: binary.TypeT<number>;
334
+ name: {
335
+ get(s: clr_stream): string;
336
+ put(_s: clr_stream, _v: number): void;
337
+ };
338
+ hash: {
339
+ get(s: clr_stream): Uint8Array;
340
+ put(_s: clr_stream, _v: number): void;
341
+ };
342
+ };
343
+ 39: {
344
+ flags: binary.TypeT<number>;
345
+ typedef_id: binary.TypeT<number>;
346
+ name: {
347
+ get(s: clr_stream): string;
348
+ put(_s: clr_stream, _v: number): void;
349
+ };
350
+ namespce: {
351
+ get(s: clr_stream): string;
352
+ put(_s: clr_stream, _v: number): void;
353
+ };
354
+ implementation: CodedIndex;
355
+ };
356
+ 40: {
357
+ data: binary.TypeT<number>;
358
+ flags: binary.TypeT<number>;
359
+ name: {
360
+ get(s: clr_stream): string;
361
+ put(_s: clr_stream, _v: number): void;
362
+ };
363
+ implementation: CodedIndex;
364
+ };
365
+ 41: {
366
+ nested_class: Indexed;
367
+ enclosing_class: Indexed;
368
+ };
369
+ 42: {
370
+ number: binary.TypeT<number>;
371
+ flags: binary.TypeT<number>;
372
+ owner: CodedIndex;
373
+ name: {
374
+ get(s: clr_stream): string;
375
+ put(_s: clr_stream, _v: number): void;
376
+ };
377
+ };
378
+ 43: {
379
+ method: CodedIndex;
380
+ instantiation: {
381
+ get(s: clr_stream): Uint8Array;
382
+ put(_s: clr_stream, _v: number): void;
383
+ };
384
+ };
385
+ 44: {
386
+ owner: Indexed;
387
+ constraint: CodedIndex;
388
+ };
389
+ };
390
+ interface Table {
391
+ count: number;
392
+ size: number;
393
+ offset: number;
394
+ }
395
+ export declare class CLR {
396
+ header: any;
397
+ table_info: any;
398
+ heaps: Uint8Array[];
399
+ tables: Record<TABLE, Table>;
400
+ raw?: Uint8Array;
401
+ Resources?: Uint8Array;
402
+ constructor(pe: pe.PE, clr_data: Uint8Array);
403
+ getEntry(t: TABLE, i: number): any;
404
+ getTable<T extends TABLE>(t: T): binary.ReadType<typeof TableReaders[T]>[];
405
+ getResources(block: string): Record<string, any> | undefined;
406
+ getResource(block: string, name: string): any;
407
+ allResources(): {} | undefined;
408
+ }
409
+ export {};
package/dist/clr.d.ts CHANGED
@@ -53,33 +53,237 @@ declare class clr_stream extends binary.stream {
53
53
  getGUID(): string;
54
54
  getBlob(): Uint8Array;
55
55
  }
56
- declare class Indexed {
57
- table: number;
58
- constructor(table: number);
59
- get(s: clr_stream): number;
60
- }
61
- declare class IndexedList extends Indexed {
62
- get(s: clr_stream): number;
63
- }
64
- declare class CodedIndex {
65
- trans: number[];
66
- B: number;
67
- constructor(trans: number[], B: number);
68
- get(s: clr_stream): number;
69
- }
70
56
  interface Table {
71
57
  count: number;
72
58
  size: number;
73
59
  offset: number;
74
60
  }
75
61
  export declare class CLR {
76
- header: any;
77
- table_info: any;
62
+ private raw?;
63
+ header: {
64
+ cb: number;
65
+ MajorRuntimeVersion: number;
66
+ MinorRuntimeVersion: number;
67
+ MetaData: never;
68
+ Flags: Record<string, bigint | boolean> | Record<string, number | boolean>;
69
+ EntryPoint: number;
70
+ Resources: never;
71
+ StrongNameSignature: never;
72
+ CodeManagerTable: never;
73
+ VTableFixups: never;
74
+ ExportAddressTableJumps: never;
75
+ };
76
+ table_info: {
77
+ Reserved: number;
78
+ MajorVersion: number;
79
+ MinorVersion: number;
80
+ HeapSizes: number;
81
+ Reserved2: number;
82
+ Valid: bigint;
83
+ Sorted: bigint;
84
+ } | undefined;
78
85
  heaps: Uint8Array[];
79
86
  tables: Record<TABLE, Table>;
80
- raw?: Uint8Array;
81
87
  Resources?: Uint8Array;
82
88
  constructor(pe: pe.PE, clr_data: Uint8Array);
89
+ getEntry(t: TABLE.Module, i: number): {
90
+ generation: number;
91
+ name: string;
92
+ mvid: string;
93
+ encid: string;
94
+ encbaseid: string;
95
+ };
96
+ getEntry(t: TABLE.TypeRef, i: number): {
97
+ scope: number;
98
+ name: string;
99
+ namespce: string;
100
+ };
101
+ getEntry(t: TABLE.TypeDef, i: number): {
102
+ flags: number;
103
+ name: string;
104
+ namespce: string;
105
+ extends: number;
106
+ fields: number;
107
+ methods: number;
108
+ };
109
+ getEntry(t: TABLE.Field, i: number): {
110
+ flags: number;
111
+ name: string;
112
+ signature: Uint8Array;
113
+ };
114
+ getEntry(t: TABLE.MethodDef, i: number): {
115
+ code: number;
116
+ implflags: number;
117
+ flags: number;
118
+ name: string;
119
+ signature: Uint8Array;
120
+ paramlist: number;
121
+ };
122
+ getEntry(t: TABLE.Param, i: number): {
123
+ flags: number;
124
+ sequence: number;
125
+ name: string;
126
+ };
127
+ getEntry(t: TABLE.InterfaceImpl, i: number): {
128
+ clss: number;
129
+ interfce: number;
130
+ };
131
+ getEntry(t: TABLE.MemberRef, i: number): {
132
+ clss: number;
133
+ name: string;
134
+ signature: Uint8Array;
135
+ };
136
+ getEntry(t: TABLE.Constant, i: number): {
137
+ type: number;
138
+ parent: number;
139
+ value: Uint8Array;
140
+ };
141
+ getEntry(t: TABLE.CustomAttribute, i: number): {
142
+ parent: number;
143
+ type: number;
144
+ value: Uint8Array;
145
+ };
146
+ getEntry(t: TABLE.FieldMarshal, i: number): {
147
+ parent: number;
148
+ native_type: Uint8Array;
149
+ };
150
+ getEntry(t: TABLE.DeclSecurity, i: number): {
151
+ action: number;
152
+ parent: number;
153
+ permission_set: Uint8Array;
154
+ };
155
+ getEntry(t: TABLE.ClassLayout, i: number): {
156
+ packing_size: number;
157
+ class_size: number;
158
+ parent: number;
159
+ };
160
+ getEntry(t: TABLE.FieldLayout, i: number): {
161
+ offset: number;
162
+ field: number;
163
+ };
164
+ getEntry(t: TABLE.StandAloneSig, i: number): {
165
+ signature: Uint8Array;
166
+ };
167
+ getEntry(t: TABLE.EventMap, i: number): {
168
+ parent: number;
169
+ event_list: number;
170
+ };
171
+ getEntry(t: TABLE.Event, i: number): {
172
+ flags: number;
173
+ name: string;
174
+ event_type: number;
175
+ };
176
+ getEntry(t: TABLE.PropertyMap, i: number): {
177
+ parent: number;
178
+ property_list: number;
179
+ };
180
+ getEntry(t: TABLE.Property, i: number): {
181
+ flags: number;
182
+ name: string;
183
+ type: Uint8Array;
184
+ };
185
+ getEntry(t: TABLE.MethodSemantics, i: number): {
186
+ flags: number;
187
+ method: number;
188
+ association: number;
189
+ };
190
+ getEntry(t: TABLE.MethodImpl, i: number): {
191
+ clss: number;
192
+ method_body: number;
193
+ method_declaration: number;
194
+ };
195
+ getEntry(t: TABLE.ModuleRef, i: number): {
196
+ name: string;
197
+ };
198
+ getEntry(t: TABLE.TypeSpec, i: number): {
199
+ signature: Uint8Array;
200
+ };
201
+ getEntry(t: TABLE.ImplMap, i: number): {
202
+ flags: number;
203
+ member_forwarded: number;
204
+ name: string;
205
+ scope: number;
206
+ };
207
+ getEntry(t: TABLE.FieldRVA, i: number): {
208
+ rva: number;
209
+ field: number;
210
+ };
211
+ getEntry(t: TABLE.Assembly, i: number): {
212
+ hashalg: number;
213
+ major: number;
214
+ minor: number;
215
+ build: number;
216
+ rev: number;
217
+ flags: number;
218
+ publickey: Uint8Array;
219
+ name: string;
220
+ culture: string;
221
+ };
222
+ getEntry(t: TABLE.AssemblyProcessor, i: number): {
223
+ processor: number;
224
+ };
225
+ getEntry(t: TABLE.AssemblyOS, i: number): {
226
+ platform: number;
227
+ minor: number;
228
+ major: number;
229
+ };
230
+ getEntry(t: TABLE.AssemblyRef, i: number): {
231
+ major: number;
232
+ minor: number;
233
+ build: number;
234
+ rev: number;
235
+ flags: number;
236
+ publickey: Uint8Array;
237
+ name: string;
238
+ culture: string;
239
+ hashvalue: Uint8Array;
240
+ };
241
+ getEntry(t: TABLE.AssemblyRefProcessor, i: number): {
242
+ processor: number;
243
+ assembly: number;
244
+ };
245
+ getEntry(t: TABLE.AssemblyRefOS, i: number): {
246
+ platform: number;
247
+ major: number;
248
+ minor: number;
249
+ assembly: number;
250
+ };
251
+ getEntry(t: TABLE.File, i: number): {
252
+ flags: number;
253
+ name: string;
254
+ hash: Uint8Array;
255
+ };
256
+ getEntry(t: TABLE.ExportedType, i: number): {
257
+ flags: number;
258
+ typedef_id: number;
259
+ name: string;
260
+ namespce: string;
261
+ implementation: number;
262
+ };
263
+ getEntry(t: TABLE.ManifestResource, i: number): {
264
+ data: number;
265
+ flags: number;
266
+ name: string;
267
+ implementation: number;
268
+ };
269
+ getEntry(t: TABLE.NestedClass, i: number): {
270
+ nested_class: number;
271
+ enclosing_class: number;
272
+ };
273
+ getEntry(t: TABLE.GenericParam, i: number): {
274
+ number: number;
275
+ flags: number;
276
+ owner: number;
277
+ name: string;
278
+ };
279
+ getEntry(t: TABLE.MethodSpec, i: number): {
280
+ method: number;
281
+ instantiation: Uint8Array;
282
+ };
283
+ getEntry(t: TABLE.GenericParamConstraint, i: number): {
284
+ owner: number;
285
+ constraint: number;
286
+ };
83
287
  getEntry(t: TABLE, i: number): any;
84
288
  getTable(t: TABLE.Module): {
85
289
  generation: number;
@@ -279,8 +483,9 @@ export declare class CLR {
279
483
  owner: number;
280
484
  constraint: number;
281
485
  }[];
486
+ getTable(t: TABLE): any;
282
487
  getResources(block: string): Record<string, any> | undefined;
283
488
  getResource(block: string, name: string): any;
284
- allResources(): {} | undefined;
489
+ allResources(): any;
285
490
  }
286
491
  export {};