欢迎光临
我们一直在努力

用dnSpy破解某VBA代码辅助工具

  最近,看到一款VBA代码辅助工具,代码收集比较全。本人偶尔也会用用VBA做一些表格的自动化处理,但不经常用,记性也不太好,老是忘记里面的一些对象名或方法。有了这种工具倒是不错,直接拿来用,挺方便的。不过VIP是收费的,在当前事事都讲产权的时代下,作者为自己的付出和辛苦努力收点注册费是正常的。我也大力支持!如果你是软件的作者,看到此帖后,请原谅我的罪过!呵呵,纯小白,仅对逆向有粗略的研究,遂产生了crack它的冲动。并不想挑战国家法律和侵犯作者版权……完全是基于逆向的学习和研究及学习dnSpy工具。  现在开始吧!     一、安装好软件。     二、运行它,查看软件的大致工作原理,尤其是激活功能,注意收集相关信息,比如有用的字符串。激活界面如下:

1

用dnSpy破解某VBA代码辅助工具

    三、查壳。这种办公软件的插件,多半是微软的.net开发的,比如C#VB.net等,因为这样才完美兼容。首先用ScanId查一下:

2

用dnSpy破解某VBA代码辅助工具

四、脱壳。de4dot-Reactor5.0 脱壳,老版本好像不行,直接将安装目录中的VBAHelper.dll拖放在de4dot.exe上即可脱壳。成功后在目录下产生脱壳后的文件:VBAHelper-cleaned.dll,再次查壳,成功脱壳:

3

用dnSpy破解某VBA代码辅助工具


五、更改名字替换原dll,拖入dnSpy中。(这里该dll使用32位的dnSpy调试。)

4

用dnSpy破解某VBA代码辅助工具

搜索“激活”,后面的选项中记得选“数字/字符串”。在结果中逐个查看是否是可疑点。在“FrmActivate_Load”中,可看到两个可疑信息:

5

用dnSpy破解某VBA代码辅助工具

可疑事件一  往下再翻:

6

用dnSpy破解某VBA代码辅助工具

可疑按钮事件二  看一看,两个都像是激活按钮的事件处理过程,且有一个明显的判断,“active-right”和“active-error”是什么?激活正确,激活错误!究竟是不是按钮事件处理过程,是哪个?下个断点,动态调试呗。因为这是个VBA插件,是dll,所以要加载到exe中才能调试它……单击“调试”,然后设置调试加载的程序为Excel

7

用dnSpy破解某VBA代码辅助工具

     Excel运行后,点击“开发工具”中的“Visual Basic”(如果没有开发工具,请在Excel高级选项中的选项中开启)。然后在已经加载的插件工具栏中“帮助”下点击“激活”。

8

用dnSpy破解某VBA代码辅助工具


9

用dnSpy破解某VBA代码辅助工具



  输入假码,点击“激活”后,发现断下来了……

10

用dnSpy破解某VBA代码辅助工具

  说明它就是激活按钮的处理函数……重点关注。  可以看出,它调用了一个处理函数:Activation.Activate(),单击Activate进入函数中:

11

用dnSpy破解某VBA代码辅助工具

  发现它再次调用了另一个函数:Online.ActivationTool(activeinfo),点击进入它:

12

用dnSpy破解某VBA代码辅助工具

  再次调用了函数,进入HttpGetString中看看:

13

用dnSpy破解某VBA代码辅助工具

  很明显,这是一个联网获取封包的函数。  它发送了什么?又返回什么?直接在函数返回值处下个断点,拦截一下。

14

用dnSpy破解某VBA代码辅助工具


  断下来了。

15

用dnSpy破解某VBA代码辅助工具

  看,封包数据:验证是否无效IDID是否已经使用,下一个激活日期等。  篡改一下,观察看看:  右键编辑result的值,改为:

16

用dnSpy破解某VBA代码辅助工具

  最后一个,日期双引可加可不加……  修改完成后,点击继续运行。好,弹出“激活成功了……”

17

用dnSpy破解某VBA代码辅助工具

  再到菜单中看看:

18

用dnSpy破解某VBA代码辅助工具


  原来时间是0,现在是383天。重启一下Excel,激活仍然存在。说明验证注册的结果已经保存本地了……这里,就不在深究它是保存在注册表,还是在文件中了。  既然是网络验证且封包是明码,我们就有很多方法修改它了。可以山寨它……当然最好的是修改源代码啦……  返回到Activate函数中,仔细查看:

19

用dnSpy破解某VBA代码辅助工具

  可以看出,它将激活封包信息返回后,存储在一个类似C中的结构体变量中了,然后下方再对这个结构体成员进行判断,验证你是否激活。OK,现在我们就直接无视它的网络验证了,直接修改Activate函数。我因为只对vb.net有点了解,所以以vb.net格式进行修改,右击“编辑方法”,修改后如下:

20

用dnSpy破解某VBA代码辅助工具

  要注意的是,传入的参数和定义的变量名相同,无法编译保存,所以可将参数cativeinfo改个名,我加了_1,然后就是使用了New关键字,这个懂点VB的应该知道啦。至于日期可以自行修改,我改成了20481220,大约30年。  其实,这个函数应该就改改最后两句就行了,我没测试。      activeInfo.NextActiveDate ="20481220"      Activation.m_nextActivateDate =activeInfo.NextActiveDate  最后,保存(一定要在停止调试的情况下才能保存成功)。测试一下,随便输入什么,都可以注册成功……  
  写在最后:综上可以看出,无论是封包,还是字符串都应该加密……而且激活验证,应该再多一些,不能单一。像我这种小菜鸟,都能三两下搞定,更别说高手了。
     基于版权和保护,请恕我没有放上成品和源文件……



用dnSpy破解某VBA代码辅助工具

赞(0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址