AtomineerUtils爆破过程记录
AtomineerUtils是国外的一款用于生成源代码注释的一款VS插件,官方网站:http://www.atomineerutils.com/products.php
通过链接,可以看出这款插件的功能十分强大,不像GhostDoc那样,只支持C#,这款插件,支持C、C++、C++/CLI、C#、Java语言等,由此可以看出其强大,注释的风格可以灵活配置。
虽然他功能十分强大,但是由于是收费的软件,所以当使用超过30天后,就无法再继续适用了。虽然价格不贵,只有40美刀,但是由于时间紧急,必须立刻使用他的功能,所以没有时间去购买license。
那么能不能试着破解他呢,或者继续使用。说到破解,我的水平也就只能研究一下未混淆的.Net程序,如果这个插件是用C++写的话,那么不好意思,破不了。
用Reflector试着打开,发现能识别,如下:

同时也可以看到这个版本号是:8.16.5174.40541。这是最新版本了。
既然是.Net的DLL,那么相对来说就好说了,至少和C++相比来说,有希望了。
既然是VS的插件,那么肯定要遵守VS的插件接口规范。(VS的插件接口不在本篇中介绍)
首先找到它的OnConnect方法:

然后从OnConnect方法入手进行研究,最终定位到这里:
internal static bool b(bool A_0, bool A_1 = false)
{
bool flag = true;
int num = (((DateTime.Today.Year - ) * ) + DateTime.Today.DayOfYear) << ;
int num2 = ;
try
{
num2 = Convert.ToInt32(c(f, "", string.Empty));
}
catch
{
}
int num3 = (num - num2) >> ;
if (num3 > )
{
if (e[][] == 'I')
{
for (int i = ; i < e.Length; i++)
{
StringBuilder builder = new StringBuilder();
for (int j = ; j < e[i].Length; j++)
{
builder.Append((char) (e[i][j] ^ ( | (j % ))));
}
e[i] = builder.ToString();
}
}
if (num3 > )
{
flag = false;
Commands.f();
if ((num3 == g) || A_1)
{
return false;
}
MessageBox.Show(e[] + Environment.NewLine + Environment.NewLine + e[] + Environment.NewLine + Environment.NewLine + e[], "Atomineer Pro Documentation", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
else
{
if ((num3 == g) || !A_0)
{
return true;
}
string[] strArray2 = new string[] { e[], ( - num3).ToString(), e[], Environment.NewLine, Environment.NewLine, e[] };
if (MessageBox.Show(string.Concat(strArray2), "Atomineer Pro Documentation", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation) != DialogResult.Yes)
{
return true;
}
}
k.h("t~e}xzws");
g = num3;
}
return flag;
}
根据上面的逻辑,只要不执行 num3 > 29的逻辑,并且返回值为true即可,可以做如下修改:
bool flag = true;
...
int num3 = (num2 - num2) >> ;
这样,num3等于0,而且返回值为true。
那么如何修改这些代码呢,基于Reflector的Reflexil插件,来修改IL代码,然后另存为dll文件即可。
如下,是修改后的截图:

这样,整个插件就算是被破解了,可以无限期使用了。
AtomineerUtils爆破过程记录的更多相关文章
- 升级Windows 10 正式版过程记录与经验
升级Windows 10 正式版过程记录与经验 [多图预警]共50张,约4.6MB 系统概要: 预装Windows 8.1中文版 64位 C盘Users 文件夹已经挪动到D盘,并在原处建立了符号链接. ...
- 双系统Ubuntu分区扩容过程记录
本人电脑上安装了Win10 + Ubuntu 12.04双系统.前段时间因为在Ubuntu上做项目要安装一个比较大的软件,导致Ubuntu根分区的空间不够了.于是,从硬盘又分出来一部分空间,分给Ubu ...
- CentOS 5.5 下安装Countly Web Server过程记录
CentOS 5.5 下安装Countly Web Server过程记录 1. 系统更新与中文语言包安装 2. 基本环境配置: 2.1. NodeJS安装 依赖项安装 yum -y install g ...
- linux-i386(ubuntu)下编译安装gsoap_2.8.17过程记录
过程记录 : 1.下载gsoap_2.8.17.zip 并 解压 : $unzip gsoap_2.8.17.zip 2.进入解压后的目录gsoap-2.8 3.自动配置编译环境: $ ...
- 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)
原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...
- 升级到 ExtJS 5的过程记录
升级到 ExtJS 5的过程记录 最近为公司的一个项目创建了一个 ExtJS 5 的分支,顺便记录一下升级到 ExtJS 5 所遇到的问题以及填掉的坑.由于 Sencha Cmd 的 sencha ...
- Ubuntu14.04 Tomcat 安装过程记录
Ubuntu14.04 Tomcat 安装过程记录 检查java的版本 zhousp@ubuntu:~$ sudo java -version [sudo] password for zhousp: ...
- mercurial(Hg) Server 搭建 过程记录
mercurial(Hg) Server 搭建 过程记录 1. 环境说明 只是测试搭建,环境为本机开发环境:win 8.1 + IIS8.5 软件准备: 2. 软件安装 先安装Python2.7, ...
- xp硬盘安装Fedora14 过程记录及心得体会(fedora14 live版本680M 和fedora14 DVD版本3.2G的选择)
这次电脑奔溃了,奇怪的是直接ghost覆盖c盘竟然不中.之前电脑上硬盘安装的fedora14操作系统,也是双系统.不知道是不是这个问题,记得同学说过,在硬盘装fedora之后,要手动修改c盘隐藏的那个 ...
随机推荐
- opencv 处女作
显示一幅图:主要是运用功能:imread namedWindow imshowimread:从字面意思我们就可以看懂,用来读取图片的:namedWindow:显然,我们也可以看到这是用来命名窗口名称的 ...
- Jquery常用radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关设置
获取一组radio被选中项的值:var item = $('input[name=items][checked]').val(); 获取select被选中项的文本:var item = $(" ...
- js继承
js继承有5种实现方式: 继承第一种方式:对象冒充 function Parent(username){ this.username = username; this.hello = function ...
- Excel导入-----导出(包含所选和全部)操作
在做系统的时候,很多时候信息量太大,这时候就需要进行Excel表格信息的导入和导出,今天就来给大家说一下我使用Excel表格信息导入和导出的心得. 1:首先需要在前端显示界面View视图中添加导入Ex ...
- JS-Number
Number 是对原始数据的封装 语法: var myNum=new Number(value);//返回一个新创建的 Number 对象 var myNum=Number(value);//把自己的 ...
- DBCP配置数据库连接乱码问题
driverClassName = com.mysql.jdbc.Driver url = jdbc:mysql:///bigdata username = root password = 82371 ...
- LNMP脚本安装
#!/bin/bash#nginx:nginx-1.8.0.tar.gz#mysql:mysql-5.5.50.tar.gz#php:php-5.5.31.tar.gz#the software pa ...
- [fortify] 变量覆盖漏洞
一.全局变量覆盖当register_global=ON时,变量来源可能是各个不同的地方,比如页面的表单,Cookie等. <?php echo "Register_globals: & ...
- 利用xtraBackup实现不停master服务做主从同步
MySQL主从同步原理: MySQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态 ...
- __attribute__((packed))详解
1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法.这个功能是跟操作系统没关系,跟编译器有关 ...