CN110334483A - 一种代码保护方法与装置 - Google Patents

一种代码保护方法与装置 Download PDF

Info

Publication number
CN110334483A
CN110334483A CN201910538655.7A CN201910538655A CN110334483A CN 110334483 A CN110334483 A CN 110334483A CN 201910538655 A CN201910538655 A CN 201910538655A CN 110334483 A CN110334483 A CN 110334483A
Authority
CN
China
Prior art keywords
code
information
steganography
company
hiding
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
Application number
CN201910538655.7A
Other languages
English (en)
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.)
Shaoguan Qizhi Information Technology Co Ltd
Original Assignee
Shaoguan Qizhi Information 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 Shaoguan Qizhi Information Technology Co Ltd filed Critical Shaoguan Qizhi Information Technology Co Ltd
Priority to CN201910538655.7A priority Critical patent/CN110334483A/zh
Publication of CN110334483A publication Critical patent/CN110334483A/zh
Pending legal-status Critical Current

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/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明提供一种代码保护方法与装置。采用公司简介或与公司版权信息相关的文件训练词向量;将公司版权信息的词向量维度相加,获得加总词向量;在进行代码规范修正时,获取代码中可以隐藏信息的代码载体段;续行与其包裹元素对齐,包括圆括号、方括号和花括号内的隐式行连接来垂直对齐,进行信息隐藏;在判断语句中进行信息隐藏;在多行结构中进行信息隐藏;程序代码过长时的信息隐藏;将隐写信息嵌入需要进行代码规范的代码中;在取证时,还原隐写信息。本发明通过代码规范,嵌入隐藏信息,即可以对带有版权的代码进行保护,避免被离职员工带走公司的代码资产,同时还能够优化代码的结构,提高代码可读性。

Description

