sisWare这是一款异常强大的用于处理Symbian sis包的软件,它可以打sis包、为sis包签名去签名、查看sis包详情、甚至是解sis包并修改包内容后重新打包!!!!
参照下图,介绍一下简单的用法:
图1. sisWare界面
File-OpenSession或者点击OpenSession按钮,或者直接将sis包拖到程序主界面。
"Editor Window"会显示出解出来的pkg内容,这里你可以看到pkg中如UID,各种资源等等。
在pkg内容里,点击一个exe或者dll项,右侧"Quick Menu pane"显示其UID,详细的权限,是否签名等等。
这是本文的关键,其它内容比较简单,并且sisWare安装目录中的帮助文档会有比较详细的介绍。
首先,把要修改的sis包,OpenSession。修改当前Mode有Edit Mode,可以菜单Mode-Edit Mode或者点击 图1. 中的"Mode bar"区域直接切换。
解包,Tools-Extract sis file-Extract all files,这里一定要解包,因为PKG中需要Copy到真机的那部分资源电脑上还没有。不解包直接重新打包的话会出现IO错误,因为sisWare会把PKG资源Copy这里的本地目录修改为“.\SISWare4.7\bin\....”目录下,不解包的话这里指定的文件不存在。
修改,这里可以直接双击图1中“Quick Menu-Package-PackageInfo”对应的标签,图形界面化的列出UID,程序名,版本,是否签名以及证书Key等等,这里可以直接修改。
或者点击图1中“Window bar”区域,将当前模式修改为PKG Editor,直接对PKG文件内容做修改。修改完成后需要手动Compile一下。
关于签名,这是比较关键的一部。我觉得这里有点傻,重新build sis的过程中一定要你签名,如果不指定签名并明确cer和Key的话,还会弹出“Certificate Query”对话框,要你进行自签名(只能五权的那个)。这里建议在PKG Info中,勾选“Sign sis”复选框,选择正确的证书和Key。当然你也可以直接修改PKG文件,明确写入证书和Key。一定要注意Signing Algorithm一定要选择RSA模式,否则签名出错,报Signing err:unkown err。
一切完成,那么点击Build sis file,正常的话就重新打包好了。重新打包是否正常这可能不一定,不知是否会有特殊情况。
相比之下,我觉得sisContent更强大一些。可以编辑、修改sis包的几乎所有内容,不能直接文本编辑修改PKG这有点悲剧。当然我想这一定是为非技术使用者考虑的,界面操作比较直观,完全不了解PKG语法也可以正常使用。
基本功能的使用,比较简单直观,就不做过多的介绍了。下面主要讲一下,如何才能修改程序UID并且使软件正常运行。
以下链接有详细步骤:
http://bbs.icnpda.com/forum.php?mod=viewthread&tid=190578&highlight=
总结起来其实并不难,关键点如下:
需要用到的工具有:
sisContent 主工具
uidcrc.exe 用来生成新UID的检验码
ExeUnCompress.exe 用来对exe加壳脱壳
1. 修改安装包的UID,这是第一步,直接用sisContent可以很简单。
2. 修改EXE的UID,这里需要注意多数EXE是会加壳的,需要用脱壳工具对exe脱壳后,用16进制文本编辑工具直接编辑.exe文件,查找并替换原有UID为新的UID。这里要注意16进制数据排布是倒序的。
3. 正确修改EXE的UID之后,程序就可以正常安装了。但是,你会发现安装正常但是找不到程序图标,这是为什么???
这是因为*_reg.rsc资源文件的UID信息还没有修改,它是为程序在系统中做注册的资源,相当于Windows中的写入注册表。那么如果这个资源文件的UID信息没有修改,系统就无法知道修改过UID的程序在哪里,找不到对应的EXE和程序图标。
用16进制文本编辑工具打开,查找旧UID修改,替换为新UID。在*_reg.rsc文件中,UID1,UID2,UID3,核验码是依次排布的,用uidcrc生成新的检验码并修改。
OK,顺利的话程序用开发者证书签名,就可能正常安装运行了。
有时间应该研究一下,Hex-Rays IDA pro,可以像小孟讨论一下。
其它功能就不做介绍了,都比较简单。