@cheatron/nthread 1.0.0 → 1.0.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.
package/dist/errors.d.ts CHANGED
@@ -15,6 +15,9 @@ export declare class InjectTimeoutError extends InjectError {
15
15
  readonly waitResult: number;
16
16
  constructor(waitResult: number);
17
17
  }
18
+ export declare class MsvcrtNotLoadedError extends InjectError {
19
+ constructor();
20
+ }
18
21
  export declare class CallError extends NThreadError {
19
22
  readonly target: bigint;
20
23
  constructor(message: string, target: bigint);
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,uBAAe,SAAU,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAID,qBAAa,YAAa,SAAQ,SAAS;CAAG;AAE9C,qBAAa,mBAAoB,SAAQ,YAAY;;CAIpD;AAED,qBAAa,qBAAsB,SAAQ,YAAY;;CAItD;AAED,qBAAa,WAAY,SAAQ,YAAY;CAAG;AAEhD,qBAAa,kBAAmB,SAAQ,WAAW;aACrB,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM;CAG/C;AAID,qBAAa,SAAU,SAAQ,YAAY;IACzC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI5C;AAED,qBAAa,oBAAqB,SAAQ,SAAS;;CAIlD;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,QAAQ,EAAE,MAAM;CAO7B;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,WAAW,EAAE,MAAM,CAAC;gBAExB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAQpE;AAED,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAO/C;AAED,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,MAAM,EAAE,MAAM;CAM3B;AAID,qBAAa,UAAW,SAAQ,YAAY;CAAG;AAI/C,qBAAa,WAAY,SAAQ,YAAY;CAAG;AAEhD,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,SAAgB,OAAO,EAAE,MAAM,CAAC;gBAEpB,OAAO,EAAE,MAAM;CAI5B"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAEA,uBAAe,SAAU,SAAQ,KAAK;gBACxB,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY;CAIpD;AAID,qBAAa,YAAa,SAAQ,SAAS;CAAG;AAE9C,qBAAa,mBAAoB,SAAQ,YAAY;;CAIpD;AAED,qBAAa,qBAAsB,SAAQ,YAAY;;CAItD;AAED,qBAAa,WAAY,SAAQ,YAAY;CAAG;AAEhD,qBAAa,kBAAmB,SAAQ,WAAW;aACrB,UAAU,EAAE,MAAM;gBAAlB,UAAU,EAAE,MAAM;CAG/C;AAED,qBAAa,oBAAqB,SAAQ,WAAW;;CAIpD;AAID,qBAAa,SAAU,SAAQ,YAAY;IACzC,SAAgB,MAAM,EAAE,MAAM,CAAC;gBAEnB,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM;CAI5C;AAED,qBAAa,oBAAqB,SAAQ,SAAS;;CAIlD;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,SAAgB,QAAQ,EAAE,MAAM,CAAC;gBAErB,QAAQ,EAAE,MAAM;CAO7B;AAED,qBAAa,oBAAqB,SAAQ,SAAS;IACjD,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,SAAgB,WAAW,EAAE,MAAM,CAAC;gBAExB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM;CAQpE;AAED,qBAAa,gBAAiB,SAAQ,SAAS;IAC7C,SAAgB,UAAU,EAAE,MAAM,CAAC;gBAEvB,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM;CAO/C;AAED,qBAAa,mBAAoB,SAAQ,SAAS;gBACpC,MAAM,EAAE,MAAM;CAM3B;AAID,qBAAa,UAAW,SAAQ,YAAY;CAAG;AAI/C,qBAAa,WAAY,SAAQ,YAAY;CAAG;AAEhD,qBAAa,eAAgB,SAAQ,WAAW;IAC9C,SAAgB,OAAO,EAAE,MAAM,CAAC;gBAEpB,OAAO,EAAE,MAAM;CAI5B"}
package/dist/errors.js CHANGED
@@ -27,6 +27,11 @@ export class InjectTimeoutError extends InjectError {
27
27
  this.waitResult = waitResult;
28
28
  }
