[发明专利]一种so文件保护方法及装置有效
| 申请号: | 201710197849.6 | 申请日: | 2017-03-29 |
| 公开(公告)号: | CN108664796B | 公开(公告)日: | 2020-06-05 |
| 发明(设计)人: | 赵自超 | 申请(专利权)人: | 中移(杭州)信息技术有限公司;中国移动通信集团公司 |
| 主分类号: | G06F21/60 | 分类号: | G06F21/60 |
| 代理公司: | 北京同达信恒知识产权代理有限公司 11291 | 代理人: | 郭润湘 |
| 地址: | 311100 浙江省杭州市*** | 国省代码: | 浙江;33 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | |||
| 搜索关键词: | 一种 so 文件 保护 方法 装置 | ||
本申请涉及互联网技术领域,尤其涉及一种so文件保护方法及装置,用以解决现有的so文件保护方法存在着so文件易被破解的问题;本申请实施例提供的so文件保护方法包括:获取待保护so文件;基于待保护so文件、指定形式的soinfo结构体和指定形式的节头结构体,生成指定格式的so文件;将指定格式的so文件追加至壳文件尾部;壳文件中包含有用于将指定格式的so文件解析到指定形式的soinfo结构体中的链接器程序;将壳文件以待保护so文件的命名进行保存,这样,在终端侧加载壳文件后得到的是指定格式的so文件,即使攻击者将so文件进行了转存,也无法获知指定格式下的文件结构,因此很难对指定格式的so文件进行破解。
技术领域
本申请涉及互联网技术领域,尤其涉及一种so文件保护方法及装置。
背景技术
随着安卓Android技术的快速发展,在Android系统下开发的应用程序也越来越多,如何对Android应用程序中的共享动态链接库(shared object,so)文件进行保护来防止反编译成为一个重要的问题。
目前,对so文件进行保护的方法主要是加壳。具体地,在服务器侧将so文件进行加密处理,并编译壳文件,然后将加密后的so文件追加到壳文件尾部。在终端侧运行so文件时,先从壳文件中解密出so文件,再对so文件进行动态加载。此时,在终端侧需要系统linker来执行so文件的加载操作,而系统linker会将so文件进行内存映射,攻击者就可以从内存中把整个so文件转存下来,而so文件符合可执行连接格式(Executable andLinking Format,ELF),攻击者根据ELF下的文件结构,就可以很容易地破解应用程序,进而对应用程序进行反编译。
可见,现有技术中的so文件保护方法存在着so文件易被破解的问题。
发明内容
本申请实施例提供一种so文件保护方法及装置,用以解决现有技术中的so文件保护方法存在着so文件易被破解的问题。
本申请实施例提供的一种so文件保护方法,包括:
获取待保护的so文件;
基于待保护的so文件、指定形式的共享动态链接库信息soinfo结构体和指定形式的节头结构体,生成指定格式的so文件;
将指定格式的so文件追加至壳文件尾部;其中,壳文件中包含链接器程序;链接器程序用于将指定格式的so文件解析到指定形式的soinfo结构体中;
将壳文件以待保护的so文件的命名进行保存。
本申请实施例提供的一种so文件加载方法,包括:
加载壳文件;所述壳文件中包含有待加载的so文件和链接器程序,待加载的so文件是基于待保护的so文件、指定形式的共享动态链接库信息soinfo结构体和指定形式的节头结构体生成的;
从壳文件中获取待加载的so文件;并
执行链接器程序,将待加载的so文件解析到指定形式的soinfo结构体中;
基于解析出的指定形式的soinfo结构体和反射机制,加载待加载的so文件。
本申请实施例提供的一种so文件保护装置,包括:
获取模块,用于获取待保护的so文件;
生成模块,用于基于待保护的so文件、指定形式的共享动态链接库信息soinfo结构体和指定形式的节头结构体,生成指定格式的so文件;
追加模块,用于将指定格式的so文件追加至壳文件尾部;其中,壳文件中包含链接器程序;链接器程序用于将指定格式的so文件解析到指定形式的soinfo结构体中;
保存模块,用于将壳文件以待保护的so文件的命名进行保存。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中移(杭州)信息技术有限公司;中国移动通信集团公司,未经中移(杭州)信息技术有限公司;中国移动通信集团公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710197849.6/2.html,转载请声明来源钻瓜专利网。





