.Net 爆破之 MDToken预爆 + 运气【插件类完结篇】

查看 97|回复 6
作者:pjy612   
.Net 爆破篇 之 MD Token预爆 + 运气【插件类完结】
前情提要
我近期发的东西
尽可能每个帖子都多少能有些解决问题的思路 并且 应该能从中学到点不一样的东西
而且大家看了不少 Hook 和 逆向算法,还有反射运用,是时候换点口味了。
那么 这期 就来看看 回归初心 直接爆破吧,有时候 看不懂其实也没啥,运气好就行。
比如这篇  就是 传统爆破文 知识点是 Token 定位
题外话
我个人而言 对Excel插件和VBA插件之类的 使用上没什么兴趣,平常工作中用不上
虽然近期发了一些帖子  但没有针对这个行业的意思
只是他们都刚好能拿来拓展一些 知识点 和 提高定位问题的能力。
这期应该也是 “国内” 的最后一期  以一个不是很完美的 爆破教程 收尾。  
至于问为什么看着我像是都在Excel插件,因为 最近刚好看的是这些 而且这些我之前没接触过。
说到国外的库 可以参考   
https://www.52pojie.cn/thread-1768897-1-1.html  
里面提到都是咱已经研究过的,以我目前 阅读理解能力+工具 能完成破解的组件。
(感觉搞.Net相关的应该都能搞定这些)
有兴趣的可以留言,以后可以拿出来讲解一下。
好了回归正题!
本期主题
爆破!不用多解释。
MD Token 可以理解成.Net的元数据标识。
这里提及是可以拿它在 .Net爆破中做一个预演,预爆。
本期嘉宾
反正某人说版本已经很多了不差这一个,那就安排最新版练手。
aHR0cHM6Ly92YmF5eWRzLmNvbS8=
原版地址:https://pan.baidu.com/s/1jCh4BsE8D2rSxB34yoyyYA&pwd=aaav
备份地址:https://pan.baidu.com/s/1cKMLDc3zXIFUAnMr3ZODPg?pwd=52pj
准备工作
下载后打开查看。
功能正常 然后 点击授权信息 会有免费版的提示。


