您的位置:首页 > 其它

Embedded Wizard 的完全破解(目前最高到5.10版本)

2009-12-10 07:35 399 查看
感觉天涯不适合发技术文章,发来这里了:)

最近为这个事忙活了整整两个星期,今天无事,在此做个记录吧。

Embedded Wizard(简称EW) 是一个做OSD的工具,在嵌入式平台的界面编辑中用得还是比较多的,很多开发电视的厂商(如brocom,zoran等)都有在用它,最近我们公司由于开发上的需要也在使用,但是此软件的加密狗很贵,一个就需要几千美金,无奈之下,只好自己动手破解,只为自己学习,并不提供给公司使用,毕竟软件是有版权的。

就说说大概思路吧。

在分析过程中走了一些弯路,比如说,这个软件里面有隐含的anti-debug,开始时候并不知情,跟了很长一段时间的无用代码。排除anti后,考虑是否直接在提示需要加密狗的时候把这个提示对话框消掉,结果证明不行,明显加密狗有提供一些软件需要的信息,而并不是只检测是否存在加密狗那么简单。因此,破解这个软件唯一的途径就是找出其读加密狗并检测加密狗数据的地方。

经过IDA和OD的反复调试,发现代码中有一个地方readfile,每次检测加密狗的时候都会经过这个函数,但是很可惜,每次程序去写入和读取加密狗的值都是随机的,找不到任何规律(规律肯定有,只是我没找到,呵呵),因此,通过分析软件与加密狗通信协议的方法也失败了。 继续让下跟,发现软件把从加密狗读出来的数据(固定为320 BYTE)经过一系列运算,最终把运算值传递出去。发现不管读进什么值,这里的运算结果(也为320 BYTE)都为同一个值,借来一个可用的加密狗,果然!问题的关键点找到了,从加密狗读取进来的值是加密的,但是经过一系列运算解密后的值却是固定的,幸运!!

接下来的问题就简单多了,用硬件中断的方法来打补丁,每次程序一运行到这里的时候,就把这边的运算结果更改为正确的值。

经测试,加密狗完全破解,软件运行良好!

题外话:感觉Embedded Wizard做得还是非常好的,在很多平台移植都没有问题,ARM,MIPS工作得都很优雅,设计这款软件的公司实在是应该赞一下,希望大家也支持他们。

本人联系QQ:21054012

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: