fiddler everywhere 3.3.0 去除授权校验

查看 163|回复 11
作者:cqc520   
前言
软件应该都知道,一个跨平台抓包工具;
之前搞定3.2.0版本时,是准备在吾爱发的,但是一直没时间来发;
今天下午跟进3.3.0版本后,去搜索引擎自搜了一下,发现有人发在吾爱了 {:1_921:}
https://www.52pojie.cn/thread-1654205-1-1.html
笔者使用的是 Linux 操作系统,因而 dnspy, reflexil 等工具无法使用(也可能我没找到相关可视化工具),
故采用 AvaloniaILSpy + ilasm / ildasm 进行处理;
classic 版本也不支持 Linux,故有此 everywhere 的修改。
不提供成品,但是这个帖子(https://www.52pojie.cn/thread-1654857-1-1.html)里面有个github,我已经传上去了。
预处理
准备好 ildasm 与 ilasm
使用 ildasm 将 Fiddler.WebUi.dll 转换为 il 文件
使用 ildasm 将 FiddlerBackendSDK.dll 转换为 il 文件
Linux 获取 ilasm (ildasm)
[ol]
  • 安装好 dotnet,打开一个空文件夹并执行后续命令
  • dotnet new console -n test
  • cd test
  • dotnet add package Microsoft.NETCore.ILAsm (ILDAsm)
  • dotnet publish -c Release --self-contained --runtime linux-x64
  • export PATH=$(pwd)/bin/Release/netcoreapp3.1/linux-x64/publish:$PATH
  • ilasm (ildasm)
    [/ol]
    处理
    main.xxxx.js

    为何在此进行修改?
    这是使用控制台进行调试操作探索出来的。

    打开 fiddler/resources/app/out/WebServer/ClientApp/dist/main.xxx.js 搜索 updateUserLicense
    函数开始处添加:(请将 Ie 替换为参数名称)
    Ie.licenseInfo.currentLicense = "Pro"
    Ie.licenseInfo.hasExpiredTrial = false
    Ie.licenseInfo.isTrialAvailable = false
    Ie.licenseInfo.hasValidLicense = true


    main.xxx.js-1.png (128.21 KB, 下载次数: 0)
    下载附件
    2022-7-10 20:12 上传

    Fiddler.WebUi.il

    如何知道修改此文件?
    当修改 main.js 尝试调出控制台时,程序是不能启动的,通过程序提示找到关键代码
    修改此文件去除文件校验,
    在 3.3.0 版本开始 main.xxx.js 也被加入校验流程,在此之前此dll文件的修改是可选的。
    去除 TryOpenElectronMainScript 的校验之后,可以修改 app/out/main.js 调出控制台

    对两个函数 TryOpenClientMainScript 与 TryOpenElectronMainScript 做相同操作:
    将函数体内容修改为 直接返回 true
    删除函数内以下代码之前的所有代码(以下代码含义为 return true;)
    IL_0208:  /* 17   |                  */ ldc.i4.1
    IL_0209:  /* 2A   |                  */ ret


    dll-TryOpenElectronMainScript-1.png (655.61 KB, 下载次数: 0)
    下载附件
    2022-7-10 20:12 上传

    删除后大概这个效果:


    dll-TryOpenElectronMainScript-2.png (463.66 KB, 下载次数: 0)
    下载附件
    2022-7-10 20:12 上传

    FiddlerBackendSDK.il

    如何知道修改此文件?
    这是通过替换验证服务器抓到的数据,操作有点麻烦;
    不过,如果对验证服务器做较为详尽的复现,应该能实现离线化。

    method FiddlerBackendSDK.User.UserClient::GetBestAccount
    搜索 UserClient::GetBestAccount
    删除 IL_000d - IL_0020 对应 if 语句
    删除 IL_003f - IL_0040 对应 return null; 语句


    dll-GetBestAccount-1.png (801.68 KB, 下载次数: 0)
    下载附件
    2022-7-10 20:12 上传

    method 'c__DisplayClass18_0'::'b__0'
    搜索 b__0
    删除 IL_0000 - IL_0019 , 在 IL_001e 前插入 ldc.i4.1  (即函数体直接返回 true )


    dll-GetBestAccount-2.png (827.88 KB, 下载次数: 0)
    下载附件
    2022-7-10 20:12 上传

    禁用更新
    修改 fiddler/resources/app/out/main.js:
    索 e.settingsService.get().autoUpdateSettings.disabled 替换为 true||e.settingsService.get().autoUpdateSettings.disabled

    下载次数, 文件

  • cqc520
    OP
      


    孤狼微博 发表于 2022-7-14 01:01
    如何知道修改此文件?
    当修改 main.js 尝试调出控制台时,程序是不能启动的,通过程序提示找到关键代码
    ...

    当修改 main.js 尝试调出Electron控制台时,程序不能启动,报错;
    就是遇到了代码防修改机制;
    但总归有个不让启动的提示,这时候通过反编译查找提示的字符串就能定位到防修改机制的关键代码;
    去除相关校验之后就能调出Electron的控制台了。
    (fiddler everywhere界面基于Electron的)
    孤狼微博   

    如何知道修改此文件?
    当修改 main.js 尝试调出控制台时,程序是不能启动的,通过程序提示找到关键代码
    修改此文件去除文件校验,
    在 3.3.0 版本开始 main.xxx.js 也被加入校验流程,在此之前此dll文件的修改是可选的。
    去除 TryOpenElectronMainScript 的校验之后,可以修改 app/out/main.js 调出控制台  没有看懂
    bean0283   

    多谢大佬分享教程,已更新,可以使用
    bbs119   

    上次尝试自己跟着大佬的步骤改来着,改完后发现卡在账号无法登录,我没搞懂一个抓包工具为啥还要求登录账号
    yks1985   

    感谢大佬无私奉献。。。。
    cqc520
    OP
      


    bbs119 发表于 2022-7-11 13:05
    上次尝试自己跟着大佬的步骤改来着,改完后发现卡在账号无法登录,我没搞懂一个抓包工具为啥还要求登录账号

    因为用的是账号付费模式,就必须登录获取“账号的购买信息”才能用软件。
    andypku   


    bean0283 发表于 2022-7-11 13:05
    多谢大佬分享教程,已更新,可以使用

    windows是不是不能用?
    cqc520
    OP
      


    andypku 发表于 2022-7-11 22:21
    windows是不是不能用?

    理论上是通用的,因为dotnet跨平台。
    bean0283   


    andypku 发表于 2022-7-11 22:21
    windows是不是不能用?

    可以用,windows按此教程改一下校验,其他的部分参考我的帖子修改即可
    您需要登录后才可以回帖 登录 | 立即注册

    返回顶部