一种代码保护方法与装置
技术领域
本发明涉及数据处理领域,尤其涉及一种代码保护方法与装置。
背景技术
软件公司员工离职时,经常携带公司的代码,这些代码有时是大量员工一起开发的,知识产权和资产属于公司,却很容易被复制和被传播。掌握公司核心代码的员工,甚至会把代码带去下一家任职的公司。公司代码作为软件公司的重要资产,具有非常重要的价值,如果被离职员工带去给竞争对手,将给公司造成非常巨大的损失。因此对本公司代码进行保护,或者当发现自己的代码疑似被使用,对公司造成重大损失时,要能够进行取证。
在普通代码中的版权信息,一般如下,
//============================================
// Copyright (C) baidu
// All rights reserved
// filename :Class4
// description :
// created by shenzhirui at 03/09/2018 18:41:28 //================================================
这样的版权信息很容易被员工直接删除,就把代码带走后,说成是自己写的代码。其他公司也无从查证。
因此,在公司员工提交到代码库中时,设计相应的隐写信息和版权信息,预防被窃取,即使窃据也有证据证明该代码源自本公司,将具有重要的意义。本发明通过隐写技术,实现了代码的版权的维护。
当前多隐写技术,大多是基于图像的技术,数字图像在因特网和其他传媒上被广泛用于隐藏消息。例如:一个24位的位图中的每个像素的三个颜色分量(红,绿和蓝)各使用8个比特来表示。如果我们只考虑蓝色的话,就是说有2种不同的数值来表示深浅不同的蓝色。而像11111111和11111110这两个值所表示的蓝色,人眼几乎无法区分。因此,这个最低有效位就可以用来存储颜色之外的信息,而且在某种程度上几乎是检测不到的。如果对红色和绿色进行同样的操作,就可以在差不多三个像素中存储一个字节的信息。
也就是说,其实隐写技术,使隐写的信息难以探测的,是保证“有效载荷”(需要被隐蔽的信号)对“载体”(即原始的信号)的调制对载体的影响看起来,可以忽略。这就是说,这种改变应该无法与载体中的噪声加以区别。
要做到这一点,文本的形式也是可以完成的。当前有专门研究用文本做隐写的技术,但是用代码做隐写技术的还特别少。
另一方面,传统的信息隐写技术,只能做到信息被隐藏,并无法优化载体本身,本发明不仅仅能让代码中隐藏重要的版权信息,并且可以让代码更加可读,更加规范。不仅使公司受益,而且对程序员完善自身的代码也有帮助,因此会被更多人接受。也乐于用本方法,进行信息隐写。
发明内容
本发明提供了一种代码保护方法与装置,用于对带有版权的代码进行保护,避免被离职员工带走公司代码资产。
本发明提供了一种代码保护方法,所述方法包括:
将需要隐写的信息转换成隐写算法需要的方式;
将隐写信息嵌入需要进行代码规范的代码中;
在取证时,还原隐写信息。
进一步可选地,如上所述的方法中,所述将需要隐写的信息转换成隐写算法需要的方式,主要包括:
采用公司简介或与公司版权信息相关的文件训练词向量;
将公司版权信息的词向量维度相加,获得加总词向量;
进一步可选地,如上所述的方法中,所述加总词向量,主要包括:将所述加总词向量转化为二进制。
其公式为
abcd.efg(2)=d*20+c*21+b*22+a*23+e*2-1+f*2-2+g*2-3
其中a、b、c、d代表整数位的数值,e、f、g是小数位的数值。
进一步可选地,如上所述的方法中,所述将隐写信息嵌入需要进行代码规范的代码中,主要包括:
在进行代码规范修正时,获取代码中可以隐藏信息的代码载体段;
进一步可选地,如上所述的方法中,所述获取代码中可以隐藏信息的代码载体段,主要包括:
续行与其包裹元素对齐,包括圆括号、方括号和花括号内的隐式行连接来垂直对齐;
在判断语句中进行信息隐藏;
在多行结构中的信息隐藏;
程序代码过长时的信息隐藏。
进一步可选地,如上所述的方法中,所述将隐写信息嵌入需要进行代码规范的代码中,还包括:
通过隐写信息通过文本隐写工具嵌入到代码中;
这些工具可以是Stegsolve、010 Editor、WinHex、binwalk的一个或者多个具有隐写术嵌入功能的软件。
进一步可选地,如上所述的方法中,所述还原隐写信息,主要包括:
通过代码规范,使人们不会轻易改动代码,保护信息隐藏的稳定性;
通过词向量技术,使代码中的位置即是部分被改动,也不会改变词向量最后还原后对应的版本信息。
进一步可选地,如上所述的方法中,所述还原隐写信息,还进一步包括:
通过最开始的时候获取的公司语料,重新训练出模型,获得原始的word2vec模型;
抽取代码中经过了隐写技术处理过的代码,抽取隐藏在代码中的各个比特的信息。重新拼接成词向量。通过输入词向量到word2vec模型中,判断该向量是否跟公司的版权信息一致或者强相关。
本发明提供了一种代码保护装置,所述装置包括:
版权信息训练模块,用于将公司简介或与公司版权信息相关的文件训练成词向量;
数据转换模块,用于需要隐写的信息转换成隐写算法需要的方式;
隐藏载体检测模块,用于从大量代码中检测可以隐藏信息的代码载体段;
隐写信息嵌入模块,用于将隐写信息嵌入到代码中;
隐写信息还原模块,用于在举证的时候,对重要的代码版权信息进行还原。
本发明实施例提供的技术方案可以包括以下有益效果:
本发明通过代码规范,嵌入隐藏信息,即可以对带有版权的代码进行保护,避免被离职员工带走公司的代码资产,同时还能够优化代码的结构,提高代码可读性。
附图说明
图1为本发明的一种代码保护方法实施例的流程图;
图2为本发明的一种代码保护装置实施例的结构图。
具体实施方式
步骤101,训练词向量,如word2vec ,语料采用公司简介或公司相关文件进行训练。该方法,可以使证据更加明显。让训练出来的代码不仅仅只是一段合成的无意义的代码。而是跟公司信息更加强相关。
另外,该方法还可以设置词向量维度。采用的工具可以是任何训练词向量的工具,采用的算法可以是Skip-gram或CBOW等任意种
将版权信息的词向量维度相加,获得总维度。该方法可以使无论多少字的版权信息都统一到一个维度上,并且维度可以让用户自己设置。采用gensim等接口,可以设置相关词向量维度。
步骤102,将词向量转化为二进制。其通用公式为
abcd.efg(2)=d*20+c*21+b*22+a*23+e*2-1+f*2-2+g*2-3(10)
可以通过软件进行转化。最终获得让用户更加容易设置,而且跟公司简介相关的二进制代码。另一方面,因为词向量具有相似性和可计算性,因此即使有部分数字被改动和变动,依然可以得到最近似到词语,因此它能够比较好的抗改动和变化。即使有些地方被修改了,也只是部分信息被少许改动,最后得到的值将对最终结果不会有影响。
步骤103,可以隐藏代码段载体的检测。可以进行隐藏的载体包括:
续行与其包裹元素对齐,包括圆括号、方括号和花括号内的隐式行连接来垂直对齐,每监测到一种括号都可以进行信息隐藏。
这样更加符合代码规范,并且,因为有多种改法,因此每一种改法都可以嵌入一个比特的信息。
在判断语句中进行信息隐藏:
例如,当if语句的条件部分长到需要换行写的时候,有以下换法:
这样就可以增加一个比特的信息
在多行结构中,进行信息隐藏:
在多行结构中的大括号/中括号/小括号的右括号可以与内容对齐单独起一行作为最后一行的第一个字符,就像这样:
或者也可以与多行结构的第一行第一个字符对齐,就像这样:
这些不同的使程序更加易懂和符合规范的改法,都可以隐藏信息。
当程序代码过长时,可以把行长度控制到70增加到100个字符之间。这其中每一个值都是正确的,可以隐藏最多30个比特的信息。
针对代码规范中的各种类型的冗余信息隐写嵌入,还有大量的实例可以嵌入。只要代码中,存在代码的放置位置两者都正确的情况,就能嵌入信息。在此不在进一步举例,可以根据各种代码规范的实例,进行不断扩充。
步骤104,隐写信息通过文本隐写工具嵌入到代码中。这些工具可以是Stegsolve、010 Editor、WinHex、binwalk等等一个或者多个具有隐写术嵌入功能的软件。
步骤105,信息隐藏抗扰动。对代码进行代码规范的调整,使代码更加合理,代码结构更加可读。另一方面,通过将信息隐藏在代码里,当版本信息被新的代码优化软件扫描,或者被用户稍微改动。它的版本信息依然不变,因为其本身已经是经过优化的代码,符合代码规范,因此在用户看来是规范的代码,没有改动的必要。另外因为加入了词向量技术,词向量并不会因为某个数值的偏差改动就导致整个向量都改变。因此具有很好的抗扰动性,即使被用户部分修改,也会因为相似度的差距不大,而最终能得到最后的正确的版权信息。
步骤106,取证还原。通过最开始的时候获取的公司语料,重新训练出模型,获得原始的word2vec模型。
抽取代码中经过了隐写技术处理过的代码,抽取隐藏在代码中的各个比特的信息。重新拼接成词向量。通过输入词向量到word2vec模型中,判断该向量是否跟公司的版权信息一致或者强相关。以此就能够判断,该代码是否是公司经过信息隐藏的代码,是否是员工偷偷带走的代码。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例可以通过软件实现,也可以借助软件加必要的通用硬件平台的方式来实现。基于这样的理解,上述实施例的技术方案可以以软件产品的形式体现出来,该软件产品可以存储在一个非易失性存储介质(可以是CD-ROM,U盘,移动硬盘等)中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