29
29
  }
30
+ export class MsvcrtNotLoadedError extends InjectError {
31
+ constructor() {
32
+ super("msvcrt.dll is not loaded in the target thread's process");
33
+ }
34
+ }
30
35
  // ── Call errors ───────────────────────────────────────────────────────────────
31
36
  export class CallError extends NThreadError {
32
37
  target;
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,MAAe,SAAU,SAAQ,KAAK;IACpC,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,YAAa,SAAQ,SAAS;CAAG;AAE9C,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IACnD;QACE,KAAK,CAAC,0DAA0D,CAAC,CAAC;IACpE,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IACrD;QACE,KAAK,CAAC,2DAA2D,CAAC,CAAC;IACrE,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,YAAY;CAAG;AAEhD,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IACrB;IAA5B,YAA4B,UAAkB;QAC5C,KAAK,CAAC,oDAAoD,UAAU,GAAG,CAAC,CAAC;QAD/C,eAAU,GAAV,UAAU,CAAQ;IAE9C,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,SAAU,SAAQ,YAAY;IACzB,MAAM,CAAS;IAE/B,YAAY,OAAe,EAAE,MAAc;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjD;QACE,KAAK,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjC,QAAQ,CAAS;IAEjC,YAAY,QAAgB;QAC1B,KAAK,CACH,oFAAoF,QAAQ,EAAE,EAC9F,EAAE,CACH,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjC,UAAU,CAAS;IACnB,WAAW,CAAS;IAEpC,YAAY,MAAc,EAAE,UAAkB,EAAE,WAAmB;QACjE,KAAK,CACH,iBAAiB,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,gCAAgC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EACnG,MAAM,CACP,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAC7B,UAAU,CAAS;IAEnC,YAAY,MAAc,EAAE,UAAkB;QAC5C,KAAK,CACH,wDAAwD,UAAU,GAAG,EACrE,MAAM,CACP,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,YAAY,MAAc;QACxB,KAAK,CACH,+DAA+D,EAC/D,MAAM,CACP,CAAC;IACJ,CAAC;CACF;AAED,oFAAoF;AAEpF,MAAM,OAAO,UAAW,SAAQ,YAAY;CAAG;AAE/C,iFAAiF;AAEjF,MAAM,OAAO,WAAY,SAAQ,YAAY;CAAG;AAEhD,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC9B,OAAO,CAAS;IAEhC,YAAY,OAAe;QACzB,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA,iFAAiF;AAEjF,MAAe,SAAU,SAAQ,KAAK;IACpC,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;QACxB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;IACpC,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,YAAa,SAAQ,SAAS;CAAG;AAE9C,MAAM,OAAO,mBAAoB,SAAQ,YAAY;IACnD;QACE,KAAK,CAAC,0DAA0D,CAAC,CAAC;IACpE,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,YAAY;IACrD;QACE,KAAK,CAAC,2DAA2D,CAAC,CAAC;IACrE,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,YAAY;CAAG;AAEhD,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IACrB;IAA5B,YAA4B,UAAkB;QAC5C,KAAK,CAAC,oDAAoD,UAAU,GAAG,CAAC,CAAC;QAD/C,eAAU,GAAV,UAAU,CAAQ;IAE9C,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,WAAW;IACnD;QACE,KAAK,CAAC,yDAAyD,CAAC,CAAC;IACnE,CAAC;CACF;AAED,iFAAiF;AAEjF,MAAM,OAAO,SAAU,SAAQ,YAAY;IACzB,MAAM,CAAS;IAE/B,YAAY,OAAe,EAAE,MAAc;QACzC,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjD;QACE,KAAK,CAAC,2CAA2C,EAAE,EAAE,CAAC,CAAC;IACzD,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjC,QAAQ,CAAS;IAEjC,YAAY,QAAgB;QAC1B,KAAK,CACH,oFAAoF,QAAQ,EAAE,EAC9F,EAAE,CACH,CAAC;QACF,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,oBAAqB,SAAQ,SAAS;IACjC,UAAU,CAAS;IACnB,WAAW,CAAS;IAEpC,YAAY,MAAc,EAAE,UAAkB,EAAE,WAAmB;QACjE,KAAK,CACH,iBAAiB,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC,gCAAgC,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EACnG,MAAM,CACP,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;IACjC,CAAC;CACF;AAED,MAAM,OAAO,gBAAiB,SAAQ,SAAS;IAC7B,UAAU,CAAS;IAEnC,YAAY,MAAc,EAAE,UAAkB;QAC5C,KAAK,CACH,wDAAwD,UAAU,GAAG,EACrE,MAAM,CACP,CAAC;QACF,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;CACF;AAED,MAAM,OAAO,mBAAoB,SAAQ,SAAS;IAChD,YAAY,MAAc;QACxB,KAAK,CACH,+DAA+D,EAC/D,MAAM,CACP,CAAC;IACJ,CAAC;CACF;AAED,oFAAoF;AAEpF,MAAM,OAAO,UAAW,SAAQ,YAAY;CAAG;AAE/C,iFAAiF;AAEjF,MAAM,OAAO,WAAY,SAAQ,YAAY;CAAG;AAEhD,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC9B,OAAO,CAAS;IAEhC,YAAY,OAAe;QACzB,KAAK,CAAC,sCAAsC,OAAO,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,18 @@
1
+ import * as Native from '@cheatron/native';
2
+ /**
3
+ * Kernel32Functions: function pointers resolved from kernel32.dll in the
4
+ * target process. Used for remote calls through a hijacked thread.
5
+ */
6
+ export interface Kernel32Functions {
7
+ LoadLibraryA: Native.NativePointer;
8
+ LoadLibraryW: Native.NativePointer;
9
+ ReadProcessMemory: Native.NativePointer;
10
+ WriteProcessMemory: Native.NativePointer;
11
+ GetCurrentProcess: Native.NativePointer;
12
+ GetModuleHandleA: Native.NativePointer;
13
+ GetModuleHandleW: Native.NativePointer;
14
+ GetModuleHandleExA: Native.NativePointer;
15
+ GetModuleHandleExW: Native.NativePointer;
16
+ }
17
+ export declare const kernel32: Kernel32Functions;
18
+ //# sourceMappingURL=kernel32.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel32.d.ts","sourceRoot":"","sources":["../src/kernel32.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAG3C;;;GAGG;AACH,MAAM,WAAW,iBAAiB;IAChC,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC;IACnC,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC;IACnC,iBAAiB,EAAE,MAAM,CAAC,aAAa,CAAC;IACxC,kBAAkB,EAAE,MAAM,CAAC,aAAa,CAAC;IACzC,iBAAiB,EAAE,MAAM,CAAC,aAAa,CAAC;IACxC,gBAAgB,EAAE,MAAM,CAAC,aAAa,CAAC;IACvC,gBAAgB,EAAE,MAAM,CAAC,aAAa,CAAC;IACvC,kBAAkB,EAAE,MAAM,CAAC,aAAa,CAAC;IACzC,kBAAkB,EAAE,MAAM,CAAC,aAAa,CAAC;CAC1C;AAQD,eAAO,MAAM,QAAQ,EAAE,iBAUtB,CAAC"}
@@ -0,0 +1,19 @@
1
+ import * as Native from '@cheatron/native';
2
+ import { log } from './logger.js';
3
+ const get = (name) => {
4
+ const addr = Native.Module.kernel32.getProcAddress(name);
5
+ log.debug('Kernel32', `Resolved ${name}: ${addr}`);
6
+ return addr;
7
+ };
8
+ export const kernel32 = {
9
+ LoadLibraryA: get('LoadLibraryA'),
10
+ LoadLibraryW: get('LoadLibraryW'),
11
+ ReadProcessMemory: get('ReadProcessMemory'),
12
+ WriteProcessMemory: get('WriteProcessMemory'),
13
+ GetCurrentProcess: get('GetCurrentProcess'),
14
+ GetModuleHandleA: get('GetModuleHandleA'),
15
+ GetModuleHandleW: get('GetModuleHandleW'),
16
+ GetModuleHandleExA: get('GetModuleHandleExA'),
17
+ GetModuleHandleExW: get('GetModuleHandleExW'),
18
+ };
19
+ //# sourceMappingURL=kernel32.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kernel32.js","sourceRoot":"","sources":["../src/kernel32.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,EAAE,GAAG,EAAE,MAAM,aAAa,CAAC;AAkBlC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAwB,EAAE;IACjD,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;IACzD,GAAG,CAAC,KAAK,CAAC,UAAU,EAAE,YAAY,IAAI,KAAK,IAAI,EAAE,CAAC,CAAC;IACnD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAsB;IACzC,YAAY,EAAE,GAAG,CAAC,cAAc,CAAC;IACjC,YAAY,EAAE,GAAG,CAAC,cAAc,CAAC;IACjC,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,CAAC;IAC3C,kBAAkB,EAAE,GAAG,CAAC,oBAAoB,CAAC;IAC7C,iBAAiB,EAAE,GAAG,CAAC,mBAAmB,CAAC;IAC3C,gBAAgB,EAAE,GAAG,CAAC,kBAAkB,CAAC;IACzC,gBAAgB,EAAE,GAAG,CAAC,kBAAkB,CAAC;IACzC,kBAAkB,EAAE,GAAG,CAAC,oBAAoB,CAAC;IAC7C,kBAAkB,EAAE,GAAG,CAAC,oBAAoB,CAAC;CAC9C,CAAC"}
package/dist/nthread.d.ts CHANGED
@@ -51,6 +51,16 @@ export declare class NThread {
51
51
  * @param thread Thread object or Thread ID to hijack.
52
52
  */
53
53
  inject(thread: Native.Thread | number): Promise<[ProxyThread, CapturedThread]>;
54
+ /**
55
+ * Checks whether the module owning `moduleBase` is still loaded in the target
56
+ * process. Uses `GetModuleHandleExA` with `FROM_ADDRESS | UNCHANGED_REFCOUNT`
57
+ * so the reference count is not bumped. The output HMODULE is written to a
58
+ * scratch slot on the hijack stack (`callRsp - 512`) — only the return value
59
+ * matters.
60
+ *
61
+ * @returns `true` if the module is loaded, `false` otherwise.
62
+ */
63
+ protected checkModuleLoaded(captured: CapturedThread, moduleBase: Arg, phModule?: Arg): Promise<boolean>;
54
64
  /** Writes data to the target process; dispatches NativePointer vs Buffer. */
55
65
  private threadWrite;
56
66
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"nthread.d.ts","sourceRoot":"","sources":["../src/nthread.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nthread.d.ts","sourceRoot":"","sources":["../src/nthread.ts"],"names":[],"mappings":"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"}
package/dist/nthread.js CHANGED
@@ -4,7 +4,9 @@ import { log } from './logger';
4
4
  import { ProxyThread } from './thread/proxy-thread.js';
5
5
  import { CapturedThread } from './thread/captured-thread.js';
6
6
  import { crt } from './crt.js';
7
- import { NoSleepAddressError, NoPushretAddressError, InjectTimeoutError, CallTooManyArgsError, CallRipMismatchError, CallTimeoutError, CallThreadDiedError, } from './errors.js';
7
+ import { kernel32 } from './kernel32.js';
8
+ import { GetModuleHandleExFlag } from '@cheatron/win32-ext';
9
+ import { NoSleepAddressError, NoPushretAddressError, InjectTimeoutError, MsvcrtNotLoadedError, CallTooManyArgsError, CallRipMismatchError, CallTimeoutError, CallThreadDiedError, } from './errors.js';
8
10
  import { findOverlappingRegion, getOverlapInfo, updateSnapshot, } from './memory/romem.js';
9
11
  export { STACK_ADD } from './thread/captured-thread.js';
10
12
  const nthreadLog = log.child('');
@@ -75,51 +77,86 @@ export class NThread {
75
77
  * @param thread Thread object or Thread ID to hijack.
76
78
  */
77
79
  async inject(thread) {
78
- const captured = new CapturedThread(thread, this.regKey, this.sleepAddress, this.processId);
79
- captured.suspend();
80
- captured.fetchContext();
81
- captured.savedContext = captured.getContext();
82
- // Preserve original values to restore them later
83
- const targetReg = captured.savedContext[this.regKey];
84
- const rip = captured.savedContext.Rip;
85
- const rsp = captured.savedContext.Rsp;
86
- // Hijack:
87
- // RIP -> [push reg; ret] (The pivot)
88
- // REG -> [jmp .] (The final destination)
89
- // pushret will 'push sleep; ret' → sleep addr lands at [stackBegin - 8]
90
- // call() later sets RSP to that same address so 'ret' pops sleep again.
91
- const stackBegin = captured.calcStackBegin(BigInt(rsp));
92
- captured.callRsp = stackBegin - 8n;
93
- captured.setRIP(this.pushretAddress.address);
94
- captured.setRSP(stackBegin);
95
- captured.setTargetReg(this.sleepAddress.address);
96
- captured.applyContext();
97
- captured.resume();
98
- nthreadLog.info(`Waiting for thread ${captured.tid} to reach ${this.sleepAddress}...`);
99
- // Poll until Rip matches our infinite loop address
100
- const res = await captured.wait(5000);
101
- if (res != Native.WaitReturn.OBJECT_0) {
102
- throw new InjectTimeoutError(res);
80
+ // Resolve handle + tid. Keep the source object alive in scope so the GC
81
+ // happens only on success.
82
+ let handle;
83
+ let tid;
84
+ if (thread instanceof Native.Thread) {
85
+ handle = thread.rawHandle;
86
+ tid = thread.tid;
103
87
  }
104
- // Refresh context now that we are stably 'parked' at sleepAddress
105
- captured.savedContext = captured.getContext();
106
- // Restore original state into our local copy so we can resume naturally later
107
- captured.savedContext[this.regKey] = targetReg;
108
- captured.savedContext.Rip = rip;
109
- captured.savedContext.Rsp = rsp;
110
- // Ensure we capture integer and control registers for maximum control
111
- captured.latestContext.ContextFlags =
112
- Native.ContextFlags.INTEGER | Native.ContextFlags.CONTROL;
113
- const proxy = new ProxyThread((_proxy, suicide) => this.threadClose(_proxy, captured, suicide));
114
- /*proxy.setReader((_proxy, address, size) =>
115
- Promise.resolve(Native.currentProcess.memory.read(address, size)),
116
- );*/
117
- proxy.setCaller((_proxy, address, ...proxyArgs) => this.threadCall(captured, address, [...proxyArgs]));
118
- proxy.setWriter((_proxy, address, data, size) => this.threadWrite(_proxy, address, data, size));
119
- proxy.setAllocer((_proxy, size, opts) => this.threadAlloc(_proxy, size, opts));
120
- proxy.setFreer((_proxy, ptr) => this.threadFree(_proxy, ptr));
121
- nthreadLog.info(`Successfully injected into thread ${captured.tid}`);
122
- return [proxy, captured];
88
+ else {
89
+ const sourceThread = Native.Thread.open(thread, this.processId);
90
+ handle = sourceThread.rawHandle;
91
+ tid = sourceThread.tid;
92
+ }
93
+ const captured = new CapturedThread(handle, tid, this.regKey, this.sleepAddress);
94
+ try {
95
+ captured.suspend();
96
+ captured.fetchContext();
97
+ captured.savedContext = captured.getContext();
98
+ // Preserve original values to restore them later
99
+ const targetReg = captured.savedContext[this.regKey];
100
+ const rip = captured.savedContext.Rip;
101
+ const rsp = captured.savedContext.Rsp;
102
+ // Hijack:
103
+ // RIP -> [push reg; ret] (The pivot)
104
+ // REG -> [jmp .] (The final destination)
105
+ // pushret will 'push sleep; ret' → sleep addr lands at [stackBegin - 8]
106
+ // call() later sets RSP to that same address so 'ret' pops sleep again.
107
+ const stackBegin = captured.calcStackBegin(BigInt(rsp));
108
+ captured.callRsp = stackBegin - 8n;
109
+ captured.setRIP(this.pushretAddress.address);
110
+ captured.setRSP(stackBegin);
111
+ captured.setTargetReg(this.sleepAddress.address);
112
+ captured.applyContext();
113
+ captured.resume();
114
+ nthreadLog.info(`Waiting for thread ${captured.tid} to reach ${this.sleepAddress}...`);
115
+ // Poll until Rip matches our infinite loop address
116
+ const res = await captured.wait(5000);
117
+ if (res != Native.WaitReturn.OBJECT_0) {
118
+ throw new InjectTimeoutError(res);
119
+ }
120
+ // Refresh context now that we are stably 'parked' at sleepAddress
121
+ captured.savedContext = captured.getContext();
122
+ // Restore original state into our local copy so we can resume naturally later
123
+ captured.savedContext[this.regKey] = targetReg;
124
+ captured.savedContext.Rip = rip;
125
+ captured.savedContext.Rsp = rsp;
126
+ // Ensure we capture integer and control registers for maximum control
127
+ captured.latestContext.ContextFlags =
128
+ Native.ContextFlags.INTEGER | Native.ContextFlags.CONTROL;
129
+ const proxy = new ProxyThread((_proxy, suicide) => this.threadClose(_proxy, captured, suicide));
130
+ proxy.setCaller((_proxy, address, ...proxyArgs) => this.threadCall(captured, address, [...proxyArgs]));
131
+ proxy.setWriter((_proxy, address, data, size) => this.threadWrite(_proxy, address, data, size));
132
+ proxy.setAllocer((_proxy, size, opts) => this.threadAlloc(_proxy, size, opts));
133
+ proxy.setFreer((_proxy, ptr) => this.threadFree(_proxy, ptr));
134
+ if (!(await this.checkModuleLoaded(captured, Native.Module.crt.base.address))) {
135
+ throw new MsvcrtNotLoadedError();
136
+ }
137
+ nthreadLog.info(`Successfully injected into thread ${captured.tid}`);
138
+ return [proxy, captured];
139
+ }
140
+ catch (err) {
141
+ captured.release();
142
+ throw err;
143
+ }
144
+ }
145
+ /**
146
+ * Checks whether the module owning `moduleBase` is still loaded in the target
147
+ * process. Uses `GetModuleHandleExA` with `FROM_ADDRESS | UNCHANGED_REFCOUNT`
148
+ * so the reference count is not bumped. The output HMODULE is written to a
149
+ * scratch slot on the hijack stack (`callRsp - 512`) — only the return value
150
+ * matters.
151
+ *
152
+ * @returns `true` if the module is loaded, `false` otherwise.
153
+ */
154
+ async checkModuleLoaded(captured, moduleBase, phModule) {
155
+ const flags = GetModuleHandleExFlag.UNCHANGED_REFCOUNT |
156
+ GetModuleHandleExFlag.FROM_ADDRESS;
157
+ const outPtr = phModule ?? captured.callRsp - 512n;
158
+ const result = await this.threadCall(captured, kernel32.GetModuleHandleExA, [flags, moduleBase, outPtr]);
159
+ return result.address !== 0n;
123
160
  }
124
161
  /** Writes data to the target process; dispatches NativePointer vs Buffer. */
125
162
  async threadWrite(proxy, address, data, size) {
@@ -1 +1 @@
1
- {"version":3,"file":"nthread.js","sourceRoot":"","sources":["../src/nthread.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nthread.js","sourceRoot":"","sources":["../src/nthread.ts"],"names":[],"mappings":"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"}
@@ -28,7 +28,7 @@ export declare class CapturedThread extends Native.Thread {
28
28
  * @param sleepAddress The sleep gadget address for parking the thread.
29
29
  * @param processId Optional process ID for diagnostics and logging.
30
30
  */
31
- constructor(thread: Native.Thread | number, regKey: GeneralPurposeRegs, sleepAddress: Native.NativePointer, processId?: number);
31
+ constructor(handle: Native.HANDLE, threadId: number, regKey: GeneralPurposeRegs, sleepAddress: Native.NativePointer);
32
32
  /** Calculates a new stack pointer offset from the current RSP */
33
33
  calcStackBegin(baseRsp?: bigint): bigint;
34
34
  /** Gets the value of the pivot register */
@@ -1 +1 @@
1
- {"version":3,"file":"captured-thread.d.ts","sourceRoot":"","sources":["../../src/thread/captured-thread.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,eAAO,MAAM,SAAS,SAAS,CAAC;AAEhC;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,MAAM,CAAC,MAAM;IAC/C,2EAA2E;IAC3E,SAAS,CAAC,YAAY,SAAK;IAE3B,iEAAiE;IAC1D,YAAY,EAAG,MAAM,CAAC,aAAa,CAAC;IAE3C,yDAAyD;IAClD,aAAa,EAAG,MAAM,CAAC,aAAa,CAAC;IAE5C,wEAAwE;IACjE,OAAO,EAAE,MAAM,CAAM;IAE5B,2EAA2E;IACpE,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC;IAE1C,gEAAgE;IACzD,MAAM,EAAE,kBAAkB,CAAC;IAElC;;;;;;OAMG;gBAED,MAAM,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,EAC9B,MAAM,EAAE,kBAAkB,EAC1B,YAAY,EAAE,MAAM,CAAC,aAAa,EAClC,SAAS,CAAC,EAAE,MAAM;IAkBpB,iEAAiE;IACjE,cAAc,CAAC,OAAO,GAAE,MAAsC,GAAG,MAAM;IAIvE,2CAA2C;IAC3C,YAAY,IAAI,MAAM,CAAC,MAAM;IAI7B,2CAA2C;IAC3C,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI;IAMtC,wBAAwB;IACxB,MAAM,IAAI,MAAM,CAAC,MAAM;IAIvB,wBAAwB;IACxB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI;IAMhC,wBAAwB;IACxB,MAAM,IAAI,MAAM,CAAC,MAAM;IAIvB,wBAAwB;IACxB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI;IAMhC,sDAAsD;IAC7C,UAAU,IAAI,MAAM,CAAC,aAAa;IAO3C,iEAAiE;IACxD,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,aAAa,GAAG,IAAI;IAIpD,kEAAkE;IAClE,YAAY,IAAI,IAAI;IAIpB,4DAA4D;IAC5D,YAAY,IAAI,IAAI;IAIpB,0DAA0D;IACjD,OAAO,IAAI,MAAM;IAQ1B,yDAAyD;IAChD,MAAM,IAAI,MAAM;IAQzB,qFAAqF;IACrF,OAAO,IAAI,IAAI;IAOf,oFAAoF;IAC3E,KAAK;IAiBd;;;OAGG;IACY,IAAI,CACjB,SAAS,GAAE,MAAwB,GAClC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;CAwB9B"}
1
+ {"version":3,"file":"captured-thread.d.ts","sourceRoot":"","sources":["../../src/thread/captured-thread.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,kBAAkB,CAAC;AAC3C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAExD,eAAO,MAAM,SAAS,SAAS,CAAC;AAEhC;;;;;;GAMG;AACH,qBAAa,cAAe,SAAQ,MAAM,CAAC,MAAM;IAC/C,2EAA2E;IAC3E,SAAS,CAAC,YAAY,SAAK;IAE3B,iEAAiE;IAC1D,YAAY,EAAG,MAAM,CAAC,aAAa,CAAC;IAE3C,yDAAyD;IAClD,aAAa,EAAG,MAAM,CAAC,aAAa,CAAC;IAE5C,wEAAwE;IACjE,OAAO,EAAE,MAAM,CAAM;IAE5B,2EAA2E;IACpE,YAAY,EAAE,MAAM,CAAC,aAAa,CAAC;IAE1C,gEAAgE;IACzD,MAAM,EAAE,kBAAkB,CAAC;IAElC;;;;;;OAMG;gBAED,MAAM,EAAE,MAAM,CAAC,MAAM,EACrB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,kBAAkB,EAC1B,YAAY,EAAE,MAAM,CAAC,aAAa;IAOpC,iEAAiE;IACjE,cAAc,CAAC,OAAO,GAAE,MAAsC,GAAG,MAAM;IAIvE,2CAA2C;IAC3C,YAAY,IAAI,MAAM,CAAC,MAAM;IAI7B,2CAA2C;IAC3C,YAAY,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI;IAMtC,wBAAwB;IACxB,MAAM,IAAI,MAAM,CAAC,MAAM;IAIvB,wBAAwB;IACxB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI;IAMhC,wBAAwB;IACxB,MAAM,IAAI,MAAM,CAAC,MAAM;IAIvB,wBAAwB;IACxB,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI;IAMhC,sDAAsD;IAC7C,UAAU,IAAI,MAAM,CAAC,aAAa;IAO3C,iEAAiE;IACxD,UAAU,CAAC,GAAG,EAAE,MAAM,CAAC,aAAa,GAAG,IAAI;IAIpD,kEAAkE;IAClE,YAAY,IAAI,IAAI;IAIpB,4DAA4D;IAC5D,YAAY,IAAI,IAAI;IAIpB,0DAA0D;IACjD,OAAO,IAAI,MAAM;IAQ1B,yDAAyD;IAChD,MAAM,IAAI,MAAM;IAQzB,qFAAqF;IACrF,OAAO,IAAI,IAAI;IAOf,oFAAoF;IAC3E,KAAK;IAiBd;;;OAGG;IACY,IAAI,CACjB,SAAS,GAAE,MAAwB,GAClC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC;CAwB9B"}
@@ -27,18 +27,8 @@ export class CapturedThread extends Native.Thread {
27
27
  * @param sleepAddress The sleep gadget address for parking the thread.
28
28
  * @param processId Optional process ID for diagnostics and logging.
29
29
  */
30
- constructor(thread, regKey, sleepAddress, processId) {
31
- let threadObject;
32
- if (thread instanceof Native.Thread) {
33
- threadObject = thread;
34
- }
35
- else {
36
- threadObject = Native.Thread.open(thread, processId);
37
- }
38
- const rawHandle = threadObject.rawHandle;
39
- // Unregister original so CapturedThread owns the lifecycle via super()
40
- Native.handleRegistry.unregister(threadObject);
41
- super(rawHandle, threadObject.tid, true);
30
+ constructor(handle, threadId, regKey, sleepAddress) {
31
+ super(handle, threadId, false);
42
32
  this.regKey = regKey;
43
33
  this.sleepAddress = sleepAddress;
44
34
  }
@@ -1 +1 @@
1
- {"version":3,"file":"captured-thread.js","sourceRoot":"","sources":["../../src/thread/captured-thread.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"captured-thread.js","sourceRoot":"","sources":["../../src/thread/captured-thread.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@cheatron/nthread",
3
- "version": "1.0.0",
3
+ "version": "1.0.1",
4
4
  "description": "Non-invasive x64 Windows thread hijacking library — seize control of existing threads without shellcode, remote allocation, or CreateRemoteThread.",
5
5
  "main": "./dist/index.js",
6
6
  "types": "./dist/index.d.ts",
@@ -42,7 +42,7 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@cheatron/keystone": "^1.0.1",
45
- "@cheatron/native": "^1.2.6"
45
+ "@cheatron/native": "^1.2.9"
46
46
  },
47
47
  "devDependencies": {
48
48
  "@eslint/js": "^10.0.1",