551 字
3 分钟
listary-hack

Listary Pro逆向教程#

转载自手把手教你破解Listary最新版V6.3.2.88Pro无弹窗~ - 吾爱破解 - 52pojie.cn

工具准备#

  • Listary v6.3.2.88
    官网下载地址
    下载后正常安装,例如安装到 D:\Program Files\Listary

  • dnSpy v6.1.8
    下载地址
    下载 dnSpy-net-win64.zip,解压到任意目录

  • de4dot v3.2.0.0
    下载地址
    下载 de4dot-net8.0-winx64.zip,解压到任意目录


反混淆#

  1. 将安装目录下的 D:\Program Files\Listary\Listary.exe 拖到 de4dot.exe
  2. 安装目录下会生成 Listary-cleaned.exe
  3. 重命名文件:
    • Listary.exeListary0.exe
    • Listary-cleaned.exeListary.exe

修改代码#

  1. 打开 dnSpy.exe,将新的 Listary.exe 拖入程序集资源管理器

  2. 修改 Listary.Core.Pro/LicenseChecker

    • 右键 CheckLicense 方法,选择“编辑方法”
    • 替换方法内容,点击右下角“编译” 修改代码
    public static bool CheckLicense(string email, string license)
    {
    // 替换掉原有的,直接返回true
    return true;
    }
  3. 修改 Listary.Core.Pro/LicenseProPageViewModel

    • 右键 CheckLicense() 方法,选择“编辑方法”
    • 删除第15行,点击右下角“编译”
    private void CheckLicense()
    {
    // 删除下面这行
    this.dt();
    }
  4. 修改 Listary.Core.Pro/ProService(共五处)

    • 右键 ProService,选择“编辑类”
    • 修改1:删除指定的两行
    public bool IsPro
    {
    [CompilerGenerated]
    get
    {
    return this.bool_0;
    }
    [CompilerGenerated]
    private set
    {
    if (this.bool_0 == value)
    {
    return;
    }
    this.bool_0 = value;
    this.<>OnPropertyChanged(Class373.LicenseEmail);
    this.<>OnPropertyChanged(Class373.IsPro);
    }
    }
  • 修改2:跳到210行附近,删除指定内容,如图删除211-221行内容

  • 修改3:将 ActivateNewLicensemethod_2 函数内容改为return Task.FromResult(new ProService.ActivationResult());

    以下为单个示例:

    // Token: 0x06001177 RID: 4471 RVA: 0x0003A6D0 File Offset: 0x000388D0
    public Task<ProService.ActivationResult> ActivateNewLicense(string email, string licenseKey)
    {
    ProService.Struct84 @struct;
    @struct.asyncTaskMethodBuilder_0 = AsyncTaskMethodBuilder<ProService.-
    ActivationResult>.Create();
    @struct.proService_0 = this;
    @struct.string_0 = email;
    @struct.string_1 = licenseKey;
    @struct.int_0 = -1;
    @struct.asyncTaskMethodBuilder_0.Start<ProService.Struct84>(ref @struct);
    return @struct.asyncTaskMethodBuilder_0.Task;
    return Task.FromResult(new ProService.ActivationResult());
    }
  • 修改4:将 DeactivateLicenseScheduleAutoCheckDebugTestActivateLicensemethod_3 函数内容改为 return Task.CompletedTask;

    // Token: 0x06001178 RID: 4472 RVA: 0x0003A724 File Offset: 0x00038924
    public Task DeactivateLicense()
    {
    ProService.Struct85 @struct;
    @struct.asyncTaskMethodBuilder_0 = AsyncTaskMethodBuilder.Create();
    @struct.proService_0 = this;
    @struct.int_0 = -1;
    @struct.asyncTaskMethodBuilder_0.Start<ProService.Struct85>(ref @struct);
    return @struct.asyncTaskMethodBuilder_0.Task;
    return Task.CompletedTask;
    }
  • 修改5:修改完上述函数后,可能会遇到编译报错的情况。这时候请删除13行和224行:

    //第13行
    using NLog;
    //第224行
    // Token: 0x04000951 RID: 2385
    private static readonly ILogger ilogger_0 = LogManager.GetCurrentClassLogger();
  1. 点击右下角“编译”

  2. 点击左上角“文件”,选择“保存模块”,确定


运行#

将修改的Listary.exe覆盖原有的安装目录下的 Listary.exe

双击 Listary.exe,完成所有步骤,Enjoy 🎉

listary-hack
https://blog.170529.xyz/posts/listary-hack/
作者
Starfallen
发布于
2025-08-26
许可协议
CC BY-NC-SA 4.0