实现软件安装包功能修改的方法及终端技术

技术编号:16482848 阅读:53 留言:0更新日期:2017-10-31 15:29
本发明专利技术实施例公开了一种实现软件安装包功能修改的方法及终端,其中,该方法包括:在目标软件安装包的解压文件中添加用于实现预设功能的动态库;修改所述解压文件中的可执行文件,以使所述可执行文件运行时从所述动态库中调用实现所述预设功能的方法类;对所述解压文件重新签名并压缩得到修改后的软件安装包。本发明专利技术实施例的方法及终端,无需对软件安装包的源代码进行修改及重新编译即可对软件安装包的功能进行修改。

Method and terminal for implementing function modification of software installation package

The embodiment of the invention discloses a method and a terminal software installation package to modify the function which, the method includes: extracting files added in the installation package for dynamic library to achieve preset functions in the target software; modify the file decompression in the executable file, the executable file is run from the dynamic library call the method to achieve the preset function; the re signed and unzip the file compression can be modified software installation package. The method and the terminal of the embodiment of the invention can modify the function of the software installation package without modifying and re compiling the source code of the software installation package.

【技术实现步骤摘要】
实现软件安装包功能修改的方法及终端
本专利技术涉及应用软件处理
,特别涉及一种实现软件安装包功能修改的方法及终端。
技术介绍
随着技术的发展,适用于各类终端及操作系统的应用软件的种类和数量不断增加。例如,由美国苹果公司开发的操作系统iOS(英文:iPhoneOperatingSystem)广泛支持各类应用软件的运行,其中,可以将能够运行于iOS上的应用软件的安装包称为iOS软件安装包,以下将以iOS软件安装包为例对各类应用软件安装包的构建过程进行说明。具体的,构建iOS软件安装包的方法一般为:根据要实现的应用功能编写程序代码,对编写的程序代码进行编译,编译成功,得到能够实现相应应用功能的iOS软件安装包。如果需要对iOS软件安装包所实现的功能进行修改,如需要在现有功能的基础上增加一些功能,或者需要对现有功能中的部分独立功能进行删除,通常是对iOS应用软件的源代码进行修改并对修改后的源代码重新编译进而得到修改后的IOS软件安装包,实现过程相对比较繁琐。
技术实现思路
本专利技术的专利技术目的在于提供一种无需对软件安装包的源代码进行修改及重新编译即可对软件安装包的功能进行修改的实现软件本文档来自技高网...
实现软件安装包功能修改的方法及终端

【技术保护点】
一种实现软件安装包功能修改的方法,其特征在于,包括:在目标软件安装包的解压文件中添加用于实现预设功能的动态库;修改所述解压文件中的可执行文件,以使所述可执行文件运行时从所述动态库中调用实现所述预设功能的方法类;对所述解压文件重新签名并压缩得到修改后的软件安装包。

