[发明专利]在应用中嵌入代码的方法、装置及电子设备有效
申请号: | 201910173264.X | 申请日: | 2019-03-07 |
公开(公告)号: | CN109933350B | 公开(公告)日: | 2021-07-16 |
发明(设计)人: | 汪德嘉;华保健;邵根波;钱潇龄;孟啸龙;郑小敏 | 申请(专利权)人: | 江苏通付盾信息安全技术有限公司;江苏通付盾科技有限公司 |
主分类号: | G06F8/65 | 分类号: | G06F8/65 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 215000 江苏省苏州市工业*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 应用 嵌入 代码 方法 装置 电子设备 | ||
本发明公开了一种在应用中嵌入代码的方法、装置及电子设备,方法包括:将SDK集成到应用中,按照预设加载顺序在应用的可执行文件的动态库信息列表中嵌入SDK的加载信息;根据SDK的文件信息,对可执行文件包含的动态库加载信息的偏移量信息和长度信息进行修改;对可执行文件包含的原始动态库的加载序号信息和原始动态库对应的代码在可执行文件中的偏移地址信息进行修改,以及对代码段中原始动态库的位置信息的序号信息进行修改;根据已修改的可执行文件生成更新应用文件。该方式能够脱离源码针对任一应用按照指定的加载顺序嵌入SDK,使得新添加了SDK的应用运行时能够按照指定的加载顺序动态调用SDK代码,兼容性更高。
技术领域
本发明涉及代码集成技术领域,具体涉及一种在应用中嵌入代码的方法、装置及电子设备。
背景技术
SDK(Software Development Kit,软件开发工具包)通常指软件工程师为特定的软件包、软件框架、硬件平台或者操作系统等建立应用软件时的开发工具的集合。技术人员在开发应用程序时,可以将SDK接入应用中,直接使用SDK提供的功能。因此,在应用中嵌入SDK有助于丰富应用程序的功能,满足用户多方面的需求。
现有技术(CN 107463359 A)公开了一种在iOS ipa包中植入代码的便捷方法,具体地:(1)添加SDK的钩子脚本:在iOS工程源码中将钩子脚本加入到工程代码中,通过打包工具生成ipa(iPhone Application)发布包;(2)植入代码:将ipa包进行解压,将需要引入的代码编译成动态库,添加到Framework目录中;(3)重签名,并重新打包成新ipa;(4)动态调用,新ipa包运行时,通过钩子脚本与动态库动态衔接,调用植入代码的功能。该方式能够减少SDK接入的工作量。
然而,发明人在实现本发明的过程中发现现有技术存中缺乏一种能够根据指定的加载顺序嵌入SDK,使嵌入了SDK的应用在运行时能够按照该指定的加载顺序动态调用SDK代码的方案。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的一种在应用中嵌入代码的方法、装置及电子设备。
根据本发明的一个方面,提供了一种在应用中嵌入代码的方法,包括:
将SDK集成到应用中,按照预设加载顺序在应用的可执行文件的动态库信息列表中嵌入SDK的加载信息;
根据SDK的文件信息,对可执行文件包含的动态库加载信息的偏移量信息和长度信息进行修改;
对可执行文件包含的原始动态库的加载序号信息和原始动态库对应的代码在可执行文件中的偏移地址信息进行修改,以及对代码段中原始动态库的位置信息的序号信息进行修改;
根据已修改的可执行文件生成更新应用文件。
可选地,SDK的文件信息具体包括以下中的至少一个:动态库名称信息、文件存放路径信息、文件大小信息、结构信息;动态库加载信息具体包括以下中的至少一个:重定向信息、静态绑定信息。
可选地,对代码段中原始动态库的位置信息的序号信息进行修改具体包括:
根据动态库的段落号信息以及偏移信息计算符号指针信息,根据符号指针信息确定原始动态库的起始位置信息以及调用代码位置信息;
对原始动态库的起始位置信息以及调用代码位置信息的序号信息进行修改。
可选地,SDK的加载信息具体包括以下中的至少一个:文件路径信息、名称信息。
可选地,方法进一步包括:
对更新应用文件进行重签名认证处理。
可选地,方法应用于IOS应用,则方法执行之前,进一步包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于江苏通付盾信息安全技术有限公司;江苏通付盾科技有限公司,未经江苏通付盾信息安全技术有限公司;江苏通付盾科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910173264.X/2.html,转载请声明来源钻瓜专利网。