Giter Club home page Giter Club logo

Comments (9)

HarlonWang avatar HarlonWang commented on June 9, 2024 1

最新測試版發現的問題 image

这个是我这边的一个 bug 导致的,已经修复了,我晚点会发个版本,明天你可以用 0.22.1-beta 这个版本验证下

from quickjs-wrapper.

FongMi avatar FongMi commented on June 9, 2024

順便請教,我在測試 bytecode 發生這樣的錯誤
是不是因為qjsc的版本跟你的庫不相容
image

這是bytecode範例
要去掉 //bb
然後用 base64 解密剩餘字串
然後用 context.execute 發生的

lbgs_open.zip

from quickjs-wrapper.

HarlonWang avatar HarlonWang commented on June 9, 2024

順便請教,我在測試 bytecode 發生這樣的錯誤 是不是因為qjsc的版本跟你的庫不相容 image

這是bytecode範例 要去掉 //bb 然後用 base64 解密剩餘字串 然後用 context.execute 發生的

lbgs_open.zip

这个还不太清楚,你是怎么编译成字节码的,是通过我提供的 compile 方法编译的吗?或者可以给个原始的 js 文件,我这边编译下试试看

from quickjs-wrapper.

FongMi avatar FongMi commented on June 9, 2024

順便請教,我在測試 bytecode 發生這樣的錯誤 是不是因為qjsc的版本跟你的庫不相容 image
這是bytecode範例 要去掉 //bb 然後用 base64 解密剩餘字串 然後用 context.execute 發生的
lbgs_open.zip

这个还不太清楚,你是怎么编译成字节码的,是通过我提供的 compile 方法编译的吗?或者可以给个原始的 js 文件,我这边编译下试试看

這個貓影視有發一個工具,不過封裝起來了
https://github.com/catvod/CatVodOpen/tree/main/open/qjsc

原始檔案
https://github.com/catvod/CatVodOpen/blob/main/open/kunyu77_open.js

bytecode 後檔案
https://github.com/catvod/CatVodOpen/blob/main/open/qjsc/bytecode/kunyu77_open.js

ps:他們 bytecode 後有再轉成 //bb+base64(bytecode) 格式

他們發布的版本在這,看看是否可以用 IDA Pro 查看他們的 so quickjs 版本
https://github.com/catvod/CatVodOpen/releases/tag/1.0.8

另外我有個疑問
如果要載入這種已編譯好的
透過 QuickJSContext.execute(bytecode) 怎麼提前設定他的 moduleName

from quickjs-wrapper.

FongMi avatar FongMi commented on June 9, 2024

最新測試版發現的問題 image

这个是我这边的一个 bug 导致的,已经修复了,我晚点会发个版本,明天你可以用 0.22.1-beta 这个版本验证下

測試沒問題了,感謝。
距離QQ解封還有16天。

from quickjs-wrapper.

HarlonWang avatar HarlonWang commented on June 9, 2024

順便請教,我在測試 bytecode 發生這樣的錯誤 是不是因為qjsc的版本跟你的庫不相容 image
這是bytecode範例 要去掉 //bb 然後用 base64 解密剩餘字串 然後用 context.execute 發生的
lbgs_open.zip

这个还不太清楚,你是怎么编译成字节码的,是通过我提供的 compile 方法编译的吗?或者可以给个原始的 js 文件,我这边编译下试试看

這個貓影視有發一個工具,不過封裝起來了 https://github.com/catvod/CatVodOpen/tree/main/open/qjsc

原始檔案 https://github.com/catvod/CatVodOpen/blob/main/open/kunyu77_open.js

bytecode 後檔案 https://github.com/catvod/CatVodOpen/blob/main/open/qjsc/bytecode/kunyu77_open.js

ps:他們 bytecode 後有再轉成 //bb+base64(bytecode) 格式

他們發布的版本在這,看看是否可以用 IDA Pro 查看他們的 so quickjs 版本 https://github.com/catvod/CatVodOpen/releases/tag/1.0.8

