CN108197440A - 一种代码混淆方法、设备及计算机可读存储介质 - Google Patents
一种代码混淆方法、设备及计算机可读存储介质 Download PDFInfo
- Publication number
- CN108197440A CN108197440A CN201711214176.7A CN201711214176A CN108197440A CN 108197440 A CN108197440 A CN 108197440A CN 201711214176 A CN201711214176 A CN 201711214176A CN 108197440 A CN108197440 A CN 108197440A
- Authority
- CN
- China
- Prior art keywords
- precompile
- file
- keyword
- macro
- random
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 56
- 238000012545 processing Methods 0.000 claims abstract description 21
- 238000004422 calculation algorithm Methods 0.000 claims description 12
- 238000004590 computer program Methods 0.000 claims description 11
- 238000013515 script Methods 0.000 claims description 11
- 230000000694 effects Effects 0.000 abstract description 5
- 238000006467 substitution reaction Methods 0.000 abstract description 5
- 238000012856 packing Methods 0.000 abstract description 3
- 238000005516 engineering process Methods 0.000 description 6
- 238000004458 analytical method Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 238000005336 cracking Methods 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000008901 benefit Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 230000001172 regenerating effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/10—Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
- G06F21/12—Protecting executable software
- G06F21/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/436—Semantic checking
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种代码混淆方法、设备及计算机存储介质。该方法包括:对需要混淆的关键字进行混淆处理,并将混淆后的信息以预编译宏的模式创建至混淆代码头文件中;将混淆代码头文件导入至全局预编译文件中,以在预编译时根据混淆代码头文件中的预编译宏对全局中需要混淆的关键字进行替换。本发明通过App在每次打包预编时,进行宏替换的代码混淆,保证了开发时代码清晰,打包后代码混淆难懂的作用,有效保证App发版后的安全性。
Description
技术领域
本发明涉及计算机技术领域,特别是涉及一种代码混淆方法、设备及计算机可读存储介质。
背景技术
目前现有技术中,在编写App应用程序时,代码方法(function)、类名(class)、抽象接口名(或者协议名protocol)以及属性名都是语义化很明确的名字。基于此,开发人员易于理解代码的意图和逻辑,也方便后续开发的调试和维护。然而,破解人员也可以根据代码方法、类名、抽象接口名以及属性名对应用程序进行反编译工作,获取应用程序的代码及实现逻辑,仅通过在应用程序的关键逻辑的地方加入自己的一些逻辑,就可实现自己所要的意图。
因此,现有的应用程序开发中,如何提高代码的安全性是开发人员所面临解决的一个重要问题。
发明内容
本发明提供一种代码混淆方法、设备及计算机可读存储介质,用以解决现有的应用程序开发中,代码的安全性得不到保障的问题。
为实现上述发明目的,本发明采用下述的技术方案:
根据本发明的一个方面,提供一种代码混淆方法,包括:
对需要混淆的关键字进行混淆处理,并将混淆后的信息以预编译宏的模式创建至混淆代码头文件中;
将所述混淆代码头文件导入至全局预编译文件中,以在预编译时根据所述混淆代码头文件中的预编译宏对全局中所述需要混淆的关键字进行替换。
可选的,所述对需要混淆的关键字进行混淆处理之前,所述方法还包括:
通过shell脚本提取所述需要混淆的关键字。
可选的,所述对需要混淆的关键字进行混淆处理,并将混淆后的信息以预编译宏的模式创建至混淆代码头文件中,包括:
对所述需要混淆的关键字通过随机算法进行随机混淆处理;
将随机混淆后的随机字符串保存至所述混淆代码头文件的预编译宏中。
可选的,所述随机算法为BASE64算法。
可选的,所述将随机混淆后的随机字符串保存至所述混淆代码头文件的预编译宏中,具体包括:
判断所述随机字符串是否存在于预设列表文件中:
当不存在时,将所述随机字符串保存至所述预设列表文件和所述预编译宏中;当存在时,继续进行随机混淆处理,直至混淆后的随机字符串不存在于所述预设列表文件,将所述随机字符串保存至所述预设列表文件和所述预编译宏中。
可选的,所述方法还包括:
将所述需要混淆的关键字以及所述随机字符串以键值对的形式写入本地数据库中。
可选的,所述将所述混淆代码头文件导入至全局预编译文件中,包括:
将所述混淆代码头文件导入混淆代码预编译文件中;
将所述混淆代码预编译文件的路径添加至所述全局预编译文件中。
可选的,所述关键字为以下任一种:类名、协议名、属性名以及方法名。
依据本发明的另一方面,提供一种代码混淆设备,包括处理器和存储器;所述存储器上存储有可用在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,以实现上述所述的代码混淆方法中的步骤。
依据本发明的另一方面,提供一种计算机可读存储介质,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现上述所述的代码混淆方法中的步骤。
本发明有益效果如下:
本发明所提供的代码混淆方法、设备及计算机可读存储介质,通过App在每次打包预编时,进行宏替换的代码混淆,保证了开发时代码清晰,打包后代码混淆难懂的作用,有效保证App发版后的安全性。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
为了更清楚地说明本发明实施例或现有中的方案,下面将对实施例或现有描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例中所提供代码混淆方法的流程图;
图2为本发明一具体实施例中所提供的代码混淆方法的流程图;
图3为本发明实施例中所提供的代码混淆设备的原理框图。
具体实施方式
以下结合附图以及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限定本发明。
目前应用程序从编写代码到可执行程序需要经历的步骤如下:预编译->编译->汇编->链接->可执行程序。为了保证代码不易被破解,提高代码的安全性,本发明实施例所提供的代码混淆方法通过头文件中预编译宏中设置所需混淆的信息,在预编译前执行混淆脚本,实现每次打包时对需要混淆代码内容的自动混淆,有效提高了代码逆行分析的难度。下面对本发明的具体实现过程进行详细说明。
方法实施例
本发明实施例还提供了一种代码混淆方法,如图1所示,具体包括如下步骤:
步骤101,对需要混淆的关键字进行混淆处理,并将混淆后的信息以预编译宏的模式创建至混淆代码头文件中。
在该步骤中,代码中变量的类型包括代码名、类名、协议名以及属性名。因此,需要混淆的关键字可以为代码方法、类名、协议名protocol)以及属性名中的任一种或者多种。
其中,在对需要混淆的关键字进行处理时,优选的采用shell脚本处理。通过脚本来对头文件中的预编译宏进行设置。基于预编译宏在编译过程中实现对需要混淆的关键字进行替换。这里使用预编译宏的模式,在编译前只对打包后的包进行混淆。
可选的,在对需要混淆的关键字进行处理时,包括:对需要混淆的关键字通过随机算法进行随机混淆处理;将随机混淆后的随机字符串保存至混淆代码头文件的预编译宏中。其中,这里优选的采用base64算法进行混淆处理。对于如何采用base64算法进行处理,已属于本领域技术人员所熟知的技术,这里不在赘述。
可选的,为了进一步保证混淆的效果,保证代码的安全,需要对混淆后的随机字符串进行判断,确保每次生成的随机字符串都是不同的。
具体地,在将随机混淆后的随机字符串保存至混淆代码头文件的预编译宏中,包括如下:
判断随机字符串是否存在于预设列表文件中:
当不存在时,将随机字符串保存至预设列表文件和预编译宏中;
当存在时,继续进行随机混淆处理,直至混淆后的随机字符串不存在于预设列表文件,将随机字符串保存至预设列表文件和预编译宏中。
这里,通过设置预设列表文件,每次生成随机字符串后,判断随机字符串是否存在于预设列表文件,当不存在时,则将随机字符串保存至预设列表文件。这样,通过与预设列表文件进行比较,可以确保随机字符串每次都是不同的,提高逆行分析的难度,保证代码的唯一性,防止混淆后出错。
这里,预设列表文件为根据代码中的变量类型进行区分。上述提到,变量类型可包括代码方法名、类名、协议名以及属性名。因此,这里,预设列表文件包括方法名列表文件、类名列表文件、协议名列表文件以及属性名列表文件。
而需要混淆的关键字同样按照上述的变量类型进行划分,包括类关键字列表、方法关键字列表、协议关键字列表以及属性关键字列表。在对关键字进行混淆时,根据变量类型,对每种类型的变量依序进行混淆。例如,对类关键字列表中的关键字依序进行混淆。而后,将所有类型的关键字进行混淆完成后,则处理结束。
进一步地,为了便于后期对代码进行分析和修复,本发明一实施例中,还包括如下步骤:
将随机字符串以及需要混淆的关键字以键值对的方式存储于本地数据库中。
基于此,通过将本地数据库导出,并保存至本地,在后续应用程序出现bug的时候,将该键值对作为对照表,可以快速查处工程中对应的代码,对代码进行分析和修复。
步骤102,将混淆代码头文件导入至全局预编译文件中,以在预编译时根据混淆代码头文件中的预编译宏对全局中需要混淆的关键字进行替换。
其中,这里全局预编译文件是指Prefix Header.pch文件。在该步骤中,将混淆代码头文件导入至全局预编译文件中,包括:
将混淆代码头文件导入混淆代码预编译文件中;
将混淆代码预编译文件的路径添加至全局预编译文件中。
基于此,通过混淆代码预编译文件添加混淆代码头文件,在进行预编译时,通过全局预编译文件中的路径可以获取相应的混淆代码预编译文件,进而编译混淆代码头文件。通过编译混淆代码头文件中的预编译宏可以实现所有需要混淆的关键字的替换。
下面结合具体实施例对本发明的技术内容做进一步的详细说明。
在本实施例中,以iOS代码为例对本发明的代码混淆方法进行介绍。在iOS代码中,工程预编译之前通过编写的shell脚本将工程中需要混淆的类名,属性名,方法名,协议名替换为base64生成的随机字符串,写入CodeConfusion.h;在编写代码的时候创建CodeConfusion,并将CodeConfusion.h(头文件)引入工程中的PrefixHeader.pch(预编译)文件中;在预编译的时候,工程首先会在PrefixHeader.pch文件中的内容引入整个工程,这个时候就将CodeConfusion.h宏进行全局替换,从而达到代码混淆的目的。
具体地,如图2所示,本实施例中的iOS代码混淆方法在实现时,具体包括如下步骤:
步骤201,工程设置:
在工程目录下添加YFCodeConfusion.h头文件:存放预编译替换的宏。ConfusionPrefixHeader.pch(混淆预编译文件):导入YFCodeConfusion.h,用于在预编译前就进行宏替换;
设置工程中Precompile Prefix header为yes Prefix header添加PCH文件路径,例,({PROJECT_NAME}/CodeConfusion/ConfusionPrefixHeader.pch)。
步骤202,添加脚本:
在Build Phases中添加自定义脚本RunPreComplieCustomScript.这里通过脚本来实现关键字的混淆,使用头文件中的宏进行替换。该脚本主要实现如下功能:
首先,提取整个工程中的类名、协议名、属性、方法名到对应的AllClass.list、AllProtocol.list、AllProperty.list、AllFunction.list文件中
其次,提取需要混淆的关键字(包含类名、协议、属性、方法名)分别到对应的从class.list、protocol.list、property.list、function.list文件中。
接着,确定混淆的方法。以类名的混淆为例进行说明,方法名替换、属性名替换和协议名替换类似,这里不再进行说明。
从class.list读取需要混淆的关键字类名不为空,使用base64生成随机的ramdom,在AllClass.list查找是否存在这个随机的ramdom字符串,如果存在,则重新生成一个新的字符串,直到生成一个在AllClass.list文件中不存在的字符串,将其写入头文件YFCodeConfusion.h中的预编译宏中"#define$line$ramdom",以便在主工程编译的时候使用宏替换进行混淆;同时将其写入AllClass.list文件,确保下一次查找相同的类名的时候,将其包含在其中,同时将混淆前的类名和混淆后的类名以键值对的形式,写入本地数据库。
可知,生成混淆字符串是使用openssl rand-base64 64/tr-cd‘a-zA-Z’/head-c20,保证每次打包都生成不同的混淆内容,增加逆向工作难度。而后为保证每次混淆后内容的唯一,每次混淆后查询随机字符串是否存在:如果存在,则重新继续生成新的混淆方法,如果不存在,则继续使用。
最后,将上面的数据库导出,保存在本地,以便以后线上出bug的时候作为对照表,查找出工程对应的代码,进行bug分析和修复。
可知,为保证bug的修复和错误查找,则使用每次混淆时,则保存一个本地数据库,方便后期的线上的错误跟踪和bug的修复。
步骤203,进行代码编译。
工程打包代码编译前,首先运行上面的脚本进行代码混淆。
预编译->编译->汇编->链接->打包为应用程序包。
步骤204,混淆后的应用包。
需要说明的是,这里需要混淆的内容是提前预定好的,不包括静态库和动态库。
基于上述可知,本实施例中的的代码混淆方法,通过APP在每次打包预编时,进行宏替换的代码混淆,保证了开发时代码的清晰,打包后代码混淆难懂的作用,增加破解代码的难度,提高了APP发版后的安全性以及用户体验。
设备实施例
本发明实施例还提供了一种代码混淆设备,用以实现上述的代码混淆方法,如图3所示,该设备包括处理器32以及存储有处理器32可执行指令的存储器31;
其中,处理器32可以是通用处理器,例如中央处理器(central processing unit,CPU),还可以是数字信号处理器(digital signal processor,DSP)、专用集成电路(application specific integrated circuit,ASIC),或者是被配置成实施本发明实施例的一个或多个集成电路。
其中,存储器31,用于存储程序代码,并将该程序代码传输给CPU。存储器31可以包括易失性存储器(volatile memory),例如随机存取存储器(random access memory,RAM);存储器31也可以包括非易失性存储器(non-volatile memory),例如只读存储器(read-only memory,ROM)、快闪存储器(flash memory)、硬盘(hard disk drive,HDD)或固态硬盘(solid-state drive,SSD);存储器31还可以包括上述种类的存储器的组合。
具体地,本发明实施例所提供的视图控件控制设备,包括处理器32和存储器31;存储器31上存储有可用在处理器32上运行的计算机程序,当计算机程序被处理器32执行时实现如下步骤:
对需要混淆的关键字进行混淆处理,并将混淆后的信息以预编译宏的模式创建至混淆代码头文件中;
将混淆代码头文件导入至全局预编译文件中,以在预编译时根据混淆代码头文件中的预编译宏对全局中需要混淆的关键字进行替换。
可选的,通过shell脚本对需要混淆的关键字进行混淆处理。
可选的,当计算机程序被处理器32执行时实现如下步骤:
对需要混淆的关键字通过随机算法进行随机混淆处理;
将随机混淆后的随机字符串保存至混淆代码头文件的预编译宏中。
其中,随机算法为BASE64算法。
可选的,当计算机程序被处理器32执行时实现如下步骤:
判断随机字符串是否存在于预设列表文件中:
当不存在时,将随机字符串保存至预设列表文件和预编译宏中;当存在时,继续进行随机混淆处理,直至混淆后的随机字符串不存在于预设列表文件,将随机字符串保存至预设列表文件和预编译宏中。
可选的,当计算机程序被处理器32执行时还实现如下步骤:
将需要混淆的关键字以及随机字符串以键值对的形式写入本地数据库中。
可选的,当计算机程序被处理器32执行时实现如下步骤:
将混淆代码头文件导入混淆代码预编译文件中;
将混淆代码预编译文件的路径添加至全局预编译文件中。
可选的,关键字为以下任一种:类名、协议名、属性名以及方法名。
需要说明的是,由于方法实施例中对各个步骤的具体过程进行了详细说明,因此在设备实施例中对于各个步骤仅做了简要说明,具体参见方法实施例中的详细描述,这里不再赘述。
存储介质实施例
本发明实施例还提供了一种计算机可读存储介质。这里的计算机可读存储介质存储有一个或者多个程序。其中,计算机可读存储介质可以包括易失性存储器,例如随机存取存储器;存储器也可以包括非易失性存储器,例如只读存储器、快闪存储器、硬盘或固态硬盘;存储器还可以包括上述种类的存储器的组合。当计算机可读存储介质中所述一个或者多个程序可被一个或者多个处理器执行,以实现上述的用于实现上述方法实施例中代码混淆方法中的部分步骤或者全部步骤。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,程序可存储于计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。
虽然通过实施例描述了本申请,本领域的技术人员知道,本申请有许多变形和变化而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (10)
1.一种代码混淆方法,其特征在于,包括:
对需要混淆的关键字进行混淆处理,并将混淆后的信息以预编译宏的模式创建至混淆代码头文件中;
将所述混淆代码头文件导入至全局预编译文件中,以在预编译时根据所述混淆代码头文件中的预编译宏对全局中所述需要混淆的关键字进行替换。
2.根据权利要求1所述的方法,其特征在于,通过shell脚本对需要混淆的关键字进行混淆处理。
3.根据权利要求1或2所述的方法,其特征在于,所述对需要混淆的关键字进行混淆处理,并将混淆后的信息以预编译宏的模式创建至混淆代码头文件中,包括:
对所述需要混淆的关键字通过随机算法进行随机混淆处理;
将随机混淆后的随机字符串保存至所述混淆代码头文件的预编译宏中。
4.根据权利要求3所述的方法,其特征在于,所述随机算法为BASE64算法。
5.根据权利要求3所述的方法,其特征在于,所述将随机混淆后的随机字符串保存至所述混淆代码头文件的预编译宏中,具体包括:
判断所述随机字符串是否存在于预设列表文件中:
当不存在时,将所述随机字符串保存至所述预设列表文件和所述预编译宏中;当存在时,继续进行随机混淆处理,直至混淆后的随机字符串不存在于所述预设列表文件,将所述随机字符串保存至所述预设列表文件和所述预编译宏中。
6.根据权利要求5所述的方法,其特征在于,所述方法还包括:
将所述需要混淆的关键字以及所述随机字符串以键值对的形式写入本地数据库中。
7.根据权利要求1所述的方法,其特征在于,所述将所述混淆代码头文件导入至全局预编译文件中,包括:
将所述混淆代码头文件导入混淆代码预编译文件中;
将所述混淆代码预编译文件的路径添加至所述全局预编译文件中。
8.根据权利要求1所述的方法,其特征在于,所述关键字为以下任一种:类名、协议名、属性名以及方法名。
9.一种代码混淆设备,其特征在于,包括处理器和存储器;所述存储器上存储有可用在所述处理器上运行的计算机程序,当所述计算机程序被所述处理器执行时,以实现权利要求1~8任一项所述的代码混淆方法中的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有一个或者多个程序,所述一个或者多个程序可被一个或者多个处理器执行,以实现权利要求1~8任一项所述的代码混淆方法中的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711214176.7A CN108197440A (zh) | 2017-11-28 | 2017-11-28 | 一种代码混淆方法、设备及计算机可读存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711214176.7A CN108197440A (zh) | 2017-11-28 | 2017-11-28 | 一种代码混淆方法、设备及计算机可读存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108197440A true CN108197440A (zh) | 2018-06-22 |
Family
ID=62573214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711214176.7A Pending CN108197440A (zh) | 2017-11-28 | 2017-11-28 | 一种代码混淆方法、设备及计算机可读存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108197440A (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086147A (zh) * | 2018-07-31 | 2018-12-25 | 深圳市元征科技股份有限公司 | 应用程序的服务接口调用方法、装置及存储介质 |
CN109344575A (zh) * | 2018-08-17 | 2019-02-15 | 北京奇虎科技有限公司 | Lua脚本文件处理方法、装置及计算设备 |
CN109409033A (zh) * | 2018-09-11 | 2019-03-01 | 平安科技(深圳)有限公司 | 代码加密方法、装置、计算机装置及存储介质 |
CN110389753A (zh) * | 2019-06-06 | 2019-10-29 | 五八有限公司 | 原生应用的链式调用方法、装置、电子设备及存储介质 |
CN110765425A (zh) * | 2019-10-25 | 2020-02-07 | 杭州涂鸦信息技术有限公司 | 一种对ios应用程序源代码进行混淆保护的方法及系统 |
CN111428209A (zh) * | 2019-01-10 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种应用程序的混淆方法、装置及存储介质 |
CN113065132A (zh) * | 2021-03-25 | 2021-07-02 | 深信服科技股份有限公司 | 一种宏程序的混淆检测方法、装置、电子设备和存储介质 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102708322A (zh) * | 2012-05-12 | 2012-10-03 | 北京深思洛克软件技术股份有限公司 | 安卓系统中java应用程序的保护方法 |
US20130232468A1 (en) * | 2009-05-01 | 2013-09-05 | Apple Inc. | Systems, methods, and computer-readable media for fertilizing machine-executable code |
CN104992083A (zh) * | 2015-07-09 | 2015-10-21 | 广州视源电子科技股份有限公司 | 应用程序的代码混淆方法和系统 |
CN105005718A (zh) * | 2015-06-23 | 2015-10-28 | 电子科技大学 | 一种利用马尔可夫链实现代码混淆的方法 |
CN105103127A (zh) * | 2013-02-28 | 2015-11-25 | 微软技术许可有限责任公司 | 基于编译器的混淆 |
EP3012763A1 (en) * | 2014-10-24 | 2016-04-27 | Thomson Licensing | Control flow graph flattening device and method |
CN106326693A (zh) * | 2016-08-18 | 2017-01-11 | 广州优视网络科技有限公司 | 应用程序的代码混淆方法及装置 |
-
2017
- 2017-11-28 CN CN201711214176.7A patent/CN108197440A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20130232468A1 (en) * | 2009-05-01 | 2013-09-05 | Apple Inc. | Systems, methods, and computer-readable media for fertilizing machine-executable code |
CN102708322A (zh) * | 2012-05-12 | 2012-10-03 | 北京深思洛克软件技术股份有限公司 | 安卓系统中java应用程序的保护方法 |
CN105103127A (zh) * | 2013-02-28 | 2015-11-25 | 微软技术许可有限责任公司 | 基于编译器的混淆 |
EP3012763A1 (en) * | 2014-10-24 | 2016-04-27 | Thomson Licensing | Control flow graph flattening device and method |
CN105005718A (zh) * | 2015-06-23 | 2015-10-28 | 电子科技大学 | 一种利用马尔可夫链实现代码混淆的方法 |
CN104992083A (zh) * | 2015-07-09 | 2015-10-21 | 广州视源电子科技股份有限公司 | 应用程序的代码混淆方法和系统 |
CN106326693A (zh) * | 2016-08-18 | 2017-01-11 | 广州优视网络科技有限公司 | 应用程序的代码混淆方法及装置 |
Non-Patent Citations (2)
Title |
---|
一个不太努力的代码搬运工: "iOS自动代码混淆", 《HTTPS://WWW.JIANSHU.COM/P/3FC444C1D40E》 * |
念茜: "iOS安全攻防(二十三):Objective-C代码混淆", 《HTTPS://BLOG.CSDN.NET/YIYAAIXUEXI/ARTICLE/DETAILS/29201699》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109086147A (zh) * | 2018-07-31 | 2018-12-25 | 深圳市元征科技股份有限公司 | 应用程序的服务接口调用方法、装置及存储介质 |
CN109086147B (zh) * | 2018-07-31 | 2022-02-22 | 深圳市元征科技股份有限公司 | 应用程序的服务接口调用方法、装置及存储介质 |
CN109344575A (zh) * | 2018-08-17 | 2019-02-15 | 北京奇虎科技有限公司 | Lua脚本文件处理方法、装置及计算设备 |
CN109344575B (zh) * | 2018-08-17 | 2022-08-26 | 北京奇虎科技有限公司 | Lua脚本文件处理方法、装置及计算设备 |
CN109409033A (zh) * | 2018-09-11 | 2019-03-01 | 平安科技(深圳)有限公司 | 代码加密方法、装置、计算机装置及存储介质 |
CN111428209A (zh) * | 2019-01-10 | 2020-07-17 | 腾讯科技(深圳)有限公司 | 一种应用程序的混淆方法、装置及存储介质 |
CN111428209B (zh) * | 2019-01-10 | 2023-09-19 | 腾讯科技(深圳)有限公司 | 一种应用程序的混淆方法、装置及存储介质 |
CN110389753A (zh) * | 2019-06-06 | 2019-10-29 | 五八有限公司 | 原生应用的链式调用方法、装置、电子设备及存储介质 |
CN110389753B (zh) * | 2019-06-06 | 2024-01-23 | 五八有限公司 | 原生应用的链式调用方法、装置、电子设备及存储介质 |
CN110765425A (zh) * | 2019-10-25 | 2020-02-07 | 杭州涂鸦信息技术有限公司 | 一种对ios应用程序源代码进行混淆保护的方法及系统 |
CN113065132A (zh) * | 2021-03-25 | 2021-07-02 | 深信服科技股份有限公司 | 一种宏程序的混淆检测方法、装置、电子设备和存储介质 |
CN113065132B (zh) * | 2021-03-25 | 2023-11-03 | 深信服科技股份有限公司 | 一种宏程序的混淆检测方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108197440A (zh) | 一种代码混淆方法、设备及计算机可读存储介质 | |
CN108345773B (zh) | 基于虚拟机的代码保护方法及装置、电子设备、存储介质 | |
CN111090433B (zh) | 一种数据处理的方法、装置和存储介质 | |
CN108595921B (zh) | 一种源代码中字符串的混淆方法和装置 | |
CN108932406A (zh) | 虚拟化软件保护方法和装置 | |
CN107844301A (zh) | 一种安卓应用渠道合包方法及装置 | |
CN108733988A (zh) | 安卓平台上可执行程序的保护方法 | |
CN106970820A (zh) | 代码存储方法及代码存储装置 | |
CN104298534B (zh) | 基于Lua语言的编程方法和装置 | |
CN105022936A (zh) | 一种类class文件加密解密方法和装置 | |
CN106529224A (zh) | 基于rop攻击特点的二进制混淆方法 | |
CN104751024A (zh) | 一种对核心源代码进行加密的方法及装置 | |
CN104794048A (zh) | 一种ui自动化测试方法和系统 | |
CN106547782A (zh) | 日志信息的获取方法及装置 | |
CN106326691B (zh) | 加解密功能的实现方法、装置及服务器 | |
CN106933642B (zh) | 应用程序的处理方法及处理装置 | |
CA3150187C (en) | Method and apparatus for protecting web script codes | |
CN108694049B (zh) | 一种更新软件的方法和设备 | |
CN105468661A (zh) | 一种查找elf文件中符号信息的方法及系统 | |
JP2017126185A (ja) | 符号化プログラム、符号化方法、符号化装置、復号化プログラム、復号化方法および復号化装置 | |
KR101863325B1 (ko) | 역공학 방지 방법 및 장치 | |
CN113031944B (zh) | 基于模板的业务开通装置及方法 | |
CN108460254A (zh) | 固件保护方法及装置 | |
JP2017509942A (ja) | 暗号アルゴリズムで使用されるときに秘密データを保護する方法 | |
CN106126225A (zh) | 一种基于程序演进模型的目标代码逆向工程方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20180622 |
|
RJ01 | Rejection of invention patent application after publication |