运用dnspy破解某markdown编辑器
本帖最后由 云在天 于 2019-6-7 13:03 编辑写这个贴子是为了分享dnspy的基本用法。
markdownpad2与dnspy请自行去官网下载。
破解对象:markdowpad2
环境:Windows 10
工具:dnspy
思路:覆盖License解密函数
1. 用dnspy载入MarkdownPad2.exe展开命名空间,可以看到License
https://s2.ax1x.com/2019/02/03/kGmeSO.png
2. 展开LicenseWindow类,选中Button_On_Click方法,可以看到里面调用了验证注册码的函数,鼠标左键点进去可以看到VerifyLicense方法的具体实现。
https://s2.ax1x.com/2019/02/03/kGmmlD.png
3.可以看到关键验证函数是startupHelper.Check()方法,点进去后可以看到是调用LicenseEngine.VerifyLicense()进行验证。
https://s2.ax1x.com/2019/02/03/kGmMmd.png
https://s2.ax1x.com/2019/02/03/kGmQ0A.png
4.进入licenseEngine.VerifyLicense(),发现是通过LicenseEngine类的Decrypt方法返回了一个License对象赋值到LicenseEngine的License属性。
https://s2.ax1x.com/2019/02/03/kGmlTI.png
5.LicenseEngine类的Decrypt方法是调用RSA解密函数解密我们输入的key,再将其转化为json对象赋值给一个License对象,然后将其返回。
https://s2.ax1x.com/2019/02/03/kGm3kt.png
6.那么关于注册码的所有信息就存放在LicenseEngine对象的License属性中。所以我们就直接覆盖LicenseEngine.VerifyLicense方法中对License属性赋值的过程,使其被赋值为我们构造的License对象。在LicenseEngine.VerifyLicense方法里右键,选择编辑方法,就可以修改源代码了。修改后如图
https://s2.ax1x.com/2019/02/03/kGm8tP.png
7.点击菜单 文件,保存模块就可以将修改后的文件保存。打开修改后的文件,输入任意注册码,注册成功。
https://s2.ax1x.com/2019/02/03/kGmYp8.png
https://s2.ax1x.com/2019/02/03/kGmN6g.png
梦蛟龙 发表于 2019-2-3 16:35
写个注册码生成器吧,我没vs,没法弄。
RSA是非对称加密, 软件里那个是公钥, 私钥只有作者才有, 要公钥解密必须私钥加密, 所以只能靠破解 whc2001 发表于 2019-2-3 18:46
RSA是非对称加密, 软件里那个是公钥, 私钥只有作者才有, 要公钥解密必须私钥加密, 所以只能靠破解
这个软件的私钥流出来好多年了 以前用过这软件,现在改用vim了 写个注册码生成器吧,我没vs,没法弄。 直接改,通过了。。。。。。 看看这个怎么样 支持原创 感谢发布 老早之前研究过, 似乎功能挺强大, 作者一直没混淆代码, 要不是用VSCode习惯了就去买正版支持一下了(15美元, 单个用户可以装多台电脑) 欢迎分析讨论交流,吾爱破解论坛有你更精彩! 谢谢楼主提供教程,学习dnspy及分析