513 字
3 分鐘
請注意,本文編寫於 122 天前,其中某些信息可能已經過時。
💉 Listary Pro逆向教程
工具準備
-
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,解壓到任意目錄
反混淆
- 將安裝目錄下的
D:\Program Files\Listary\Listary.exe拖到de4dot.exe上 - 安裝目錄下會生成
Listary-cleaned.exe - 重命名文件:
Listary.exe→Listary0.exeListary-cleaned.exe→Listary.exe
修改代碼
-
打開
dnSpy.exe,將新的Listary.exe拖入程式集資源管理器 -
修改
Listary.Core.Pro/LicenseChecker- 右鍵
CheckLicense方法,選擇“編輯方法” - 替換方法內容,點擊右下角“編譯” 修改代碼
public static bool CheckLicense(string email, string license){// 替換掉原有的,直接返回truereturn true;} - 右鍵
-
修改
Listary.Core.Pro/LicenseProPageViewModel- 右鍵
CheckLicense()方法,選擇“編輯方法” - 刪除第15行,點擊右下角“編譯”
private void CheckLicense(){// 刪除下面這行this.dt();} - 右鍵
-
修改
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:將
ActivateNewLicense和method_2函數內容改為return Task.FromResult(new ProService.ActivationResult());以下為單個示例:
// Token: 0x06001177 RID: 4471 RVA: 0x0003A6D0 File Offset: 0x000388D0public 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:將
DeactivateLicense、ScheduleAutoCheck、DebugTestActivateLicense、method_3函數內容改為return Task.CompletedTask;// Token: 0x06001178 RID: 4472 RVA: 0x0003A724 File Offset: 0x00038924public 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: 2385private static readonly ILogger ilogger_0 = LogManager.GetCurrentClassLogger();
-
點擊右下角“編譯”
-
點擊左上角“文件”,選擇“保存模塊”,確定
運行
將修改的Listary.exe覆蓋原有的安裝目錄下的 Listary.exe
雙擊 Listary.exe,完成所有步驟,Enjoy 🎉
💉 Listary Pro逆向教程
https://illumi.love/posts/資安向/listary-pro逆向教程/ 參與討論
使用 GitHub 帳號登入參與討論