另外我有個疑問 如果要載入這種已編譯好的 透過 QuickJSContext.execute(bytecode) 怎麼提前設定他的 moduleName

  • 字节码需要通过我提供的方法来编译的,你这个应该是用的 quickjs 自带的 qjsc 的方式编译的,我是 fork 的 quickjs 仓库,里面是有一些新的改动,所以可能会有一些兼容性问题。你可以用原始档案通过我提供的 compile 或者 compileModule 方式来编译后执行下看下,使用方式可以参考单元测试里的示例代码:wrapper-android/src/androidTest/java/com/whl/quickjs/wrapper/QuickJSCompileTest.java

  • 关于你的疑问,moduleName 是在执行的时候,通过类似 ModuleLoader 去加载的,并不是提前设定的。一般是先编译好,在 ModuleLoader 里通过 moduleName 去加载对应的 module 代码

from quickjs-wrapper.

HarlonWang avatar HarlonWang commented on June 9, 2024

如果是 compileModule 的话,可以参考这个测试方法,可以单独编译 Module 代码:

    @Test
    public void testCompileModuleWithMockModuleLoader() {
        thrown.expect(QuickJSException.class);
        thrown.expectMessage("Could not find export 'a' in module 'a.js'");

        QuickJSContext context = QuickJSContext.create();
        context.setModuleLoader(new QuickJSContext.DefaultModuleLoader() {
            @Override
            public String getModuleStringCode(String moduleName) {
                return "";
            }
        });
        // 在 ModuleLoader 中返回空字符串,可以实现仅编译当前模块字节码,而不用编译它所依赖的模块
        byte[] bytes = context.compileModule("import { a } from 'a.js';");
        context.execute(bytes);
        context.destroy();
    }

实际执行的时候,还是需要通过 setModuleLoader 去加载对应 Module 代码的,一般可以提前编译成字节码,加载支持两种方式,一种是 String 代码,一种是字节码

from quickjs-wrapper.

FongMi avatar FongMi commented on June 9, 2024

了解,我再試試看了,感謝大神。

from quickjs-wrapper.

FongMi avatar FongMi commented on June 9, 2024

順便請教,我在測試 bytecode 發生這樣的錯誤 是不是因為qjsc的版本跟你的庫不相容 image
這是bytecode範例 要去掉 //bb 然後用 base64 解密剩餘字串 然後用 context.execute 發生的
lbgs_open.zip

这个还不太清楚,你是怎么编译成字节码的,是通过我提供的 compile 方法编译的吗?或者可以给个原始的 js 文件,我这边编译下试试看

這個貓影視有發一個工具,不過封裝起來了 https://github.com/catvod/CatVodOpen/tree/main/open/qjsc
原始檔案 https://github.com/catvod/CatVodOpen/blob/main/open/kunyu77_open.js
bytecode 後檔案 https://github.com/catvod/CatVodOpen/blob/main/open/qjsc/bytecode/kunyu77_open.js
ps:他們 bytecode 後有再轉成 //bb+base64(bytecode) 格式
他們發布的版本在這,看看是否可以用 IDA Pro 查看他們的 so quickjs 版本 https://github.com/catvod/CatVodOpen/releases/tag/1.0.8
另外我有個疑問 如果要載入這種已編譯好的 透過 QuickJSContext.execute(bytecode) 怎麼提前設定他的 moduleName

  • 字节码需要通过我提供的方法来编译的,你这个应该是用的 quickjs 自带的 qjsc 的方式编译的,我是 fork 的 quickjs 仓库,里面是有一些新的改动,所以可能会有一些兼容性问题。你可以用原始档案通过我提供的 compile 或者 compileModule 方式来编译后执行下看下,使用方式可以参考单元测试里的示例代码:wrapper-android/src/androidTest/java/com/whl/quickjs/wrapper/QuickJSCompileTest.java
  • 关于你的疑问,moduleName 是在执行的时候,通过类似 ModuleLoader 去加载的,并不是提前设定的。一般是先编译好,在 ModuleLoader 里通过 moduleName 去加载对应的 module 代码

是的,確實不兼容,嘗試將他們的頭CATOP移除並注入第一個 byte 0x02 會出現其他錯誤
image

所以只好放棄了。

from quickjs-wrapper.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.