07版M1卡加密程序爆破手记
本帖最后由 miceeagle 于 2019-5-15 13:40 编辑0x00
距离上次发帖有很长一段时间了,哈哈哈。
以上是废话,以下是正文。
先说下这次爆破软件背景吧,某公司使用的门禁卡在当时购买的时候被坑了,授权次数设置了上限,目前基本无法使用,增加上限的话,对方开口要价太高,所以本萌新第一次尝试爆破这种类型的软件,顺带说一下,这个授权软件是带加密狗的。
本萌新郑重申明:爆破后的软件不会用做任何商业用途,此次爆破只做学习交流所用。
0x01
首先还是先看下有没有加壳:
很明显,是没有加壳的,看来开发者对加密狗很信任啊。这里多说一句,这个加密狗的驱动看起来很老了,我在网上很艰难的才找到win10版本的驱动,之前他们使用的还是winxp版本的…在没有驱动的情况下软件会自行退出,没有任何提示,我认为这从侧面反应开发者还是有点水…
0x02
现在正式开始,加入OD然后搜索
这真是什么都有啊,“发卡数量已经到达授权限量”这句似乎是关键点啊,但是我这里多想了一下:如果加密狗里存了一张表,记录了所有已授权卡的信息,表大小通过授权文件(注:授权文件这个东西谁都没见过,我只是通过搜索出来的信息确定有这个东西存在)来更改,直接爆破这个点会不会导致数据写不进加密狗,以致加密狗损坏,这个后果我承担不起啊。
所以先等等,想了一下,解决办法是这样的,打电话了解一下这两年的使用情况:某年有过一次免费扩容,是把加密狗邮寄回去,由开发方直接处理,然后邮寄回来,原来几千次的授权直接清空,变成现在的几百次未授权次数,原来已授权的卡正常使用。
这样就放心了啊,确定加密狗只记录次数,那就可以直接改啊,但是怕写坏卡,目前采取最谨慎的方式:不修改上限(万一上限只能由授权文件修改呢)只修改已授权次数。
那么还是从“发卡数量已经到达授权限量”开始吧。
定位到这里,发现上面有个跳转,调试后就能发现ECX里面放了授权总量,EDX里面是已授权次数。EDX的已授权次数肯定是从加密狗里面读出来的,然后往上追,因为有些截图涉及公司信息就略了(我不会告诉你们狗不在我这里我打不开软件)。
最后找到一个加密函数
软件的工作流程是这样的:打开软件先检测有没有狗,没有就退出,有的话就打开主界面然后读取狗信息,调用上面的函数解密,显示解密后的用户信息、授权上限和已授权次数等等,授权过程再次读取狗信息,解密后比较,如果授权次数没到上限就执行授权操作,然后将授权次数加一,再调用上面的函数加密后写入狗。
所以直接修改内存中的数据是没用的,必须在它刚解密时劫持数据。那么怎么判断调用这个函数时是解密还是加密呢?很简单,看堆栈数据,看到有明码出来就是解密,否则是加密。加密过程不用管,也不能改,加密后是要写入狗的,改了就读不出来了。在解密函数入口处下断,发现很简单,就只有一个循环,那肯定就是解密过程了,耐心跟完,发现爆破点。
爆破。
完事。最后就是新生成一个所谓的管理员版本,当授权次数到上限或快要到上限时,用这个管理员版本新授权一张卡,已授权次数马上就更新为2(为了稳妥起见,我修改次数为1而不是0,加上新授权的一次,所以为2),然后就可以愉快的使用未爆破版本了。
0x03
总结:运气好,遇到的都很简单,未加壳,开发者对加密狗过于信任,另一方面也说明有时候带狗的也不可怕,但是其实这个完美的做法应该是再写个系统服务来模拟加密狗。【手动斜眼】本萌新不会,哈哈哈。
Ps:由于这个软件涉及到一些敏感信息,就不放出来了,大家看下过程就好。
孤狼微博 发表于 2019-5-15 20:04
我觉得楼主应该丢个软件出来,您最后提到的模拟狗这个是什么操作
硬狗改成软狗,理论上只要系统好,一切硬件都可以用软件模拟出来,哈哈。 caocao300 发表于 2019-5-15 14:22
锤子解密能破不
目前还没有看见破解锤子解密器的大神出现。 沙发,好好学习一下!!! 我竟然看完了{:1_893:} 学习学习确实很深奥 博主良心啊,分享思路 锤子解密能破不 还以为是M1卡破解...原来是程序破解! 我也以为是M1卡的破解 我是冲着M1卡破解点进来的{:1_909:} 这开发者迷之自信,所以会做出这样的产品,还漫天要价。结果当然是亏喽。