14 Commits
Author SHA1 Message Date
Anton Kochkov 8180b60b9a Merge 'dev' branch into stable 2026-06-21 10:14:03 +04:00
Anton Kochkov 1903c99b3a Merge branch 'stable' into stable-merge 2026-06-21 10:13:47 +04:00
wargio 65821969c1 Fix build on latest rizin dev 2026-06-02 15:08:39 +08:00
dependabot[bot] ac88882529 Bump github/codeql-action from 3 to 4 (#75)
Bumps [github/codeql-action](https://github.com/github/codeql-action) from 3 to 4.
- [Release notes](https://github.com/github/codeql-action/releases)
- [Changelog](https://github.com/github/codeql-action/blob/main/CHANGELOG.md)
- [Commits](https://github.com/github/codeql-action/compare/v3...v4)

---
updated-dependencies:
- dependency-name: github/codeql-action
  dependency-version: '4'
  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-04-05 20:18:14 +08:00
dependabot[bot] 055f537948 Bump actions/checkout from 4 to 6 (#77)
Bumps [actions/checkout](https://github.com/actions/checkout) from 4 to 6.
- [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/v4...v6)

---
updated-dependencies:
- dependency-name: actions/checkout
  dependency-version: '6'
  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-04-05 18:17:23 +08:00
dependabot[bot] 0d559b8bb6 Bump actions/setup-python from 5 to 6 (#74)
Bumps [actions/setup-python](https://github.com/actions/setup-python) from 5 to 6.
- [Release notes](https://github.com/actions/setup-python/releases)
- [Commits](https://github.com/actions/setup-python/compare/v5...v6)

---
updated-dependencies:
- dependency-name: actions/setup-python
  dependency-version: '6'
  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-04-05 17:18:29 +08:00
dependabot[bot] b63ab4b190 Bump actions/setup-node from 4 to 6 (#76)
Bumps [actions/setup-node](https://github.com/actions/setup-node) from 4 to 6.
- [Release notes](https://github.com/actions/setup-node/releases)
- [Commits](https://github.com/actions/setup-node/compare/v4...v6)

---
updated-dependencies:
- dependency-name: actions/setup-node
  dependency-version: '6'
  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-04-05 17:17:35 +08:00
dependabot[bot] 394628eaad Bump fsfe/reuse-action from 2 to 6 (#73)
Bumps [fsfe/reuse-action](https://github.com/fsfe/reuse-action) from 2 to 6.
- [Release notes](https://github.com/fsfe/reuse-action/releases)
- [Commits](https://github.com/fsfe/reuse-action/compare/v2...v6)

---
updated-dependencies:
- dependency-name: fsfe/reuse-action
  dependency-version: '6'
  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-04-05 17:16:31 +08:00
Khairul Azhar Kasmiran 02f34ad351 Enable dependabot pull requests (#72) 2026-04-05 16:52:52 +08:00
Khairul Azhar Kasmiran 9a567c14a6 ci: Replace windows-2019 with windows-2022 (#71) 2026-04-05 13:08:04 +08:00
Khairul Azhar Kasmiran c35c9a20f9 Fix build due to move to RzCoreDecodedBytes (#70) 2026-04-04 18:35:34 +08:00
Khairul Azhar Kasmiran 7676831b3b Rename master branch to stable (#69) 2026-02-22 14:38:40 +08:00
Khairul Azhar Kasmiran d958b56f64 Rename master branch to stable (#68) 2026-02-22 14:38:34 +08:00
Khairul Azhar Kasmiran f53ad7a2a1 Use C++20 for jsdec Cutter plugin 2026-02-17 19:10:35 +08:00
11 changed files with 53 additions and 46 deletions

No files matched your search

+2 -2
View File
@@ -6,7 +6,7 @@ CI_JSDEC="$PWD"
CI_RZ_VERSION=$2
if [ "$CI_BRANCH" != "dev" ]; then
# master branch always build against latest release of rizin
# stable branch always build against latest release of rizin
CI_RZ_VERSION=$(curl -s GET https://api.github.com/repos/rizinorg/rizin/tags\?per_page\=1 | jq -r '.[].name')
else
CI_RZ_VERSION="$CI_BRANCH"
@@ -25,7 +25,7 @@ if [ "$CI_BRANCH" == "dev" ]; then
wget -O "rizin.tar.gz" "https://github.com/rizinorg/rizin/archive/refs/heads/dev.tar.gz"
tar xf "rizin.tar.gz"
else
# master branch always build against latest release of rizin
# stable branch always build against latest release of rizin
wget -O "rizin.tar.xz" "https://github.com/rizinorg/rizin/releases/download/$CI_RZ_VERSION/rizin-src-$CI_RZ_VERSION.tar.xz"
tar xf "rizin.tar.xz"
fi
+2 -2
View File
@@ -5,10 +5,10 @@ import os
out_file = "rizin.zip"
latest = "master" if len(sys.argv) < 1 else sys.argv[1]
latest = "stable" if len(sys.argv) < 1 else sys.argv[1]
if latest != "dev":
# master branch always build against latest release of rizin
# stable branch always build against latest release of rizin
tags = None
with urllib.request.urlopen('https://api.github.com/repos/rizinorg/rizin/tags?per_page=1') as f:
tags = json.load(f)
+7
View File
@@ -0,0 +1,7 @@
version: 2
updates:
- package-ecosystem: github-actions
directory: "/"
schedule:
interval: "weekly"
+5 -5
View File
@@ -3,7 +3,7 @@ name: build-plugin
on:
push:
branches:
- master
- stable
- dev
pull_request:
@@ -17,7 +17,7 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout commit
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Install dependencies
run: sudo apt -y install meson ninja-build
- name: Build & run jsdec as rizin plugin
@@ -31,10 +31,10 @@ jobs:
matrix:
os:
- "windows-latest"
- "windows-2019"
- "windows-2022"
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
- uses: actions/checkout@v6
- uses: actions/setup-python@v6
with:
python-version: 3.9.x
- name: Preparing msvc toolchain
+6 -6
View File
@@ -2,9 +2,9 @@ name: "CodeQL"
on:
push:
branches: ["master"]
branches: ["stable", "dev"]
pull_request:
branches: ["master"]
branches: ["stable", "dev"]
schedule:
- cron: "1 14 * * 5"
@@ -24,18 +24,18 @@ jobs:
steps:
- name: Checkout
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Initialize CodeQL
uses: github/codeql-action/init@v3
uses: github/codeql-action/init@v4
with:
languages: ${{ matrix.language }}
queries: +security-and-quality
- name: Autobuild
uses: github/codeql-action/autobuild@v3
uses: github/codeql-action/autobuild@v4
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
uses: github/codeql-action/analyze@v4
with:
category: "/language:${{ matrix.language }}"
+6 -6
View File
@@ -2,7 +2,7 @@ name: continuous-tests
on:
push:
branches:
- master
- stable
- dev
pull_request:
@@ -11,8 +11,8 @@ jobs:
name: eslint
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/setup-node@v4
- uses: actions/checkout@v6
- uses: actions/setup-node@v6
with:
node-version: "21"
- name: eslint
@@ -22,7 +22,7 @@ jobs:
name: tests
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- uses: actions/checkout@v6
- name: tests
run: chmod +x .ci-scripts/ci-tests.sh && .ci-scripts/ci-tests.sh "${{ github.ref_name }}"
@@ -30,8 +30,8 @@ jobs:
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4
uses: actions/checkout@v6
- name: Reuse Compliance Check
uses: fsfe/reuse-action@v2
uses: fsfe/reuse-action@v6
with:
args: --suppress-deprecation lint
+2 -2
View File
@@ -1,6 +1,6 @@
[![License](https://img.shields.io/badge/License-BSD_3--Clause-blue.svg)](https://opensource.org/licenses/BSD-3-Clause)
![jsdec](https://raw.githubusercontent.com/rizinorg/jsdec/master/.github/logo.png)
![jsdec](https://raw.githubusercontent.com/rizinorg/jsdec/dev/.github/logo.png)
Converts asm to pseudo-C code.
@@ -87,5 +87,5 @@ e scr.color | enables syntax colors.
# Developing on jsdec
[Read DEVELOPERS.md](https://github.com/rizinorg/jsdec/blob/master/DEVELOPERS.md)
[Read DEVELOPERS.md](https://github.com/rizinorg/jsdec/blob/dev/DEVELOPERS.md)
+8 -8
View File
@@ -22,8 +22,8 @@ typedef struct exec_context_t {
JSValue shared;
} ExecContext;
static JSValue js_analysis_bytes(JSContext *ctx, RzCore *core, RzAnalysisBytes *ab) {
RzAnalysisOp *aop = ab->op;
static JSValue js_analysis_bytes(JSContext *ctx, RzCore *core, RzCoreDecodedBytes *cdb) {
RzAnalysisOp *aop = &cdb->an_op;
JSValue op = JS_NewObject(ctx);
JS_SetPropertyStr(ctx, op, "offset", JS_NewBigUint64(ctx, aop->addr));
if (aop->ptr != UT64_MAX) {
@@ -32,8 +32,8 @@ static JSValue js_analysis_bytes(JSContext *ctx, RzCore *core, RzAnalysisBytes *
if (aop->val != UT64_MAX) {
JS_SetPropertyStr(ctx, op, "val", JS_NewBigUint64(ctx, aop->val));
}
JS_SetPropertyStr(ctx, op, "opcode", JS_NewString(ctx, rz_str_get_null(ab->opcode)));
JS_SetPropertyStr(ctx, op, "disasm", JS_NewString(ctx, rz_str_get_null(ab->disasm)));
JS_SetPropertyStr(ctx, op, "opcode", JS_NewString(ctx, rz_str_get_null(cdb->opcode)));
JS_SetPropertyStr(ctx, op, "disasm", JS_NewString(ctx, rz_str_get_null(cdb->disasm)));
JS_SetPropertyStr(ctx, op, "type", JS_NewString(ctx, rz_analysis_optype_to_string(aop->type)));
if (aop->jump != UT64_MAX) {
JS_SetPropertyStr(ctx, op, "jump", JS_NewBigInt64(ctx, aop->jump));
@@ -49,7 +49,7 @@ static JSValue js_analysis_bytes(JSContext *ctx, RzCore *core, RzAnalysisBytes *
}
static JSValue js_analysis_opcodes(JSContext *ctx, RzCore *core) {
RzAnalysisBytes *ab;
RzCoreDecodedBytes *cdb;
JSValue ops = JS_NewArray(ctx);
st64 op_idx = 0;
@@ -57,11 +57,11 @@ static JSValue js_analysis_opcodes(JSContext *ctx, RzCore *core) {
if (!iter) {
return ops;
}
rz_iterator_foreach(iter, ab) {
if (!ab || !ab->op || !strcmp(ab->opcode, "nop")) {
rz_iterator_foreach(iter, cdb) {
if (!cdb || !strcmp(cdb->opcode, "nop")) {
continue;
}
JSValue op = js_analysis_bytes(ctx, core, ab);
JSValue op = js_analysis_bytes(ctx, core, cdb);
JS_SetPropertyInt64(ctx, ops, op_idx, op);
op_idx++;
}
+12 -10
View File
@@ -49,8 +49,8 @@ typedef struct exec_context_t {
#define rz_cmd_desc_argv_new_warn(rcmd, root, cmd) \
rz_warn_if_fail(rz_cmd_desc_argv_new(rcmd, root, #cmd, name_handler(cmd), &name_help(cmd)))
static JSValue js_analysis_bytes(JSContext *ctx, RzCore *core, RzAnalysisBytes *ab) {
RzAnalysisOp *aop = ab->op;
static JSValue js_analysis_bytes(JSContext *ctx, RzCore *core, RzCoreDecodedBytes *cdb) {
RzAnalysisOp *aop = &cdb->an_op;
JSValue op = JS_NewObject(ctx);
JS_SetPropertyStr(ctx, op, "offset", JS_NewBigUint64(ctx, aop->addr));
if (aop->ptr != UT64_MAX) {
@@ -59,8 +59,8 @@ static JSValue js_analysis_bytes(JSContext *ctx, RzCore *core, RzAnalysisBytes *
if (aop->val != UT64_MAX) {
JS_SetPropertyStr(ctx, op, "val", JS_NewBigUint64(ctx, aop->val));
}
JS_SetPropertyStr(ctx, op, "opcode", JS_NewString(ctx, rz_str_get_null(ab->opcode)));
JS_SetPropertyStr(ctx, op, "disasm", JS_NewString(ctx, rz_str_get_null(ab->disasm)));
JS_SetPropertyStr(ctx, op, "opcode", JS_NewString(ctx, rz_str_get_null(cdb->opcode)));
JS_SetPropertyStr(ctx, op, "disasm", JS_NewString(ctx, rz_str_get_null(cdb->disasm)));
JS_SetPropertyStr(ctx, op, "type", JS_NewString(ctx, rz_analysis_optype_to_string(aop->type)));
if (aop->jump != UT64_MAX) {
JS_SetPropertyStr(ctx, op, "jump", JS_NewBigInt64(ctx, aop->jump));
@@ -76,7 +76,7 @@ static JSValue js_analysis_bytes(JSContext *ctx, RzCore *core, RzAnalysisBytes *
}
static JSValue js_analysis_opcodes(JSContext *ctx, RzCore *core) {
RzAnalysisBytes *ab;
RzCoreDecodedBytes *cdb;
JSValue ops = JS_NewArray(ctx);
st64 op_idx = 0;
@@ -84,11 +84,11 @@ static JSValue js_analysis_opcodes(JSContext *ctx, RzCore *core) {
if (!iter) {
return ops;
}
rz_iterator_foreach (iter, ab) {
if (!ab || !ab->op || !strcmp(ab->opcode, "nop")) {
rz_iterator_foreach (iter, cdb) {
if (!cdb || !strcmp(cdb->opcode, "nop")) {
continue;
}
JSValue op = js_analysis_bytes(ctx, core, ab);
JSValue op = js_analysis_bytes(ctx, core, cdb);
JS_SetPropertyInt64(ctx, ops, op_idx, op);
op_idx++;
}
@@ -280,7 +280,8 @@ command_handler(pddi, "--issue");
command_handler(pddj, "--as-json");
command_handler(pddo, "--offsets");
static bool rz_cmd_pdd_init(RzCore *core) {
static bool rz_cmd_pdd_init(RzCore *core, void **user) {
(void)user;
RzCmd *rcmd = core->rcmd;
RzConfig *cfg = core->config;
RzCmdDesc *root_cd = rz_cmd_get_desc(rcmd, "pd");
@@ -319,7 +320,8 @@ static bool rz_cmd_pdd_init(RzCore *core) {
return true;
}
static bool rz_cmd_pdd_fini(RzCore *core) {
static bool rz_cmd_pdd_fini(RzCore *core, void *user) {
(void)user;
RzCmd *rcmd = core->rcmd;
RzCmdDesc *cd = rz_cmd_get_desc(rcmd, "pdd");
return rz_cmd_desc_remove(rcmd, cd);
+2
View File
@@ -1,6 +1,8 @@
cmake_minimum_required(VERSION 3.12)
project(cutter-jsdec-plugin)
set(CMAKE_CXX_STANDARD 20)
set(CUTTER_INSTALL_PLUGDIR "share/rizin/cutter/plugins/native" CACHE STRING "Directory to install Cutter plugin into")
set(JSDEC_BUILD_DIR "../build" CACHE STRING "Directory where to find libjsdec.a")
+1 -5
View File
@@ -447,7 +447,7 @@ void help(void)
int main(int argc, char **argv)
{
int c, i, verbose;
int c, i;
const char *out_filename, *cname, *script_name;
char cfilename[1024];
FILE *fo;
@@ -462,7 +462,6 @@ int main(int argc, char **argv)
output_type = OUTPUT_C;
cname = NULL;
module = -1;
verbose = 0;
strip = 0;
stack_size = 0;
memset(&dynamic_module_list, 0, sizeof(dynamic_module_list));
@@ -519,9 +518,6 @@ int main(int argc, char **argv)
case 's':
strip++;
break;
case 'v':
verbose++;
break;
case 'p':
c_ident_prefix = optarg;
break;