S60第三版的权限破解看法

引文
【S60第三版的权限破解看法】“近日symbian 3rd权限被破解的,高手们都已经开始了尝试,有的人已经成功了 。它的原理是通过修改刷机包 , 更改software installer程序的配置文件 Z:systemdataswpolicy.ini中有关用户在安装程序过程中可以赋予程序权限的列表 , 以及是否允许安装unsigned文件(非必须)的相关字段 , 使AllFiles等敏感权限也可由用户授予 。经测试除DRM外的所有权限均可由这种方式授予 。

应用:
拥有AllFiles权限的文件管理器可以读写private、system目录以及读取sys目录 , 写resource及sys目录需要TCB权限 , 但不幸的是根据DLL载入规则(下详) , 没有任何带有TCB权限的GUI程序能够正常运行 , 因此对TCB权限并没有做多少测试 , 目前仅知道TCB权限也可由用户授予 。至于DRM权限经本人测试似乎无法以这种方式授予 , 还好这个权限貌似对于大家来说并不是特别重要 。
这里有一个例子 , symbian推荐FEP程序(输入法)应该具有ALL-TCB权限(代表除TCB外的所有权限) , 理由是所有程序都需要输入法 , 故输入法DLL需要被所有程序载入 。这里先说一下DLL载入规则 , symbian规定某程序要加载某DLL文件 , 那么DLL的权限必须高于或等于程序的权限 , 或者说程序的权限必须包含于DLL的权限中 。DLL的权限并不表明DLL需要用到的特权API , 而是表明DLL能被多高权限的程序信任 。因为DLL被载入程序后就有了主程序一样的权限 , 这样的规定使DLL无法通过注入高权限程序从而提高权限进行破坏活动 。回到话题 , 事实上并不是“所有程序都需要输入法” , 我在常见的需要输入法的程序中很少有看到有DRM及TCB权限的 , 因此ALL-DRM-TCB权限对输入法基本够用 , 而恰好我们无法赋予DRM权限 。A4输入法高权限内测版正因为需DRM权限无法安装 , 若重新定义ZTA4.dll及ZTA4Srv.DLL的权限为ALL-DRM-TCB即可顺利安装并正常使用 。注:日历程序calendar.Exe要求DRM权限 , 故修改后的A4无法在日历中使用 。

可能的应用
若能够找到并修改software installer信任的根证书 , 则我们可以自己发布高权限证书供自己使用 。
这里需要澄清一个误解 , 很多人把证书和签名看成了一回事 , 大概主要是因为证书比较难获得 , 而Key容易得到 , 因此忽略了私钥的重要性 。实质上就加密原理而言 , 私钥比公钥更重要 。证书实质上是经过认证机构签名后的公钥 , 它可以而且应该是公开的 , 合适的不可逆加密算法使得很难从公钥得道私钥 。从理论上讲xx权限后 , 我们完全可以得到nokia签名的根证书 , 但是基本上无法得到私钥 , 就签名而言毫无意义 。将Nokia的根证书改为我们自己做一个根证书才是有可能成功的思路 。附注:SWI信任的根证书存放于Z:resourceswicertstore .dat.
可能可以做一个全功能的文件管理器 , 必须有非特权的客户端GUI程序以及具TCB , AllFiles权限的console服务程序 , 一切特权操作均由服务端完成 , 由于很多系统DLL是ALL-TCB权限的 , 该服务端程序无法调用 , 估计编程难度较大 。但如果成功的话我们可以直接修改C:sys目录下bin及hash目录 , 那么再也没有证书的烦恼了.

存在的问题:
unsigned的安装包没有权限添加启动项 , 因此无法自启动 。同时经过xx的系统在安装UID在0x80000000后的经DevCert签名的程序很可能忽略证书而直接安装(其现象是不出现“此应用程序仅供开发之用……”的提示)从而也无法自启动 。可能的解决办法至少有3种:
1.若该程序不需要高权限 , 用有效的开发者证书签名安装 , 或者给安装包分配一个protected UID , 那么在证书过期时安装会提示出错而不是忽略证书 , 作为unsigned安装 。因为 , 拥有protected UID的安装包无法以unsigned或selfsigned包安装 , 否则将提示“无法安装不受信任提供商提供的受保护程序” 。

推荐阅读