@cheatron/native 1.2.0 → 1.2.1

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,54 @@
1
+ import type { Pattern } from './pattern';
2
+ /**
3
+ * A single pattern match entry.
4
+ * Stores the decoded numeric address (bigint) of the match.
5
+ * Call `toAddress()` to retrieve it — consistent with how ffi.address() works.
6
+ */
7
+ export declare class ScanEntry {
8
+ readonly address: bigint;
9
+ readonly module?: import('./module').Module;
10
+ constructor(address: bigint, module?: import('./module').Module);
11
+ toAddress(): bigint;
12
+ toString(): string;
13
+ }
14
+ /**
15
+ * Result of a pattern scan operation.
16
+ * Lazily evaluates the underlying generator and caches findings.
17
+ * Supports taking matches one-by-one or materializing the full result.
18
+ *
19
+ * @example
20
+ * const result = currentProcess.findPattern('55 8B EC');
21
+ * const firstMatch = result.first(); // Scans until 1 match is found
22
+ * const allMatches = result.all(); // Fully exhausts the generator up to pattern config limit
23
+ */
24
+ export declare class ScanResult implements Iterable<ScanEntry> {
25
+ readonly pattern: Pattern;
26
+ private generator;
27
+ private _cached;
28
+ private _isExhausted;
29
+ constructor(iterable: Iterable<ScanEntry>, pattern: Pattern);
30
+ /**
31
+ * Evaluates the generator up to 'n' elements and caches them internally.
32
+ */
33
+ private pump;
34
+ /** Gets the first match and stops scanning further unless requested again. */
35
+ first(): ScanEntry | undefined;
36
+ /** Gets up to N matches. Scans only as much memory as needed. */
37
+ take(n: number): ScanEntry[];
38
+ /** Evaluates the scan fully, up to the pattern's configured limit. */
39
+ all(): ScanEntry[];
40
+ /** Shortcut to strictly evaluate the scan based on the limit and return the array. */
41
+ get entries(): ScanEntry[];
42
+ /** Number of matched entries (fully evaluates scan). */
43
+ get length(): number;
44
+ /** All matched addresses directly derived from entries. */
45
+ get addresses(): bigint[];
46
+ /** Combines another ScanResult efficiently. */
47
+ merge(other: ScanResult): ScanResult;
48
+ /**
49
+ * Lazily iterates over available entries, fetching from the scan engine only when needed.
50
+ * Bound efficiently by the limit configured on the `Pattern`.
51
+ */
52
+ [Symbol.iterator](): Iterator<ScanEntry>;
53
+ }
54
+ //# sourceMappingURL=scan-result.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-result.d.ts","sourceRoot":"","sources":["../src/scan-result.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEzC;;;;GAIG;AACH,qBAAa,SAAS;IACpB,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,UAAU,EAAE,MAAM,CAAC;gBAEhC,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,OAAO,UAAU,EAAE,MAAM;IAK/D,SAAS,IAAI,MAAM;IAInB,QAAQ,IAAI,MAAM;CAMnB;AAED;;;;;;;;;GASG;AACH,qBAAa,UAAW,YAAW,QAAQ,CAAC,SAAS,CAAC;IACpD,SAAgB,OAAO,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,OAAO,CAAmB;IAClC,OAAO,CAAC,YAAY,CAAS;gBAEjB,QAAQ,EAAE,QAAQ,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,OAAO;IAK3D;;OAEG;IACH,OAAO,CAAC,IAAI;IAWZ,8EAA8E;IAC9E,KAAK,IAAI,SAAS,GAAG,SAAS;IAK9B,iEAAiE;IACjE,IAAI,CAAC,CAAC,EAAE,MAAM,GAAG,SAAS,EAAE;IAK5B,sEAAsE;IACtE,GAAG,IAAI,SAAS,EAAE;IAWlB,sFAAsF;IACtF,IAAI,OAAO,IAAI,SAAS,EAAE,CAEzB;IAED,wDAAwD;IACxD,IAAI,MAAM,IAAI,MAAM,CAEnB;IAED,2DAA2D;IAC3D,IAAI,SAAS,IAAI,MAAM,EAAE,CAExB;IAED,+CAA+C;IAC/C,KAAK,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU;IAUpC;;;OAGG;IACF,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,QAAQ,CAAC,SAAS,CAAC;CAuB1C"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * A single pattern match entry.
3
+ * Stores the decoded numeric address (bigint) of the match.
4
+ * Call `toAddress()` to retrieve it — consistent with how ffi.address() works.
5
+ */
6
+ export class ScanEntry {
7
+ address;
8
+ module;
9
+ constructor(address, module) {
10
+ this.address = address;
11
+ this.module = module;
12
+ }
13
+ toAddress() {
14
+ return this.address;
15
+ }
16
+ toString() {
17
+ const addressString = '0x' + this.address.toString(16).toUpperCase();
18
+ return this.module
19
+ ? `${this.module.toString()}+${addressString}`
20
+ : addressString;
21
+ }
22
+ }
23
+ /**
24
+ * Result of a pattern scan operation.
25
+ * Lazily evaluates the underlying generator and caches findings.
26
+ * Supports taking matches one-by-one or materializing the full result.
27
+ *
28
+ * @example
29
+ * const result = currentProcess.findPattern('55 8B EC');
30
+ * const firstMatch = result.first(); // Scans until 1 match is found
31
+ * const allMatches = result.all(); // Fully exhausts the generator up to pattern config limit
32
+ */
33
+ export class ScanResult {
34
+ pattern;
35
+ generator;
36
+ _cached = [];
37
+ _isExhausted = false;
38
+ constructor(iterable, pattern) {
39
+ this.pattern = pattern;
40
+ this.generator = iterable[Symbol.iterator]();
41
+ }
42
+ /**
43
+ * Evaluates the generator up to 'n' elements and caches them internally.
44
+ */
45
+ pump(n) {
46
+ while (!this._isExhausted && (n === undefined || this._cached.length < n)) {
47
+ const res = this.generator.next();
48
+ if (res.done) {
49
+ this._isExhausted = true;
50
+ }
51
+ else {
52
+ this._cached.push(res.value);
53
+ }
54
+ }
55
+ }
56
+ /** Gets the first match and stops scanning further unless requested again. */
57
+ first() {
58
+ this.pump(1);
59
+ return this._cached[0];
60
+ }
61
+ /** Gets up to N matches. Scans only as much memory as needed. */
62
+ take(n) {
63
+ this.pump(n);
64
+ return this._cached.slice(0, n);
65
+ }
66
+ /** Evaluates the scan fully, up to the pattern's configured limit. */
67
+ all() {
68
+ const limit = this.pattern.maxResults;
69
+ if (limit > 0) {
70
+ this.pump(limit);
71
+ return this._cached.slice(0, limit);
72
+ }
73
+ else {
74
+ this.pump();
75
+ return [...this._cached];
76
+ }
77
+ }
78
+ /** Shortcut to strictly evaluate the scan based on the limit and return the array. */
79
+ get entries() {
80
+ return this.all();
81
+ }
82
+ /** Number of matched entries (fully evaluates scan). */
83
+ get length() {
84
+ return this.all().length;
85
+ }
86
+ /** All matched addresses directly derived from entries. */
87
+ get addresses() {
88
+ return this.all().map((e) => e.address);
89
+ }
90
+ /** Combines another ScanResult efficiently. */
91
+ merge(other) {
92
+ // eslint-disable-next-line @typescript-eslint/no-this-alias
93
+ const me = this;
94
+ const combined = function* () {
95
+ yield* me.all(); // Yields cached/evaluated from this
96
+ yield* other.all(); // Yields cached/evaluated from other
97
+ };
98
+ return new ScanResult(combined(), this.pattern);
99
+ }
100
+ /**
101
+ * Lazily iterates over available entries, fetching from the scan engine only when needed.
102
+ * Bound efficiently by the limit configured on the `Pattern`.
103
+ */
104
+ *[Symbol.iterator]() {
105
+ const limit = this.pattern.maxResults;
106
+ let yielded = 0;
107
+ // First yield already evaluated results
108
+ for (const cachedEntry of this._cached) {
109
+ if (limit > 0 && yielded >= limit)
110
+ return;
111
+ yield cachedEntry;
112
+ yielded++;
113
+ }
114
+ // Now evaluate fresh parts if needed
115
+ while (!this._isExhausted && (limit === 0 || yielded < limit)) {
116
+ const res = this.generator.next();
117
+ if (res.done) {
118
+ this._isExhausted = true;
119
+ }
120
+ else {
121
+ this._cached.push(res.value);
122
+ yield res.value;
123
+ yielded++;
124
+ }
125
+ }
126
+ }
127
+ }
128
+ //# sourceMappingURL=scan-result.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scan-result.js","sourceRoot":"","sources":["../src/scan-result.ts"],"names":[],"mappings":"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"}
package/dist/scanner.d.ts CHANGED
@@ -5,7 +5,7 @@ import { Pattern } from './pattern';
5
5
  export declare class Scanner {
6
6
  /**
7
7
  * Scans local memory for a pattern using a generator.
8
- * Yields each found address.
8
+ * Yields each matched address as a decoded bigint.
9
9
  *
10
10
  * @param base Memory address to start from
11
11
  * @param size Total size of the memory region to scan
@@ -14,11 +14,8 @@ export declare class Scanner {
14
14
  */
15
15
  static scan(base: bigint, size: number, pattern: Pattern, chunkSize?: number): Generator<bigint>;
16
16
  /**
17
- * Scans local memory for a pattern and returns the first result.
18
- */
19
- static scanLocal(base: bigint, size: number, pattern: Pattern, chunkSize?: number): bigint | null;
20
- /**
21
- * Helper method to scan a specific memory chunk with wildcards
17
+ * Helper method to scan a specific memory chunk with wildcards.
18
+ * Yields decoded bigint addresses.
22
19
  */
23
20
  private static scanChunkWildcard;
24
21
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC;;GAEG;AACH,qBAAa,OAAO;IAClB;;;;;;;;OAQG;IACH,MAAM,CAAE,IAAI,CACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAoB,GAC9B,SAAS,CAAC,MAAM,CAAC;IA0FpB;;OAEG;IACH,MAAM,CAAC,SAAS,CACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAoB,GAC9B,MAAM,GAAG,IAAI;IAMhB;;OAEG;IACH,OAAO,CAAC,MAAM,CAAE,iBAAiB;CA2BlC"}
1
+ {"version":3,"file":"scanner.d.ts","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC;;GAEG;AACH,qBAAa,OAAO;IAClB;;;;;;;;OAQG;IACH,MAAM,CAAE,IAAI,CACV,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,OAAO,EAChB,SAAS,GAAE,MAAoB,GAC9B,SAAS,CAAC,MAAM,CAAC;IAuFpB;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAE,iBAAiB;CA2BlC"}
package/dist/scanner.js CHANGED
@@ -1,12 +1,13 @@
1
1
  import { ffi } from '@cheatron/native-bindings';
2
2
  import { Pattern } from './pattern';
3
+ import { MsvcrtExtImpl as msvcrt } from './msvcrt-ext';
3
4
  /**
4
5
  * Memory scanning utility
5
6
  */
6
7
  export class Scanner {
7
8
  /**
8
9
  * Scans local memory for a pattern using a generator.
9
- * Yields each found address.
10
+ * Yields each matched address as a decoded bigint.
10
11
  *
11
12
  * @param base Memory address to start from
12
13
  * @param size Total size of the memory region to scan
@@ -14,8 +15,6 @@ export class Scanner {
14
15
  * @param chunkSize Size of each scan chunk (default: 1MB)
15
16
  */
16
17
  static *scan(base, size, pattern, chunkSize = 1024 * 1024) {
17
- // eslint-disable-next-line @typescript-eslint/no-require-imports
18
- const msvcrt = require('./msvcrt-ext');
19
18
  const patternLen = pattern.length;
20
19
  if (patternLen === 0)
21
20
  return;
@@ -33,7 +32,7 @@ export class Scanner {
33
32
  const found = msvcrt.memmem(currentBase, remainingSize, pattern.bytes, patternLen);
34
33
  if (!found)
35
34
  break;
36
- const foundAddr = BigInt(ffi.address(found));
35
+ const foundAddr = ffi.address(found);
37
36
  if (foundAddr > lastYieldedAddr) {
38
37
  yield foundAddr;
39
38
  lastYieldedAddr = foundAddr;
@@ -69,7 +68,7 @@ export class Scanner {
69
68
  const found = msvcrt.memmem(searchBase, searchSize, pattern.bytes, patternLen);
70
69
  if (!found)
71
70
  break;
72
- const foundAddr = BigInt(ffi.address(found));
71
+ const foundAddr = ffi.address(found);
73
72
  if (foundAddr > lastYieldedAddr) {
74
73
  yield foundAddr;
75
74
  lastYieldedAddr = foundAddr;
@@ -90,21 +89,14 @@ export class Scanner {
90
89
  }
91
90
  }
92
91
  /**
93
- * Scans local memory for a pattern and returns the first result.
94
- */
95
- static scanLocal(base, size, pattern, chunkSize = 1024 * 1024) {
96
- const it = Scanner.scan(base, size, pattern, chunkSize);
97
- const result = it.next();
98
- return result.done ? null : result.value;
99
- }
100
- /**
101
- * Helper method to scan a specific memory chunk with wildcards
92
+ * Helper method to scan a specific memory chunk with wildcards.
93
+ * Yields decoded bigint addresses.
102
94
  */
103
95
  static *scanChunkWildcard(base, size, pattern) {
104
96
  // eslint-disable-next-line @typescript-eslint/no-require-imports
105
97
  const { currentProcess } = require('./process');
106
98
  const patternLen = pattern.length;
107
- const buffer = currentProcess.readMemory(base, size);
99
+ const buffer = currentProcess.memory.read(base, size);
108
100
  const mask = pattern.mask;
109
101
  const bytes = pattern.bytes;
110
102
  for (let i = 0; i <= size - patternLen; i++) {
@@ -1 +1 @@
1
- {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scanner.js","sourceRoot":"","sources":["../src/scanner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cheatron/native",
3
- "version": "1.2.0",
3
+ "version": "1.2.1",
4
4
  "description": "Ergonomic Win32 process and memory management API for Cheatron.",
5
5
  "module": "./src/index.ts",
6
6
  "main": "./dist/index.js",
@@ -32,7 +32,7 @@
32
32
  "dependencies": {
33
33
  "@cheatron/keystone": "^1.0.1",
34
34
  "@cheatron/log": "^1.0.1",
35
- "@cheatron/native-bindings": "^1.0.3"
35
+ "@cheatron/native-bindings": "^1.0.4"
36
36
  },
37
37
  "devDependencies": {
38
38
  "@eslint/js": "^10.0.1",