mirror of
https://github.com/morluto/rea.git
synced 2026-11-03 05:16:16 +00:00
feat(kuna): verify release 1.988 (#8509)
This commit is contained in:
1 parent
df25bc8068
commit
1d343a88e5
7 files changed
+20
-15
No files matched your search
@@ -60,7 +60,7 @@ pin inspection sources; they are not included in the npm package.
|
||||
| ghidra-nativeaot | [MIT](https://github.com/Washi1337/ghidra-nativeaot/blob/effeb734fc570c32650f88b159608979dc7b423e/LICENSE.md) | Pinned inspection source; derived parser attribution above. |
|
||||
| JADX | [Apache-2.0](https://github.com/skylot/jadx/blob/v1.5.6/LICENSE) | The audited jadx-headless-mcp source uses JADX 1.5.6 for Android decompilation; the engine JAR is separately supplied. |
|
||||
| jadx-headless-mcp | [Apache-2.0](https://github.com/1013503897/jadx-headless-mcp/blob/5844800a486d2248fa949b74c9896285f5b54de2/LICENSE) | v0.7.1; pinned submodule and user-supplied JAR. |
|
||||
| Kuna | [Apache-2.0](https://github.com/Noelo-Lab/kuna/blob/v1.986/LICENSE), with its [NOTICE](https://github.com/Noelo-Lab/kuna/blob/v1.986/NOTICE) | Bring your own `kuna`; REA verified 1.986 and never downloads, installs or bundles it. REA invokes it as a separate process. |
|
||||
| Kuna | [Apache-2.0](https://github.com/Noelo-Lab/kuna/blob/v1.988/LICENSE), with its [NOTICE](https://github.com/Noelo-Lab/kuna/blob/v1.988/NOTICE) | Bring your own `kuna`; REA verified 1.988 and never downloads, installs or bundles it. REA invokes it as a separate process. |
|
||||
| Apktool | [Apache-2.0](https://github.com/iBotPeaches/Apktool/blob/master/LICENSE.md) | User-supplied Android resource decoder. |
|
||||
| Binwalk | [MIT](https://github.com/ReFirmLabs/binwalk/blob/4fdab3d464d97b68e0af9088df3f9e2e1545b21c/LICENSE) | v3.1.0; pinned submodule and user-supplied firmware engine. |
|
||||
| Unblob | [MIT](https://github.com/onekey-sec/unblob/blob/1fcc7a0a584a70a96c31f5a276c20944d199a089/LICENSE) | 26.6.4; pinned submodule and user-supplied firmware engine. |
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Kuna provider
|
||||
|
||||
[Kuna](https://github.com/Noelo-Lab/kuna) is an Apache-2.0 decompiler distributed as one `kuna` executable. For a new installation, use Kuna 1.986, REA's recommended verified release. REA uses a `kuna` you supply; it does not download, install, update or bundle Kuna. REA accepts other releases, which it reports as unverified in `rea doctor` and in each analysis profile. The 1.986 real-provider checks ran on macOS arm64; Linux and other hosts have not been verified with that release.
|
||||
[Kuna](https://github.com/Noelo-Lab/kuna) is an Apache-2.0 decompiler distributed as one `kuna` executable. For a new installation, use Kuna 1.988, REA's recommended verified release. REA uses a `kuna` you supply; it does not download, install, update or bundle Kuna. REA accepts other releases, which it reports as unverified in `rea doctor` and in each analysis profile. The verified-release flag compares the reported version; it does not authenticate the executable. The 1.988 real-provider checks ran on macOS arm64; Linux and other hosts have not been verified with that release.
|
||||
|
||||
Kuna is static: it reads the selected image and never executes it.
|
||||
|
||||
|
||||
@@ -1576,6 +1576,11 @@ symbols and stripped on macOS arm64, including the Ghidra comparison and owned
|
||||
cleanup. Linux and other hosts have not been verified with 1.986; this check is
|
||||
not a repeat of the larger 1.833 matrix.
|
||||
|
||||
Kuna 1.988 passed the real-provider lane on macOS arm64 with the generated
|
||||
Mach-O fixture and caller-built symbol-bearing and stripped x86-64 ELF fixtures.
|
||||
Linux and other hosts have not been verified with 1.988; this is not a repeat
|
||||
of the larger 1.833 matrix.
|
||||
|
||||
## DOS Ghidra analysis
|
||||
|
||||
`npm run verify:ghidra:dos` requires the supported Ghidra and JDK installation
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
/** Kuna release whose CLI and project layout REA verified; others report as unverified. */
|
||||
export const KUNA_VERIFIED_VERSION = "1.986";
|
||||
export const KUNA_VERIFIED_VERSION = "1.988";
|
||||
|
||||
/** Stable provider ID shared by readiness, doctor and Evidence. */
|
||||
export const KUNA_PROVIDER_ID = "kuna";
|
||||
|
||||
@@ -34,7 +34,7 @@ it("reports an unconfigured Kuna as a missing optional engine", async () => {
|
||||
it("publishes the caller's explicit settings once the installation validates", async () => {
|
||||
const root = await createTestTempDirectory("rea-kuna-doctor-");
|
||||
const kuna = await writeFakeKuna(root, {
|
||||
version: { stdout: "kuna 1.986\n" },
|
||||
version: { stdout: "kuna 1.988\n" },
|
||||
});
|
||||
const cache = join(root, "cache");
|
||||
|
||||
@@ -48,7 +48,7 @@ it("publishes the caller's explicit settings once the installation validates", a
|
||||
expect(inspection).toMatchObject({
|
||||
configured: true,
|
||||
available: true,
|
||||
providerVersion: "1.986",
|
||||
providerVersion: "1.988",
|
||||
registrationEnvironment: {
|
||||
REA_KUNA_COMMAND: kuna,
|
||||
REA_KUNA_CACHE_DIR: cache,
|
||||
@@ -59,10 +59,10 @@ it("publishes the caller's explicit settings once the installation validates", a
|
||||
name: "installation",
|
||||
ok: true,
|
||||
detail: expect.stringMatching(
|
||||
/reports Kuna 1\.986 \(sha256 [a-f0-9]{64}\)\.$/u,
|
||||
/reports Kuna 1\.988 \(sha256 [a-f0-9]{64}\)\.$/u,
|
||||
),
|
||||
remediation: null,
|
||||
details: { version: "1.986", verified_version: "1.986" },
|
||||
details: { version: "1.988", verified_version: "1.988" },
|
||||
},
|
||||
{
|
||||
name: "cache",
|
||||
@@ -88,7 +88,7 @@ it("flags an unverified release without failing the installation", async () => {
|
||||
"You may continue with the selected unverified release.",
|
||||
),
|
||||
remediation: expect.stringContaining("setting REA_KUNA_COMMAND"),
|
||||
details: { verified_version: "1.986" },
|
||||
details: { verified_version: "1.988" },
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -22,7 +22,7 @@ const it = test.skipIf(process.platform === "win32");
|
||||
it("identifies a caller-selected kuna by version and digest", async () => {
|
||||
const root = await createTestTempDirectory("rea-kuna-install-");
|
||||
const kuna = await writeFakeKuna(root, {
|
||||
version: { stdout: "kuna 1.986\n" },
|
||||
version: { stdout: "kuna 1.988\n" },
|
||||
});
|
||||
const link = join(root, "current-kuna");
|
||||
await symlink(kuna, link);
|
||||
@@ -37,7 +37,7 @@ it("identifies a caller-selected kuna by version and digest", async () => {
|
||||
value: {
|
||||
configuration: { command: link, cacheRoot: join(root, "cache") },
|
||||
executable: await realpath(kuna),
|
||||
version: "1.986",
|
||||
version: "1.988",
|
||||
verified: true,
|
||||
// A `#!` launcher reports its interpreter; ownership checks must not expect the path.
|
||||
script: true,
|
||||
@@ -104,14 +104,14 @@ fs.renameSync(process.argv[1] + ".new", process.argv[1]);
|
||||
it("accepts another release but reports it as unverified", async () => {
|
||||
const root = await createTestTempDirectory("rea-kuna-unverified-");
|
||||
const kuna = await writeFakeKuna(root, {
|
||||
version: { stdout: "kuna 1.833\n" },
|
||||
version: { stdout: "kuna 1.986\n" },
|
||||
});
|
||||
|
||||
const result = await inspectKunaInstallation({ REA_KUNA_COMMAND: kuna });
|
||||
|
||||
expect(result).toMatchObject({
|
||||
ok: true,
|
||||
value: { version: "1.833", verified: false },
|
||||
value: { version: "1.986", verified: false },
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -182,13 +182,13 @@ it("waits for an aborted pre-session hash before retrying its late close owner",
|
||||
|
||||
it("commits the observed Kuna release and digest to the analysis profile", async () => {
|
||||
const { profile, kuna } = await session("rea-kuna-profile-", {
|
||||
version: { stdout: "kuna 1.986\n" },
|
||||
version: { stdout: "kuna 1.988\n" },
|
||||
});
|
||||
|
||||
expect(profile).toMatchObject({
|
||||
provider: { id: "kuna", name: "Kuna", version: "1.986" },
|
||||
provider: { id: "kuna", name: "Kuna", version: "1.988" },
|
||||
parameters: {
|
||||
kuna_version: "1.986",
|
||||
kuna_version: "1.988",
|
||||
kuna_sha256: expect.stringMatching(/^[0-9a-f]{64}$/u),
|
||||
kuna_command: kuna,
|
||||
verified_release: true,
|
||||
|
||||
Reference in new issue
Block a user