【技术实现步骤摘要】
一种基于安卓应用的文件传输保密系统
本专利技术涉及应用程序传输保护
,尤其涉及一种基于安卓应用的文件传输保密系统。
技术介绍
随着移动互联网的快速发展,智能手机应用也紧随其发展,在现有的智能手机系统中,安卓系统因为开源特性在手机系统市场中占有不少地位,但是安卓应用被逆向篡改等现象对用户的隐私和财产造成安全方面的隐患,同时对安卓应用开发者的合法权益也会造成侵犯,安卓应用的安全性也成为了安卓应用开发中重要的一部分。目前关于安卓应用安全保护由最初的代码混淆到给安卓应用加壳再到基于虚拟机定制的安卓应用加固技术,加固技术也由文件加密到方法指令抽取再到虚拟机一步步的提高安全级别,这些方法虽取得一定成效,其中一些加固技术存在容易被破解等问题,软件加壳技术是目前使用最多的加固技术,但是主流的基于类加载器和基于方法替换的加壳技术都已经出现了自动脱壳破解方案。
技术实现思路
本专利技术的目的是为了解决现有技术中存在的缺点,而提出的一种基于安卓应用的文件传输保密系统。为了实现上述目的,本专利技术采用了如下 ...
【技术保护点】
1.一种基于安卓应用的文件传输保密系统,其特征在于,包括以下步骤:/nSS01:遍历dex文件结构找到class段、解析class段下的每个类的类数据,解析每个class Item Data中的方法字段;/nSS02:进一步向结构体内部解析方法字段,找到code结构体的指令集数组,把指令数组进行AES加密后保存;/nSS03:在解析出指令数组后,把指令偏移处指定大小的字节流置为0,来返回一个指令集为0的dex文件的字节流;/nSS04:由于对dex文件进行了修改,必须对dex文件进行重新校验,重新计算dex文件头中的两个字段checksum和signature;/nSS05 ...
【技术特征摘要】
1.一种基于安卓应用的文件传输保密系统,其特征在于,包括以下步骤:
SS01:遍历dex文件结构找到class段、解析class段下的每个类的类数据,解析每个classItemData中的方法字段;
SS02:进一步向结构体内部解析方法字段,找到code结构体的指令集数组,把指令数组进行AES加密后保存;
SS03:在解析出指令数组后,把指令偏移处指定大小的字节流置为0,来返回一个指令集为0的dex文件的字节流;
SS04:由于对dex文件进行了修改,必须对dex文件进行重新校验,重新计算dex文件头中的两个字段checksum和signature;
SS05:指令抽取后的安卓应用和加密过的指令数组上传到服务端,用户下载传输安卓应用时连同加密的指令一同下载传输,加密过后的指令存放在dex文件中,但是dex文件大小会改变,修改启动apk的入口,apk启动时,首先运行修改后的入口,读取dex文件,从dex文件中取出存放的加密指令,获得加密指令后,应用存放在assets目录里的秘钥对指令进行解密,并保存在assets目录中;
SS06:抽空指令的dex文件放到手机指定目录下,运行加载dex,在Native层hooklibdvm.so中的dexfindclass函数,通过这个函数可以找到dex,在Java层使用dexclassloader加载dex,并且通过反射运行被抽空的类的方法,通过dexfile结构体获取被抽空的方法对应的指令,把上面保存在assets目录中解密后的指令还原。
2.根据权利要求1所述的一种基于安卓应用的文件传输保密系统,其特征在于,所述dex文件是Dalvik可执行文件格式,Android平台的应用程序是由一个或者多个dex文件组成,是8字节的二进制流文件,且dex文件结构中存储着Android平台的应用程序所有类文件的信息。
3.根据权利要求1所述的一种基于安卓应用的文件传输保密系统,其特征在于,所述dex文件结构主要包括文件头、索引区和数据区;
所述文件头主要是对dex文件合法性校验,所述索引区主要是类、方法等的索引,所述索引可以在数据区找到对应的数据。
<...
【专利技术属性】
技术研发人员:李勇,常译文,鲍新宇,王家良,王旭,
申请(专利权)人:杭州天宽科技有限公司,
类型:发明
国别省市:浙江;33
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。