513 字
3 分鐘
💉 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.exe
Listary-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 帳號登入參與討論