@eyeauras/insight-cli 0.3.1 → 0.4.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/.cli-package-build.json +1 -1
- package/SKILL.md +4 -1
- package/dist/src/analysis-default.d.ts +26 -0
- package/dist/src/analysis-default.js +149 -0
- package/dist/src/analysis-storage.d.ts +39 -20
- package/dist/src/analysis-storage.js +112 -16
- package/dist/src/arguments.js +9 -4
- package/dist/src/cli.js +45 -37
- package/dist/src/code-references.d.ts +48 -0
- package/dist/src/code-references.js +154 -0
- package/dist/src/context-diagnostics.d.ts +25 -0
- package/dist/src/context-diagnostics.js +82 -0
- package/dist/src/contexts.d.ts +13 -1
- package/dist/src/contexts.js +38 -9
- package/dist/src/function-boundaries.d.ts +9 -0
- package/dist/src/function-boundaries.js +68 -0
- package/dist/src/function-entries.d.ts +33 -0
- package/dist/src/function-entries.js +84 -0
- package/dist/src/function-inspection.d.ts +4 -2
- package/dist/src/function-inspection.js +94 -59
- package/dist/src/function-results.d.ts +3 -1
- package/dist/src/function-results.js +9 -3
- package/dist/src/inline-script.d.ts +15 -0
- package/dist/src/inline-script.js +62 -0
- package/dist/src/internal-timing.d.ts +3 -0
- package/dist/src/internal-timing.js +52 -0
- package/dist/src/lifecycle.js +14 -4
- package/dist/src/native-inputs.d.ts +1 -1
- package/dist/src/native-inputs.js +1 -1
- package/dist/src/native-queries.js +1 -1
- package/dist/src/persistent-client.d.ts +30 -0
- package/dist/src/persistent-client.js +125 -0
- package/dist/src/queries.js +4 -1
- package/dist/src/query-policy.js +9 -1
- package/dist/src/research-view.d.ts +6 -0
- package/dist/src/research-view.js +9 -0
- package/dist/src/research.d.ts +38 -0
- package/dist/src/research.js +78 -8
- package/dist/src/string-anchors.d.ts +43 -0
- package/dist/src/string-anchors.js +176 -0
- package/dist/src/sync-policy.js +3 -0
- package/dist/src/timed-backend.d.ts +3 -0
- package/dist/src/timed-backend.js +16 -0
- package/dist/src/transport.d.ts +1 -0
- package/dist/src/transport.js +4 -0
- package/dist/src/workspace.js +5 -2
- package/package.json +12 -1
- package/references/native/InsightAnchorScan.java +135 -0
- package/references/native/InsightCodeReferences.java +129 -0
- package/references/native/InsightFunctionBoundaries.java +56 -0
- package/references/native/InsightInlineExecutor.java +143 -0
- package/references/native/InsightInlineScript.java +14 -0
- package/references/native/InsightPeRanges.java +92 -0
- package/references/native/InsightResearchQueries.java +22 -1
- package/references/native/InsightResearchView.java +69 -0
- package/references/native/InsightStringAnchors.java +49 -0
- package/references/persistent-client.mjs +125 -0
- package/references/persistent.md +50 -0
- package/references/query-semantics.md +12 -0
- package/references/recovery.md +36 -0
- package/references/research.md +87 -0
- package/references/setup.md +1 -1
- package/references/sparse-navigation.md +173 -0
- package/references/storage.md +35 -7
- package/runtime/GhidraMCP-7.0.0.jar +0 -0
- package/runtime/GhidraMCP-NOTICE +5 -0
- package/runtime/provenance.json +17 -3
- package/runtime/research-view.provenance.json +28 -0
- package/runtime/toolbox.json +10 -3
- package/skill-bundle/insight-artifacts/SKILL.md +1 -1
- package/skill-bundle/insight-artifacts/references/recovery.md +36 -0
- package/skill-bundle/insight-artifacts/references/storage.md +35 -7
- package/skill-bundle/insight-binary/SKILL.md +1 -1
- package/skill-bundle/insight-capture/SKILL.md +1 -1
- package/skill-bundle/insight-cli/SKILL.md +4 -1
- package/skill-bundle/insight-cli/references/persistent-client.mjs +125 -0
- package/skill-bundle/insight-cli/references/persistent.md +50 -0
- package/skill-bundle/insight-cli/references/recovery.md +36 -0
- package/skill-bundle/insight-cli/references/setup.md +1 -1
- package/skill-bundle/insight-cli/references/storage.md +35 -7
- package/skill-bundle/insight-die/SKILL.md +1 -1
- package/skill-bundle/insight-dnspy/SKILL.md +1 -1
- package/skill-bundle/insight-dotnet-dump/SKILL.md +1 -1
- package/skill-bundle/insight-dotnet-stack/SKILL.md +1 -1
- package/skill-bundle/insight-dotnet-trace/SKILL.md +1 -1
- package/skill-bundle/insight-frida/SKILL.md +1 -1
- package/skill-bundle/insight-ghidra/SKILL.md +14 -1
- package/skill-bundle/insight-ghidra/references/persistent-client.mjs +125 -0
- package/skill-bundle/insight-ghidra/references/persistent.md +50 -0
- package/skill-bundle/insight-ghidra/references/query-semantics.md +12 -0
- package/skill-bundle/insight-ghidra/references/recovery.md +36 -0
- package/skill-bundle/insight-ghidra/references/research.md +87 -0
- package/skill-bundle/insight-ghidra/references/setup.md +1 -1
- package/skill-bundle/insight-ghidra/references/sparse-navigation.md +173 -0
- package/skill-bundle/insight-ghidra/references/storage.md +35 -7
- package/skill-bundle/insight-ilspy/SKILL.md +1 -1
- package/skill-bundle/insight-interop/SKILL.md +1 -1
- package/skill-bundle/insight-lldb/SKILL.md +1 -1
- package/skill-bundle/insight-llvm/SKILL.md +1 -1
- package/skill-bundle/insight-managed-heap/SKILL.md +1 -1
- package/skill-bundle/insight-managed-metadata/SKILL.md +1 -1
- package/skill-bundle/insight-mitmproxy/SKILL.md +1 -1
- package/skill-bundle/insight-overview/SKILL.md +1 -1
- package/skill-bundle/insight-procmon/SKILL.md +1 -1
- package/skill-bundle/insight-re/SKILL.md +4 -1
- package/skill-bundle/insight-re/references/persistent-client.mjs +125 -0
- package/skill-bundle/insight-re/references/persistent.md +50 -0
- package/skill-bundle/insight-re/references/recovery.md +36 -0
- package/skill-bundle/insight-re/references/storage.md +35 -7
- package/skill-bundle/insight-sevenzip/SKILL.md +1 -1
- package/skill-bundle/insight-strace/SKILL.md +1 -1
- package/skill-bundle/insight-tshark/SKILL.md +1 -1
- package/skill-bundle/insight-windbg/SKILL.md +1 -1
- package/skill-bundle/manifest.json +1 -1
- package/skills/insight-artifacts/SKILL.md +1 -1
- package/skills/insight-artifacts/references/recovery.md +36 -0
- package/skills/insight-artifacts/references/storage.md +35 -7
- package/skills/insight-binary/SKILL.md +1 -1
- package/skills/insight-capture/SKILL.md +1 -1
- package/skills/insight-die/SKILL.md +1 -1
- package/skills/insight-dnspy/SKILL.md +1 -1
- package/skills/insight-dotnet-dump/SKILL.md +1 -1
- package/skills/insight-dotnet-stack/SKILL.md +1 -1
- package/skills/insight-dotnet-trace/SKILL.md +1 -1
- package/skills/insight-frida/SKILL.md +1 -1
- package/skills/insight-ghidra/SKILL.md +14 -1
- package/skills/insight-ghidra/references/persistent-client.mjs +125 -0
- package/skills/insight-ghidra/references/persistent.md +50 -0
- package/skills/insight-ghidra/references/query-semantics.md +12 -0
- package/skills/insight-ghidra/references/recovery.md +36 -0
- package/skills/insight-ghidra/references/research.md +87 -0
- package/skills/insight-ghidra/references/setup.md +1 -1
- package/skills/insight-ghidra/references/sparse-navigation.md +173 -0
- package/skills/insight-ghidra/references/storage.md +35 -7
- package/skills/insight-ilspy/SKILL.md +1 -1
- package/skills/insight-interop/SKILL.md +1 -1
- package/skills/insight-lldb/SKILL.md +1 -1
- package/skills/insight-llvm/SKILL.md +1 -1
- package/skills/insight-managed-heap/SKILL.md +1 -1
- package/skills/insight-managed-metadata/SKILL.md +1 -1
- package/skills/insight-mitmproxy/SKILL.md +1 -1
- package/skills/insight-overview/SKILL.md +1 -1
- package/skills/insight-procmon/SKILL.md +1 -1
- package/skills/insight-re/SKILL.md +4 -1
- package/skills/insight-re/references/persistent-client.mjs +125 -0
- package/skills/insight-re/references/persistent.md +50 -0
- package/skills/insight-re/references/recovery.md +36 -0
- package/skills/insight-re/references/storage.md +35 -7
- package/skills/insight-sevenzip/SKILL.md +1 -1
- package/skills/insight-strace/SKILL.md +1 -1
- package/skills/insight-tshark/SKILL.md +1 -1
- package/skills/insight-windbg/SKILL.md +1 -1
|
@@ -3,7 +3,7 @@ name: insight-lldb
|
|
|
3
3
|
description: Observe native runtime arguments, return values, registers, stacks and bounded memory at a selected breakpoint using an owned LLDB launch. Use insight-cli lldb on macOS ARM64 when static findings need a concrete execution check.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight LLDB 0.
|
|
6
|
+
# Insight LLDB 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-llvm
|
|
|
3
3
|
description: Inspect PE, ELF and Mach-O headers, dependencies, exports and symbols; query PDB debug information or a small instruction window with insight-cli LLVM utilities before opening a full analysis project.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight LLVM 0.
|
|
6
|
+
# Insight LLVM 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-managed-heap
|
|
|
3
3
|
description: Query structured .NET heap objects, primitive fields and managed stacks from a retained CoreCLR dump through insight-cli dotnet-dump query. Use for bounded offline dump investigation with an explicit matching DAC, preserving uncertainty and immutable input identity.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight Managed Heap 0.
|
|
6
|
+
# Insight Managed Heap 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-managed-metadata
|
|
|
3
3
|
description: Query managed assembly metadata, MethodDef tokens, P/Invoke declarations and bounded IL, or compare two C#/.NET assemblies through insight-cli ilspy query/compare. Use for structured static evidence and changed-method research without executing the target.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight Managed Metadata 0.
|
|
6
|
+
# Insight Managed Metadata 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-mitmproxy
|
|
|
3
3
|
description: Record, inspect and compare HTTP request/response evidence with insight-cli mitmproxy. Use when an owned client can explicitly use a loopback proxy; read native flow archives or HAR without replaying traffic. System interception and global certificate trust are outside this facade.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight mitmproxy 0.
|
|
6
|
+
# Insight mitmproxy 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-overview
|
|
|
3
3
|
description: Choose bounded tool overviews and focused drilldown through insight-cli without flooding agent context with whole-program code, traces or dumps. Use for tool discovery, scoped evidence paging and keeping native partial coverage separate from complete results.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight Overview 0.
|
|
6
|
+
# Insight Overview 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-procmon
|
|
|
3
3
|
description: Observe actual file and registry access by an authorized running Windows process through insight-cli procmon. Use when static paths or configuration guesses need runtime evidence; inspect retained captures without collecting again.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight ProcMon 0.
|
|
6
|
+
# Insight ProcMon 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-re
|
|
|
3
3
|
description: Investigate shipped programs and binary artifacts with insight-cli and other available tools; retain ordinary research files, coordinate independent agents and publish Ghidra annotations. Use for reverse engineering behavior, not ordinary source-repository browsing.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight RE 0.
|
|
6
|
+
# Insight RE 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -14,6 +14,9 @@ request/status recovery, never blind retry.
|
|
|
14
14
|
|
|
15
15
|
Answer the user's research question with inspectable materials. Agents choose the
|
|
16
16
|
investigation; insight-cli supplies applications such as `ghidra` and `artifacts`.
|
|
17
|
+
|
|
18
|
+
For repeated facade queries, retain one [persistent client](references/persistent.md) in the
|
|
19
|
+
agent runtime across calls. Follow its typed command errors and uncertain-transport recovery.
|
|
17
20
|
External tools need no insight-cli adapter. Installing this package does not register
|
|
18
21
|
the skill or change agent settings. `insight-cli skill insight-re` locates this file.
|
|
19
22
|
|
|
@@ -0,0 +1,125 @@
|
|
|
1
|
+
import { spawn } from 'node:child_process';
|
|
2
|
+
import { StringDecoder } from 'node:string_decoder';
|
|
3
|
+
export class InsightCommandError extends Error {
|
|
4
|
+
rpc;
|
|
5
|
+
constructor(rpc) {
|
|
6
|
+
super(rpc.message);
|
|
7
|
+
this.rpc = rpc;
|
|
8
|
+
this.name = 'InsightCommandError';
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class InsightTransportError extends Error {
|
|
12
|
+
dispatched;
|
|
13
|
+
constructor(message, dispatched) {
|
|
14
|
+
super(message);
|
|
15
|
+
this.dispatched = dispatched;
|
|
16
|
+
this.name = 'InsightTransportError';
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
/** A thin client of Factory's existing stream, with no reconnect or command replay. */
|
|
20
|
+
export async function connectInsight(options) {
|
|
21
|
+
const child = spawn(options.executable, [...(options.arguments ?? []), '--json-rpc'], { cwd: options.cwd, env: options.env, stdio: ['pipe', 'pipe', 'pipe'], shell: false });
|
|
22
|
+
const maximum = 4 * 1024 ** 2, decoder = new StringDecoder('utf8');
|
|
23
|
+
let buffer = '', bytes = 0, sequence = 0, accepting = true, failed = false, ended = false;
|
|
24
|
+
let closePromise, tail = Promise.resolve();
|
|
25
|
+
const pending = new Map();
|
|
26
|
+
// Drain diagnostics without retaining arbitrary stderr, paths, tokens or unbounded output.
|
|
27
|
+
child.stderr.resume();
|
|
28
|
+
const fail = (message) => {
|
|
29
|
+
if (failed)
|
|
30
|
+
return;
|
|
31
|
+
failed = true;
|
|
32
|
+
accepting = false;
|
|
33
|
+
for (const p of pending.values())
|
|
34
|
+
p.reject(new InsightTransportError(message, true));
|
|
35
|
+
pending.clear();
|
|
36
|
+
child.stdin.destroy();
|
|
37
|
+
child.stdout.destroy();
|
|
38
|
+
};
|
|
39
|
+
child.on('error', () => fail('Persistent CLI process failed.'));
|
|
40
|
+
child.stdout.on('error', () => fail('Persistent CLI output was lost.'));
|
|
41
|
+
child.stderr.on('error', () => fail('Persistent CLI diagnostic stream was lost.'));
|
|
42
|
+
child.stdin.on('error', () => fail('Persistent CLI input was lost; inspect request/status before retrying a changing command.'));
|
|
43
|
+
const exited = new Promise((resolve, reject) => {
|
|
44
|
+
child.once('close', (code, signal) => {
|
|
45
|
+
ended = true;
|
|
46
|
+
if (code !== 0 || signal || pending.size || buffer.trim()) {
|
|
47
|
+
fail('Persistent CLI closed without a complete acknowledged response.');
|
|
48
|
+
reject(new InsightTransportError('Persistent CLI transport ended unexpectedly.', false));
|
|
49
|
+
}
|
|
50
|
+
else if (failed)
|
|
51
|
+
reject(new InsightTransportError('Persistent CLI transport failed.', false));
|
|
52
|
+
else
|
|
53
|
+
resolve();
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
void exited.catch(() => { });
|
|
57
|
+
child.stdout.on('data', (chunk) => {
|
|
58
|
+
if (failed)
|
|
59
|
+
return;
|
|
60
|
+
buffer += decoder.write(chunk);
|
|
61
|
+
bytes += chunk.length;
|
|
62
|
+
if (bytes > maximum) {
|
|
63
|
+
fail('Persistent CLI response exceeded the bounded transport limit.');
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
for (;;) {
|
|
67
|
+
const newline = buffer.indexOf('\n');
|
|
68
|
+
if (newline < 0)
|
|
69
|
+
break;
|
|
70
|
+
const line = buffer.slice(0, newline);
|
|
71
|
+
buffer = buffer.slice(newline + 1);
|
|
72
|
+
bytes = Buffer.byteLength(buffer);
|
|
73
|
+
if (!line.trim())
|
|
74
|
+
continue;
|
|
75
|
+
try {
|
|
76
|
+
const r = JSON.parse(line);
|
|
77
|
+
if (!r || r.jsonrpc !== '2.0' || typeof r.id !== 'number' || !pending.has(r.id) || Object.hasOwn(r, 'result') === Object.hasOwn(r, 'error'))
|
|
78
|
+
throw Error();
|
|
79
|
+
const p = pending.get(r.id);
|
|
80
|
+
if (Object.hasOwn(r, 'error') && (!r.error || typeof r.error !== 'object' || typeof r.error.code !== 'number' || !Number.isInteger(r.error.code) || typeof r.error.message !== 'string'))
|
|
81
|
+
throw Error();
|
|
82
|
+
pending.delete(r.id);
|
|
83
|
+
if (r.error)
|
|
84
|
+
p.reject(new InsightCommandError(r.error));
|
|
85
|
+
else
|
|
86
|
+
p.resolve(r.result);
|
|
87
|
+
}
|
|
88
|
+
catch {
|
|
89
|
+
fail('Persistent CLI returned a malformed or uncorrelated response.');
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
});
|
|
94
|
+
await new Promise((resolve, reject) => { child.once('spawn', resolve); child.once('error', () => reject(new InsightTransportError('Could not start persistent CLI.', false))); });
|
|
95
|
+
return {
|
|
96
|
+
execute(argv) {
|
|
97
|
+
if (!Array.isArray(argv) || argv.length > 512 || argv.some(x => typeof x !== 'string' || x.includes('\0')) || Buffer.byteLength(JSON.stringify(argv)) > 1024 ** 2)
|
|
98
|
+
return Promise.reject(new TypeError('argv must be a bounded array of strings without NUL.'));
|
|
99
|
+
if (!accepting || failed || ended)
|
|
100
|
+
return Promise.reject(new InsightTransportError('Persistent CLI connection is closed.', false));
|
|
101
|
+
const args = [...argv];
|
|
102
|
+
const request = tail.then(() => {
|
|
103
|
+
if (failed || ended)
|
|
104
|
+
throw new InsightTransportError('Persistent CLI connection was lost before dispatch.', false);
|
|
105
|
+
const id = ++sequence;
|
|
106
|
+
return new Promise((resolve, reject) => {
|
|
107
|
+
pending.set(id, { resolve, reject });
|
|
108
|
+
try {
|
|
109
|
+
child.stdin.write(JSON.stringify({ jsonrpc: '2.0', id, method: 'cli.execute', params: { argv: args } }) + '\n');
|
|
110
|
+
}
|
|
111
|
+
catch {
|
|
112
|
+
fail('Persistent CLI input was lost; inspect request/status before retrying a changing command.');
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
});
|
|
116
|
+
tail = request.catch(() => { });
|
|
117
|
+
return request;
|
|
118
|
+
},
|
|
119
|
+
close() {
|
|
120
|
+
accepting = false;
|
|
121
|
+
return closePromise ??= tail.then(async () => { if (!failed && !ended)
|
|
122
|
+
child.stdin.end(); await exited; });
|
|
123
|
+
}
|
|
124
|
+
};
|
|
125
|
+
}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
# Persistent research calls
|
|
2
|
+
|
|
3
|
+
For a sequence of CLI research calls, keep one `insight-cli --json-rpc` frontend alive in the
|
|
4
|
+
agent's long-lived JavaScript runtime. The Factory owner and Ghidra processes have their own
|
|
5
|
+
lifetime; retaining only the owner still makes a new frontend validate its installed build.
|
|
6
|
+
|
|
7
|
+
The package exports a small stdio client, independent of the facade's eager imports:
|
|
8
|
+
|
|
9
|
+
```js
|
|
10
|
+
import {connectInsight, InsightCommandError, InsightTransportError}
|
|
11
|
+
from '@eyeauras/insight-cli/persistent';
|
|
12
|
+
|
|
13
|
+
const cli = await connectInsight({executable: 'insight-cli', cwd: projectDirectory});
|
|
14
|
+
const result = await cli.execute([
|
|
15
|
+
'ghidra', 'functions', 'inspect', '--session', session, '--target', target,
|
|
16
|
+
'--function', 'main', '--fields', 'entry_point', '--include-call-context', 'false'
|
|
17
|
+
]);
|
|
18
|
+
// Keep cli for subsequent calls in this investigation.
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
When package-name resolution is unavailable in the agent host, dynamically import the
|
|
22
|
+
[`persistent-client.mjs`](persistent-client.mjs) beside this reference by its absolute file URL.
|
|
23
|
+
It is generated from the same canonical package module. In a persistent REPL retain `cli` as a
|
|
24
|
+
binding across tool invocations. A new Node process per query does not retain this connection.
|
|
25
|
+
For an explicit installed bin, use `{executable: process.execPath, arguments: [installedBin], cwd}`.
|
|
26
|
+
`env` optionally supplies the child environment. There is no shell or separate profile/config.
|
|
27
|
+
Use existing `--profile` argv flags when selecting a profile explicitly.
|
|
28
|
+
|
|
29
|
+
`execute(argv)` returns the CLI result unchanged, without a JSON-RPC envelope. Calls are queued
|
|
30
|
+
in admission order. Native work can be long: await the original promise through the agent host's
|
|
31
|
+
existing wait facility. This V1 client deliberately has no per-request timeout or automatic
|
|
32
|
+
reconnect/retry. Factory permissions, command validation, IDs and native budgets remain authoritative.
|
|
33
|
+
|
|
34
|
+
* `InsightCommandError.rpc` preserves the JSON-RPC error code, message and data, including typed
|
|
35
|
+
CLI error results. A command failure leaves a healthy connection usable for the next command.
|
|
36
|
+
* `InsightTransportError.dispatched === true` means the request was handed to the stream and its
|
|
37
|
+
acknowledgment is unavailable; it does not prove execution. Changing commands require their
|
|
38
|
+
existing request-ID/status recovery. The client never resends them.
|
|
39
|
+
* `dispatched === false` means this client did not send that request, including queued requests
|
|
40
|
+
after a transport failure. Reconnection is an explicit new connection, not an implicit replay.
|
|
41
|
+
|
|
42
|
+
The client bounds each response line to four MiB, validates IDs and envelopes, and fails the
|
|
43
|
+
connection on malformed, uncorrelated or oversized replies. It drains stderr without retaining
|
|
44
|
+
arbitrary native diagnostics in memory. Read command-level diagnostics from their typed results
|
|
45
|
+
and the existing profile diagnostic locations.
|
|
46
|
+
|
|
47
|
+
Finish owned Ghidra contexts with the normal scoped commands, following the project's shared
|
|
48
|
+
server policy. Then `await cli.close()` drains already admitted requests and ends this stdio
|
|
49
|
+
connection. It does not issue `ipc-server stop`, close another agent's context or stop a server.
|
|
50
|
+
Do not call close while expecting to admit more requests.
|
|
@@ -24,11 +24,47 @@ establishes that the old owned bootstrap worker has ended, then uses an authorit
|
|
|
24
24
|
probe. An absent canonical item permits private preparation; an existing first version requires
|
|
25
25
|
independent readback. The old project, intent and original session/target remain preserved.
|
|
26
26
|
|
|
27
|
+
## Interrupted save or close
|
|
28
|
+
|
|
29
|
+
After restoring profile storage, inspect the selected session and target with
|
|
30
|
+
`sessions status <session> --target <target>`. Retry the original save/close with the
|
|
31
|
+
same `--request-id`. If the original command had no caller ID, use the generated
|
|
32
|
+
`unresolvedRequests[].id` from status. This retrieves the original intent instead of
|
|
33
|
+
creating another close. A verified stopped worker lets close report `state: closed`
|
|
34
|
+
and retain the acknowledged private snapshot and pending changes; it sends no new save,
|
|
35
|
+
open, close or publication. Reopen the same session/target afterward.
|
|
36
|
+
|
|
37
|
+
If release cannot be proved, the command still fails with `coordinator.unknown`
|
|
38
|
+
and gives scoped status/process inspection commands. An authenticated live worker is not
|
|
39
|
+
closed again automatically. Retain its project and journals. After inspecting its retained
|
|
40
|
+
work, an operator may terminate that exact owned headless worker through
|
|
41
|
+
`tools processes kill <process>` with Destructive permission, accepting loss of any
|
|
42
|
+
unacknowledged in-memory work. Do not kill by guessed PID/port or stop the shared server.
|
|
43
|
+
Retrieve the same close request after that worker has ended. An unavailable endpoint or
|
|
44
|
+
changed process receipt is not proof of release; preserve the binding for investigation.
|
|
45
|
+
|
|
27
46
|
If a response was lost, inspect `sessions status <session> --target <target>`. Never infer
|
|
28
47
|
`applied` from a connection failure. A changing command's optional request ID binds one effective
|
|
29
48
|
intent inside the profile. Repeating the same ID/input retrieves its recorded outcome or
|
|
30
49
|
unresolved state; changing input under that ID fails. Without an ID, calls are new intentions.
|
|
31
50
|
|
|
51
|
+
For Java `scripts run-inline`, a versioned native executor records compilation, non-initializing
|
|
52
|
+
class resolution, initialization, construction and framework execution separately. A correlated
|
|
53
|
+
receipt proving `userCode: not_started` and `entrypointInvoked: false` before initialization
|
|
54
|
+
produces `state: rejected` with a terminal failed request. The context remains available and
|
|
55
|
+
its prior saved/pending work is unchanged. The CLI exits nonzero; the error result retains
|
|
56
|
+
bounded compiler/load diagnostics. Repeating that request ID retrieves the same rejection;
|
|
57
|
+
corrected source requires a new ID. Each attempt has isolated source/classes under profile
|
|
58
|
+
analysis storage, with annotation processing disabled and no reuse of older inline classes.
|
|
59
|
+
|
|
60
|
+
Initialization or constructor failure can have effects even when `run()` was never called.
|
|
61
|
+
These failures, framework/runtime failures and missing/malformed/lost acknowledgements remain
|
|
62
|
+
unknown. During framework execution `entrypointInvoked: null` means actual `run()` entry was
|
|
63
|
+
not independently observed. Console text cannot establish non-execution. This is not a sandbox
|
|
64
|
+
for adversarial same-JVM Java, and existing unknown script attempts are not reclassified from
|
|
65
|
+
their exception strings or an unchanged program snapshot. File/Python scripts retain their
|
|
66
|
+
existing conservative recovery semantics.
|
|
67
|
+
|
|
32
68
|
An unknown or partial effect retains its request intent, snapshots and native stage. Open the
|
|
33
69
|
same tuple to reconcile supported outcomes. A committed merge is verified against its recorded
|
|
34
70
|
server version and complete saved buffers through independent read authority; it is never
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
# Analysis storage and migration
|
|
2
2
|
|
|
3
3
|
`storage show --json` reports effective profile storage, availability, active file/byte usage,
|
|
4
|
-
exact included trees
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
to
|
|
4
|
+
exact included trees, retained migration and installation default base. Before selecting a
|
|
5
|
+
base, storage starts in Factory profile AppData. `configure` and `migrate` select that base
|
|
6
|
+
for subsequent new/empty profiles as well as moving the current profile. Add `--profile-only`
|
|
7
|
+
to keep the installation default unchanged. The effective root appends `insight-cli/<profile>`.
|
|
8
|
+
Initialized profiles keep their existing locations when the default changes; profiles with
|
|
9
|
+
ordinary AppData analysis trees stay there until explicitly migrated.
|
|
10
|
+
|
|
11
|
+
The per-profile non-secret `analysisDirectory` setting remains in Factory's profile. The
|
|
12
|
+
installation default is bound storage-control metadata beside Factory's profile store, paired
|
|
13
|
+
with ownership metadata on the chosen base. It is not an environment or checkout setting.
|
|
14
|
+
Missing/replaced storage fails before creating analysis data; there is no system-disk fallback.
|
|
15
|
+
New profiles initialize on their first ordinary command, durably bind their own empty directory,
|
|
16
|
+
and keep permanent compatibility paths. `storage show` remains passive.
|
|
8
17
|
|
|
9
18
|
```sh
|
|
10
19
|
insight-cli permissions grant Update
|
|
@@ -29,7 +38,20 @@ user-selected outputs outside these trees keep their locations.
|
|
|
29
38
|
|
|
30
39
|
Factory keeps profiles, permissions, IPC election/socket, migration-control metadata and
|
|
31
40
|
application logs in current-user AppData. Secrets stay in the OS keyring. Credential/profile
|
|
32
|
-
identities do not change. Updating/installing npm
|
|
41
|
+
identities do not change. Updating/installing npm preserves existing profile locations and does not select a disk on its own.
|
|
42
|
+
|
|
43
|
+
## Select a default after an earlier migration
|
|
44
|
+
|
|
45
|
+
For installations migrated with an older CLI, select their existing mounted base once:
|
|
46
|
+
|
|
47
|
+
```sh
|
|
48
|
+
insight-cli storage default --directory "/mnt/analysis volume" --json
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
This Update operation changes the installation default without moving existing data. Future
|
|
52
|
+
profiles inherit it without repeating configuration. The base cannot be inside a profile data
|
|
53
|
+
root or overlap Factory control storage. A base owned by another installation is rejected.
|
|
54
|
+
A missing volume or replaced base/ownership marker is never adopted automatically.
|
|
33
55
|
|
|
34
56
|
## Move an existing profile
|
|
35
57
|
|
|
@@ -44,7 +66,7 @@ insight-cli storage migrate --directory "/mnt/analysis volume" --json
|
|
|
44
66
|
insight-cli storage show --json
|
|
45
67
|
```
|
|
46
68
|
|
|
47
|
-
Dry-run checks separation, destination contents, access, conservative capacity and quiescence
|
|
69
|
+
Dry-run reports whether it would select the installation default and checks separation, destination contents, access, conservative capacity and quiescence
|
|
48
70
|
without reserving/copying a migration. Source/destination/configuration roots cannot be equal
|
|
49
71
|
or nested. Destination symlink roots, escaping source links, special files, unresolved links
|
|
50
72
|
and inventories above one million entries or 128 directory levels are rejected. Internal
|
|
@@ -72,7 +94,9 @@ file, rechecks capacity and finishes the retained transaction. Source and destin
|
|
|
72
94
|
anchor identities are bound durably. Missing/replaced volumes fail without creating a system-disk
|
|
73
95
|
fallback; mount the original volume before resuming.
|
|
74
96
|
|
|
75
|
-
Rollback restores retained source and the prior Factory setting.
|
|
97
|
+
Rollback restores retained source and the prior Factory setting. The installation default stays
|
|
98
|
+
selected because subsequent profiles may already use it; a resumed older migration cannot
|
|
99
|
+
overwrite a newer default selection. After activation it requires
|
|
76
100
|
an unchanged destination and a verified retained source. Native reopening or later findings can
|
|
77
101
|
make rollback unsafe, in which case it refuses and preserves both copies. Use forward migration
|
|
78
102
|
to another empty base after using the new location. A rolled-back destination remains for manual
|
|
@@ -97,3 +121,7 @@ before starting another. This release provides no nonempty-destination adoption,
|
|
|
97
121
|
synchronization, live-DB snapshotting or network-filesystem guarantees. POSIX directory fsync
|
|
98
122
|
is used. Windows has file fsync and rename/junction semantics; Node cannot fsync directories
|
|
99
123
|
there, and internal symlinks can require OS privileges.
|
|
124
|
+
|
|
125
|
+
Empty-profile initialization resumes automatically on its next command after interruption. Its
|
|
126
|
+
retained source contains no analysis entries, so the CLI cleans only that owned empty backup
|
|
127
|
+
automatically. Migration of existing data always retains its source for explicit cleanup.
|
|
@@ -3,7 +3,7 @@ name: insight-sevenzip
|
|
|
3
3
|
description: Inventory, integrity-check and recover files from archives and supported containers with insight-cli 7-Zip, then hand recovered binaries or configuration to the appropriate research tool.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight 7-Zip 0.
|
|
6
|
+
# Insight 7-Zip 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-strace
|
|
|
3
3
|
description: Observe actual file reads, writes, process creation and network syscalls in an authorized owned native Linux launch using insight-cli strace. Use when static inference needs concrete operating-system interaction evidence.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight strace 0.
|
|
6
|
+
# Insight strace 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-tshark
|
|
|
3
3
|
description: Inspect an offline PCAP or PCAPNG with insight-cli tshark to identify protocols, HTTP/DNS/TLS fields, packet evidence and reconstructed TCP/UDP streams. Use for captured traffic questions; live acquisition and TLS decryption are separate tasks.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight TShark 0.
|
|
6
|
+
# Insight TShark 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-windbg
|
|
|
3
3
|
description: Investigate Windows native user-mode minidumps using bounded stacks, threads, registers, modules, memory and disassembly through insight-cli windbg. Use on Windows x64 when a captured runtime state needs native debugger evidence.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight WinDbg 0.
|
|
6
|
+
# Insight WinDbg 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-artifacts
|
|
|
3
3
|
description: Retain a completed reverse-engineering evidence file or directory as an ordinary checkpoint using insight-cli artifacts save. Use after Ghidra or any external tool; preserve existing project formats and source of truth.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight Artifacts 0.
|
|
6
|
+
# Insight Artifacts 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -24,11 +24,47 @@ establishes that the old owned bootstrap worker has ended, then uses an authorit
|
|
|
24
24
|
probe. An absent canonical item permits private preparation; an existing first version requires
|
|
25
25
|
independent readback. The old project, intent and original session/target remain preserved.
|
|
26
26
|
|
|
27
|
+
## Interrupted save or close
|
|
28
|
+
|
|
29
|
+
After restoring profile storage, inspect the selected session and target with
|
|
30
|
+
`sessions status <session> --target <target>`. Retry the original save/close with the
|
|
31
|
+
same `--request-id`. If the original command had no caller ID, use the generated
|
|
32
|
+
`unresolvedRequests[].id` from status. This retrieves the original intent instead of
|
|
33
|
+
creating another close. A verified stopped worker lets close report `state: closed`
|
|
34
|
+
and retain the acknowledged private snapshot and pending changes; it sends no new save,
|
|
35
|
+
open, close or publication. Reopen the same session/target afterward.
|
|
36
|
+
|
|
37
|
+
If release cannot be proved, the command still fails with `coordinator.unknown`
|
|
38
|
+
and gives scoped status/process inspection commands. An authenticated live worker is not
|
|
39
|
+
closed again automatically. Retain its project and journals. After inspecting its retained
|
|
40
|
+
work, an operator may terminate that exact owned headless worker through
|
|
41
|
+
`tools processes kill <process>` with Destructive permission, accepting loss of any
|
|
42
|
+
unacknowledged in-memory work. Do not kill by guessed PID/port or stop the shared server.
|
|
43
|
+
Retrieve the same close request after that worker has ended. An unavailable endpoint or
|
|
44
|
+
changed process receipt is not proof of release; preserve the binding for investigation.
|
|
45
|
+
|
|
27
46
|
If a response was lost, inspect `sessions status <session> --target <target>`. Never infer
|
|
28
47
|
`applied` from a connection failure. A changing command's optional request ID binds one effective
|
|
29
48
|
intent inside the profile. Repeating the same ID/input retrieves its recorded outcome or
|
|
30
49
|
unresolved state; changing input under that ID fails. Without an ID, calls are new intentions.
|
|
31
50
|
|
|
51
|
+
For Java `scripts run-inline`, a versioned native executor records compilation, non-initializing
|
|
52
|
+
class resolution, initialization, construction and framework execution separately. A correlated
|
|
53
|
+
receipt proving `userCode: not_started` and `entrypointInvoked: false` before initialization
|
|
54
|
+
produces `state: rejected` with a terminal failed request. The context remains available and
|
|
55
|
+
its prior saved/pending work is unchanged. The CLI exits nonzero; the error result retains
|
|
56
|
+
bounded compiler/load diagnostics. Repeating that request ID retrieves the same rejection;
|
|
57
|
+
corrected source requires a new ID. Each attempt has isolated source/classes under profile
|
|
58
|
+
analysis storage, with annotation processing disabled and no reuse of older inline classes.
|
|
59
|
+
|
|
60
|
+
Initialization or constructor failure can have effects even when `run()` was never called.
|
|
61
|
+
These failures, framework/runtime failures and missing/malformed/lost acknowledgements remain
|
|
62
|
+
unknown. During framework execution `entrypointInvoked: null` means actual `run()` entry was
|
|
63
|
+
not independently observed. Console text cannot establish non-execution. This is not a sandbox
|
|
64
|
+
for adversarial same-JVM Java, and existing unknown script attempts are not reclassified from
|
|
65
|
+
their exception strings or an unchanged program snapshot. File/Python scripts retain their
|
|
66
|
+
existing conservative recovery semantics.
|
|
67
|
+
|
|
32
68
|
An unknown or partial effect retains its request intent, snapshots and native stage. Open the
|
|
33
69
|
same tuple to reconcile supported outcomes. A committed merge is verified against its recorded
|
|
34
70
|
server version and complete saved buffers through independent read authority; it is never
|
|
@@ -1,10 +1,19 @@
|
|
|
1
1
|
# Analysis storage and migration
|
|
2
2
|
|
|
3
3
|
`storage show --json` reports effective profile storage, availability, active file/byte usage,
|
|
4
|
-
exact included trees
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
to
|
|
4
|
+
exact included trees, retained migration and installation default base. Before selecting a
|
|
5
|
+
base, storage starts in Factory profile AppData. `configure` and `migrate` select that base
|
|
6
|
+
for subsequent new/empty profiles as well as moving the current profile. Add `--profile-only`
|
|
7
|
+
to keep the installation default unchanged. The effective root appends `insight-cli/<profile>`.
|
|
8
|
+
Initialized profiles keep their existing locations when the default changes; profiles with
|
|
9
|
+
ordinary AppData analysis trees stay there until explicitly migrated.
|
|
10
|
+
|
|
11
|
+
The per-profile non-secret `analysisDirectory` setting remains in Factory's profile. The
|
|
12
|
+
installation default is bound storage-control metadata beside Factory's profile store, paired
|
|
13
|
+
with ownership metadata on the chosen base. It is not an environment or checkout setting.
|
|
14
|
+
Missing/replaced storage fails before creating analysis data; there is no system-disk fallback.
|
|
15
|
+
New profiles initialize on their first ordinary command, durably bind their own empty directory,
|
|
16
|
+
and keep permanent compatibility paths. `storage show` remains passive.
|
|
8
17
|
|
|
9
18
|
```sh
|
|
10
19
|
insight-cli permissions grant Update
|
|
@@ -29,7 +38,20 @@ user-selected outputs outside these trees keep their locations.
|
|
|
29
38
|
|
|
30
39
|
Factory keeps profiles, permissions, IPC election/socket, migration-control metadata and
|
|
31
40
|
application logs in current-user AppData. Secrets stay in the OS keyring. Credential/profile
|
|
32
|
-
identities do not change. Updating/installing npm
|
|
41
|
+
identities do not change. Updating/installing npm preserves existing profile locations and does not select a disk on its own.
|
|
42
|
+
|
|
43
|
+
## Select a default after an earlier migration
|
|
44
|
+
|
|
45
|
+
For installations migrated with an older CLI, select their existing mounted base once:
|
|
46
|
+
|
|
47
|
+
```sh
|
|
48
|
+
insight-cli storage default --directory "/mnt/analysis volume" --json
|
|
49
|
+
```
|
|
50
|
+
|
|
51
|
+
This Update operation changes the installation default without moving existing data. Future
|
|
52
|
+
profiles inherit it without repeating configuration. The base cannot be inside a profile data
|
|
53
|
+
root or overlap Factory control storage. A base owned by another installation is rejected.
|
|
54
|
+
A missing volume or replaced base/ownership marker is never adopted automatically.
|
|
33
55
|
|
|
34
56
|
## Move an existing profile
|
|
35
57
|
|
|
@@ -44,7 +66,7 @@ insight-cli storage migrate --directory "/mnt/analysis volume" --json
|
|
|
44
66
|
insight-cli storage show --json
|
|
45
67
|
```
|
|
46
68
|
|
|
47
|
-
Dry-run checks separation, destination contents, access, conservative capacity and quiescence
|
|
69
|
+
Dry-run reports whether it would select the installation default and checks separation, destination contents, access, conservative capacity and quiescence
|
|
48
70
|
without reserving/copying a migration. Source/destination/configuration roots cannot be equal
|
|
49
71
|
or nested. Destination symlink roots, escaping source links, special files, unresolved links
|
|
50
72
|
and inventories above one million entries or 128 directory levels are rejected. Internal
|
|
@@ -72,7 +94,9 @@ file, rechecks capacity and finishes the retained transaction. Source and destin
|
|
|
72
94
|
anchor identities are bound durably. Missing/replaced volumes fail without creating a system-disk
|
|
73
95
|
fallback; mount the original volume before resuming.
|
|
74
96
|
|
|
75
|
-
Rollback restores retained source and the prior Factory setting.
|
|
97
|
+
Rollback restores retained source and the prior Factory setting. The installation default stays
|
|
98
|
+
selected because subsequent profiles may already use it; a resumed older migration cannot
|
|
99
|
+
overwrite a newer default selection. After activation it requires
|
|
76
100
|
an unchanged destination and a verified retained source. Native reopening or later findings can
|
|
77
101
|
make rollback unsafe, in which case it refuses and preserves both copies. Use forward migration
|
|
78
102
|
to another empty base after using the new location. A rolled-back destination remains for manual
|
|
@@ -97,3 +121,7 @@ before starting another. This release provides no nonempty-destination adoption,
|
|
|
97
121
|
synchronization, live-DB snapshotting or network-filesystem guarantees. POSIX directory fsync
|
|
98
122
|
is used. Windows has file fsync and rename/junction semantics; Node cannot fsync directories
|
|
99
123
|
there, and internal symlinks can require OS privileges.
|
|
124
|
+
|
|
125
|
+
Empty-profile initialization resumes automatically on its next command after interruption. Its
|
|
126
|
+
retained source contains no analysis entries, so the CLI cleans only that owned empty backup
|
|
127
|
+
automatically. Migration of existing data always retains its source for explicit cleanup.
|
|
@@ -3,7 +3,7 @@ name: insight-binary
|
|
|
3
3
|
description: Query structured PE, ELF and thin Mach-O headers, sections, imports and exports, or make an explicitly guarded new PE subsystem copy through insight-cli binary. Use for scoped binary structure, linkage and copy-only header edits without target execution.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight Binary 0.
|
|
6
|
+
# Insight Binary 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-capture
|
|
|
3
3
|
description: Capture one explicitly authorized native program run, exact stdout/stderr and declared file snapshots through insight-cli capture, then inspect or compare retained reports without replay. Use for controlled input/output research, preserving original files and interrupted or unknown outcomes.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight Capture 0.
|
|
6
|
+
# Insight Capture 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-die
|
|
|
3
3
|
description: Classify unknown executable or container inputs by format, architecture and compiler/runtime/packer signatures with Detect It Easy before choosing managed or native analysis. Use insight-cli die for static triage and preserve scan uncertainty.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight Detect It Easy 0.
|
|
6
|
+
# Insight Detect It Easy 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-dnspy
|
|
|
3
3
|
description: Debug a managed Windows EXE at an IL breakpoint and read primitive arguments, or change one expected IL Int32 constant in a new assembly copy through insight-cli dnspy. Use when C# decompilation needs observed execution or a controlled binary edit.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight dnSpyEx 0.
|
|
6
|
+
# Insight dnSpyEx 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|
|
@@ -3,7 +3,7 @@ name: insight-dotnet-dump
|
|
|
3
3
|
description: Capture a managed heap dump or inspect compatible .NET dumps with SOS to recover waiting stacks, objects, fields and retention evidence.
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
# Insight .NET Dump 0.
|
|
6
|
+
# Insight .NET Dump 0.4.0
|
|
7
7
|
|
|
8
8
|
If local help/status reports AppData or IPC access denied, retry that **read-only probe**
|
|
9
9
|
with the agent host's normal permission escalation, then use that route for later authorized
|