Claims (9)

1.一种代码保护方法,其特征在于,所述方法包括:
将需要隐写的信息转换成隐写算法需要的方式;
将隐写信息嵌入需要进行代码规范的代码中;
在取证时,还原隐写信息。
2.根据权利要求1所述的方法,其中,所述将需要隐写的信息转换成隐写算法需要的方式,主要包括:
采用公司简介或与公司版权信息相关的文件训练词向量;
将公司版权信息的词向量维度相加,获得加总词向量。
3.根据权利要求2所述的方法,其中,所述加总词向量,主要包括:将所述加总词向量转化为二进制;
其公式为
abcd.efg(2)=d*20+c*21+b*22+a*23+e*2-1+f*2-2+g*2-3
其中a、b、c、d代表整数位的数值,e、f、g是小数位的数值。
4.根据权利要求1所述的方法,其中,所述将隐写信息嵌入需要进行代码规范的代码中,主要包括:
在进行代码规范修正时,获取代码中可以隐藏信息的代码载体段。
5.根据权利要求4所述的方法,其中,所述获取代码中可以隐藏信息的代码载体段,主要包括:
续行与其包裹元素对齐,包括圆括号、方括号和花括号内的隐式行连接来垂直对齐;
在判断语句中进行信息隐藏;
在多行结构中的信息隐藏;
程序代码过长时的信息隐藏。
6.根据权利要求1所述的方法,其中,所述将隐写信息嵌入需要进行代码规范的代码中,还包括:
通过隐写信息通过文本隐写工具嵌入到代码中;
这些工具可以是Stegsolve、010 Editor、WinHex、binwalk的一个或者多个具有隐写术嵌入功能的软件。
7.根据权利要求1所述的方法,其中,所述还原隐写信息,主要包括:
通过代码规范,使人们不会轻易改动代码,保护信息隐藏的稳定性;
通过词向量技术,使代码中的位置即是部分被改动,也不会改变词向量最后还原后对应的版本信息。
8.根据权利要求1所述的方法,其中,所述还原隐写信息,还进一步包括:
通过最开始的时候获取的公司语料,重新训练出模型,获得原始的word2vec模型;
抽取代码中经过了隐写技术处理过的代码,抽取隐藏在代码中的各个比特的信息;重新拼接成词向量;通过输入词向量到word2vec模型中,判断该向量是否跟公司的版权信息一致或者强相关。
9.一种代码保护装置,其特征在于,所述装置包括:
版权信息训练模块,用于将公司简介或与公司版权信息相关的文件训练成词向量;
数据转换模块,用于需要隐写的信息转换成隐写算法需要的方式;
隐藏载体检测模块,用于从大量代码中检测可以隐藏信息的代码载体段;
隐写信息嵌入模块,用于将隐写信息嵌入到代码中;
隐写信息还原模块,用于在举证的时候,对重要的代码版权信息进行还原。
CN201910538655.7A 2019-06-20 2019-06-20 一种代码保护方法与装置 Pending CN110334483A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910538655.7A CN110334483A (zh) 2019-06-20 2019-06-20 一种代码保护方法与装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910538655.7A CN110334483A (zh) 2019-06-20 2019-06-20 一种代码保护方法与装置

