我的笔记

灵感、随想与新技术
23 10月 2022

【逆向安全】反汇编音频插件与Cracking实录

为保护插件不被Cracking,了解其过程是很必要的。

一直以来,关于逆向音频插件的资料在国内外都很少,刚好本人最近接触到相关的东西,所以撰写此文分享插件Cracking技术

其实Cracking音频插件和Cracking软件思路大致是相同的,只不过音频插件是一个模块,本文的案例就是软件Cracking中常见的搜索字符串法

 

本文旨在为提升插件开发者水平而分享插件Cracking技术

正式使用,还请使用正版

 

0.准备工具

下载调试工具 x64dbg(开源软件)

设置取消全部的自动断点,点选项->选项

去掉事件下所有的勾

将 异常 -> Unknow exceptions -> 设定为 “不暂停”

 

0.准备被Cracking插件

这里 我写了一个简单的注册码验证的VST插件

下载后放到 C:\Program Files\Common Files\VST3 文件夹里

打开宿主加载(这里是测试用的Reaper)

 

1.明确目标

音频插件,本质是挂载在一个应用程序(宿主DAW)上的模块,而Cracking要做的事,则是通过调试工具找到并反汇编这个模块,进而分析修改并重新转存这个模块

 

2.信息收集 – 了解软件行为

为了方便我写了个注册机,你可以用它算出的注册码查看注册成功提示的信息

====================================== [注册机] ==================================

====================================== [注册机] ==================================

 

这是注册码正确的提示

这是注册码不正确的情况

记住正确会弹出 “You have successfully registered VSTCrackTutorials001” 的提示,后面会用到

3.实践分析 & 整理思路

打开x64dbg,点 文件 -> 附加

在进程中找到宿主DAW(测试用的Reaper)的进程,双击 或 右下角 “附加”

点击 “符号” 标签页

找到加载的 “vstcracktutorial001.vst3” 模块 (是一个状态为 Loaded 的 用户模块),双击

双击后会跳到反汇编窗口(CPU标签页)

现在可以通过搜索 注册成功提示的字符串 来定位 处理注册逻辑的代码 在内存中所在的区域,修改那个区域的数据,就可以影响程序的行为

(程序需要加载到内存中才能由CPU执行,程序加载到内存后会由一个相对进程的虚拟地址来定位)

标签页里点右键,点 搜索 -> 当前模块 -> 字符串

等待底部搜索进度条拉满后,在进度条上方的搜索框里搜索 “You have successfully registered VSTCrackTutorials001″(前面提到的 注册成功 弹出的信息) 里的内容

这里我只搜了一个 successfully

第二个是正确提示的内容,双击跳转到该位置的反汇编窗口

简单分析后可以看到有一个跳转跳过了成功(红线部分),这个应该就是关键跳

 

4.实行Cracking & 反馈验证调节

在该跳转的行上 点右键 二进制 -> 用NOP填充 (编程上相当于把这句在内存里注释掉)

然后输入错的注册码再点Register按钮,看看程序的反应

结果弹出了注册成功的框,说明Cracking成功了

 

5.维持访问

接下来需要把Cracking后的插件保存下来

在反汇编窗口(CPU标签页)点击 右键 -> 补丁

点右下角的修补文件,然后找个不需要管理员权限的位置存上就可以,会保存一个格式与原模块相同的文件 (这里是 .vst3)

(C:\Program Files\Common Files\VST3需要管理员权限)

(这里是把内存中修改的地址转换成了.vst3文件的文件偏移地址,然后把修改后的数据写进去,存为新的.vst3文件)

然后用刚存的 .vst3文件 替换掉 C:\Program Files\Common Files\VST3 里的原始.vst3文件,就完成Cracking了。

 

🙂

上海外滩 – StudioEIM // MapleStory
  1. 上海外滩 – StudioEIM // MapleStory
  2. 神木村 – StudioEIM // MapleStory
  3. MapleStory – StudioEIM // MapleStory
  4. Pantheon – StudioEIM // MapleStory
  5. 逐梦飞翔 – StudioEIM // MapleStory
  6. 魔法密林 – StudioEIM // MapleStory