CN111914225B - 一种源代码保护系统及源代码加密方法 - Google Patents
一种源代码保护系统及源代码加密方法 Download PDFInfo
- Publication number
- CN111914225B CN111914225B CN202010678162.6A CN202010678162A CN111914225B CN 111914225 B CN111914225 B CN 111914225B CN 202010678162 A CN202010678162 A CN 202010678162A CN 111914225 B CN111914225 B CN 111914225B
- Authority
- CN
- China
- Prior art keywords
- code
- codes
- encryption
- module
- source code
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 14
- 238000000605 extraction Methods 0.000 claims description 8
- 230000004048 modification Effects 0.000 claims description 3
- 238000012986 modification Methods 0.000 claims description 3
- 238000004590 computer program Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 4
- 230000005540 biological transmission Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000002372 labelling Methods 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000001105 regulatory 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种源代码保护系统,包括:加密模块,用于对接收的源代码进行加密;主控模块,用于分析源代码的泄露风险并对加密代码进行区分编号,得到编号加密代码;数据备份模块,用于接收并存储来源于主控模块的编号加密代码;调用模块,用于接收来源于主控模块或数据备份模块的编号加密代码,并根据调用需求修改编号加密代码;处理模块,用于接收主控系统的编号加密代码,并将其转换为可编写的加密代码;解码模块,用于将可编写的加密代码进行解密,得到明文数据。本发明还公开了一种源代码加密方法。本申请的系统和方法通过层层加密与混淆,降低了源代码泄露风险,提高源代码的安全。
Description
技术领域
本发明涉及代码保护,具体涉及一种源代码保护系统及源代码加密方法。
背景技术
源代码作为软件的特殊部分,可能被包含在一个或多个文件中。一个程序不必用同一种格式的源代码书写,例如,一个程序如果有C语言库的支持,那么就可以用C语言;而另一部分为了达到比较高的运行效率,则可以用汇编语言编写,较为复杂的软件,一般需要数十种甚至上百种的源代码的参与。为了降低种复杂度,必须引入一种可以描述各个源代码之间联系,并且如何正确编译的系统,如果按照源代码类型区分软件,通常被分为两类:自由软件和非自由软件,自由软件一般是不仅可以免费得到,而且公开源代码;相对应地,非自由软件则是不公开源代码。所有一切通过非正常手段获得非自由软件源代码的行为都将被视为非法,但是现有的保护措施一般都是打乱代码执行流程,导致代码难以理解,难以破解,但随着反打乱技术的发展,单纯的打乱难以达到保护源代码的目的。
发明内容
发明目的:本申请的目的在于提供一种源代码保护系统,解决现有保护措施不到位的问题。
技术方案:本发明提供了一种源代码保护系统,包括:
加密模块,用于对接收的源代码进行加密,得到加密代码;
主控模块,用于分析源代码的泄露风险并对加密代码进行区分编号,得到编号加密代码;
数据备份模块,用于接收并存储来源于主控模块的编号加密代码;
调用模块,用于接收来源于主控模块或数据备份模块的编号加密代码,并根据调用需求修改编号加密代码;
处理模块,用于接收主控系统的编号加密代码,并将其转换为可编写的加密代码;
解码模块,用于将可编写的加密代码进行解密,得到明文数据。
作为对本申请的进一步限制,加密模块包括依次连接的获取单元、代码混淆单元、代码编译单元和替换单元;
获取单元用于将接收的源代码进行特征提取;
代码混淆单元用于对特征提取后的代码通过随机字符串进行代码混淆;
代码编译模块用于根据不同需求对混淆后的代码进行不同代码语言的编译;
替换单元用于通过随机字符串对编译后的代码进行替换得到加密后的源代码。
作为对本申请的进一步限制,主控模块包括编号单元,编号单元根据接收顺序对编号加密代码进行编号。
作为对本申请的进一步限制,数据备份模块包括反编译单元和二次加密单元;
反编译单元用于接收并将来源于主控模块的编号加密代码进行反编译;
二次加密单元用于将反编译后的代码进行再次加密后进行存储。
作为对本申请的进一步限制,解码模块通过编程和密钥对加密代码进行解密。
作为对本申请的进一步限制,调用模块对编号加密代码的修改包括删除目录或文件、删除目录或文件、修改文件信息或内容中的一者或多者。
作为对本申请的进一步限制,系统还包括警报模块,警报模块根据主控模块对源代码泄露风险的判定结果进行报警。
作为对本申请的进一步限制,主控模块通过分析用户的访问操作判断源代码泄露风险级别,并根据泄露风险级别向警报模块发送报警指令。
作为对本申请的进一步限制,源代码可通过有限或无线的方式传输至加密模块中,加密模块通过有线或无线方式将加密代码传输至主控模块。
本申请还提供了一种源代码加密方法,包括:
对接收的源代码进行特征提取;
对特征提取后的代码通过随机字符串进行代码混淆;
根据不同需求对混淆后的代码进行不同代码语言的编译;
通过随机字符串对编译后的代码进行替换得到加密后的源代码。
有益效果:与现有技术相比,本申请的源代码保护系统将需要保护的源代码,通过无线区域网传输至源代码保护系统中,经过获取模块、代码混淆模块、代码编译模块,通过层层加密与混淆,形成加密密文,提高源代码的安全,降低了源代码被盗取的可能性。另外,调模块通过编程再次对密文进行改进增加或者删除,标号模块通过无线区域网接收系统调用模块传输的密文,对不同密文进行不同的编号,从而方便工作人员寻找,以此提高工作效率;主控模块通过无线区域网将密文传输至处理系统中,处理系统通过编程处理使得java运行时进行可以进行编写,从而方便工作人员进行修改密文,节省工作人员时间;解码模块通过接收处理系统的信号,通过编程与密钥对处理系统传输的密文进行解密,从而保证源代码的安全,且方便工作人员提取使用。
附图说明
图1为本申请的源代码保护系统的系统框图;
图2为本申请的源代码加密方法的流程示意图。
具体实施方式
下面结合附图和实施例对本发明做进一步描述:
本发明提供了一种源代码保护系统,如图1所示,包括:加密模块1、主控模块2、数据备份模块3、调用模块6、处理模块4、解码模块5及警报模块7。
其中:
加密模块1用于对接收的源代码进行加密,得到加密代码。具体地,加密模块1包括依次连接的获取单元11、代码混淆单元12、代码编译单元13和替换单元14。源代码通过无线或有线的方式输入至加密模块1,获取单元11用于将接收的源代码进行特征提取;代码混淆单元12用于对特征提取后的代码通过随机字符串进行代码混淆,生成对应的安全代码;代码编译模块13用于根据不同需求对混淆后的代码进行不同代码语言的编译;替换单元14用于通过随机字符串对编译后的代码进行替换得到加密后的源代码。经过上述单元的层层加密与混淆,得到源代码对应的加密后的源代码,提高源代码传输的安全性。
主控模块2用于分析源代码的泄露风险并对加密代码进行区分编号,得到编号加密代码。具体地,主控模块2包括编号单元21,编号单元根据源代码的接收顺序对编号加密代码进行编号以便识别区分源代码。主控模块还可以通过分析用户的访问操作判断源代码泄露风险,可根据风险程度设定由低到高的风险级别。例如同一用户在固定的时间段内频繁越权访问源代码,或者在固定时间段内错误登录次数超出预先设定的次数,则可判定为为高风险。
数据备份模块3用于接收并存储来源于主控模块的编号加密代码。主控模块的编号加密代码可通过有线或无线方式传输至数据备份模块3。具体地,数据备份模块包括二次加密单元31和反编译单元32。二次加密单元31用于将反编译后的代码通过编程进行再次加密,防止非法访问者提取;反编译单元32用于接收并将来源于主控模块的编号加密代码进行反编译,后进行存储。通过上述双重保护,提高源代码访问的安全性。
处理模块4用于接收主控系统的编号加密代码,并将其转换为可编写的加密代码。具体地,处理系统4用于通过java运行进行编写,供用户需要进行编写时,方便用户进行编写修改加密代码。
解码模块5用于将可编写的加密代码进行解密,得到明文数据。具体地,解码模块5可通过有线或无线方式接受来源于处理模块4的数据,通过编程和密钥对加密代码进行解密,在保证源代码安全的前提下,方便用户提取使用。
调用模块6,用于接收来源于主控模块或数据备份模块的编号加密代码,并根据调用需求修改编号加密代码。具体地,调用模块对编号加密代码的修改包括删除目录或文件、删除目录或文件、修改文件信息或内容中的一者或多者。
在本实施例中,警报模块7根据主控模块2对源代码泄露风险的判定结果进行报警。若源代码泄露风险级别为高,则主控模块2向所述警报模块7发送报警指令,控制警报模块7进行报警以便对用户进行高风险提示。
可选地,警报模块7可采用声音报警、光电报警灯、向终端发送信息等方式中的一种或多种来实现对用户的警示。
本申请还提供了一种源代码加密方法,如图2所示,包括:
S201对接收的源代码进行特征提取;
S202对特征提取后的代码通过随机字符串进行代码混淆;
S203根据不同需求对混淆后的代码进行不同代码语言的编译;
S204通过随机字符串对编译后的代码进行替换得到加密后的源代码。
经过上述方法的层层加密与混淆,得到源代码对应的加密后的源代码,提高源代码传输的安全性。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
Claims (1)
1.一种源代码保护系统,其特征在于,包括:
加密模块,用于对接收的源代码进行加密,得到加密代码;加密模块包括依次连接的获取单元、代码混淆单元、代码编译单元和替换单元;源代码通过无线或有线的方式输入至加密模块,获取单元用于将接收的源代码进行特征提取;代码混淆单元用于对特征提取后的代码通过随机字符串进行代码混淆,生成对应的安全代码;代码编译模块用于根据不同需求对混淆后的代码进行不同代码语言的编译;替换单元用于通过随机字符串对编译后的代码进行替换得到加密后的源代码;经过上述单元的层层加密与混淆,得到源代码对应的加密后的源代码;
主控模块,用于分析源代码的泄露风险并对所述加密代码进行区分编号,得到编号加密代码;主控模块包括编号单元;编号单元根据源代码的接收顺序对编号加密代码进行编号以便识别区分源代码;主控模块还可以通过分析用户的访问操作判断源代码泄露风险,可根据风险程度设定由低到高的风险级别;
数据备份模块,用于接收并存储来源于主控模块的编号加密代码;主控模块的编号加密代码可通过有线或无线方式传输至数据备份模块;数据备份模块包括二次加密单元和反编译单元;二次加密单元用于将反编译后的代码通过编程进行再次加密,防止非法访问者提取;反编译单元用于接收并将来源于主控模块的编号加密代码进行反编译,然后进行存储;
调用模块,用于接收来源于主控模块或数据备份模块的编号加密代码,并根据调用需求修改所述编号加密代码;对编号加密代码的修改包括删除目录或文件、修改文件信息或内容中的一者或多者;
处理模块,用于接收主控系统的编号加密代码,并将其转换为可编写的加密代码;通过java运行进行编写,供用户需要进行编写时,方便用户进行编写修改加密代码;
解码模块,用于将所述可编写的加密代码进行解密,得到明文数据;可通过有线或无线方式接受来源于处理模块的数据,通过编程和密钥对加密代码进行解密;
警报模块根据主控模块对源代码泄露风险的判定结果进行报警;若源代码泄露风险级别为高,则主控模块向所述警报模块发送报警指令,控制警报模块进行报警以便对用户进行高风险提示;
所述源代码保护系统的加密方法,包括以下步骤:
对接收的源代码进行特征提取;
对特征提取后的代码通过随机字符串进行代码混淆;
根据不同需求对混淆后的代码进行不同代码语言的编译;
通过随机字符串对编译后的代码进行替换得到加密后的源代码。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010678162.6A CN111914225B (zh) | 2020-07-15 | 2020-07-15 | 一种源代码保护系统及源代码加密方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010678162.6A CN111914225B (zh) | 2020-07-15 | 2020-07-15 | 一种源代码保护系统及源代码加密方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111914225A CN111914225A (zh) | 2020-11-10 |
CN111914225B true CN111914225B (zh) | 2024-03-19 |
Family
ID=73280938
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010678162.6A Active CN111914225B (zh) | 2020-07-15 | 2020-07-15 | 一种源代码保护系统及源代码加密方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111914225B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114039743A (zh) * | 2021-09-27 | 2022-02-11 | 成都鲁易科技有限公司 | 数据的加密方法、装置、存储介质以及终端 |
CN114357488B (zh) * | 2022-01-04 | 2022-09-16 | 深圳市智百威科技发展有限公司 | 一种数据加密系统及方法 |
CN114584300B (zh) * | 2022-03-02 | 2024-02-02 | 中国科学院国家授时中心 | 一种用于双向授时的加解密方法及系统 |
CN117094022B (zh) * | 2023-10-20 | 2024-01-09 | 山东友恺通信科技有限公司 | 一种基于计算机软件开发的加密系统 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462959A (zh) * | 2014-12-04 | 2015-03-25 | 北京奇虎科技有限公司 | 一种安卓应用的加固保护方法、服务器和系统 |
CN106326693A (zh) * | 2016-08-18 | 2017-01-11 | 广州优视网络科技有限公司 | 应用程序的代码混淆方法及装置 |
CN106709286A (zh) * | 2016-11-30 | 2017-05-24 | 江苏神州信源系统工程有限公司 | 一种对apk资源包进行安全加固的方法 |
CN109740311A (zh) * | 2019-01-07 | 2019-05-10 | 广州小鹏汽车科技有限公司 | 安卓应用的安全加固方法及装置 |
CN110069905A (zh) * | 2019-04-26 | 2019-07-30 | 深圳智慧园区信息技术有限公司 | 一种Springboot程序加密和解密的装置及方法 |
CN110765425A (zh) * | 2019-10-25 | 2020-02-07 | 杭州涂鸦信息技术有限公司 | 一种对ios应用程序源代码进行混淆保护的方法及系统 |
CN111177739A (zh) * | 2019-10-28 | 2020-05-19 | 腾讯云计算(北京)有限责任公司 | 一种数据处理方法、信息交互系统及计算机存储介质 |
CN111240654A (zh) * | 2020-01-03 | 2020-06-05 | 福建天晴在线互动科技有限公司 | 一种Python代码加固保护的方法及其系统 |
-
2020
- 2020-07-15 CN CN202010678162.6A patent/CN111914225B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104462959A (zh) * | 2014-12-04 | 2015-03-25 | 北京奇虎科技有限公司 | 一种安卓应用的加固保护方法、服务器和系统 |
CN106326693A (zh) * | 2016-08-18 | 2017-01-11 | 广州优视网络科技有限公司 | 应用程序的代码混淆方法及装置 |
CN106709286A (zh) * | 2016-11-30 | 2017-05-24 | 江苏神州信源系统工程有限公司 | 一种对apk资源包进行安全加固的方法 |
CN109740311A (zh) * | 2019-01-07 | 2019-05-10 | 广州小鹏汽车科技有限公司 | 安卓应用的安全加固方法及装置 |
CN110069905A (zh) * | 2019-04-26 | 2019-07-30 | 深圳智慧园区信息技术有限公司 | 一种Springboot程序加密和解密的装置及方法 |
CN110765425A (zh) * | 2019-10-25 | 2020-02-07 | 杭州涂鸦信息技术有限公司 | 一种对ios应用程序源代码进行混淆保护的方法及系统 |
CN111177739A (zh) * | 2019-10-28 | 2020-05-19 | 腾讯云计算(北京)有限责任公司 | 一种数据处理方法、信息交互系统及计算机存储介质 |
CN111240654A (zh) * | 2020-01-03 | 2020-06-05 | 福建天晴在线互动科技有限公司 | 一种Python代码加固保护的方法及其系统 |
Also Published As
Publication number | Publication date |
---|---|
CN111914225A (zh) | 2020-11-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111914225B (zh) | 一种源代码保护系统及源代码加密方法 | |
JP6257754B2 (ja) | データの保護 | |
CN105683990B (zh) | 用于保护动态库的方法和装置 | |
CN110598379B (zh) | 一种实现字符串混淆的方法、设备及存储介质 | |
KR102433011B1 (ko) | Apk 파일 보호 방법, 이를 수행하는 apk 파일 보호 시스템, 및 이를 저장하는 기록매체 | |
US20090290704A1 (en) | Method for protecting a cap file for an ic card | |
KR101216995B1 (ko) | 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법 | |
CN105681039A (zh) | 用于生成密钥及对应解密的方法和设备 | |
CN106599628A (zh) | 一种基于模块钩子的Python字节码文件保护方法 | |
CN103617401A (zh) | 一种数据文件保护方法及装置 | |
CN106503494A (zh) | 一种带有片上闪存微控制器的固件保护单元及保护方法 | |
CN111859415A (zh) | 神经网络模型加密系统和方法 | |
CN103475463A (zh) | 加密实现方法及装置 | |
CN111240654A (zh) | 一种Python代码加固保护的方法及其系统 | |
CN112100582A (zh) | 一种应用强对称加密保护软件分发安全的方法 | |
CN107257282B (zh) | 一种基于rc4算法的代码全包加密方法 | |
Park et al. | A methodology for the decryption of encrypted smartphone backup data on android platform: A case study on the latest samsung smartphone backup system | |
CN105554038A (zh) | 一种在线系统和离线系统数据交互时数据安全的管控方法 | |
CN109992974A (zh) | 虚拟机字节码文件的保护方法、设备及可读存储介质 | |
CN112532379A (zh) | 一种文件保护方法及装置 | |
CN107169370A (zh) | 可执行文件的加密方法及加密装置 | |
CN105335666A (zh) | 一种防止电子文档外泄的方法 | |
CN111563266B (zh) | 电力系统数据操作程序加密方法及装置、解密方法及装置 | |
CN113742340A (zh) | 一种数据库表处理方法及相关设备 | |
CN102087689B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |