获取 E 听说电脑版的试题答案

GitHub 项目地址:点击前往

注:目前 4.4.2 及以上的版本的听说模拟策略调整过,目前已破解并适配

1.破解过程

在E听说还是 3.0 的时候我曾翻E听说的目录,发现了许多含有答案的 html 文件,现在升级到了 4.0.X,答案已经不保存在安装目录下了,保存到了别的文件夹,我就沿用着 3.0 监视文件创建的思路做了 4.0.X 的答案获取工具

在用过一堆检测软件后发现E听说把答案保存到 AppData\Roaming\XX\NN 下(XX:一串只含字母和数字的字符串,似乎是 hash 加密后的值,NN:题目编号,纯数字),打开后可以看到

去翻目录,在 content00010002 发现这道题目

在翻这些目录后,我在 content00010002 下发现 content.json,内容是一段压缩过的 json,我们把它还原

于是很明显,红框圈起来的部分为答案

但是对于其他的,比如听力同步,目录结构就不是这样了,还是沿用了老版的目录结构,对我而言只需要做一个兼容就好了

有意思的是,红框圈起来的部分的答案远远多于E听说题目后面显示的答案

还没测试:手机版的原理应该相似,到时候会一起开发

2.下载:

注:请注意:对于这次更新,我放弃了 .NET2.0,采用 .NET4.0 进行开发,所以对于一些用户,你需要先安装 NET Framework 4.0

点击下载(前往 GitHub 下载最新版)

本站遵循「CC BY 4.0」创作共享协议,转载请注明出处

  • 蔡徐坤

    新版本出现了故障,错误信息如下:
    有关调用实时(JIT)调试而不是此对话框的详细信息,
    请参见此消息的结尾。

    ************** 异常文本 **************
    System.IO.FileLoadException: 未能加载文件或程序集“Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”或它的某一个依赖项。另一个程序正在使用此文件,进程无法访问。 (异常来自 HRESULT:0x80070020)
    文件名:“Newtonsoft.Json, Version=12.0.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed”
    在 ETSassistant.JsonProcessing.GetJsonAns(String ansfilepath)
    在 ETSassistant.Form1.listBox1_MouseClick(Object sender, MouseEventArgs e)
    在 System.Windows.Forms.Control.OnMouseClick(MouseEventArgs e)
    在 System.Windows.Forms.ListBox.WndProc(Message& m)
    在 System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    在 System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    在 System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)

    警告: 程序集绑定日志记录被关闭。
    要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。
    注意: 会有一些与程序集绑定失败日志记录关联的性能损失。
    要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。

    ************** 已加载的程序集 **************
    mscorlib
    程序集版本:4.0.0.0
    Win32 版本:4.7.3416.0 built by: NET472REL1LAST_B
    基本代码:file:///C:/Windows/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll
    —————————————-
    ETSassistant
    程序集版本:1.0.0.0
    Win32 版本:1.0.0.0
    基本代码:file:///C:/Users/20955/Desktop/ETSassistant.exe
    —————————————-
    System.Windows.Forms
    程序集版本:4.0.0.0
    Win32 版本:4.7.3324.0 built by: NET472REL1LAST_C
    基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
    —————————————-
    System
    程序集版本:4.0.0.0
    Win32 版本:4.7.3416.0 built by: NET472REL1LAST_B
    基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll
    —————————————-
    System.Drawing
    程序集版本:4.0.0.0
    Win32 版本:4.7.3190.0 built by: NET472REL1LAST_C
    基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
    —————————————-
    System.Configuration
    程序集版本:4.0.0.0
    Win32 版本:4.7.3324.0 built by: NET472REL1LAST_C
    基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Configuration/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
    —————————————-
    System.Core
    程序集版本:4.0.0.0
    Win32 版本:4.7.3429.0 built by: NET472REL1LAST_C
    基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll
    —————————————-
    System.Xml
    程序集版本:4.0.0.0
    Win32 版本:4.7.3190.0 built by: NET472REL1LAST_C
    基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll
    —————————————-
    mscorlib.resources
    程序集版本:4.0.0.0
    Win32 版本:4.7.3190.0 built by: NET472REL1LAST_C
    基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/mscorlib.resources.dll
    —————————————-
    System.Windows.Forms.resources
    程序集版本:4.0.0.0
    Win32 版本:4.7.3190.0 built by: NET472REL1LAST_C
    基本代码:file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_zh-Hans_b77a5c561934e089/System.Windows.Forms.resources.dll
    —————————————-

    ************** JIT 调试 **************
    要启用实时(JIT)调试,
    该应用程序或计算机的 .config 文件(machine.config)的 system.windows.forms 节中必须设置
    jitDebugging 值。
    编译应用程序时还必须启用
    调试。

    例如:

    启用 JIT 调试后,任何未经处理的异常
    都将被发送到在此计算机上注册的 JIT 调试程序,
    而不是由此对话框处理。

  • sqs_dada
    @蔡徐坤

    是程序出BUG了,已经在修复了,谢谢反馈!

  • 蔡徐坤

    为什么捕获到的内容没有答案

  • sqs_dada
    @蔡徐坤

    也许是E听说那边更新了算法,或者是我没有考虑周全,能提供一下是哪种题目没有捕获到答案吗?

  • 蔡徐坤
    @sqs_dada

    你的QQ/微信号是多少

  • sqs_dada
    @蔡徐坤

    已回复

  • do().catch(err => console.log('works for me'))

    一些研究 & 建议
    1. 可以试试 `ARCHPR` 明文攻击一下,看看能不能跑出来压缩包密码
    带密码压缩包处于 `%ProgramFiles(x86)%\ETS\load\paper\` 下

    2. `ppr*.zip` 未加密,里面的 `content.or` 有点意思 **未确定**
    似乎和 RPM Database 很像
    “`bash
    $ file content.or
    content.or: X11 SNF font data, MSB first
    “`
    搜索上述内容得到

    3. 读内存看做题状态
    Cheat Engine 试过了能扫出来,内存地址太菜不会找 – -||

    4. 接入 GCP 的 WaveNet TTS API(或其他 / Windows 内建 TTS)自动做题
    Loopback 声音的话 可供参考

    ¯\_(ツ)_/¯ 感谢 dalao 辛勤创作
    可以的话我找时间看看发个 `git patch`(PR 就算了,不想把自己账户丢出来)

    联系:fakeusr-d8095a87 [at] protonmail.com