【技术特征摘要】
1.一种实现软件安装包功能修改的方法,其特征在于,包括:在目标软件安装包的解压文件中添加用于实现预设功能的动态库;修改所述解压文件中的可执行文件,以使所述可执行文件运行时从所述动态库中调用实现所述预设功能的方法类;对所述解压文件重新签名并压缩得到修改后的软件安装包。2.根据权利要求1所述的方法,其特征在于,所述可执行文件中包含多个高级精简指令集设备ARM结构运行片段,其中所述多个ARM结构运行片段分别适用于不同系列的ARM处理器。3.根据权利要求2所述的方法,其特征在于,所述修改所述解压文件中的可执行文件,包括:修改所述可执行文件中的所有所述ARM结构运行片段;或者,修改所述多个ARM结构运行片段中的适用于最低版本系列的ARM处理器的ARM结构运行片段。4.根据权利要求3所述的方法,其特征在于,若修改的为所述多个ARM结构运行片段中的适用于最低版本系列的ARM处理器的ARM结构运行片段,则所述方法还包括删除所述多个ARM结构运行片段中的未被修改的ARM结构运行片段。5.根据权利要求2~4中任一项所述的方法,其特征在于,所述修改所述解压文件中的可执行文件,以使所述可执行文件运行时从所述动态库中调用实现所述预设功能的方法类,包括:在待修改的ARM结构运行片段的加载命令子片段中设置所述动态库的描述序列,其中,所述描述序列包括所述动态库的基本信息命令及所述动态库的搜索路径命令;将所述待修改的ARM结构运行片段的动态加载信息子片段中对系统库第一方法类的引用修改为对所述动态库中第二方法类的引用,其中,所述第一方法类为实现目标软件原有待修改功能的方法类,所述第二方法类为实现所述预设功能的方法类;在所述待修改的ARM结构运行片段的字符串子片段中增加所述第二方法类的名称字符串;将所述待修改的ARM结构运行片段的符号表子片段中的所述第一方法类的名称字符串相对于所述字符串子片段起始位置的偏移量修改为所述第二方法类的名称字符串相对于所述字符串子片段起始位置的偏移量。6.根据权利要求5所述的方法,其特征在于,所述在待修改的ARM结构运行片段的加载命令子片段中设置所述动态库的描述序列,包括:在所述加载命令子片段的任意一个命令结尾处设置所述动态库的描述序列。7.根据权利要求6所述的方法,其特征在于,所述在所述加载命令子片段的任意一个命令结尾处设置所述动态库的描述序列之后,删除所述加载命令子片段结尾位置与所述动态加载信息子片段的起始位置之间的一段零字节,其中,删除的所述零字节的长度与所述描述序列的长度相等。8.根据权利要求7所述的方法,其特征在于,所述删除所述加载命令子片段结尾位置与所述动态加载信息子片段的起始位置之间的一段零字节之后,所述方法还包括:根据所述描述序列的长度及所述描述序列中所包括的命令个数,修改所述待修改的ARM结构运行片段的头部子片段中的关于所述加载命令子片段的参数,其中,所述关于所述加载命令子片段的参数包括:所述加载命令子片段中的命令总个数及命令总长度。9.根据权利要求5所述的方法,其特征在于,所述将所述待修改的ARM结构运行片段的动态加载信息子片段中对系统库第一方法类的引用修改为对所述动态库中第二方法类的引用,包括:从所述动态加载信息子片段的绑定信息片段中确定所述第一方法类的名称字符串的位置;根据所述第一方法类的名称字符串的起始位置,向低地址方向确定第一特征字节;在所述第一特征字节所在的位置设置所述动态库的序列号,其中,所述动态库的序列号为在所述加载命令子片段中设置所述描述序列时,为所述动态库分配的序列号;将所述绑定信息片段中的所述第一方法类的名称字符串替换为所述第二方法类的名称字符串;根据所述绑定信息片段中所述第二方法类的名称字符串的结尾位置,向高地址方向确定第二特征字节;在所述第二特征字节所在的位置设置所述系统库的序列号,其中,所述系统库的序列号为在所述加载命令子片段中加载所述系统库时,为所述系统库分配的序列号。10.根据权利要求9所述的方法,其特征在于,所述在所述第二特征字节所在的位置设置所述系统库的序列号之后,所述方法还包括:在所述动态加载信息子片段的结尾位置与所述符号表子片段的起始位置之间增加或删除一段零字节;和/或,根据位于所述动态加载信息子片段之后的各信息子片段相对于所述待修改的ARM结构运行片段的偏移量的变化值,分别对所述加载命令子片段中的关于位于所述动态加载信息子片段之后的所述各信息子片段相对于所述待修改的ARM结构运行片段的偏移量参数值进行修改,其中,所述位于所述动态加载信息子片段之后的各信息子片段包括所述符号表子片段、所述字符串子片段及代码签名子片段。11.根据权利要求9所述的方法,其特征在于,所述在所述第二特征字节所在的位置设置所述系统库的序列号之后,所述方法还包括:对所述加载命令子片段中的关于所述绑定信息片段的长度参数值进行修改。12.根据权利要求5所述的方法,其特征在于,所述在所述待修改的ARM结构运行片段的字符串子片段中增加所述第二方法类的名称字符串,包括:在所述字符串子片段的结尾处增加所述第二方法类的名称字符串。13.根据权利要求5所述的方法,其特征在于,所述在所述待修改的ARM结构运行片段的字符串子片段中增加所述第二方法类的名称字符串之后,所述方法还包括:对所述加载命令子片段中的关于所述字符串子片段的长度参数值进行修改;对所述加载命令子片段中的关于位于所述字符串子片段之后的代码签名子片段相对于所述待修改的ARM结构运行片段的偏移量的参数值进行修改。14.一种终端,其特征在于,包括:中央处理器CPU、存储器和通信接口,所述CPU、所述存储器及所述通信接口通过通信总线相连;所述CPU,用于读取所述...

【专利技术属性】
技术研发人员:檀景辉
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:广东,44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1