楼上的把解密的人想得太过于简单了,“人家**一般就**单片机程序,不去检查EEPROM的话”,你都能想到,别人专业干这一行的,还想不到?
加密原理:
先假定芯片被开盖,程序被读出来了,直接烧到另外一片发现不能用,因为加密者在程序中判断如果ID
=1234的话才能继续运行,本片ID=1234,所以能运行。另外一片不等,所以不能运行。于是解密这先将
你的程序反汇编。在程序中寻找到=ID的数的地址,修改之。明白这点后,加密者不能直接ID=1234,而是ID=¥#%……=1234。加密后的ID够他头疼半天。他在ROM,或EEPROM中找不到ID,会回到ID地址这
里想办法,你的程序要获得ID,总要去读ID吧,读ID就暴露了读ID的那小段程序,解密者找到这段程序,将读ID的结果全部改成1234(所有芯片都这样),不就OK了?明白了这点,因此,你不能把读ID的程序暴露
出来,这小段程序要用汇编来写,采用间接寻址的方法读,这招又够他受的。然后,再弄几个假程序,直接去读ID,越多越好,越乱越好,让其误入歧途。最后也是最绝的一招:if(ID!=1234 and Time==半个月) 程序崩溃;。。。。先让他高兴半个月。 |