李恒道 发表于 2023-11-2 16:55

文心一言开发者控制台调试破解

本帖最后由 李恒道 于 2023-11-2 17:07 编辑

一打开标准的无限debugger

往上一层可以发现是jsvmp,这样替换文件相对来说就不太好搞

根据测试如果卡在debugger就会跳转页面
但是放行debugger就可以正常使用
可以基本确定debugger前后存在计时程序
这个时候就可以考虑对apply做hook劫持无限debugger的函数,实现正常调试

// ==UserScript==
// @name         WXYY Crack Debugger
// @namespace    http://tampermonkey.net/
// @version      0.1.0
// @descriptiontry to take over the world!
// @author       You
// @match      https://yiyan.baidu.com/*
// ==/UserScript==
const apply = Function.prototype.apply
Function.prototype.apply = function (thisArg, argsArray=[]) {
    if(this.toString()==='function anonymous(\n) {\ndebugger\n}'){
      return
    }
    return this.call(thisArg, ...argsArray)
}


openbilibili 发表于 2023-11-2 21:26

// ==UserScript==
// @name         WXYY Crack Debugger
// @namespace    http://tampermonkey.net/
// @version      0.1.0
// @descriptiontry to take over the world!
// @AuThor       You
// @match      https://yiyan.baidu.com/*
// ==/UserScript==
Function.prototype.apply = function (thisArg, argsArray=[]) {
    // if (thisArg && typeof thisArg.toString === 'function') {
      if(this.name === 'anonymous' && this.toString() === 'function anonymous(\n) {\ndebugger\n}'){
            return
      }
    // }
    return this.call(thisArg, ...argsArray)
}


帮楼主修改了一下,如果不判断this.name===“anonymous”, 会导致栈溢出。

李恒道 发表于 2023-11-14 10:28

gegepang 发表于 2023-11-14 08:53
关于跳过 debugger感觉又学到一个。上一个帖子是hook构造器直接置空    这个帖子又是处理apply做hook劫持 ...

一般是就地取材离着最近的是哪个就劫持那个
文心一言属于jsvmp,分析逻辑过于麻烦了
然而上一层直接就是apply函数调用
所以劫持apply成本最低

gegepang 发表于 2023-11-14 08:53

关于跳过 debugger感觉又学到一个。上一个帖子是hook构造器直接置空    这个帖子又是处理apply做hook劫持无限debugger的函数
这两个方法有啥区别啊

dingqh 发表于 2023-11-2 17:44

是可以搞4.0吗{:1_918:}

lengkeyu 发表于 2023-11-2 20:36


我也看看,怎么做,哈哈

海洲光电 发表于 2023-11-2 17:02

大佬,不要打软件全名,注意保护自己

sai609 发表于 2023-11-2 18:29

不想要福祉啦?

qinuay 发表于 2023-11-2 19:10

我也看看,怎么做

xixicoco 发表于 2023-11-2 19:35

百度不破不立

GoingUp 发表于 2023-11-2 19:58

缺根弦的软件,哈哈

你是谁的谁 发表于 2023-11-2 20:02

感谢分享
页: [1] 2 3 4 5 6 7 8 9 10
查看完整版本: 文心一言开发者控制台调试破解