1.png (43.5 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传

我们先 将 DLL 备份 一份。
然后拖到 dnspy 看是否能正常加载。
为了验证是否能进行 爆破 ,我们需要 先做一个操作就是,直接不该任何代码,但是对DLL进行一个保存操作 确保 能正常执行。
我们 通过 文件-保存模块


2.png (100.2 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传

切到 MD写入选项


3.png (111.27 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传

把红框位置的几项 全部勾上,然后 确定 开始写 Dll。
写完后 打开 Excel-VBA编辑器 看插件还能否正常加载。
如果它还在,恭喜你 这个插件是可以 尝试爆破 的。
当然 如果出现失败的情况 别急,你可以尝试 将 文件的最后修改时间 和创建时间什么的 改的和 之前备份的文件一样。
毕竟 有时候 鸡贼的作者 可能会检测一下 文件的变动时间来判断 你是不是对Dll进行了一个修改(比如 E灵试用版)   
如果直接就不能保存,保存失败,那么抱歉,这个dll因为壳的原因不能进行爆破。  
既然确认了这个插件 是能被“修改”的,那么我们开工。  
开始分析
我们先搜一下关键词 比如 注册 激活 免费。
发现 一个结果都没有,那么肯定做了字符串保护。
那么我们用 de4dot 进行一个反混淆的处理,一般都能自动处理,但是这次讲一下怎么手动指定。


4.png (106.86 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传

上图红框的 就是常见的字符串加密之后的样子。
我们导航过去之后能看到


5.png (18.89 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传

函数上方 有一个 Token,这个 dnspy 里面被称为 MDToken, 一般函数字段什么的都有这个Token。
如果 保存dll 或者用 de4dot 去混淆脱壳时 附加了 --preserve-tokens 指令。
那么 脱壳后 的 dll 对应函数会保持 脱壳前相同的 MDToken。  
是不是有了一个大胆的想法? 咱们先去反混淆后的Dll里面定位关键点,然后通过Token在未混淆的原始Dll里面进行爆破操作。
尽可能的降低对Dll造成的改动,避免直接使用脱壳后的dll而产生一些奇怪的问题。  
那么开始吧~
我这里用的是 de4dot reactor 6.7  
这里提一嘴,有的de4dot就算加了保持Token的指令也可能出现 脱壳后前后Token不一致的情况
这个自行选择好一点的版本吧
de4dot 加上两个指令
//脱壳后保持Token
--preserve-tokens
//字符串解密
--strtyp delegate --strtok 字符串解密函数的Token 图中是 0x06000991
//完整命令
de4dot "D:\Excel880\VBAxxxxxxPro\VBACodexxxxPro.dll" --preserve-tokens --strtyp delegate --strtok 0x06000991
然后在脱壳后的 dll 里面搜 一下关键词 注册 激活 免费 卸载 等


6.png (42.17 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传



7.png (40.99 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传

可以看到 好像 明面上的 逻辑 都和 Class113 有关。
大概率 它是一个授权类
再看一眼那个 枚举


8.png (16.13 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传

明显是个 常见的鉴权枚举。
那么爆破思路就有了。
// Class113
// Token: 0x06000764 RID: 1892 RVA: 0x000062C2 File Offset: 0x000044C2
internal bool method_9()
{
        return this.bool_0; //一个疑似过期判断的,强制改成 false 不过期
}
// Class113
// Token: 0x06000761 RID: 1889 RVA: 0x000062B1 File Offset: 0x000044B1
internal Class49.Enum1 method_6()
{
        return this.enum1_0;//枚举这里爆破掉 强制返回一个非免费枚举
}
再多瞅一眼这个授权类


9.png (149.05 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传

还返回两个日期
其中还看到了 vm,得都用上vm了,要不Shift+Delete吧?
或者咱们试试呗,至少能改的那个咱们给他改了呗。。。  
// Class113
// Token: 0x0600075D RID: 1885 RVA: 0x0000628F File Offset: 0x0000448F
internal DateTime method_2()
{
        return this.dateTime_0; //这个日期 给弄个最大值
}
我们所感就干,根据 这几个 Token 在 dnspy 里面通过 Ctrl+D 转到 MD标记 分别用 IL 修改代码


10.png (27.92 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传



11.png (26.88 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传



12.png (25.97 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传

然后保存,咱们重启看看。
重启后发现 插件会加载,但是菜单按钮一闪就没了。
那应该是哪里还有检测,检测到咱们改了授权类型但是实际没校验过。
我们找找 取消卸载啥的。。。
这里 咱们找到一个 DisposeVBEAddin  
翻一下调用  看到好像有个Api检查,然后 再查一下 发现这个Http请求函数 只有检查更新 和 这里用到,那么先干掉看看。


13.png (49.29 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传



14.png (62.57 KB, 下载次数: 0)
下载附件
2023-4-28 18:13 上传

// Token: 0x060007FF RID: 2047 RVA: 0x00030D0C File Offset: 0x0002EF0C
internal static string smethod_3(string string_4)


15.png (26.46 KB, 下载次数: 0)
下载附件
2023-4-28 18:14 上传

异常处理清空,直接返回空字符串。这样两种调用都兼容了。
保存并重启后 问题仍在。。。  
唉,可惜不是这里,虽然这里保险 但是还是没能阻止 按钮的消失。 剩下的就是靠运气了。。。
无名小银,如果您要查看本帖隐藏内容请回复
结果
激动的心 颤抖的手 VBA编辑器打开了!


21.png (30.61 KB, 下载次数: 0)
下载附件
2023-4-28 18:14 上传

它没消失!它还在!咱们赌赢了!(maybe
再看看 授权信息!


22.png (35.34 KB, 下载次数: 0)
下载附件
2023-4-28 18:14 上传

和咱们之前想的大差不差!
再看看VIP功能!


23.png (84.24 KB, 下载次数: 0)
下载附件
2023-4-28 18:14 上传

反正 免费版点会提示,现在没提示 能让导出了!
PS.至于是不是离线类功能都能用了我不清楚,我对这些东西也不熟。
声明
本文内容仅供学习交流,请勿用于商业或非法用途!
尾声
感觉拿一期 最基础的爆破收尾 也挺好的。
可能有些小白会觉得我是什么大牛,或者一些软件作者圈的觉得我砸了他们的饭碗。
我就是一普通.Net野路子程序员,现在出去面试可能都找不到工作的那种。   
我甚至没用什么高端的技术,我也不会脱壳,都是 工具脱壳 然后 自己只做代码分析。  
与其和我较真,不如多完善下自己。  
发点思路就觉得是重拳,天塌了。
外面注册机破解版满天飞就不管了?  
这些思路又不是针对某个别应用,主要是去掉脱壳,基本就这么三板斧。
刚好又适合当案例,如有得罪,只能说声抱歉了,保证没有下次了~
最后  
本人不接单
本人不接单
本人不接单
请不要再私信有偿破解什么的,烦了我直接投诉举报(不知道这种管不管
有这功夫你还不如好好看看帖子学学说不定自己就能弄了
将来等着c蹭你们的思路的说!

下载次数, 下载附件

pjy612
OP
  

沙发是我的,匿了~
lhtzty   

谢谢分享
zhanglei1371   

这个属于高难度的,厉害
pjy612
OP
  


zhanglei1371 发表于 2023-4-29 21:33
这个属于高难度的,厉害

侥幸,别的能调试的话,还能分析下 VM。
Excel 和 VBA 一点都不熟之前没摸过。。。所以纯凭感觉了。。。
znc940210   

厉害了,棒
jun2002939   

这个厉害看看
您需要登录后才可以回帖 登录 | 立即注册

返回顶部