最近在学习Arduino,有个仿真软件VBB。之前是免费版本(免费版本在WIN10上运行不了...),现在收费了。19$,有点小贵(穷吊一个,省钱买硬件)。由于需要安装.Net Framework 相关的东西,所以猜测是.Net写的。然后就想到了尝试破解,自己也没什么经验,花费了三天时间,最后还是失败了。
下面就说一下三天的成果。
使用工具
•Fiddle2
**•De4Dot **
•.Net Reflcotr & Reflexil
•Simple Assembly Explorer
•Ildasm
•Visual Studio
第一天
软件刚打开是需要联网输入License Key,不输入也可以进去,但是两个重要的按钮不可用。
然后使用Fiddler2监听发现是有网络请求的。然后就想到了自己新建个网站,更改系统HOST文件使域名转向本地网站。
使用Reflcotr 打开发现是混淆过的,使用De4Dot 进行反混淆。然后再使用Reflcotr进行打开,搜索License等关键字,这里找到了一个CheckLicense的方法。
方法内部跳转之后,看到对应的请求两个链接的两个方法
内部可以看到具体的解析返回字符串的内容。这里我们就根据这个内容自己进行一个模仿。
这里面的链接有不带页面后缀(.aspx)的,新建一个MVC项目,新建对应名称的Controller和ASPX页面
页面中进行一个简单的内容返回。注意Controller要设置对应的路由,以及里面直接返回String,而不是JSON
网站可以自己发布,或者使用一些微型的WEB服务器。然后使用更改HOST文件,使域名能够正常转向。
仔细调整到凌晨3点,许可已经可以正常验证通过了。我以为我成功了,谁知道。。。点那两个按钮还是会提示错误。第二天继续。
第二天
第一天搞得网站有些麻烦,因为软件每次运行都需要进行验证。而且内部还有其他的链接,所以第二天就直接更改了字符串。没有访问链接。
这里直接使用Reflexil工具修改的IL,需要熟悉一些常用的指令。这里有篇文章可以参考。 IL指令速查
打开Reflector 加载对应exe,然后点击Tools,Add-Ins,加载Reflexil。
我们找到对应的方法之后,点击Tools菜单下的Reflexil,会出现IL的一个表格,这里可以进行一个修改。
因为我对IL也不是很熟悉,很多东西都是尝试很多遍,最后才修改这样的结果。
这里可以使用Simple Assembly Explorer,我用的是1.14的一个版本,相比Reflexil 好用一些。
搞到凌晨1点,睡觉。眼睛有些难受了。
第三天
由于第二天改的IL改的吐血,所以想直接自己把方法抄下来进行更改。然后查看IL进行直接替换。我以为会一切顺利。结果通过Ildasm进行导出IL是成功的。但是使用ilasm编译就报错了,资源文件超过1024个了。找了对应的解决方案,我这水平还是算了吧。继续IL的痛苦之路。
开始修改编译按钮,软件破解许可之后,点击就报一个无法连接到远程服务器。翻墙之后,仍然无法连接。这里我就想不访问网络直接修改成返回结果1。
结果报一个JIT的错误。因为破解许可之后翻墙都无法连接服务器,所以也无法知道应该返回什么值。
应该还是和这个javaClass有关系。
水平有限,三天晚上啥也没干,也太对不起我自己了。
总结一句:主要花费的时间还是在修改IL上,对IL不熟,自己也在VS中进行了模仿编译后比对。哎,第一次破解就被这么无情的打击了。好了,大家双11快乐。。。