4 Commits
Author SHA1 Message Date
Premade 4f17096fea Adapt to rizin API changes and update color parsing to ecj (#83) 2026-10-20 21:07:01 +01:00
dependabot[bot] 9fc60988dd Bump actions/setup-python from 6 to 7 (#82)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 6 to 7.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-27 22:08:36 +08:00
dependabot[bot] 0c9cf8b3f1 Bump actions/setup-node from 6 to 7 (#81)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 6 to 7.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-07-20 10:03:50 +08:00
dependabot[bot] 5131ff5e71 Bump actions/checkout from 6 to 7 (#80)
Bumps [actions/checkout](https://github.com/actions/checkout) from 6 to 7.
- [Release notes](https://github.com/actions/checkout/releases)
- [Changelog](https://github.com/actions/checkout/blob/main/CHANGELOG.md)
- [Commits](https://github.com/actions/checkout/compare/v6...v7)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '7'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2026-06-22 19:00:39 +08:00
6 changed files with 50 additions and 39 deletions

No files matched your search

+3 -3
View File
@@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout commit
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Install dependencies
run: sudo apt -y install meson ninja-build
- name: Build & run jsdec as rizin plugin
@@ -33,8 +33,8 @@ jobs:
- "windows-latest"
- "windows-2022"
steps:
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
- uses: actions/checkout@v7
- uses: actions/setup-python@v7
with:
python-version: 3.9.x
- name: Preparing msvc toolchain
+1 -1
View File
@@ -24,7 +24,7 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Initialize CodeQL
uses: github/codeql-action/init@v4
+4 -4
View File
@@ -11,8 +11,8 @@ jobs:
name: eslint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
- uses: actions/checkout@v7
- uses: actions/setup-node@v7
with:
node-version: "21"
- name: eslint
@@ -22,7 +22,7 @@ jobs:
name: tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: actions/checkout@v7
- name: tests
run: chmod +x .ci-scripts/ci-tests.sh && .ci-scripts/ci-tests.sh "${{ github.ref_name }}"
@@ -30,7 +30,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v6
uses: actions/checkout@v7
- name: Reuse Compliance Check
uses: fsfe/reuse-action@v6
with:
+12 -11
View File
@@ -53,11 +53,12 @@ static JSValue js_analysis_opcodes(JSContext *ctx, RzCore *core) {
JSValue ops = JS_NewArray(ctx);
st64 op_idx = 0;
RzIterator *iter = rz_core_analysis_bytes(core, core->offset, core->block, core->blocksize, 0);
if (!iter) {
RzIterator iter = (RzIterator){ 0 };
if (!rz_core_analysis_bytes(core, core->offset, core->block, core->blocksize, 0, &iter)) {
return ops;
}
rz_iterator_foreach(iter, cdb) {
rz_iterator_foreach(&iter, cdb) {
if (!cdb || !strcmp(cdb->opcode, "nop")) {
continue;
}
@@ -65,7 +66,7 @@ static JSValue js_analysis_opcodes(JSContext *ctx, RzCore *core) {
JS_SetPropertyInt64(ctx, ops, op_idx, op);
op_idx++;
}
rz_iterator_free(iter);
rz_iterator_fini(&iter);
return ops;
}
@@ -111,14 +112,14 @@ static JSValue js_command(JSContext *ctx, JSValueConst jsThis, int argc, JSValue
ExecContext *ectx = (ExecContext *)JS_GetContextOpaque(ctx);
RzCore *core = ectx->core;
rz_cons_sleep_end(ectx->bed);
rz_interrupt_sleep_end(core->intr, ectx->bed);
char *output = rz_core_cmd_str(core, command);
JS_FreeCString(ctx, command);
JSValue result = JS_NewString(ctx, output ? output : "");
free(output);
ectx->bed = rz_cons_sleep_begin();
ectx->bed = rz_interrupt_sleep_begin(core->intr);
return result;
}
@@ -128,11 +129,11 @@ static JSValue js_graph(JSContext *ctx, JSValueConst jsThis, int argc, JSValueCo
}
ExecContext *ectx = (ExecContext *)JS_GetContextOpaque(ctx);
RzCore *core = ectx->core;
rz_cons_sleep_end(ectx->bed);
rz_interrupt_sleep_end(core->intr, ectx->bed);
RzAnalysisFunction *fcn = rz_analysis_get_fcn_in(core->analysis, core->offset, -1);
if (!fcn) {
ectx->bed = rz_cons_sleep_begin();
ectx->bed = rz_interrupt_sleep_begin(core->intr);
return JS_ThrowInternalError(ctx, "Cannot find function at 0x%08" PFMT64x, core->offset);
}
@@ -142,7 +143,7 @@ static JSValue js_graph(JSContext *ctx, JSValueConst jsThis, int argc, JSValueCo
JS_SetPropertyStr(ctx, object, "name", JS_NewString(ctx, rz_str_get_null(fcn->name)));
JSValue blocks = js_function_bbs(ctx, core, fcn);
JS_SetPropertyStr(ctx, object, "blocks", blocks);
ectx->bed = rz_cons_sleep_begin();
ectx->bed = rz_interrupt_sleep_begin(core->intr);
return graph;
}
@@ -356,9 +357,9 @@ RZ_API RzAnnotatedCode *jsdec_as_annotation(RzCore *core, ut64 addr) {
rz_core_seek(core, addr, true);
}
ectx.bed = rz_cons_sleep_begin();
ectx.bed = rz_interrupt_sleep_begin(core->intr);
bool ret = jsdec_run(dec);
rz_cons_sleep_end(ectx.bed);
rz_interrupt_sleep_end(core->intr, ectx.bed);
if (offset != addr) {
rz_core_seek(core, offset, true);
+21 -15
View File
@@ -11,6 +11,7 @@
#include <rz_analysis.h>
#include "jsdec.h"
#include "rz_util/rz_iterator.h"
typedef struct rz_core_t RzCore;
@@ -80,11 +81,11 @@ static JSValue js_analysis_opcodes(JSContext *ctx, RzCore *core) {
JSValue ops = JS_NewArray(ctx);
st64 op_idx = 0;
RzIterator *iter = rz_core_analysis_bytes(core, core->offset, core->block, core->blocksize, 0);
if (!iter) {
RzIterator iter = (RzIterator){ 0 };
if (!rz_core_analysis_bytes(core, core->offset, core->block, core->blocksize, 0, &iter)) {
return ops;
}
rz_iterator_foreach (iter, cdb) {
rz_iterator_foreach(&iter, cdb) {
if (!cdb || !strcmp(cdb->opcode, "nop")) {
continue;
}
@@ -92,7 +93,7 @@ static JSValue js_analysis_opcodes(JSContext *ctx, RzCore *core) {
JS_SetPropertyInt64(ctx, ops, op_idx, op);
op_idx++;
}
rz_iterator_free(iter);
rz_iterator_fini(&iter);
return ops;
}
@@ -138,14 +139,14 @@ static JSValue js_command(JSContext *ctx, JSValueConst jsThis, int argc, JSValue
ExecContext *ectx = (ExecContext *)JS_GetContextOpaque(ctx);
RzCore *core = ectx->core;
rz_cons_sleep_end(ectx->bed);
rz_interrupt_sleep_end(core->intr, ectx->bed);
char *output = rz_core_cmd_str(core, command);
JS_FreeCString(ctx, command);
JSValue result = JS_NewString(ctx, output ? output : "");
free(output);
ectx->bed = rz_cons_sleep_begin();
ectx->bed = rz_interrupt_sleep_begin(core->intr);
return result;
}
@@ -155,11 +156,11 @@ static JSValue js_graph(JSContext *ctx, JSValueConst jsThis, int argc, JSValueCo
}
ExecContext *ectx = (ExecContext *)JS_GetContextOpaque(ctx);
RzCore *core = ectx->core;
rz_cons_sleep_end(ectx->bed);
rz_interrupt_sleep_end(core->intr, ectx->bed);
RzAnalysisFunction *fcn = rz_analysis_get_fcn_in(core->analysis, core->offset, -1);
if (!fcn) {
ectx->bed = rz_cons_sleep_begin();
ectx->bed = rz_interrupt_sleep_begin(core->intr);
return JS_ThrowInternalError(ctx, "Cannot find function at 0x%08" PFMT64x, core->offset);
}
@@ -169,24 +170,29 @@ static JSValue js_graph(JSContext *ctx, JSValueConst jsThis, int argc, JSValueCo
JS_SetPropertyStr(ctx, object, "name", JS_NewString(ctx, rz_str_get_null(fcn->name)));
JSValue blocks = js_function_bbs(ctx, core, fcn);
JS_SetPropertyStr(ctx, object, "blocks", blocks);
ectx->bed = rz_cons_sleep_begin();
ectx->bed = rz_interrupt_sleep_begin(core->intr);
return graph;
}
static JSValue js_console_log(JSContext *ctx, JSValueConst jsThis, int argc, JSValueConst *argv) {
ExecContext *ectx = (ExecContext *)JS_GetContextOpaque(ctx);
if (!ectx || !ectx->core) {
return JS_EXCEPTION;
}
RzCons *cons = ectx->core->cons;
for (int i = 0; i < argc; ++i) {
if (i != 0) {
rz_cons_print(" ");
rz_cons_print(cons, " ");
}
const char *str = JS_ToCString(ctx, argv[i]);
if (!str) {
return JS_EXCEPTION;
}
rz_cons_print(str);
rz_cons_print(cons, str);
JS_FreeCString(ctx, str);
}
rz_cons_newline();
rz_cons_flush();
rz_cons_newline(cons);
rz_cons_flush(cons);
return JS_UNDEFINED;
}
@@ -245,9 +251,9 @@ static bool jsdec_main(RzCore *core, const char *arg) {
return false;
}
ectx.bed = rz_cons_sleep_begin();
ectx.bed = rz_interrupt_sleep_begin(core->intr);
bool ret = jsdec_run(dec);
rz_cons_sleep_end(ectx.bed);
rz_interrupt_sleep_end(core->intr, ectx.bed);
jsdec_destroy(dec, &ectx);
return ret;
+9 -5
View File
@@ -9,11 +9,15 @@ import ColorsInvalid from './colors/invalid.js';
function initializeColors() {
const config = {};
const colors = rizin ? rizin.command("ec*") : '';
colors.split('\n').forEach(function(line) {
const tok = line.split(' ');
config[tok[1]] = tok[2];
});
if (rizin) {
const raw = rizin.command("ecj");
const colors = JSON.parse(raw || "{}");
if (colors && typeof colors === 'object' && !Array.isArray(colors)) {
Object.keys(colors).forEach(function(key) {
config[key] = colors[key];
});
}
}
return {
"callname": config['call'] || 'gray',
"integers": config['num'] || 'cyan',