Publications (1)

Publication Number Publication Date
CN110334483A true CN110334483A (zh) 2019-10-15

Family

ID=68142300

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910538655.7A Pending CN110334483A (zh) 2019-06-20 2019-06-20 一种代码保护方法与装置

Country Status (1)

Country Link
CN (1) CN110334483A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113946340A (zh) * 2021-09-30 2022-01-18 北京五八信息技术有限公司 一种代码处理方法、装置、电子设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103294937A (zh) * 2013-06-28 2013-09-11 玉林师范学院 一种软件保护系统及其保护方法
CN104765986A (zh) * 2015-03-05 2015-07-08 中国科学院信息工程研究所 一种基于隐写术的代码保护及还原方法
US10140179B2 (en) * 2007-06-26 2018-11-27 International Business Machines Corporation Combined group ECC protection and subgroup parity protection

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10140179B2 (en) * 2007-06-26 2018-11-27 International Business Machines Corporation Combined group ECC protection and subgroup parity protection
CN103294937A (zh) * 2013-06-28 2013-09-11 玉林师范学院 一种软件保护系统及其保护方法
CN104765986A (zh) * 2015-03-05 2015-07-08 中国科学院信息工程研究所 一种基于隐写术的代码保护及还原方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
上海东软载波微电子有限公司: "《东软载波单片机应用C程序设计》", 30 September 2017 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113946340A (zh) * 2021-09-30 2022-01-18 北京五八信息技术有限公司 一种代码处理方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN109614775A (zh) 一种基于区块链的版权溯源的保护框架及方法
US6782509B1 (en) Method and system for embedding information in document
US20040236716A1 (en) Methods of invisibly embedding and hiding data into soft-copy text documents
Krishnan et al. An overview of text steganography
US10402471B2 (en) Method for obfuscating the display of text
JP2008085920A (ja) 電子透かし埋め込み装置および検出装置
CN105761197B (zh) 一种基于特征不变量的遥感影像水印方法
Selvi et al. Steganography using edge adaptive image
Sun et al. Component-based digital watermarking of Chinese texts
Domain A review and open issues of diverse text watermarking techniques in spatial domain
US20060115112A1 (en) System and method for marking data and document distribution
Khadam et al. Advanced security and privacy technique for digital text in smart grid communications
CN110334483A (zh) 一种代码保护方法与装置
Boonyapalanant et al. Hiding patient injury information in medical images with QR code
Mehta et al. A Novel approach as Multi-place Watermarking for Security in Database
CN104396225A (zh) 向对象嵌入数据的装置及方法、以及抽取所嵌入的数据的装置及方法
Ni et al. Pinpoint authentication watermarking based on a chaotic system
CN103559251A (zh) 基于信息隐藏的数据安全保护方法
CN104376236A (zh) 基于伪装学的方案自适应数字水印嵌入方法及提取方法
CN110874456A (zh) 水印嵌入和水印提取方法、装置及数据处理方法
CN108256360A (zh) 一种敏感信息的显示方法及终端
Han et al. Inject stenography into cybersecurity education
Wang et al. FBIPT: A new robust reversible database watermarking technique based on position tuples
An et al. Research on digital watermark technology based on LSB algorithm
Zhang et al. PDF document watermarking algorithm based on discarded page object

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: 20191015

RJ01 Rejection of invention patent application after publication