Symbian xLoader:绕过签名限制的DLL加载工具

需积分: 13 12 下载量 68 浏览量 更新于2024-09-30 收藏 48KB DOC 举报
"Symbian XLoader 是一个工具,允许在Symbian系统中加载和执行未签名的动态链接库(DLL)。它绕过了Symbian的安全机制,使得DLL可以在无需签名的情况下在任意目录下运行,并且享有与加载它的进程相同的权限。XLoader支持DLL之间的相互调用和对系统库及sys\bin目录下DLL的函数调用,但不直接支持跨DLL调用。此外,它还支持C函数接口和静态常量的导出,以及多态DLL的使用。" Symbian XLoader 是针对Symbian操作系统的解决方案,旨在解决在系统升级或扩展功能时,由于Symbian的安全机制限制,DLL需要重新签名的问题。在Symbian系统中,所有可执行文件和DLL都需要经过签名才能安装到特定目录,例如sys\bin,以确保安全性和权限控制。而XLoader则提供了一种方法,能够加载和执行未签名的DLL,这在一定程度上简化了开发和更新过程。 使用XLoader加载的DLL,其权限与加载它的进程相同。这意味着如果加载进程拥有特定权限,如NetworkControl,那么DLL也将继承这些权限。然而,DLL不能超出加载进程的权限范围调用系统函数,否则会导致安全性错误。DLL可以自由地在其内部调用函数,如同普通的Symbian DLL一样。 XLoader的一大特点是可以直接调用系统库函数以及sys\bin目录下的其他DLL的函数。但需要注意的是,它不支持直接从sys\bin目录外的DLL中调用函数,除非通过xLoader再次加载外部DLL。这为模块化设计提供了可能性,使得DLL可以根据需要动态加载和执行其他功能组件。 此外,XLoader支持在DLL中创建全局C++对象,如使用_LIT创建的字符串常量。它还提供了导出C函数(包括非成员函数和类的静态成员函数)的能力,以及静态常量(如字符串)的导出。对于多态DLL的支持,XLoader通过导出类的静态构造函数(如ClassName::NewL, ClassName::NewLC)来实现,尽管调用方式可能略有不同。 在实际应用中,推荐将相对固定且不易变更的部分放入已签名的加载程序,而将易变的功能、界面、算法或可扩展模块放置在DLL中,利用XLoader的优势进行灵活管理和更新。这样既保持了系统的安全性,又提高了软件开发的效率和灵活性。