CN108399318B - 可执行文件的生成方法、执行方法及电子设备 - Google Patents
可执行文件的生成方法、执行方法及电子设备 Download PDFInfo
- Publication number
- CN108399318B CN108399318B CN201810098025.8A CN201810098025A CN108399318B CN 108399318 B CN108399318 B CN 108399318B CN 201810098025 A CN201810098025 A CN 201810098025A CN 108399318 B CN108399318 B CN 108399318B
- Authority
- CN
- China
- Prior art keywords
- file
- target
- source code
- executable file
- target source
- 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 65
- 238000006243 chemical reaction Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 abstract description 17
- 230000002829 reductive effect Effects 0.000 abstract description 12
- 238000011161 development Methods 0.000 abstract description 10
- 238000010586 diagram Methods 0.000 description 14
- 230000006870 function Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 230000018109 developmental process Effects 0.000 description 8
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 5
- 230000036961 partial effect Effects 0.000 description 5
- 230000005540 biological transmission Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 2
- 239000000835 fiber Substances 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000001902 propagating effect Effects 0.000 description 2
- RYGMFSIKBFXOCR-UHFFFAOYSA-N Copper Chemical compound [Cu] RYGMFSIKBFXOCR-UHFFFAOYSA-N 0.000 description 1
- 229910052802 copper Inorganic materials 0.000 description 1
- 239000010949 copper Substances 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 230000008140 language development Effects 0.000 description 1
- 230000000670 limiting effect Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000002441 reversible effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 230000003238 somatosensory effect Effects 0.000 description 1
- 230000003068 static effect Effects 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/121—Restricting unauthorised execution of programs
- G06F21/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种可执行文件的生成方法、运行方法及电子设备。该生成方法包括:编译已获取的目标源码,得到对应的编译文件;获取实施目标解密算法的解密模块,将解密模块与编译文件合并编译,得到中间可执行文件;基于与目标解密算法对应的目标加密算法,加密中间可执行文件中与编译文件对应的至少部分内容,生成对应的目标可执行文件。根据本发明,可以独立于目标源码的开发过程对目标源码进行加密保护,在保证代码安全的前提下降低开发复杂度,同时,可执行文件解密过程对于用户不可见,降低用户的应用成本,避免被破解的安全风险。
Description
技术领域
本发明涉及计算机技术领域,更具体地,涉及一种可执行文件的生成方法、执行方法及电子设备。
背景技术
基于计算机语言开发的应用程序通常以可执行文件的形式,运行于对应的操作系统中,提供给用户对应的应用服务。
随着互联网的普及,应用程序的传播范围愈加广泛,如何保证应用程序在传播过程中的安全,使得应用程序不易被篡改、破解,是广大应用程序的提供者关心的问题,目前对于应用程序的安全保护,通常是对应用程序的源码进行加密处理,这需要在源码开发过程中进行,增加开发复杂度,同时,用户在运行应用程序的可执行文件时,必须获取对应的解密算法,才能保证应用程序的持续运行,提高用户的应用成本,影响用户体验,同时,解密算法容易对用户可见,存在被破解的安全风险。
发明内容
本发明的一个目的是提供一种用于生成可执行文件的新技术方案。
根据本发明的第一方面,提供了一种可执行文件的生成方法,其中,包括:
编译已获取的目标源码,得到对应的编译文件;
获取实施目标解密算法的解密模块,将所述解密模块与所述编译文件合并编译,得到中间可执行文件;
基于与所述目标解密算法对应的目标加密算法,加密所述中间可执行文件中与所述编译文件对应的至少部分内容,生成对应的目标可执行文件。
可选地,
所述目标源码包括第一目标源码和第二目标源码;
所述第一目标源码对应第一处理器;
所述第二目标源码对应第二处理器;
所述编译文件中包括编译所述第一目标源码得到的第一编译文件,以及编译所述第二目标源码得到的第二编译文件;
所述加密所述中间可执行文件中与所述编译文件对应的至少部分内容的步骤包括:
加密所述中间可执行文件中与所述第二编译文件对应的至少部分内容。
可选地,该方法还包括:
从目标源码分离所述第一目标源码以及所述第二目标源码的步骤。
可选地,
所述第一目标源码通过第一编码语言开发,所述第二目标源码通过第二编码语言开发;
所述编译目标源码的步骤包括:
以符合所述第一编码语言支持的编译方式,编译所述第一目标源码得到对应的第一编译文件;
以符合所述第二编码语言支持的编译方式,编译所述第二目标源码得到对应的中间编译文件;
对所述中间编译文件进行转换,得到中间转换文件;
将中间转换文件与中间编译文件合并,得到符合所述第一编码语言支持的文件格式的中间合并文件;
对所述中间合并文件以所述第一编码语言支持的编译方式进行编译,得到所述第二编译文件。
可选地,
所述第一编码语言是C语言;
所述第一编译文件是.o文件;
所述中间编译文件是.ptx文件;
所述中间转换文件是.cubin文件;
所述中间合并文件是.c文件;
所述第二编译文件是.o文件。
可选地,
所述第一处理器是CPU,所述第二处理器是GPU。
可选地,所述方法还包括:
提供算法配置界面,展示可供选择的解密算法的标识信息,以供用户操作选择对应的目标解密算法。
根据本发明第二方面,提供一种电子设备,用于生成可执行文件,其中,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述电子设备执行如本发明第一方面的可执行文件的生成方法。
本发明的另一个目的是提供一种用于运行可执行文件的新技术方案。
根据本发明第三方面,提供一种可执行文件的运行方法,其中,包括:
获取目标可执行文件,
其中,所述目标可执行文件根据如本发明第一方面所述的任意一项方法生成;
运行所述目标可执行文件中的解密模块,通过所述解密模块实施对应的目标解密算法,解密所述目标可执行文件中包含的、基于与目标解密算法对应的目标加密算法被加密的部分内容,以获取解密后的所述目标可执行文件并运行。
根据本发明第四方面,提供一种电子设备,用于运行可执行文件,其中,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述电子设备执行如本发明第一方面的可执行文件的运行方法。
根据本公开的一个实施例,在对已获取的目标源码的编译过程中,加入解密模块进行合并编译,并加密与目标源码对应的至少部分编译后的内容,生成对应的目标可执行文件,使得可以独立于目标源码的开发过程对目标源码进行加密保护,在保证代码安全的前提下降低开发复杂度。同时使得目标可执行文件的解密过程对获取可执行文件的用户完全不可见,避免被破解的安全风险,同时无需用户自行获取解密算法,降低用户的应用成本,提高用户体验。
通过以下参照附图对本发明的示例性实施例的详细描述,本发明的其它特征及其优点将会变得清楚。
附图说明
被结合在说明书中并构成说明书的一部分的附图示出了本发明的实施例,并且连同其说明一起用于解释本发明的原理。
图1是显示可用于实现本发明的实施例的电子设备的硬件配置的例子的框图。
图2示出了本发明第一实施例的可执行文件的生成方法的流程图。
图3示出了本发明第一实施例的编译目标源码步骤的流程图。
图4示出了本发明第一实施例的电子设备的框图。
图5示出了本发明第二实施例的可执行文件的运行方法的流程图。
图6示出了本发明第二实施例的电子设备的框图。
具体实施方式
现在将参照附图来详细描述本发明的各种示例性实施例。应注意到:除非另外具体说明,否则在这些实施例中阐述的部件和步骤的相对布置、数字表达式和数值不限制本发明的范围。
以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本发明及其应用或使用的任何限制。
对于相关领域普通技术人员已知的技术、方法和设备可能不作详细讨论,但在适当情况下,所述技术、方法和设备应当被视为说明书的一部分。
在这里示出和讨论的所有例子中,任何具体值应被解释为仅仅是示例性的,而不是作为限制。因此,示例性实施例的其它例子可以具有不同的值。
应注意到:相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步讨论。
<硬件配置>
图1是示出可以实现本发明的实施例的电子设备1000的硬件配置的框图。
电子设备1000可以是便携式电脑、台式计算机、手机、平板电脑等。如图1所示,电子设备1000可以包括处理器1100、存储器1200、接口装置1300、通信装置1400、显示装置1500、输入装置1600、扬声器1700、麦克风1800等等。其中,处理器1100可以是中央处理器CPU、微处理器MCU等。存储器1200例如包括ROM(只读存储器)、RAM(随机存取存储器)、诸如硬盘的非易失性存储器等。接口装置1300例如包括USB接口、耳机接口等。通信装置1400例如能够进行有线或无线通信,具体地可以包括Wifi通信、蓝牙通信、2G/3G/4G/5G通信等。显示装置1500例如是液晶显示屏、触摸显示屏等。输入装置1600例如可以包括触摸屏、键盘、体感输入等。用户可以通过扬声器1700和麦克风1800输入/输出语音信息。
图1所示的电子设备仅仅是说明性的并且决不意味着对本发明、其应用或使用的任何限制。应用于本发明的实施例中,电子设备1000的所述存储器1200用于存储指令,所述指令用于控制所述处理器1100进行操作以执行本发明实施例提供的任意一项可执行文件的生成方法或执行方法。本领域技术人员应当理解,尽管在图1中对电子设备1000示出了多个装置,但是,本发明可以仅涉及其中的部分装置,例如,电子设备1000只涉及处理器1100和存储装置1200。技术人员可以根据本发明所公开方案设计指令。指令如何控制处理器进行操作,这是本领域公知,故在此不再详细描述。
<第一实施例>
<方法>
在本实施例中,提供一种可执行文件的生成方法,如图2所示,包括:步骤S2100-S2200。
该可执行文件指的是可以由操作系统进行加载执行的文件。在不同的操作系统环境下,可执行文件的呈现方式不一样。在windows操作系统下,可执行文件可以是.exe/.sys/.com等类型文件。
步骤S2100,编译已获取的目标源码,得到对应的编译文件。
目标源码是基于某种编程语言开发的代码,用于提供对应的应用功能。通常代码开发可以基于某种编程平台,例如,目标源码可以是基于UCDA平台开发的代码,CUDA(Compute Unified Device Architecture),是显卡厂商NVIDIA推出的运算平台,采用支持C语言开发的通用并行计算架构,包含了CUDA指令集架构(ISA)以及GPU内部的并行计算引擎。
在本实施例中,不限定如何获取目标源码,该目标源码可以是自行开发的,也可以是第三方提供的。
在一个例子中,该目标源码可以包括第一目标源码和第二目标源码。
该第一目标源码对应第一处理器,基于该第一处理器提供对应的应用功能,例如,该第一处理器可以是CPU(Central Processing Unit,中央处理器)。
该第二目标源码对应第二处理器,基于该第二处理器提供对应的应用功能,例如,该第二处理器可以是是GPU(Graphics Processing Unit,图形处理器)。
在本例中,对于已获取的目标源码,还可以实施从目标源码分离所述第一目标源码以及所述第二目标源码的步骤。
例如,目标源码基于CUDA平台开发,第一目标源码对应CPU,第二目标源码对应GPU,可以通过CUDA指令集中的cufa命令,对目标源码进行处理,分离出第一目标源码和第二目标源码。
对应地,编译目标源码得到的编译文件中,包括编译第一目标源码得到的第一编译文件,以及编译第二目标源码得到的第二编译文件。
例如,第一目标源码通过第一编码语言开发,所述第二目标源码通过第二编码语言开发。
在实际应用中,通常第一编码语言和第二编码语言对应支持的编译方式不一样,以不同编译方式编译得到的编译文件,同时运行会增加运行复杂性,降低运行效率。
因此,在本例中,编译目标源码的步骤,可以如图3所示,包括步骤S2110-S2250。
步骤S2110,以符合第一编码语言支持的编译方式,编译所述第一目标源码得到对应的第一编译文件。
例如,第一编码语言是C语言时,通过标准的c/c++编译器编译第一目标源码,得到的第一编译文件是.o文件。
步骤S2220,以符合第二编码语言支持的编译方式,编译第二目标源码得到对应的中间编译文件。
例如,第二目标源码对应GPU,基于的第二编码语言,可以是面向GPU的编程的高级图像语言,例如,HLSL(High Level Shading Language,高级着色器语言)、GLSL(OpenGLShading Language,OpenGL着色语言)或者Cg(C for graphics)语言等。
以符合所述第二编码语言支持的编译方式,编译所述第二目标源码,例如,可以通过CUDA平台提供的cicc命令编译所述第二目标源码,得到中间编译文件,该中间编译文件是.ptx文件。
步骤S2230,对中间编译文件进行转换,得到中间转换文件。
例如,中间编译文件是.ptx文件,可以通过CUDA平台提供的ptxas命令,转换为中间转换文件,该中间转换文件是.cubin文件。
步骤S2240,将中间转换文件与中间编译文件合并,得到符合第一编码语言支持的文件格式的中间合并文件。
例如,可以将.ptx文件形式的中间编译文件与.cubin文件形式的中间转换文件,合并得到为中间合并文件,第一编码语言为C语言时,该中间合并文件为.c文件。
步骤S2250,对中间合并文件以第一编码语言支持的编译方式进行编译,得到第二编译文件。
第一编码语言为C语言时,通过标准的c/c++编译器编译该中间合并文件,得到第二编译文件是.c文件。
通过本例,可以使得目标源码中包含的不同编码语言开发的源码时,编译后得到的编译文件是统一的文件形式,降低运行复杂性,提高运行效率。
步骤S2200,获取实施目标解密算法的解密模块,将该解密模块与上述编译文件合并编译,得到中间可执行文件。
该实施目标解密算法的解密模块可以是在预先设置的解密算法库中选取。
在一个例子中,实施本实施例的电子设备,还可以提供算法配置界面,展示可供选择的解密算法的标识信息,以供用户操作选择对应的目标解密算法。
该解密算法的标识信息可以是解密算法的唯一名称、唯一编号等,用于区分不同的解密算法。该算法配置界面是可接收点击、下拉、滑动、勾选等操作的人机交互界面,可以通过展示排列有每种可供选择的解密算法的标识信息的信息列表,来供用户选择。
在用户选择目标解密算法后,可以响应于用户的选择,从解密算法库中选取实施目标解密算法的解密模块。
该解密算法可以是xor(异或算法)、rc4(初始化和伪随机子密码生成算法)、aes(Advanced Encryption Standard,高级加密算法)、3des(Triple Data EncryptionAlgorithm,三重加密算法)等加密算法那对应的解密算法等。
步骤S2300,基于与该目标解密算法对应的目标加密算法,加密中间可执行文件中与编译文件对应的至少部分内容,生成对应的目标可执行文件。
加密中间可执行文件中与编译文件对应的至少部分内容,该编译文件与目标源码对应,实现对目标源码加密保护的目的。该加密过程独立于目标源码的开发过程,不影响开发过程,在保证代码安全的前提下降低开发复杂度。而在目标可执行文件中已经包括可实施解密的目标解密模块,使得运行目标可执行文件时可以自动实施解密,解密过程对获取可执行文件的用户完全不可见,避免被破解的安全风险,同时无需用户自行获取解密算法,降低用户的应用成本,提高用户体验。
在本实施例中,在执行加密过程后,可以在目标可执行文件中包含指示实施加密的部分内容的标识信息,例如该部分内容对应的目标源码的函数名、文件名或者具体的存储位置等。具体地,还可以将加密的部分内容的标识信息写入解密模块中,生成对应的目标可执行文件,使得在运行目标可执行文件时,可以直接定位被加密的部分内容,通过解密模块实施解密。
在一个例子中,当目标源码包括与第一处理器对应的第一目标源码和与第二处理器对应的第二目标源码,编译文件包括对应的第一编译文件和第二编译文件时,上述加密步骤可以包括:
加密该中间可执行文件中与第二编译文件对应的至少部分内容。
第二编译文件与第二目标源码对应,第二目标源码与第二处理器对应的,由此实现加密与第二处理器对应的代码的目的,实现可以根据具体应用场景或者应用需求,仅加密与单一处理器对应的代码。
<例子>
以下将进一步举例说明本实施例中提供的可执行文件的生成方法。
在本例中,目标源码基于CUDA平台开发,包括基于CPU的第一目标源码和基于GPU的第二目标源码,该方法包括下述步骤S201-S08。
步骤S201,通过cudafe命令对目标源码进行分离处理,得到第一目标源码和第二目标源码。
该第一目标源码是基于C语言开发,该第二目标源码是基于Cg语言开发。
步骤S202,通过标准的C语言编译器,编译第一目标源码,得到是.o文件的第一编译文件A.o。
步骤S203,通过nvopencc命令,编译第二目标源码,得到是.ptx文件的中间编译文件;
步骤S204,通过ptxas命令,编译中间编译文件,转换得到是.cubin文件的中间转换文件;
步骤S205,将.ptx文件与.cubin文件文件,通过fatbin命令,得到C语言支持的fatbin.c文件作为中间合并文件;
其中,可以将ptx和cubin的内容标记在中间合并文件的__fatbin和__nv_fatbin两个session中;
步骤S206,通过标准的C语言编译器,编译fatbin.c文件,得到第二编译文件B.o;
步骤S207,获取实施目标解密算法e的解密模块C,将该解密模块C与上述A.o、B.o文件合并编译,得到中间执行文件D;
步骤S208,基于与目标解密算法e的加密算法,加密D文件中的_fatbin和__nv_fatbin两个session,最终得到对应的目标执行文件E。
<电子设备>
在本实施例中,还提供一种电子设备200,如图4所示,包括:
存储器210用于存储可执行的指令;
处理器200,用于根据所述可执行的指令的控制,运行所述电子设备执行如本实施例中提供的可执行文件的生成方法。
该电子设备200可以是台式计算机、服务器、笔记本电脑、掌上电脑、手机、平板等。在一个例子中,可以是如图1所示电子设备1000。
本领域技术人员应当明白,可以通过各种方式来实现电子设备200。例如,可以通过指令配置处理器来实现电子设备200。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现电子设备200。例如,可以将电子设备200固化到专用器件(例如ASIC)中。可以将电子设备200分成相互独立的单元,或者可以将它们合并在一起实现。电子设备200可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
以上已经结合符合附图和例子说明本实施例中提供的可执行文件的生成方法和电子设备,根据本实施例,在对已获取的目标源码的编译过程中,加入解密模块进行合并编译,并加密与目标源码对应的至少部分编译后的内容,生成对应的目标可执行文件,使得可以独立于目标源码的开发过程对目标源码进行加密保护,在保证代码安全的前提下降低开发复杂度。同时使得目标可执行文件的解密过程对获取可执行文件的用户完全不可见,避免被破解的安全风险,同时无需用户自行获取解密算法,降低用户的应用成本,提高用户体验。
<第二实施例>
<方法>
在本实施例中,提供一种可执行文件的运行方法,如图5所示,包括:步骤S3100-S3200。
步骤S3100,获取目标可执行文件。
该目标可执行文件由第一实施例中提供的可执行文件的生成方法生成,在此不再赘述。
步骤S3200,运行该目标可执行文件中的解密模块,通过该解密模块实施对应的目标解密算法,解密所述目标可执行文件中包含的、基于与目标解密算法对应的目标加密算法被加密的部分内容,以获取解密后的该目标可执行文件并运行。
在目标可执行文件中包含指示实施加密的部分内容的标识信息,例如该部分内容对应的目标源码的函数名、文件名或者具体的存储位置等。例如,该加密的部分内容的标识信息被写入解密模块中,在运行目标可执行文件的解密模块是,可以直接定位被加密的部分内容,通过解密模块实施的目标解密算法解密。
该目标可执行文件被与目标解密算法对应的目标加密算法加密,并且加密部分对应与目标可执行文件的目标源码对应,在该目标可执行文件的传播过程中,可以保证该目标可执行文件对应的目标源码的代码安全。
运行该目标可执行文件时,可以直接运行目标可执行文件中的解密模块解密后再运行,该解密过程对获取可执行文件的用户完全不可见,避免被破解的安全风险,同时无需用户自行获取解密算法,降低用户的应用成本,提高用户体验。
<电子设备>
在本实施例中,还提供一种电子设备300,如图6所示,包括:
存储器310,用于存储可执行的指令;
处理器320,用于根据所述可执行的指令的控制,运行所述电子设备执行如本实施例中提供的可执行文件的运行方法。
该电子设备300可以是台式计算机、服务器、笔记本电脑、掌上电脑、手机、平板等。在一个例子中,可以是如图1所示电子设备1000。
本领域技术人员应当明白,可以通过各种方式来实现电子设备300。例如,可以通过指令配置处理器来实现电子设备300。例如,可以将指令存储在ROM中,并且当启动设备时,将指令从ROM读取到可编程器件中来实现电子设备300。例如,可以将电子设备300固化到专用器件(例如ASIC)中。可以将电子设备300分成相互独立的单元,或者可以将它们合并在一起实现。电子设备300可以通过上述各种实现方式中的一种来实现,或者可以通过上述各种实现方式中的两种或更多种方式的组合来实现。
以上已经结合符合附图和例子说明本实施例中提供的可执行文件的运行方法和电子设备,根据本实施例,在运行目标可执行文件时,可以直接运行目标可执行文件中的解密模块解密后再运行,该解密过程对获取可执行文件的用户完全不可见,避免被破解的安全风险,同时无需用户自行获取解密算法,降低用户的应用成本,提高用户体验。
本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。对于本领域技术人员来说公知的是,通过硬件方式实现、通过软件方式实现以及通过软件和硬件结合的方式实现都是等价的。
以上已经描述了本发明的各实施例,上述说明是示例性的,并非穷尽性的,并且也不限于所披露的各实施例。在不偏离所说明的各实施例的范围和精神的情况下,对于本技术领域的普通技术人员来说许多修改和变更都是显而易见的。本文中所用术语的选择,旨在最好地解释各实施例的原理、实际应用或对市场中的技术改进,或者使本技术领域的其它普通技术人员能理解本文披露的各实施例。本发明的范围由所附权利要求来限定。
Claims (10)
1.一种可执行文件的生成方法,其中,包括:
编译已获取的目标源码,得到对应的编译文件;
获取实施目标解密算法的解密模块,将所述解密模块与所述编译文件合并编译,得到中间可执行文件;
基于与所述目标解密算法对应的目标加密算法,加密所述中间可执行文件中与所述编译文件对应的至少部分内容,生成对应的目标可执行文件。
2.根据权利要求1所述的方法,其中,
所述目标源码包括第一目标源码和第二目标源码;
所述第一目标源码对应第一处理器;
所述第二目标源码对应第二处理器;
所述编译文件中包括编译所述第一目标源码得到的第一编译文件,以及编译所述第二目标源码得到的第二编译文件;
所述加密所述中间可执行文件中与所述编译文件对应的至少部分内容的步骤包括:
加密所述中间可执行文件中与所述第二编译文件对应的至少部分内容。
3.根据权利要求2所述的方法,其中,还包括:
从目标源码分离所述第一目标源码以及所述第二目标源码的步骤。
4.根据权利要求2所述的方法,其中,
所述第一目标源码通过第一编码语言开发,所述第二目标源码通过第二编码语言开发;
所述编译目标源码的步骤包括:
以符合所述第一编码语言支持的编译方式,编译所述第一目标源码得到对应的第一编译文件;
以符合所述第二编码语言支持的编译方式,编译所述第二目标源码得到对应的中间编译文件;
对所述中间编译文件进行转换,得到中间转换文件;
将中间转换文件与中间编译文件合并,得到符合所述第一编码语言支持的文件格式的中间合并文件;
对所述中间合并文件以所述第一编码语言支持的编译方式进行编译,得到所述第二编译文件。
5.根据权利要求4所述的方法,其中,还包括:
所述第一编码语言是C语言;
所述第一编译文件是.o文件;
所述中间编译文件是.ptx文件;
所述中间转换文件是.cubin文件;
所述中间合并文件是.c文件;
所述第二编译文件是.o文件。
6.根据权利要求2所述的方法,
所述第一处理器是CPU,所述第二处理器是GPU。
7.根据权利要求1所述的方法,其中,还包括:
提供算法配置界面,展示可供选择的解密算法的标识信息,以供用户操作选择对应的目标解密算法。
8.一种可执行文件的运行方法,其中,包括:
获取目标可执行文件,
其中,所述目标可执行文件根据如权利要求1-6所述的任意一项方法生成;
运行所述目标可执行文件中的解密模块,通过所述解密模块实施对应的目标解密算法,解密所述目标可执行文件中包含的、基于与目标解密算法对应的目标加密算法被加密的部分内容,以获取解密后的所述目标可执行文件并运行。
9.一种电子设备,用于生成可执行文件,其中,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述电子设备执行如权利要求1-7所述的可执行文件的生成方法。
10.一种电子设备,用于运行可执行文件,其中,包括:
存储器,用于存储可执行的指令;
处理器,用于根据所述可执行的指令的控制,运行所述电子设备执行如权利要求8所述的可执行文件的运行方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810098025.8A CN108399318B (zh) | 2018-01-31 | 2018-01-31 | 可执行文件的生成方法、执行方法及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810098025.8A CN108399318B (zh) | 2018-01-31 | 2018-01-31 | 可执行文件的生成方法、执行方法及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108399318A CN108399318A (zh) | 2018-08-14 |
CN108399318B true CN108399318B (zh) | 2020-09-08 |
Family
ID=63096070
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810098025.8A Active CN108399318B (zh) | 2018-01-31 | 2018-01-31 | 可执行文件的生成方法、执行方法及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108399318B (zh) |
Families Citing this family (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109614106B (zh) * | 2018-12-21 | 2022-04-19 | 北京龙创悦动网络科技有限公司 | 一种c++程序编译方法和装置 |
CN111382131B (zh) * | 2018-12-27 | 2023-05-09 | 浙江大学 | 数据处理方法、装置及存储介质 |
CN111460464B (zh) * | 2019-01-22 | 2023-04-25 | 阿里巴巴集团控股有限公司 | 数据加解密方法、装置、电子设备及计算机存储介质 |
CN110333867B (zh) * | 2019-04-19 | 2023-09-01 | 矩阵元技术(深圳)有限公司 | 一种多方安全计算数据处理方法、装置及系统 |
CN111897555B (zh) * | 2019-05-06 | 2024-06-07 | 阿里巴巴集团控股有限公司 | 客户端的动态更新方法、装置、系统及终端设备 |
CN110515604A (zh) * | 2019-08-09 | 2019-11-29 | 北京物芯科技有限责任公司 | 验证环境的可执行程序文件的获取方法及装置 |
CN111752570B (zh) * | 2020-06-29 | 2024-06-14 | 重庆小雨点小额贷款有限公司 | 一种编译方法、装置、终端及计算机可读存储介质 |
CN112214549B (zh) * | 2020-10-10 | 2024-06-04 | 中育数据(广州)科技有限公司 | 一种文件特征码生成方法、装置及电子设备 |
CN112596734B (zh) * | 2020-12-15 | 2024-06-07 | 五八同城信息技术有限公司 | 静态库生成方法及装置 |
CN113341901B (zh) * | 2021-06-25 | 2022-04-01 | 青岛沃柏斯智能实验科技有限公司 | 一种基于实验工艺的多设备集成控制方法及系统 |
CN113722754B (zh) * | 2021-08-25 | 2024-06-14 | 上海阵方科技有限公司 | 隐私可执行文件的生成方法、装置和服务器 |
CN113672239B (zh) * | 2021-08-26 | 2024-02-09 | 征图智能科技(江苏)有限公司 | 基于语言分析的视觉算法包开发方法 |
CN117992050A (zh) * | 2022-10-27 | 2024-05-07 | 华为技术有限公司 | 一种算子编译方法及装置 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419652A (zh) * | 2008-08-22 | 2009-04-29 | 航天信息股份有限公司 | 一种软硬件结合的保护程序的方法 |
CN103166943A (zh) * | 2011-12-19 | 2013-06-19 | 北汽福田汽车股份有限公司 | 一种对电子控制单元ecu目标文件加密传输的方法及系统 |
CN106815135A (zh) * | 2015-11-30 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 漏洞检测方法及装置 |
CN107545189A (zh) * | 2017-06-26 | 2018-01-05 | 新华三技术有限公司 | 一种文件获得方法及装置 |
-
2018
- 2018-01-31 CN CN201810098025.8A patent/CN108399318B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101419652A (zh) * | 2008-08-22 | 2009-04-29 | 航天信息股份有限公司 | 一种软硬件结合的保护程序的方法 |
CN103166943A (zh) * | 2011-12-19 | 2013-06-19 | 北汽福田汽车股份有限公司 | 一种对电子控制单元ecu目标文件加密传输的方法及系统 |
CN106815135A (zh) * | 2015-11-30 | 2017-06-09 | 阿里巴巴集团控股有限公司 | 漏洞检测方法及装置 |
CN107545189A (zh) * | 2017-06-26 | 2018-01-05 | 新华三技术有限公司 | 一种文件获得方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN108399318A (zh) | 2018-08-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108399318B (zh) | 可执行文件的生成方法、执行方法及电子设备 | |
CN105103127B (zh) | 用于基于编译器的混淆的方法和计算设备 | |
US8966653B2 (en) | Method and apparatus for provisioning a mobile application | |
US10255450B2 (en) | Customer load of field programmable gate arrays | |
CN107103211B (zh) | Sdk发送、应用发布、应用运行方法及装置 | |
CN103902858A (zh) | 一种apk应用加固的方法及系统 | |
CN110008662B (zh) | 应用程序的运行方法、装置、电子设备及可读存储介质 | |
CN109145632A (zh) | 用于生成可追溯文件的方法及装置 | |
CN110796267A (zh) | 数据共享的机器学习方法和机器学习装置 | |
CN112214653B (zh) | 字符串识别方法、装置、存储介质及电子设备 | |
CN112256275B (zh) | 代码混淆方法、装置、电子设备及介质 | |
JP6698707B2 (ja) | バイナリ併合装置、その方法及び該コンピュータプログラム | |
CN107871066B (zh) | 基于安卓系统的代码编译方法及装置 | |
CN112966227A (zh) | 代码加密解密方法和装置、存储介质 | |
CN114925338A (zh) | 一种编译方法、装置、设备、介质和产品 | |
CN111427737B (zh) | 一种修改异常日志的方法、装置、及电子设备 | |
CN103605927A (zh) | 一种基于嵌入式Linux系统实现加密和解密方法 | |
KR102136656B1 (ko) | 스프레드시트에 입력된 메모에 대한 조건부 보안 설정 처리가 가능한 전자 단말 장치 및 그 동작 방법 | |
CN114154123B (zh) | 应用于Python项目的加密保护方法 | |
CN113836582A (zh) | 软件加密及解密方法、装置、电子设备和存储介质 | |
CN104657631A (zh) | 应用的渠道信息的处理方法及装置 | |
CN111274551B (zh) | 基于编译器的java代码保护方法、装置及电子设备 | |
CN109147747B (zh) | 一种加载调音参数的方法、播放设备、服务器及系统 | |
JP7015120B2 (ja) | アプリケーションパッケージを提供する方法およびシステム、アプリケーションを実行する方法およびシステム | |
CN110618967A (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 |