发布: 2009-1-09 10:41 | 作者: wenunit | 来源: StmFans思蜕盟 OPELC 自由电子联盟
QUOTE:
原帖由 wenunit 于 2009-1-9 21:39 发表 我可以写一段代码,让加JTAG的加密位失效。 这样就可以读出里边的程序了。。。所谓升级也就可以了吧。
研究了一下ULINK2,发现固件是由ULINK LOADER和ULINK FIRMWARE组成,这里先将ULINK FIRMWARE成为升级固件吧,其实升级固件是嵌在DLL文件里的,这也是一般的固件自动升级的做法。经过反汇编DLL,很快可以跟到升级固件处,还有升级固件中的升级标志,这里称之为固件版本号吧,还有固件长度,以及固件的校验(放在固件最后的四字节处)。再将升级部分固件从DLL中提取出来后反汇编可以发现,固件的起始偏移地址(实际上是固件在FLASH中的绝对地址)为0x8000,还有一些跳转地址和真正的复位地址信息,没有深入研究。因为对于破解,以上基本上找出了应该知道的信息:固件其始地址,固件长度,固件的版本号,固件的校验,还有部分参考信息(不是必要,但是可以更安全些),其中前三项已经确认,现在的问题就是校验的方式,从DLL中没有找到相应的固件校验信息,可以猜想可能是在ULINK LOADER中进行,这样难度就偏大了些,不过根据DLL中的STRING信息,可以知道ULINK LOADER是很健壮的,有很强的免疫性,所以,即使使用了不合法的“伪固件”,也不会损坏ULINK LOADER,它会直接拒绝,并且会提示固件升级失败信息。
回到前面,我们找出了供破解的大部分重要信息,现在的问题就是找出固件校验的具体算法,根据固件最后的四个字节的,个人猜想很有可能是CRC32,但是不是一般的CRC32算法,为了更具有迷惑性,可能会是使用了初值或者经过其他运算(固定方法)的CRC32。所以,只要能尝试出这个固件校验方法,ULINK2就算是“显出原形”了。
为了避免误导和损害您的利益,最后提示一下,要破解ULINK2,需要有一只功能正常的ULINK2,也希望有兴趣的朋友在进行此项实验时慎重。进一步研究中。。。
还是纯娱乐?
支持龙兄弟的ULINK2 DIY活动。
明天可以测试一下让他直接运行,如果可以的话,再看看他是怎么进行升级的。
只要他能运行,其它的都不成问题了,本人做LPC的芯片还是比较熟悉的,
不会像当初AT的芯片那种郁闷。
这样就可以读出里边的程序了。。。所谓升级也就可以了吧。
具体信息请用google搜索
QUOTE:
意思是lpc的arm7程序是不安全的?可以读出来?不会吧这个方法在不是用自己的BOOT程序的情况下是无效的,所以ARM7的程序还是安全的。
现在是直接在LPC2148的最小系统板上引出JTAG,来测试。
没有使用电平转换等芯片,结果有些不稳定,出现下载和仿真有时会出错。
不过仿真和下载都测试通过了。
可升级版本有难度,不过如果肯下点本,用钓鱼方式读出现成的,倒是有可能。
但不保证,不然我就拿自己的ULINK2开刀了。
[ 本帖最后由 wenunit 于 2009-2-10 22:33 编辑 ]
可以DIY做一个山寨版的ULINK2。。。
我可以自己写一个BOOT升级程序来搞定升级。。。
而不使用官方的升级程序。
接口吗,USB不熟悉,串口倒是可以。
嗨,太土了。
兼容原版的BOOT,自己来写,几乎不可能,
写个钓鱼程序,看能不能读出原版的BOOT,
有点风险,冲动的时候再试.