制作数字签名教程
上一篇 /
下一篇 2007-11-03 01:36:36
查看( 324 ) /
评论( 4 )
灵机网/E.@s
W:X/w'z用Resco无法Access具有系统属性的文件,AppInstall下面的反安装程序也无法删除,用PHM Registry Editor改注册表,结果有很多注册表项目无法更改,比如HKLM\System\ HKLM\Security等等。
"vkvr'NG/]R0灵机网5a/E~Dt+n3?
s其实这个就是微软在Smartphone里面引入的特权保护机制,现在Windows Mobile 5.0里面,这种机制也被带入了PPC系列,总而言之,就是为了安全性,对应用程序能够访问的系统资源作了限制,如果没有这种限制,很可能就会造就相当一部分的恶意程序,因为应用程序可以随意调用特权API,篡改你的SIM卡信息,给你的联系人群发垃圾短信,窃取你的联系人信息,或是删除重要的系统文件。灵机网]K,F{sDRS'~!S
一般建议先移除签名,因为灵机网+@k3~nU]7B
6z.`:\2a2kS0QUOTE:
6^"BM7N9R6n0搞过SmartPhone应用程序汉化的朋友可能都遇到过这样的问题:对程序的修改达到一定程度后,用SignCode会加不进签名。网上有人写了一个叫SignFix的程序,声称可以碰运气解决这个问题,但治标不治本,修改量大了还是不行。
:xaY:P2x-w
F'e3mZhS&z0根据我对PE文件结构分析,之所以汉化后的程序会加不进数字证书,是因为在原来的程序里已经有一个证书,如果汉化过程中修改的数据比较多,使证书数据被破坏,即:文件中证书数据的长度没有PE文件头里证书表(安全表)里所记录的长度那么长了——这也是为什么有时候,可以通过往文件后面补数据来解决——就使得SignCode程序无法替换原来的证书(具体原理不清楚,应该是由于数据不全,使得Signcode不认识这个证书了,于是拒绝替换)。
9WO^
P;J5B QBP7d0证书表和其他一些表的起始位置和长度被记录在PE文件头里。因此,解决无法签名的办法就是,找出PE头里记录的证书表的位置和长度,均修改为0,即告诉Signcode该程序还没有没有证书。这样修改后,Signcode就直接往文件里添加证书,而不是替换,签名问题就解决了。SignRemv就是根据这个原理编写的。灵机网a|Fg&B