.Net Reactor通用授权破解工具
本帖最后由 hszt 于 2020-12-10 14:24 编辑针对类似下面界面这种的破解,有些可能显示天数,机器码不匹配之类的,反正界面大概都是这样的
原理
.Net Reactor加壳的时候加了授权的情况下,入口会多一行这样的代码
LicenseManager.Validate(typeof(Program));
De4dot脱壳后删掉这行代码就可以不用授权。
这么简单还要做一个工具?
还真不是,有时候这个授权代码不止一处,会在很多地方的.ctor 这个位置添加,多少是不同软件不一样,有些几处,有些可能几十上百处都有可能,手动去慢慢删,要累死,所以做个工具去根据特征删除。
还有一个好处是不脱壳就可以去除,有些脱壳会出错的就派上用场了
-------------------------------
工具是不知道在哪里下载的一个字符串解密工具,后面改了一下,
把这三行代码改成nop
call System.Void System.ComponentModel.LicenseManager::Validate(System.Type)这个是固定的
源码找不到了,就只能见到用dnspy改一下,所以判断可能不严谨,遇到不行的大家自己用dnspy动手改一下判断,可能单独判断后面两个call的Operand会好一些,
所谓通用,其实这个只支持默认加密选项的
遇到处理0处那种可能是加壳的时候勾上了防修改 也就是Anti Tampering,
6.x好像还有Hide Method Calls,工具不是万能的,遇到处理不了的就先脱壳吧
以前写的一个小工具,替换空格,代码很简单
public partial class MainForm : Form
{
private const string REPLACE_TEXT = " ";
public MainForm()
{
InitializeComponent();
}
private void txtSource_TextChanged(object sender, EventArgs e)
{
if (!string.IsNullOrWhiteSpace(txtSource.Text))
{
//txtDest.Text= txtSource.Text.Replace(System.Environment.NewLine, "");
txtDest.Text = Regex.Replace(txtSource.Text, @"\r\n?|\n", REPLACE_TEXT);
if (chkAutoCopy.Checked)
Clipboard.SetText(txtDest.Text);
}
}
}
我把整个工程文件也贴出来了
先用.net reactor 6.5加密,再用这个工具解密,生成的ToDoTextHelper_decrypted.exe 文件打不开,我猜测是堆栈破坏了,以前遇到过这类问题,也知道怎么修复,一时想不起来了
jy04468108 发表于 2020-12-10 12:16
这应该只能搞5.9及以下版本的吧,6.0以上的能搞不?
测试了6.x试用版可以,在不勾Anti Tampering的情况下,勾上Anti Tampering情况下的时候就只能想办法先脱壳 这应该只能搞5.9及以下版本的吧,6.0以上的能搞不? 谢谢分享 hszt 发表于 2020-12-10 12:18
测试了6.x试用版可以,在不勾Anti Tampering的情况下,勾上Anti Tampering情况下的时候就只能想办法先 ...
那确实牛逼了。{:1_921:}{:1_921:} {:1_937:}厉害,又得换加密方法,哎! 好东西,原理理解的好,赞一下,我把它改造一下,支持命令行,传一个或多个dll文件进去,这样更方便一些 大神啊,感谢你的分享,收藏了 有问题,不支持最新的.net reactor 6.5,处理了EXE之后,EXE启动不了 EnterpriseSolu 发表于 2020-12-10 13:47
有问题,不支持最新的.net reactor 6.5,处理了EXE之后,EXE启动不了
先脱壳吧,如果方便传个样本更好{:1_918:}