CN110795704A - 一种应用程序的源代码混淆方法、装置及存储介质 - Google Patents
一种应用程序的源代码混淆方法、装置及存储介质 Download PDFInfo
- Publication number
- CN110795704A CN110795704A CN201911035708.XA CN201911035708A CN110795704A CN 110795704 A CN110795704 A CN 110795704A CN 201911035708 A CN201911035708 A CN 201911035708A CN 110795704 A CN110795704 A CN 110795704A
- Authority
- CN
- China
- Prior art keywords
- source code
- application program
- source
- obfuscated
- names
- 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 32
- 230000006870 function Effects 0.000 description 12
- 238000004891 communication Methods 0.000 description 11
- 230000009471 action Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- BSYNRYMUTXBXSQ-UHFFFAOYSA-N Aspirin Chemical compound CC(=O)OC1=CC=CC=C1C(O)=O BSYNRYMUTXBXSQ-UHFFFAOYSA-N 0.000 description 1
- 238000005336 cracking Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000000523 sample Substances 0.000 description 1
Images
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
Abstract
本申请提供一种应用程序的源代码混淆方法、装置及存储介质。方法包括:获取待混淆源代码的应用程序;确定出所述应用程序中所有具有逻辑含义的源代码;将所述源代码混淆成无逻辑含义的字符串,获得源代码混淆后的应用程序。通过将应用程序中所有具有逻辑含义的源代码全部进行混淆,将其全部混淆成无逻辑含义的字符串。这样,黑客通过应用程序运行产生的数据反向分析应用程序的逻辑结构时,由于应用程序中所有具有逻辑含义的源代码全部变成了无逻辑含义的字符串,使得黑客无法获知应用程序的逻辑结构,从而进一步提高了源代码的逻辑识别难度。
Description
技术领域
本申请涉及计算机技术领域,具体而言,涉及一种应用程序的源代码混淆方法、装置及存储介质。
背景技术
为防止应用程序的源代码被黑客破解,需要对应用程序的源代码进行混淆。在进行应用程序的源代码混淆时,开发者通常对源代码中的变量名、函数名、类名进行混淆,将具有可读性以及逻辑含义的名称转为无可读性以及无逻辑含义的字母或字符,在一定程度上增加源代码的逻辑识别难度,以避免源代码被破解。
但这种方式也存在着漏洞,例如黑客利用更高的权限获取到应用程序运行产生的数据时,可以通过数据反向分析源代码的逻辑结构,从而完成对应用程序的破解。
发明内容
本申请实施例的目的在于提供一种应用程序的源代码混淆方法、装置及存储介质,用以进一步提高源代码的逻辑识别难度。
第一方面,本申请实施例提供了一种应用程序的源代码混淆方法,所述方法包括:
获取待混淆源代码的应用程序;
确定出所述应用程序中所有具有逻辑含义的源代码;
将所述源代码混淆成无逻辑含义的字符串,获得源代码混淆后的应用程序。
在本申请实施例中,通过将应用程序中所有具有逻辑含义的源代码全部进行混淆,将其全部混淆成无逻辑含义的字符串。这样,黑客通过应用程序运行产生的数据反向分析应用程序的逻辑结构时,由于应用程序中所有具有逻辑含义的源代码全部变成了无逻辑含义的字符串,使得黑客无法获知应用程序的逻辑结构,从而进一步提高了源代码的逻辑识别难度。
结合第一方面,在第一种可能的实现方式中,确定出所述应用程序中所有具有逻辑含义的源代码,包括:
从预设的各类型源代码清单中确定出所述应用程序对应的源代码清单,其中,所述对应的源代码清单中包含有所述所有具有逻辑含义的源代码;
从所述应用程序中确定出所述对应的源代码清单中包含的源代码。
在本申请实施例中,通过预设包含各类型源代码的清单,这样通过遍历对应的清单,可以快速地确定出所有需要进行混淆的源代码。
结合第一方面,在第二种可能的实现方式中,确定出所述应用程序中所有具有逻辑含义的源代码,包括:
确定出所述应用程序中所有的变量名、函数名、类名、包名和常量字符串,其中,所述所有的变量名、函数名、类名、包名和常量字符串为所述源代码。
在本申请实施例中,变量名、函数名、类名、包名和常量字符串基本涵盖了源代码中所有具有逻辑含义的名称或数据,故通过将变量名、函数名、类名、包名和常量字符串混淆可以实现全方位将源代码无逻辑含义化。
结合第一方面,在第三种可能的实现方式中,将所述源代码混淆成无逻辑含义的字符串,包括:
将所述源代码进行至少一次加密,获得加密后的源代码,其中,所述加密后的源代码为所述无逻辑含义的字符串。
在本申请实施例中,通过加密可以在实现混淆的基础上进一步提高源代码的安全性。
结合第一方面,在第四种可能的实现方式中,将所述源代码混淆成无逻辑含义的字符串,包括:
根据所述源代码与所述字符串的预设关联关系,将所述源代码替换成所述字符串。
在本申请实施例中,通过替换可以快速地实现混淆。
第二方面,本申请实施例提供了一种应用程序的源代码混淆装置,所述装置包括:
程序获取模块,用于获取待混淆源代码的应用程序;
源代码混淆模块,用于确定出所述应用程序中所有具有逻辑含义的源代码;将所述源代码混淆成无逻辑含义的字符串,获得源代码混淆后的应用程序。
结合第二方面,在第一种可能的实现方式中,
所述源代码混淆模块,用于从预设的各类型源代码清单中确定出所述应用程序对应的源代码清单,其中,所述对应的源代码清单中包含有所述所有具有逻辑含义的源代码;从所述应用程序中确定出所述对应的源代码清单中包含的源代码。
结合第二方面,在第二种可能的实现方式中,
所述源代码混淆模块,用于确定出所述应用程序中所有的变量名、函数名、类名、包名和常量字符串,其中,所述所有的变量名、函数名、类名、包名和常量字符串为所述源代码。
结合第二方面,在第三种可能的实现方式中,
所述源代码混淆模块,用于将所述源代码进行至少一次加密,获得加密后的源代码,其中,所述加密后的源代码为所述无逻辑含义的字符串。
结合第二方面,在第四种可能的实现方式中,
所述源代码混淆模块,用于根据所述源代码与所述字符串的预设关联关系,将所述源代码替换成所述字符串。
第三方面,本申请实施例提供了一种具有计算机可执行的非易失程序源代码的计算机可读储存介质,所述程序源代码使所述计算机执行如第一方面或第一方面的任一种可能的实现方式所述的应用程序的源代码混淆方法。
第四方面,本申请实施例提供了一种电子设备,包括:通信接口、存储器、与所述通信接口和所述存储器连接的处理器;
所述通信接口,用于获取设定区域内的WiFi探针探测到的终端的设备信息;
所述存储器,用于存储程序;
所述处理器,用于调用并运行所述程序,以根据所述设备信息执行如第一方面或第一方面的任一种可能的实现方式所述的应用程序的源代码混淆方法。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的一种应用程序的源代码混淆方法的流程图;
图2为本申请实施例提供的一种电子设备的结构框图;
图3为本申请实施例提供的一种应用程序的源代码混淆装置的结构框图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述。
请参阅图1,本申请实施例提供了一种应用程序的源代码混淆方法,该应用程序的源代码混淆方法可以由电子设备执行,可选的,电子设备可以是终端或者服务器,其中,终端可以是个人电脑(personal computer,PC)、平板电脑、智能手机、个人数字助理(personal digital assistant,PDA)等;服务器可以为数据库服务器、网络服务器、云服务器等。
具体的,应用程序的源代码混淆方法的流程可以包括:步骤S100、步骤S200和步骤S300。
步骤S100:获取待混淆源代码的应用程序。
步骤S200:确定出该待混淆源代码的应用程序中所有具有逻辑含义的源代码。
步骤S300:将所有具有逻辑含义的源代码混淆成无逻辑含义的字符串,获得源代码混淆后的应用程序。
下面将结合示例对步骤S100到步骤S300的方法流程进行详细说明。
步骤S100:获取待混淆源代码的应用程序。
待混淆源代码的应用程序可以分为几种情况。
第一种情况:
待混淆源代码的应用程序为正在开发且还未开发完成的应用程序,换言之,可以采用边开发边混淆的方式进行应用程序的开发。
具体的,开发人员在编写完成应用程序中的例如一段或多段用于执行一个或多个完整功能的源代码后,便可以对该刚刚编写的源代码进行混淆。
进一步的,若执行源代码混淆的电子设备与开发人员编写源代码的设备不是同一台设备,那么开发人员可以将该还在开发且待混淆源代码的应用程序发送给电子设备。对应的,电子设备则获取到该还在开发且待混淆源代码的应用程序,并将该还在开发且待混淆源代码的应用程序加载到源代码混淆环境。
若执行源代码混淆的电子设备与开发人员编写源代码的设备是同一台设备,由于该还在开发且待混淆源代码的应用程序本身就在电子设备上,故“获取该还在开发且待混淆源代码的应用程序”这一动作可以理解为电子设备将该还在开发且待混淆源代码的应用程序从开发环境加载到源代码混淆环境。
第二种情况:
待混淆源代码的应用程序为已经开发完成但源代码均进行混淆的应用程序,换言之,可以采用先将应用程序开发完成后再对所有源代码进行混淆。
具体的,在开发人员在编写完成整个应用程序的所有源代码后,便可以对编写完成的所有源代码进行混淆。
进一步的,若执行源代码混淆的电子设备与开发人员编写源代码的设备不是同一台设备,那么开发人员也将该开发完成且待混淆源代码的应用程序发送给电子设备。对应的,电子设备也获取到该开发完成且待混淆源代码的应用程序,并将该开发完成且待混淆源代码的应用程序加载到源代码混淆环境。
若执行源代码混淆的电子设备与开发人员编写源代码的设备是同一台设备,故电子设备则将该开发完成且待混淆源代码的应用程序从开发环境加载到源代码混淆环境。
加载到源代码混淆环境后,电子设备可以继续执行步骤S200。
步骤S200:确定出该待混淆源代码的应用程序中所有具有逻辑含义的源代码。
本实施例中,为避免应用程序的源代码被破解,需要对应用程序中所有具有逻辑含义的源代码进行混淆,将其变成逻辑含义的字符串,其中,所有具有逻辑含义的源代码可以包括:应用程序中所有的变量名、函数名、类名、包名和常量字符串。而由于应用程序的类型不同,应用程序所实现的功能也不同,故不同类型的应用程序中具有逻辑含义的源代码也大相径庭。因此,为准确且快速地确定出该待混淆源代码的应用程序中有哪些具有逻辑含义的源代码,电子设备中可以按照应用程序的类型,预先设置与各类型应用程序一一对应的各类型源代码清单,并建立两者之间的一一对应关系。其中,每类型源代码清单中包含对应的一类应用程序中所有具有逻辑含义的源代码。
这样,在获取到待混淆源代码的应用程序后,电子设备可以根据预先建立的一一对应关系,便可以从各类型源代码清单中确定出该待混淆源代码的应用程序对应的源代码清单。
进一步的,电子设备根据对应的源代码清单,便可以确定出待混淆源代码的应用程序中所有具有逻辑含义的源代码。
可以理解到,前述中,根据编写情况不同,获取的该待混淆源代码的应用程序也有所用不同,对应的,那么确定所有具有逻辑含义的源代码的方式也会有所不同。
具体的,若在前述的第一种情况下获取还在开发且待混淆源代码的应用程序,由于该还在开发且待混淆源代码的应用程序中分别包含:之前已经混淆过的源代码,以及本次新编写出的待混淆源代码,故电子设备可以先确定出该还在开发且待混淆源代码的应用程序中本次新编写出的待混淆源代码。
作为确定本次新编写出的待混淆源代码的第一种可选方式,新编写出的待混淆源代码的段首部分设置有标识字符,电子设备可以按源代码执行的先后顺序扫描还在开发且待混淆源代码的应用程序的所有源代码,当扫描到标识字符时,电子设备便可以确定从标识字符开始到源代码结束之间的部分为本次新编写出的待混淆源代码。
作为确定本次新编写出的待混淆源代码的第二种可选方式,电子设备可以将本次获取的还在开发且待混淆源代码的应用程序与上次获取的还在开发且待混淆源代码的应用程序比较,从而确定两者之间具有差异的源代码,该部分源代码则为本次新编写出的待混淆源代码。
确定出本次新编写出的待混淆源代码后,电子设备便可以利用对应的源代码清单分析本次新编写出的待混淆源代码,从本次新编写出的待混淆源代码中确定出所有具有逻辑含义的源代码。
若在前述的第二种情况下获取开发完成且待混淆源代码的应用程序,由于该开发完成且待混淆源代码的应用程序中的所有源代码均没有经过混淆,故电子设备需要对该开发完成且待混淆源代码的应用程序中的所有源代码进行混淆。
具体的,若开发完成且待混淆源代码的应用程序中的源代码经过了编译,则电子设备需要先反编译该开发完成且待混淆源代码的应用程序,获得汇编的所有源代码。然后,电子设备再利用对应的源代码清单,分析该汇编的所有源代码,从所有源代码中确定出所有具有逻辑含义的源代码。
若开发完成且待混淆源代码的应用程序为中的源代码均为汇编代码,则电子设备可以直接利用对应的源代码清单,分析该开发完成且待混淆源代码的应用程序为中的源代码,从所有源代码中确定出所有具有逻辑含义的源代码。
进一步的,确定出所有具有逻辑含义的源代码,电子设备可以进一步执行步骤S300。
步骤S300:将所有具有逻辑含义的源代码混淆成无逻辑含义的字符串,获得源代码混淆后的应用程序。
作为将所有具有逻辑含义的源代码混淆的一种可选方式,电子设备可以采用数据加密的方式对所有具有逻辑含义的源代码进行混淆。
具体的,电子设备可以采用加密算法例如采用对称加密算法、非对称加密算法等,对所有具有逻辑含义的源代码进行至少一次加密,从而获得加密后的源代码,且该加密后的源代码均为无逻辑含义的字符串。可以理解到,加密次数可以根据实际需求进行选择,例如,若需要强调安全性,可以进行多次加密;又例如,若需要强调时效性,进行一次加密即可。
作为将所有具有逻辑含义的源代码混淆的另一种可选方式,电子设备可以采用替换的方式对所有具有逻辑含义的源代码进行混淆。
具体的,电子设备预设了每种具备的逻辑含义的源代码与一种无逻辑含义的字符串的关联关系。这样,电子设备根据关联关系,将所有具有逻辑含义的源代码中每种具有逻辑含义的源代码均替换成对应的一个无逻辑含义的字符串,从而也实现了对源代码的混淆。
下面通过一个示例进行说明。
源代码也为:var database_name=‘msg.db’,msg.db也为其中的常量字符串。电子设备通过预先建立msg.db这一常量字符串与(char)0x6D+(char)0x73+(char)0x67+"."+(char)0x64+(char)0x62这一无逻辑含义的阿斯克码的关联关系,从而将源代码替换成vardatabase_name=(char)0x6D+(char)0x73+(char)0x67+"."+(char)0x64+(char)0x62。
通过对所有具有逻辑含义的源代码均进行混淆,电子设备便可以获得源代码混淆后的应用程序。
可以理解到,在源代码混淆后的应用程序被设备运行时,由于同一种具有逻辑含义的源代码均被混淆成同一无逻辑含义的字符串,且任意两种的具有逻辑含义的源代码对应的两种无逻辑含义的字符串并不相同,其使得设备在运行代码混淆后的应用程序中的混淆源代码时,也能够正确的调用指令集,从而实现应用程序的正常运行。该部分内容为本领域技术人员所熟知的内容,所以在此不再赘述。
请参阅图2,基于同一发明构思,本申请实施例中还提供一种电子设备10,该电子设备10可以包括连接到网络的通信接口11、用于执行程序指令的一个或多个处理器12、总线13、和不同形式的存储器14,例如,磁盘、ROM、或RAM,或其任意组合。示例性地,计算机平台还可以包括存储在ROM、RAM、或其他类型的非暂时性存储介质、或其任意组合中的程序指令。
其中,在通信接口11为硬件接口的时,电子设备10用于通过通信接口11获取其它设备发送的待混淆源代码的应用程序,并将待混淆源代码的应用程序加载到代码混淆环境中。而在通信接口11为软件接口的时,电子设备10用于通过通信接口11将待混淆源代码的应用程序从编写环境加载到代码混淆环境中。
存储器14,用于存储程序;
处理器12,用于调用并运行该存储程序,以对代码混淆环境中待混淆源代码的应用程序执行前述的应用程序的源代码混淆方法。
请参阅图3,基于同一发明构思,本申请实施例提供了一种应用程序的源代码混淆装置100,该应用程序的源代码混淆装置100应用于电子设备,该应用程序的源代码混淆装置100包括:
程序获取模块110,用于获取待混淆源代码的应用程序;
源代码混淆模块120,用于确定出所述应用程序中所有具有逻辑含义的源代码;将所述源代码混淆成无逻辑含义的字符串,获得源代码混淆后的应用程序。
可选的,所述源代码混淆模块120,用于从预设的各类型源代码清单中确定出所述应用程序对应的源代码清单,其中,所述对应的源代码清单中包含有所述所有具有逻辑含义的源代码;从所述应用程序中确定出所述对应的源代码清单中包含的源代码。
可选的,所述源代码混淆模块120,用于确定出所述应用程序中所有的变量名、函数名、类名、包名和常量字符串,其中,所述所有的变量名、函数名、类名、包名和常量字符串为所述源代码。
可选的,所述源代码混淆模块120,用于将所述源代码进行至少一次加密,获得加密后的源代码,其中,所述加密后的源代码为所述无逻辑含义的字符串。
可选的,所述源代码混淆模块120,用于根据所述源代码与所述字符串的预设关联关系,将所述源代码替换成所述字符串。
需要说明的是,由于所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请一些实施例还提供了一种计算机可执行的非易失的程序代码的计算机可读储存介质,该存储介质能够为通用的存储介质,如移动磁盘、硬盘等,该计算机可读存储介质上存储有程序代码,该程序代码被计算机运行时执行上述任一实施方式的应用程序的源代码混淆方法的步骤。
本申请实施例所提供的应用程序的源代码混淆方法的程序代码产品,包括存储了程序代码的计算机可读存储介质,程序代码包括的指令可用于执行前面方法实施例中的方法,具体实现可参见方法实施例,在此不再赘述。
综上所述,通过将应用程序中所有具有逻辑含义的源代码全部进行混淆,将其全部混淆成无逻辑含义的字符串。这样,黑客通过应用程序运行产生的数据反向分析应用程序的逻辑结构时,由于应用程序中所有具有逻辑含义的源代码全部变成了无逻辑含义的字符串,使得黑客无法获知应用程序的逻辑结构,从而进一步提高了源代码的逻辑识别难度。
在本申请所提供的实施例中,应该理解到,所揭露装置和方法,可以通过其它的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,又例如,多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些通信接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
另外,作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
再者,在本申请各个实施例中的各功能模块可以集成在一起形成一个独立的部分,也可以是各个模块单独存在,也可以两个或两个以上模块集成形成一个独立的部分。
在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。
以上所述仅为本申请的实施例而已,并不用于限制本申请的保护范围,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (11)
1.一种应用程序的源代码混淆方法,其特征在于,所述方法包括:
获取待混淆源代码的应用程序;
确定出所述应用程序中所有具有逻辑含义的源代码;
将所述源代码混淆成无逻辑含义的字符串,获得源代码混淆后的应用程序。
2.根据权利要求1所述的应用程序的源代码混淆方法,其特征在于,确定出所述应用程序中所有具有逻辑含义的源代码,包括:
从预设的各类型源代码清单中确定出所述应用程序对应的源代码清单,其中,所述对应的源代码清单中包含有所述所有具有逻辑含义的源代码;
从所述应用程序中确定出所述对应的源代码清单中包含的源代码。
3.根据权利要求1所述的应用程序的源代码混淆方法,其特征在于,确定出所述应用程序中所有具有逻辑含义的源代码,包括:
确定出所述应用程序中所有的变量名、函数名、类名、包名和常量字符串,其中,所述所有的变量名、函数名、类名、包名和常量字符串为所述源代码。
4.根据权利要求1所述的应用程序的源代码混淆方法,其特征在于,将所述源代码混淆成无逻辑含义的字符串,包括:
将所述源代码进行至少一次加密,获得加密后的源代码,其中,所述加密后的源代码为所述无逻辑含义的字符串。
5.根据权利要求1所述的应用程序的源代码混淆方法,其特征在于,将所述源代码混淆成无逻辑含义的字符串,包括:
根据所述源代码与所述字符串的预设关联关系,将所述源代码替换成所述字符串。
6.一种应用程序的源代码混淆装置,其特征在于,所述装置包括:
程序获取模块,用于获取待混淆源代码的应用程序;
源代码混淆模块,用于确定出所述应用程序中所有具有逻辑含义的源代码;将所述源代码混淆成无逻辑含义的字符串,获得源代码混淆后的应用程序。
7.根据权利要求6所述的应用程序的源代码混淆装置,其特征在于,
所述源代码混淆模块,用于从预设的各类型源代码清单中确定出所述应用程序对应的源代码清单,其中,所述对应的源代码清单中包含有所述所有具有逻辑含义的源代码;从所述应用程序中确定出所述对应的源代码清单中包含的源代码。
8.根据权利要求6所述的应用程序的源代码混淆装置,其特征在于,
所述源代码混淆模块,用于确定出所述应用程序中所有的变量名、函数名、类名、包名和常量字符串,其中,所述所有的变量名、函数名、类名、包名和常量字符串为所述源代码。
9.根据权利要求6所述的应用程序的源代码混淆装置,其特征在于,
所述源代码混淆模块,用于将所述源代码进行至少一次加密,获得加密后的源代码,其中,所述加密后的源代码为所述无逻辑含义的字符串。
10.根据权利要求6所述的应用程序的源代码混淆装置,其特征在于,
所述源代码混淆模块,用于根据所述源代码与所述字符串的预设关联关系,将所述源代码替换成所述字符串。
11.一种具有计算机可执行的非易失程序源代码的计算机可读储存介质,其特征在于,所述程序源代码使所述计算机执行如权利要求1-5任一权项式所述的应用程序的源代码混淆方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911035708.XA CN110795704A (zh) | 2019-10-28 | 2019-10-28 | 一种应用程序的源代码混淆方法、装置及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911035708.XA CN110795704A (zh) | 2019-10-28 | 2019-10-28 | 一种应用程序的源代码混淆方法、装置及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110795704A true CN110795704A (zh) | 2020-02-14 |
Family
ID=69441735
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911035708.XA Pending CN110795704A (zh) | 2019-10-28 | 2019-10-28 | 一种应用程序的源代码混淆方法、装置及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110795704A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117313047A (zh) * | 2023-11-28 | 2023-12-29 | 深圳润世华软件和信息技术服务有限公司 | 源代码混淆方法、混淆逆转方法、相应装置及存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150493A (zh) * | 2013-02-28 | 2013-06-12 | 浙江中控技术股份有限公司 | 一种JavaScript代码的混淆方法和装置 |
CN108153518A (zh) * | 2017-12-25 | 2018-06-12 | 厦门市美亚柏科信息股份有限公司 | 一种java程序反混淆方法及终端 |
CN108629162A (zh) * | 2017-03-23 | 2018-10-09 | 北京小唱科技有限公司 | 一种源代码防护方法及装置 |
CN109614771A (zh) * | 2018-10-31 | 2019-04-12 | 同盾控股有限公司 | 一种基于Java代码的混淆方法和装置 |
CN109784009A (zh) * | 2018-12-15 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 代码混淆方法、系统、计算机装置及计算机可读存储介质 |
-
2019
- 2019-10-28 CN CN201911035708.XA patent/CN110795704A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103150493A (zh) * | 2013-02-28 | 2013-06-12 | 浙江中控技术股份有限公司 | 一种JavaScript代码的混淆方法和装置 |
CN108629162A (zh) * | 2017-03-23 | 2018-10-09 | 北京小唱科技有限公司 | 一种源代码防护方法及装置 |
CN108153518A (zh) * | 2017-12-25 | 2018-06-12 | 厦门市美亚柏科信息股份有限公司 | 一种java程序反混淆方法及终端 |
CN109614771A (zh) * | 2018-10-31 | 2019-04-12 | 同盾控股有限公司 | 一种基于Java代码的混淆方法和装置 |
CN109784009A (zh) * | 2018-12-15 | 2019-05-21 | 深圳壹账通智能科技有限公司 | 代码混淆方法、系统、计算机装置及计算机可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117313047A (zh) * | 2023-11-28 | 2023-12-29 | 深圳润世华软件和信息技术服务有限公司 | 源代码混淆方法、混淆逆转方法、相应装置及存储介质 |
CN117313047B (zh) * | 2023-11-28 | 2024-03-15 | 深圳润世华软件和信息技术服务有限公司 | 源代码混淆方法、混淆逆转方法、相应装置及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9141801B2 (en) | Apparatus and method for analyzing permission of application for mobile devices and detecting risk | |
CN107908392B (zh) | 数据采集工具包定制方法、装置、终端和存储介质 | |
CN102760219B (zh) | 一种Android平台软件保护系统、方法及设备 | |
US9501646B2 (en) | Program verification apparatus, program verification method, and computer readable medium | |
CN105683990B (zh) | 用于保护动态库的方法和装置 | |
CN104680039A (zh) | 一种应用程序安装包的数据保护方法及装置 | |
CN109213501B (zh) | 在区块链网络中安装智能合约的方法、装置及存储介质 | |
CN109740315A (zh) | 基于安卓平台的常量保护方法、装置、设备及存储介质 | |
CN109358859B (zh) | 在区块链网络中安装智能合约的方法、装置及存储介质 | |
CN112231702A (zh) | 应用保护方法、装置、设备及介质 | |
KR20140004819A (ko) | 안드로이드 난독화 기법을 이용한 어플리케이션 위변조 탐지 방법 | |
CN112733180A (zh) | 数据查询方法、装置和电子设备 | |
CN110807205B (zh) | 一种文件安全防护方法及装置 | |
CN112287376A (zh) | 一种隐私数据的处理方法及装置 | |
Wahsheh et al. | Evaluating Security, Privacy and Usability Features of QR Code Readers. | |
Pasquier et al. | FlowR: aspect oriented programming for information flow control in ruby | |
CN109299944B (zh) | 一种交易过程中的数据加密方法、系统及终端 | |
CN110795704A (zh) | 一种应用程序的源代码混淆方法、装置及存储介质 | |
CN108170433A (zh) | 一种Java代码的混淆方法、恢复方法及其装置 | |
Tedeschi et al. | Information security and threats in mobile appliances | |
CN109635558B (zh) | 访问控制方法、装置和系统 | |
CN116910712A (zh) | 代码保护方法、系统、电子设备及存储介质 | |
CN109995534B (zh) | 一种对应用程序进行安全认证的方法和装置 | |
JP6018344B2 (ja) | 動的読み込みコード解析装置、動的読み込みコード解析方法及び動的読み込みコード解析プログラム | |
KR102368208B1 (ko) | 보안 기능을 지원하는 파일 시스템 및 공통적 파일 액세스 인터페이스에 기초한 파일 유출 방지 |
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: 20200214 |
|
RJ01 | Rejection of invention patent application after publication |