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爆破过程记录的更多相关文章

  1. 升级Windows 10 正式版过程记录与经验

    升级Windows 10 正式版过程记录与经验 [多图预警]共50张,约4.6MB 系统概要: 预装Windows 8.1中文版 64位 C盘Users 文件夹已经挪动到D盘,并在原处建立了符号链接. ...

  2. 双系统Ubuntu分区扩容过程记录

    本人电脑上安装了Win10 + Ubuntu 12.04双系统.前段时间因为在Ubuntu上做项目要安装一个比较大的软件,导致Ubuntu根分区的空间不够了.于是,从硬盘又分出来一部分空间,分给Ubu ...

  3. CentOS 5.5 下安装Countly Web Server过程记录

    CentOS 5.5 下安装Countly Web Server过程记录 1. 系统更新与中文语言包安装 2. 基本环境配置: 2.1. NodeJS安装 依赖项安装 yum -y install g ...

  4. linux-i386(ubuntu)下编译安装gsoap_2.8.17过程记录

    过程记录 :  1.下载gsoap_2.8.17.zip 并 解压 : $unzip gsoap_2.8.17.zip     2.进入解压后的目录gsoap-2.8   3.自动配置编译环境:  $ ...

  5. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

  6. 升级到 ExtJS 5的过程记录

    升级到 ExtJS 5的过程记录   最近为公司的一个项目创建了一个 ExtJS 5 的分支,顺便记录一下升级到 ExtJS 5 所遇到的问题以及填掉的坑.由于 Sencha Cmd 的 sencha ...

  7. Ubuntu14.04 Tomcat 安装过程记录

    Ubuntu14.04 Tomcat 安装过程记录 检查java的版本 zhousp@ubuntu:~$ sudo java -version [sudo] password for zhousp: ...

  8. mercurial(Hg) Server 搭建 过程记录

    mercurial(Hg) Server 搭建 过程记录 1.  环境说明 只是测试搭建,环境为本机开发环境:win 8.1 + IIS8.5 软件准备: 2.  软件安装 先安装Python2.7, ...

  9. xp硬盘安装Fedora14 过程记录及心得体会(fedora14 live版本680M 和fedora14 DVD版本3.2G的选择)

    这次电脑奔溃了,奇怪的是直接ghost覆盖c盘竟然不中.之前电脑上硬盘安装的fedora14操作系统,也是双系统.不知道是不是这个问题,记得同学说过,在硬盘装fedora之后,要手动修改c盘隐藏的那个 ...

随机推荐

  1. opencv 处女作

    显示一幅图:主要是运用功能:imread namedWindow imshowimread:从字面意思我们就可以看懂,用来读取图片的:namedWindow:显然,我们也可以看到这是用来命名窗口名称的 ...

  2. Jquery常用radio取值,checkbox取值,select取值,radio选中,checkbox选中,select选中,及其相关设置

    获取一组radio被选中项的值:var item = $('input[name=items][checked]').val(); 获取select被选中项的文本:var item = $(" ...

  3. js继承

    js继承有5种实现方式: 继承第一种方式:对象冒充 function Parent(username){ this.username = username; this.hello = function ...

  4. Excel导入-----导出(包含所选和全部)操作

    在做系统的时候,很多时候信息量太大,这时候就需要进行Excel表格信息的导入和导出,今天就来给大家说一下我使用Excel表格信息导入和导出的心得. 1:首先需要在前端显示界面View视图中添加导入Ex ...

  5. JS-Number

    Number 是对原始数据的封装 语法: var myNum=new Number(value);//返回一个新创建的 Number 对象 var myNum=Number(value);//把自己的 ...

  6. DBCP配置数据库连接乱码问题

    driverClassName = com.mysql.jdbc.Driver url = jdbc:mysql:///bigdata username = root password = 82371 ...

  7. 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 ...

  8. [fortify] 变量覆盖漏洞

    一.全局变量覆盖当register_global=ON时,变量来源可能是各个不同的地方,比如页面的表单,Cookie等. <?php echo "Register_globals: & ...

  9. 利用xtraBackup实现不停master服务做主从同步

    MySQL主从同步原理: MySQL主从同步是在MySQL主从复制(Master-Slave Replication)基础上实现的,通过设置在Master MySQL上的binlog(使其处于打开状态 ...

  10. __attribute__((packed))详解

      1. __attribute__ ((packed)) 的作用就是告诉编译器取消结构在编译过程中的优化对齐,按照实际占用字节数进行对齐,是GCC特有的语法.这个功能是跟操作系统没关系,跟编译器有关 ...