混淆作用有多大,看一款V..B...A工具的逆向就知
本帖最后由 无闻无问 于 2021-1-29 18:53 编辑写在前面:
本帖只是分析net混淆的安全性,不存在其它因素。如果有幸让软件作者看到,还请作者谅解……
一、未注册。30天试用,核心功能不可用。
二、查壳。
混淆情况:VBACodeAssistantPro.dll保留了函数名……
如VBACodeAssistantPro----MV类:
E8Runtime.dll混淆的厉害:
以前分析过低版本,只有VBACodeAssistantPro.dll,没有E8Runtime.dll,现在作者提高了意识,将VBACodeAssistantPro.dll中关键内容抽取到E8Runtime.dll中进行了混淆……
但,百密一疏就是VBACodeAssistantPro的符号保留了,给人留下下手机会……
三、开启dnSpy6.18调试。
四、下第一个断点:既然有时间限制,通过简单查找,在VBACodeAssistantPro—MV类下发现可疑函数,下个断点:
下好后,单击调试位置处的“重新开始”……
在Excel中进入vba环境,断点断下……
打开“堆栈窗口”,逐个查看可疑情况,这条可疑……
> E8Runtime.dll!Subl3U=.oHs=.p3s=(A_1 As l3U=.bnY=) (IL≈&H0C7D,Native=&H0B0E1070+&H2850)
双击过去……
一堆混淆……
接下来,就是在函数头下断,单击调试位置处的“重新开始”,重新运行程序并进入vba环境让它加载dll……
断在函数头后,然后F10逐过程调试……
打开“局部变量”窗口……
盯着它,F10一直下走……
通过F10跟踪,你会发现,含有变量obj2的行就是很有意思的行……
该函数所有obj2的行全部下断,看看都有些什么?机器码,软件版本,系统时间,软件到期时间,全部出来……
由此可见,混淆这个东西,内存这块是个突破口……
呵呵呵,有了这些东西,想想你可以干什么?改版本,改时间啊啊啊……
通过搜索字符串“免费版”,可以看到软件的各种版本:
在以下位置尝试更改一下版本……
298行执行后,obj2变量的值为:“免费版”……
尝试更改为“旗舰版”……
右击298行,编辑IL指令……
将以下多余指令nop掉,强行赋值为“旗舰版”……
修改语句为:
点击“保存所有”,保存修改内容。
提示,请事先备份一个副本,以免修改出错好还原继续。
这里需要注意的是,dnSpy修改的内容必须保存才生效,如果你修改没有保存,它执行的仍然是原来的代码,我曾经在这里转了很多弯……
如果保存出错,请停止调试,即关闭Excel,解除dll占用,再保存……
单击菜单中的“授权信息”,查看一下修改结果:
已经是旗舰版了,再来看看菜单中“代码库管理”中的导入、导出功能是否可用……
成功导出,说明成功……接下来,处理版本到期时间,强行赋值一个日期,最终如下……
处理到期时间与处理软件版本一样,这里就让聪明的大家去玩了,我就不废话了……
后记:
软件安全真是一个永恒的话题,什么混淆啊,加壳啊,都不能保证绝对安全……
所以在保护上,手段要多,花样要新,特别是敏感的字符串,符号名,函数名等一定要抹掉,这样才能最大程度减少损失……
最后声明:
不提供成品补丁,不提供成品补丁,不提供成品补丁!
如果喜欢,请购买支持正版!!! 买来用的人不差钱,破的人不一定在用。 编程这东西,会的就简单,不会的深似海! 作者在论坛貌似有号?
@excel880 WoShiXXX 发表于 2021-1-29 18:51
作者在论坛貌似有号?
@excel880
嘘嘘嘘嘘嘘,悄悄的,全部打码的{:1_926:}…… 兄台,正版软件发我一下,谢谢! 本帖最后由 zhanglei1371 于 2021-1-29 19:48 编辑
我的版本也是6.18....
右键显示标记,显示参数都点了,就是没有出现.... 牛逼,向大师学习。 真是厉害啊 没有永恒的加密,世界也不是永恒的 这波操作厉害了,刚刚试了下,果然如大佬描述一样!牛……X…… 第三次看见这个软件被爆菊了,上一次也是给作者指出了问题,貌似作者也改了