CN105608393A - 一种基于Android可执行文件重组的加固方法 - Google Patents

一种基于Android可执行文件重组的加固方法 Download PDF

Info

Publication number
CN105608393A
CN105608393A CN201610032328.0A CN201610032328A CN105608393A CN 105608393 A CN105608393 A CN 105608393A CN 201610032328 A CN201610032328 A CN 201610032328A CN 105608393 A CN105608393 A CN 105608393A
Authority
CN
China
Prior art keywords
class
dex file
file
field
address
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201610032328.0A
Other languages
English (en)
Other versions
CN105608393B (zh
Inventor
文伟平
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Devsource Technology Co Ltd
Original Assignee
Beijing Devsource Technology Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Beijing Devsource Technology Co Ltd filed Critical Beijing Devsource Technology Co Ltd
Priority to CN201610032328.0A priority Critical patent/CN105608393B/zh
Publication of CN105608393A publication Critical patent/CN105608393A/zh
Application granted granted Critical
Publication of CN105608393B publication Critical patent/CN105608393B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/64Protecting data integrity, e.g. using checksums, certificates or signatures

Abstract

本发明公布了一种基于Android可执行文件重组的加固方法,包括对dex文件进行解析阶段和对dex文件进行重组阶段,以实现对文件的加固保护;对dex文件进行解析阶段,从原classes.dex文件的Header区域获取各个table表的偏移和所含item的个数,定位到各个table表的首地址读取相应个数的item;对原dex文件进行重组阶段,创建与原dex文件格式相同的目标dex文件;从内存中读取解析原dex文件时所创建的Header类的内容,写到目标dex文件中,同时用指针跟踪写指针的地址;用重组后的目标dex文件替换原有dex文件,进行重新打包成apk文件并重新签名,完成加固操作,同时实现对代码的完整性进行保护。

Description

一种基于Android可执行文件重组的加固方法
技术领域
本发明涉及软件信息安全技术领域,尤其涉及一种基于Android可执行文件重组的加固方法。
背景技术
移动平台逐渐成为人们上网的主要方式。随着Android应用的普及,安全问题日益突出,处于商业利益的考虑,Android系统的所有者谷歌,一直回避公开讨论其安全性。国外用户一般是从谷歌应用商店下载应用,由于谷歌自身安全机制的保障,其安全性不太可能出现大的问题。但是,中国用户无法直接访问谷歌应用商店,大都是通过国内第三方Android市场下载应用,而谷歌无法控制第三方的应用商店,因此,国内的Android应用安全问题更加突出,安全威胁更高。
随着Android在国内的兴起,基于Android的平台应用需求也越来越复杂。形形色色的软件壮大了Android市场,也丰富了我们的生产生活,越来越多的人从起初的尝试到享受再到依赖,Android应用越来越广。但是,随着Android系统应用推广,在Android系统中,各种信息泄露、恶意扣费、系统被破坏的事件也屡见不鲜,Android系统的安全也逐渐成为人们所关注的话题。
目前,由于一些客观原因,Android收费软件在国内几乎没有市场,Android软件的盈利模式多是采用免费发布加广告展示来获取广告收入。免费发布的软件没有任何的授权访问机制来控制,都是直接暴露在互联网上,任何一个想要逆向分析该软件的人,都可以从网上直接下载到apk文件,因此,从软件发布渠道方面是无法保证应用软件的安全性的。目前,对于Android软件开发人员来说,需要设法防止开发出的软件被他人反编译而被破解,保证软件的核心代码不被他人剽窃,从而最大地保护Android软件开发工程师的利益,同时保证Android应用的安全。
发明内容
为了克服上述现有技术存在的问题,本发明提供一种基于Android可执行文件重组的加固方法,通过apk解压、dex文件解析、dex文件重组、dex文件校验和apk打包重新签名等过程,对Android可执行的dex文件进行解析并重新组合,进一步进行dex数据区代码混淆和加密,从而使得Android应用程序代码得到保护。
本发明提供的技术方案是:
一种基于Android可执行文件重组的加固方法,包括对dex文件进行解析阶段和对dex文件进行重组阶段,具体包括如下步骤:
A.对原dex文件进行解析,从原classes.dex文件的Header区域获取各个table表的偏移和所含item的个数,定位到各个table表的首地址读取相应个数的item;执行如下操作:
A1.为原classes.dex文件创建Header类,用于存储原classes.dex文件的Header区域的各个字段;所述原classes.dex文件的Header区域的字段包括:StringId字段、TypeId字段、ProtoId字段、FieldId字段、MeathodId字段、ClassId字段、Map字段、map_off字段、fileSize字段、dataSize字段和checksum字段;
A2.为原classes.dex文件的Header区域各个字段分别创建一个类和属性;与A1所述Header区域的字段相对应,分别创建StringIdList类、TypeIdList类、ProtoIdList类、FieldIdList类、MeathodIdList类、ClassDefList类和MapList类;各个类所创建实例的个数和偏移地址由Header区域的对应字段指明;其中,所创建StringIdList类包括属性size、stringId;其中stringId类包含string_item和string_off属性;string_item类包含size,size_value和string属性。例如,针对所述Map字段创建MapList类和MapItem类,MapItem类为MapList类的一个属性,所述MapList类包括size属性(字节类型)、map_size属性(整型)和map_size个MapItem类;所述MapItem类包含属性分别为type、unuse、size和offset;
A3.根据原classes.dex文件的Header区域的map_off字段获取Map数据的基地址,从该基地址开始的四个字节代表MapItem的个数,并将这四个字节赋值给MapList类的size属性,把size转化为整数形式赋给MapList类的map_size属性,接着读取map_size个MapItem数据;
A4.对A2所创建的其余类(包括StringIdList类、TypeIdList类、ProtoIdList类、FieldIdList类、MeathodIdList类、ClassDefList类)分别从由对应类中获取的偏移地址处连续读取与对应类的size属性取值相同的个数的属性,最终完成dex文件的解析;
B.对原dex文件进行重组,执行如下操作:
B1.创建一个与原dex文件格式相同的目标dex文件;
B2.从内存中读取步骤A解析dex文件时所创建的Header类的内容,写到目标dex文件中,同时用指针跟踪写指针的地址;包括:
B21.针对目标dex文件,从原有dex文件的Header类中获取data区域的首地址处开始写StringIdList类中的string_item的内容,在每次开始写string_item之前,记录写指针的值,并赋给StringIdList的string_off,直到所有的string_item写完,保存写指针位置到变量一;
B22.从0x70(header区域结束后,即0x70字节)处开始依次写与StringIdList类的size属性取值相同的个数的StringIdList类的string_off属性;然后接着写TypeIdList、ProtoIdList、FieldIdList、MethodIdList类的内容,并记录写指针的位置到变量二;
B23.从B21所述变量一中保存的写指针位置处开始写目标dex文件的注释部分,依次从里层向外层写,并随时记录写指针的地址到变量一;
B24.从B23所述变量一所存地址处写目标dex文件的class部分,依次从里层向外层写,并随时记录写指针的地址到变量一;然后把写指针定位到变量二所指向的位置,开始写ClassDefList类的内容;
B25.从变量一所存地址处写目标dex文件的MapList,并随时记录写指针的地址到变量一;
B3.dex文件的Header区域含有字段fileSize、dataSize和checksum,并可以获取到字段fileSize、dataSize和checksum的偏移地址,把写指针分别定位到相应的偏移地址,更新目标dex文件的Header区域字段fileSize的大小和dataSize的值;
B4.对整个目标dex文件进行crc校验,对得到的校验值的表示形式进行转换,更新checksum的内容为对目标dex文件进行crc校验的校验值,完成dex文件重组,得到重组后的目标dex文件;
B5.用重组后的目标dex文件替换原有dex文件,进行重新打包成apk文件并重新签名,完成加固操作。
上述基于Android可执行文件重组的加固方法,其中,所述变量一的值采用四字节表示;步骤B4所述对得到的校验值的表示形式进行转换,具体是将得到的校验值转为四字节表示的形式。
与现有技术相比,本发明的有益效果是:
本发明提供一种基于Android可执行文件重组的加固方法,通过apk解压、dex文件解析、dex文件重组、dex文件校验和apk打包重新签名等过程,对Android可执行的dex文件进行解析并重新组合,进一步进行dex数据区代码混淆和加密。本发明提供的技术方案为后续对dex文件插入字符串或者混淆字符串做准备,使得可以在保证dex文件格式正确的前提下,对dex文件(尤其是dex文件的data区域)的内容和顺序进行调整,实现对代码的完整性进行保护。
附图说明
图1是本发明提供方法中对Dex文件进行解析的流程框图。
图2是本发明提供方法中对Dex文件进行重组的流程框图。
图3是Android应用程序中的dex文件的文件组成结构图;
Android应用程序中的dex文件主要包括Header区域、table表、data区域三个部分;从Header区域可以读取各个table表的首地址及data区域的首地址。
具体实施方式
下面结合附图,通过实施例进一步描述本发明,但不以任何方式限制本发明的范围。
本发明提供基于Android可执行文件重组的加固方法,该方法包括对dex文件进行解析阶段和对dex文件进行重组阶段,具体包括如下步骤:
A.对dex文件进行解析,执行如下操作:
图1是本发明提供方法中对Dex文件进行解析的流程框图,如图所示,对dex文件进行解析包括步骤A1~A4:
A1.首先创建Header类存储Header区域的各个字段;
A2.为classes.dex文件的header区域对应的各个字段分别创建一个类和对应的多个属性;
图3是Android应用程序中的dex文件的文件组成结构图;如图3所示,Android应用程序中的dex文件(classes.dex文件)主要包括header区域、table表、data区域三个部分;从header区域(即0x70字节)可以读取各个table表的首地址及data区域的首地址。Header区域如表1所示。是Dex文件头(Header区域)包括的校验和以及其他结构的偏移地址和长度信息。
表1Dex文件头(Header区域)
(包括校验、文件长度和以及其他结构的偏移地址和长度信息等)
Header区域的字段包括:StringId字段、TypeId字段、ProtoId字段、FieldId字段、MeathodId字段、ClassId字段和Map字段;与上述字段相对应,分别创建StringIdList类、TypeIdList类、ProtoIdList类、FieldIdList类、MeathodIdList类、ClassDef类和MapList类。
例如:对应StringId字段,创建StringIdList类,包括size和stringId两个属性;示意代码如下:
而对Map字段创建MapList类和MapItem类(MapItem类为MapList类的一个属性),其中MapItem类包含属性分别为type、unuse、size和offset,示意代码如下:
A3.从Header区域的map_off字段获取map数据的基地址,从这个基地址开始首先读取MapItem的个数付给MapList类的size属性,然后接着读取size个MapItem,MapItem包含四个属性,分别为type、unuse、size和offset。
A4.从Header区域获取各个字段的个数和偏移地址读取对应的数据,并把个数赋值给对应的类;
例如:从header区域中读取field_ids_size和field_ids_off的值,把field_ids_size的值赋值给FieldIdList类的size属性,并从field_ids_off地址处开始读取size个fieldIdItem的值,fieldIdItem为一个内部类,包含class_idx、type_idx和name_idx三个属性,示意代码如下:
针对一些比较复杂的类,不能从header区域获取对应的数据,比如Annotation,debugInfoItem等,这些数据在mapList里都有对应的记录,比如对于debugInfoItem类,它对应的type为0x2003,如果mapList里有一个mapItem对应的type属性值为0x2003,则可以根据这个mapItem的size和offset属性获取所有debugInfoItem的信息,从offset处依次读取size个debugInfoItem字段;
B.对dex文件进行重组,执行如下操作:
图2是本发明提供方法中对Dex文件进行重组的流程框图。如图2所示,对Dex文件进行重组包括步骤B1~B8:
B1.首先删除原有dex文件,在同一路径下创建同名的dex文件为目标dex文件,目标dex文件和原有dex文件大致格式基本相同,包括header区域,以及StringId,TypeId,ProtoId,FieldId,MethodId,ClassId区域,还有data区域;data区域中包含一些字符串、类和注释等相关的一些数据;最后是map区域;所不同的是,对原有dex文件的data区域的顺序有调整,无论原dex文件data区域各字段的顺序如何不同,重组后得到的目标dex文件data区域各字段的顺序都一样(比如:不管StringDataItem在原dex处于data区域的开始、中间还是最后,重组后StringDataItem都处于目标dex文件data区域的开始位置)。这样一致的顺序便于用统一的程序对dex文件进行更新和插入删除等操作。
B2.从内存中读取原dex文件header类的内容,写到目标dex文件中,同时用指针跟踪写指针的地址;
B3.从Header类中获取的data区域的首地址处开始写StringIdList中的string_item(包括size、size_value、string属性)的内容,在每次开始写string_item之前,记录写指针的值,并转为四字节数组的形式赋给StringIdList的string_off,直到所有的string_item写完,保存写指针到另一个全局变量dataOffset;
B4.从0x70处开始依次写size个StringIdList的string_off(四字节数组形式)属性;然后接着写TypeId、TypeIdList、ProtoId、FieldId、MethodId类的内容,并记录写指针的位置到一个全局变量tableOffset;
B5.从dataOffset处开始写注释部分,从最里层向最外层依次写AnnotationItem、AnnotationSetItem、AnnotationSetRefList、AnnotationDirectoryIte,并随时记录写指针的地址到dataOffset变量;
B6.从dataOffset处开始写dex文件的class部分,从最里层向最外层依次写DebugInfoItem、CodeItem、ClassDataItem、EncodedArray,并随时记录写指针的地址到dataOffset变量。然后把写指针定位到tableOffset所指向的位置,然后开始写ClassDefId类的内容;
B7.从dataOffset处开始写dex文件的MapList类(包括size属性和size个MapItem类),并随时记录写指针的地址到dataOffset变量;
B8.从dex文件的Header区域可以获取到字段fileSize、dataSize和checksum的偏移地址,把写指针分别定位到这些偏移地址,更新header区域字段fileSize的大小为最终dataOffset的值对应的四字节表示形式,dataSize的值为最终dataOffset的值减去现在dex文件header区域dataoff对应的值对应的四字节表示形式,然后对整个文件进行crc校验,得到的校验值转为四字节的表示形式更新checksum的内容,此时完成dex文件重组操作,用新重组的dex文件替换原有dex文件,对原解压文件进行重新打包成apk文件,并对apk文件进行重新签名。
本发明实施例针对需要保护的apk,首先解压获得apk中的classes.dex文件,然后根据dex文件header区域每个字段所占的字节数对其读取每个字段的值,如magic字段为header区域前8个字节,就把第0到第8个(不包括第8个)字节的值赋给magic字段,header区域总长度为112个字节,data_off字段为header区域最后四个字节,就把第108个字节到第112个(不包括第112个)字节的值赋给data_off字段,并存到内存中。
以写注释部分为例说明dex文件重组时地址更新的过程。写注释部分,从最里层向最外层依次写AnnotationItem、AnnotationSetItem、AnnotationSetRefList、AnnotationDirectoryItem;具体是:首先Dispose.dataOffset为写指针,它始终记录指针的移动,在写第一个annotationItem之前,更新map中annotationItem的开始地址,并记录每个annotationItem的地址,以便上层更新。然后开始写annotationItem的内容。写注释部分的代码如下:
写注释部分,dex文件重组时采用地址更新的方法,可以动态更新子项的地址,并且为后续变量、方法和类等的混淆提供支持,不管StringDataItem的地址和长度如何变化,其上层地址也会随时变化。
完成dex文件重组操作之后,用新重组的dex文件替换原有dex文件,完成加固;对原解压文件进行重新打包成apk文件,并对apk文件进行重新签名。
需要注意的是,公布实施例的目的在于帮助进一步理解本发明,但是本领域的技术人员可以理解:在不脱离本发明及所附权利要求的精神和范围内,各种替换和修改都是可能的。因此,本发明不应局限于实施例所公开的内容,本发明要求保护的范围以权利要求书界定的范围为准。

Claims (5)

1.一种基于Android可执行文件重组的加固方法,包括对dex文件进行解析阶段和对dex文件进行重组阶段,以实现对文件的加固保护;所述dex文件主要包括Header区域、table表和data区域;所述加固方法具体包括如下步骤:
A.对原dex文件进行解析,为原classes.dex文件创建Header类,用于存储原classes.dex文件的Header区域的各个字段;从原classes.dex文件的Header区域获取各个table表的偏移和所含item的个数,定位到各个table表的首地址读取相应个数的item;完成dex文件的解析;
B.对原dex文件进行重组阶段,创建一个与原dex文件格式相同的目标dex文件,从内存中读取步骤A解析原dex文件时所创建的Header类的内容,写到目标dex文件中,同时用指针跟踪写指针的地址;执行如下操作:
B1.创建一个与原dex文件格式相同的目标dex文件;
B2.从内存中读取步骤A解析原dex文件时所创建的Header类的内容,写到目标dex文件中,同时用指针跟踪写指针的地址;
B3.更新目标dex文件的Header区域相应字段的大小;
B4.对整个目标dex文件进行crc校验,对得到的校验值的表示形式进行转换,更新checksum的内容为对目标dex文件进行crc校验的校验值,完成dex文件重组,得到重组后的目标dex文件;
B5.用重组后的目标dex文件替换原有dex文件,进行重新打包成apk文件并重新签名,完成加固操作。
2.如权利要求1所述基于Android可执行文件重组的加固方法,其特征是,步骤A所述对原dex文件进行解析,具体执行如下操作:
A1.为原classes.dex文件创建Header类,用于存储原classes.dex文件的Header区域的各个字段;所述原classes.dex文件的Header区域的字段包括:StringId字段、TypeId字段、ProtoId字段、FieldId字段、MeathodId字段、ClassId字段、Map字段、map_off字段、fileSize字段、dataSize字段和checksum字段;
A2.为原classes.dex文件的Header区域各个字段分别创建一个类和属性;与A1所述Header区域的字段相对应,分别创建StringIdList类、TypeIdList类、ProtoIdList类、FieldIdList类、MeathodIdList类、ClassDefList类和MapList类;各个类所创建实例的个数和偏移地址由Header区域的对应字段指明;
所创建StringIdList类包括属性size和stringId;所述stringId类包含属性string_item和string_off;所述string_item类包含属性size,size_value和string;针对所述Map字段创建MapList类和MapItem类;所述MapList类包括size属性、map_size属性和map_size个MapItem类;所述MapItem类包含属性type、unuse、size和offset;
A3.根据原classes.dex文件的Header区域的map_off字段获取Map数据的基地址,从该基地址开始的四个字节代表MapItem的个数,并将这四个字节赋值给MapList类的size属性,把size转化为整数形式赋给map_size属性,接着读取map_size个MapItem数据;
A4.针对步骤A2所创建的StringIdList类、TypeIdList类、ProtoIdList类、FieldIdList类、MeathodIdList类、ClassDefList类,分别从由各类中获取的偏移地址处连续读取与对应类的size属性取值相同的个数的属性,最终完成dex文件的解析。
3.如权利要求1所述基于Android可执行文件重组的加固方法,其特征是,步骤B2所述将所创建的Header类的内容写到目标dex文件中,同时用指针跟踪写指针的地址,具体执行如下操作:
B21.针对目标dex文件,从原dex文件的Header类中获取data区域的首地址处开始写StringIdList类中的string_item的内容,在每次开始写string_item之前,记录写指针的值,并赋给StringIdList的string_off,直到所有的string_item写完,保存写指针位置到变量一;
B22.从0x70Header区域结束后之处开始依次写与StringIdList类的size属性取值相同的个数的StringIdList类的string_off属性;然后依次写TypeIdList、ProtoIdList、FieldIdList、MethodIdList类的内容,并记录写指针的位置到变量二;
B23.从B21所述变量一中保存的写指针位置处开始写目标dex文件的注释部分,依次从里层向外层写,并随时记录写指针的地址到变量一;
B24.从B23所述变量一所存地址处写目标dex文件的class部分,依次从里层向外层写,并随时记录写指针的地址到变量一;然后把写指针定位到变量二所指向的位置,开始写ClassDefList类的内容;
B25.从变量一所存地址处写目标dex文件的MapList,并随时记录写指针的地址到变量一。
4.如权利要求3所述基于Android可执行文件重组的加固方法,其特征是,所述变量一的值采用四字节表示。
5.如权利要求1所述基于Android可执行文件重组的加固方法,其特征是,步骤B3所述更新目标dex文件的Header区域相应字段的大小,具体是:从目标dex文件的Header区域获得字段fileSize、dataSize和checksum,并可以获取到字段fileSize、dataSize和checksum的偏移地址,把写指针分别定位到相应的偏移地址,更新目标dex文件的Header区域字段fileSize的大小和dataSize的值。
CN201610032328.0A 2016-01-19 2016-01-19 一种基于Android可执行文件重组的加固方法 Expired - Fee Related CN105608393B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610032328.0A CN105608393B (zh) 2016-01-19 2016-01-19 一种基于Android可执行文件重组的加固方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610032328.0A CN105608393B (zh) 2016-01-19 2016-01-19 一种基于Android可执行文件重组的加固方法

Publications (2)

Publication Number Publication Date
CN105608393A true CN105608393A (zh) 2016-05-25
CN105608393B CN105608393B (zh) 2018-09-07

Family

ID=55988320

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610032328.0A Expired - Fee Related CN105608393B (zh) 2016-01-19 2016-01-19 一种基于Android可执行文件重组的加固方法

Country Status (1)

Country Link
CN (1) CN105608393B (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106709286A (zh) * 2016-11-30 2017-05-24 江苏神州信源系统工程有限公司 一种对apk资源包进行安全加固的方法
CN106778271A (zh) * 2016-12-15 2017-05-31 华中科技大学 一种安卓加固插件的逆向处理方法
CN106815301A (zh) * 2016-12-12 2017-06-09 北京奇虎科技有限公司 一种dex文件的存储方法和装置
CN106934260A (zh) * 2017-03-14 2017-07-07 北京深思数盾科技股份有限公司 代码保护方法、装置、服务器及存储介质
CN109815651A (zh) * 2019-01-18 2019-05-28 北京智游网安科技有限公司 基于中间代码的iOS应用程序处理方法、系统及介质
CN110147655A (zh) * 2019-03-28 2019-08-20 江苏通付盾信息安全技术有限公司 应用程序的安全防护系统及方法
CN110232262A (zh) * 2019-06-17 2019-09-13 中金金融认证中心有限公司 一种安卓应用的加固方法和系统
CN110837391A (zh) * 2019-11-04 2020-02-25 广州华多网络科技有限公司 应用程序的热更新方法及装置、存储介质及电子设备
CN110928779A (zh) * 2019-11-19 2020-03-27 北京字节跳动网络技术有限公司 文件处理方法、应用程序运行故障定位方法和设备
CN112507328A (zh) * 2021-01-29 2021-03-16 统信软件技术有限公司 一种文件签名方法、计算设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236757A (zh) * 2011-06-30 2011-11-09 北京邮电大学 一种适用于Android系统的软件保护方法及系统
CN104111832A (zh) * 2014-07-03 2014-10-22 北京思特奇信息技术股份有限公司 一种安卓应用程序安装包加壳方法及系统及解壳方法
CN104317625A (zh) * 2014-11-09 2015-01-28 刘鹏 一种apk文件的动态加载方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102236757A (zh) * 2011-06-30 2011-11-09 北京邮电大学 一种适用于Android系统的软件保护方法及系统
CN104111832A (zh) * 2014-07-03 2014-10-22 北京思特奇信息技术股份有限公司 一种安卓应用程序安装包加壳方法及系统及解壳方法
CN104317625A (zh) * 2014-11-09 2015-01-28 刘鹏 一种apk文件的动态加载方法

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106709286A (zh) * 2016-11-30 2017-05-24 江苏神州信源系统工程有限公司 一种对apk资源包进行安全加固的方法
CN106815301A (zh) * 2016-12-12 2017-06-09 北京奇虎科技有限公司 一种dex文件的存储方法和装置
CN106778271B (zh) * 2016-12-15 2019-05-14 华中科技大学 一种安卓加固插件的逆向处理方法
CN106778271A (zh) * 2016-12-15 2017-05-31 华中科技大学 一种安卓加固插件的逆向处理方法
CN106934260B (zh) * 2017-03-14 2020-03-17 北京深思数盾科技股份有限公司 代码保护方法、装置、服务器及存储介质
CN106934260A (zh) * 2017-03-14 2017-07-07 北京深思数盾科技股份有限公司 代码保护方法、装置、服务器及存储介质
CN109815651A (zh) * 2019-01-18 2019-05-28 北京智游网安科技有限公司 基于中间代码的iOS应用程序处理方法、系统及介质
CN110147655A (zh) * 2019-03-28 2019-08-20 江苏通付盾信息安全技术有限公司 应用程序的安全防护系统及方法
CN110232262A (zh) * 2019-06-17 2019-09-13 中金金融认证中心有限公司 一种安卓应用的加固方法和系统
CN110837391A (zh) * 2019-11-04 2020-02-25 广州华多网络科技有限公司 应用程序的热更新方法及装置、存储介质及电子设备
CN110837391B (zh) * 2019-11-04 2021-02-12 广州方硅信息技术有限公司 应用程序的热更新方法及装置、存储介质及电子设备
CN110928779A (zh) * 2019-11-19 2020-03-27 北京字节跳动网络技术有限公司 文件处理方法、应用程序运行故障定位方法和设备
CN110928779B (zh) * 2019-11-19 2023-04-25 抖音视界有限公司 文件处理方法、应用程序运行故障定位方法和设备
CN112507328A (zh) * 2021-01-29 2021-03-16 统信软件技术有限公司 一种文件签名方法、计算设备及存储介质

Also Published As

Publication number Publication date
CN105608393B (zh) 2018-09-07

Similar Documents

Publication Publication Date Title
CN105608393A (zh) 一种基于Android可执行文件重组的加固方法
US9582513B2 (en) Accessing data in a compressed container through dynamic redirection
ES2692120T3 (es) Procedimiento y aparato de generación de interfaces de usuario a base de automatización con flexibilidad total
US20130120396A1 (en) Incrementally Building A Font
US20120054734A1 (en) Device software upgrade using a dynamically sized partition
CN108090168A (zh) 一种通用f2fs文件系统解析方法、终端设备及存储介质
JP2007188501A (ja) ファイルシステムと互換性を維持するシンボリックリンクを生成する方法、前記シンボリックリンクを用いてファイル/ディレクトリにアクセスする方法および装置
CN106326229B (zh) 一种嵌入式系统的文件存储方法和装置
US8275969B2 (en) Storage with persistent user data
CN102782665A (zh) 在数据存储设备处组合用户内容与补充内容
CN106104463A (zh) 用于存储设备的故障安全操作的系统和方法
US7890730B2 (en) Methods and devices for expandable storage
CN107526608A (zh) 一种ota升级包升级方法及设备
US11663288B2 (en) Just-in-time front end template generation using logical document object models
CN105528418A (zh) 一种设计文档生成方法及装置
CN102495740A (zh) 利用移动存储设备升级mac地址、hdcpkey、电视机id的方法
CN102930190A (zh) 一种在安卓系统中阻止用户获取超级用户权限的方法
US20090026275A1 (en) Automatically configurable smart card and method of automatically configuring a smart card
US20170139696A1 (en) Method and a system for merging several binary executables
CN103430178A (zh) 数据更新方法及装置和产品
CN106909351A (zh) 一种基于uefi固件的ext文件系统的实现方法
Hummert et al. Mobile Forensics–The File Format Handbook: Common File Formats and File Systems Used in Mobile Devices
CA3077291C (en) Model localization for data analytics and business intelligence
US8448244B1 (en) Methods and systems for fused files comprising logic and content data
CN114115952A (zh) 一种低代码应用打包后自动升级的方法及装置

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20180907

Termination date: 20200119