WO2017183087A1 - Dispositif de déchiffrement, procédé de compilation de déchiffrement et programme de compilation de déchiffrement - Google Patents

Dispositif de déchiffrement, procédé de compilation de déchiffrement et programme de compilation de déchiffrement Download PDF

Info

Publication number
WO2017183087A1
WO2017183087A1 PCT/JP2016/062292 JP2016062292W WO2017183087A1 WO 2017183087 A1 WO2017183087 A1 WO 2017183087A1 JP 2016062292 W JP2016062292 W JP 2016062292W WO 2017183087 A1 WO2017183087 A1 WO 2017183087A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
decryption
compilation
unit
compiled
Prior art date
Application number
PCT/JP2016/062292
Other languages
English (en)
Japanese (ja)
Inventor
純 種子
Original Assignee
三菱電機株式会社
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 三菱電機株式会社 filed Critical 三菱電機株式会社
Priority to PCT/JP2016/062292 priority Critical patent/WO2017183087A1/fr
Priority to PCT/JP2017/009880 priority patent/WO2017183357A1/fr
Publication of WO2017183087A1 publication Critical patent/WO2017183087A1/fr

Links

Images

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]
    • G06F21/12Protecting executable software
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/10Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols with particular housing, physical features or manual controls

Definitions

  • the present invention relates to a technique for decrypting an encrypted program.
  • Patent Document 1 There is a technique described in Patent Document 1 as a technique for protecting an application program running on a browser.
  • the confidentiality of a program is maintained by decrypting an encrypted script in a secure Virtual Mactine (hereinafter referred to as VM) environment.
  • VM Virtual Mactine
  • Patent Document 2 The method described in Patent Document 2 can be realized in a browser-only environment. However, since XMLHttpRequest is used, Push communication for establishing communication from the server device at regular intervals is periodically sent to the client device. There is a need to do.
  • the main object of the present invention is to solve such a problem, and it is a main object to prevent leakage of program source code due to debugging.
  • the decoding device provides: A multi-threaded decoding device, In the main thread, a decryption key receiving unit that receives a decryption key from the encryption device; After receiving the decryption key by the decryption key receiving unit, in the sub-thread, the encryption program obtained by encrypting the pre-compiled program by the encryption device is received from the encryption device and received.
  • a decryption compiling unit that decrypts an encrypted program using the decryption key to obtain the program before compilation, and compiles the obtained program before compilation.
  • the encrypted program is decrypted and the program obtained by the decryption is compiled.
  • the source code of the compiled program cannot be deciphered. For this reason, according to the present invention, it is possible to prevent leakage of the source code of the program due to debugging.
  • FIG. 3 is a diagram illustrating an example of a system configuration according to the first embodiment.
  • FIG. 3 is a diagram illustrating a hardware configuration example of a server device according to the first embodiment.
  • FIG. 3 is a diagram illustrating a hardware configuration example of a client device according to the first embodiment.
  • FIG. 3 is a diagram illustrating a thread configuration in the client device according to the first embodiment.
  • FIG. 6 is a flowchart showing an operation example of a main thread and a worker thread in the client device according to the first embodiment.
  • FIG. 3 is a diagram illustrating a functional configuration example of a server device and a client device according to the first embodiment.
  • FIG. 10 is a flowchart showing an operation example of a main thread and a worker thread in the client device according to the second embodiment.
  • FIG. 10 is a flowchart showing an operation example of a main thread and a worker thread in the client device according to the second embodiment.
  • Embodiment 1 FIG. ***Overview***
  • the network is not limited to a wired network but may be a wireless network such as Wi-Fi.
  • the server device 100 is an example of an encryption device.
  • the client device 200 is an example of a decryption device.
  • the operations performed by the client device 200 are examples of a decryption compilation method and a decryption compilation program.
  • the client device 200 receives an encryption program and a decryption key for decrypting the encryption program from the server device 100 using a browser.
  • the encryption program is an encrypted program before compilation.
  • the browser of the client device 200 includes a function called WebWorker that operates multithread. In WebWorker, parallel processing is possible in a main thread and a worker thread as a sub thread. The debugging function does not work for processing in worker threads.
  • the browser of the client device 200 has a function for displaying 3D graphics called WebGL.
  • the client device 200 can implement 3D graphics by executing a Shader program (hereinafter also simply referred to as “Shader”) and performing a shadowing process on a 3D object.
  • Shader Shader program
  • the client device 200 In order to perform 3D display using WebGL in the browser, it is necessary to compile the Shader program on the browser and to perform a setting called attach to the compiled Shader program on the browser. If the pre-compiled Shader program is decrypted by a third party, the source code of the Shader program will be leaked. On the other hand, the compiled Shader program is not likely to be deciphered by a third party. That is, leakage of the source code of the Shader program immediately before compilation becomes a problem. For this reason, the client device 200 according to the present embodiment decrypts the encrypted pre-compilation Shader program in a worker thread where the debugging function does not work, and obtains the pre-compilation Shader program.
  • the client device 200 according to the present embodiment compiles the pre-compilation Shader program obtained by decoding in the worker thread, and outputs the post-compilation Shader program to the main thread. With such a procedure, the client device 200 according to the present embodiment can execute the Shader program and perform 3D display without leaking the source code of the Shader program.
  • FIG. 2 shows a hardware configuration example of the server apparatus 100 according to the present embodiment.
  • FIG. 3 shows a hardware configuration example of the client apparatus 200 according to the present embodiment.
  • FIG. 4 shows a thread configuration in the browser 208 of the client device 200 according to the present embodiment.
  • FIG. 6 shows an example of the functional configuration of the server device 100 and the client device 200 according to the present embodiment.
  • the server device 100 is a computer including a processor 101, a memory 102, a display device 103, an input device 104, an auxiliary storage device 105, and a communication device 106.
  • the processor 101 is a CPU (Central Processing Unit).
  • the memory 102 is a RAM (Random Access Memory).
  • the display device 103 is a display.
  • the input device 104 is a keyboard and a mouse.
  • the auxiliary storage device 105 is a flash memory or an HDD (Hard Disk Drive).
  • the communication device 106 is a communication chip or a NIC (Network Interface Card).
  • the auxiliary storage device 105 stores programs that realize the functions of the user authentication unit 401, the key generation unit 402, and the encryption unit 403 shown in FIG. Then, these programs are loaded from the auxiliary storage device 105 to the memory 102, and the processor 101 executes these programs, thereby performing operations of a user authentication unit 401, a key generation unit 402, and an encryption unit 403, which will be described later.
  • FIG. 2 schematically illustrates a state in which the processor 101 is executing a program that implements the functions of the user authentication unit 401, the key generation unit 402, and the encryption unit 403.
  • the client device 200 is a computer including a processor 201, a memory 202, a display device 203, an input device 204, an auxiliary storage device 205, a GPU (Graphics Processing Unit) 206, and a communication device 207.
  • the processor 201 is a CPU.
  • the memory 202 is a RAM.
  • the display device 103 is a display.
  • the input device 104 is a keyboard and a mouse.
  • the auxiliary storage device 105 is a flash memory or an HDD.
  • the communication device 207 is a communication chip or a NIC.
  • the auxiliary storage device 105 stores programs that realize the functions of the browser 208, WebApp 300, control unit 303, and decryption compilation unit 305 shown in FIG.
  • the browser 208 includes a WebApp 300
  • the WebApp 300 includes a control unit 303 and a decryption compilation unit 305. Details of the browser 208, WebApp 300, control unit 303, and decryption compilation unit 305 will be described later.
  • these programs are loaded from the auxiliary storage device 205 to the memory 202, and the processor 201 executes these programs, thereby performing operations of a browser 208, a WebApp 300, a control unit 303, and a decryption compilation unit 305 described later.
  • FIG. 3 schematically shows a state in which the processor 201 is executing a program that implements the functions of the browser 208, WebApp 300, control unit 303, and decryption compilation unit 305.
  • the client device 200 operates in multithread.
  • FIG. 4 shows a configuration example of a WebGL web application (hereinafter referred to as WebApp) 300 described in Java Script (registered trademark) of HTML (HyperText Markup Language) 5 running on the browser 208.
  • WebApp 300 includes a main thread 301 and a worker thread 302 that is a sub thread.
  • the main thread 301 and the worker thread 302 are threads generated using the multi-thread function (WebWorker) of HTML5.
  • the main thread 301 and the worker thread 302 can communicate with each other (inter-thread communication).
  • the user authentication unit 401 performs user authentication processing of the client device 200.
  • the key generation unit 402 generates an encryption key for encrypting the Shader program and a decryption key for decrypting the encrypted Shader program.
  • the encryption unit 403 encrypts the Shader program using the encryption key generated by the key generation unit 402. As described above, the Shader program to be encrypted is a pre-compiled Shader program.
  • the control unit 303 operates on the main thread 301. More specifically, the control unit 303 receives the decryption key from the server device 100 in the main thread 301. Further, after receiving the decryption key from the server device 100, the control unit 303 generates a worker thread in which the decryption compilation unit 305 operates. In addition, the control unit 303 executes a Shader program and performs drawing processing using WebGL.
  • the control unit 303 is an example of a decryption key receiving unit.
  • the operation performed by the control unit 303 is an example of a decryption key reception process.
  • the decryption compilation unit 305 operates on the worker thread 302. More specifically, after receiving the decryption key by the control unit 303, the decryption compilation unit 305 uses the worker thread 302 to encrypt the pre-compilation Shader program encrypted by the server device 100 from the server device 100. Receive the customization program. Furthermore, the decryption compiling unit 305 obtains a pre-compiled Shader program by decrypting the received encrypted program using the decryption key in the worker thread 302. Further, the decryption compilation unit 305 compiles the acquired pre-compilation Shader program in the worker thread 302. Then, the decryption compilation unit 305 outputs the compiled Shader program to the control unit 303 by inter-thread communication. The operation performed in the decryption compilation unit 305 is an example of decryption compilation processing.
  • FIG. 5 shows an operation example of the client device 200.
  • FIG. 5 shows the operation in the main thread 301 and the operation in the worker thread 302.
  • the control unit 303 operates in the main thread 301
  • the decryption compilation unit 305 operates in the worker thread 302.
  • the control unit 303 performs user authentication (step S 303), thread generation (step S 304), attachment processing to Shader (step S 309), and drawing processing using WebGL (step 310).
  • the decryption compiling unit 305 performs encryption program acquisition (step S305), decryption (step S306), Shader Compile (step S307), and object storage (step S308).
  • the main thread 301 When the WebApp 300 is operated by the browser 208, the main thread 301 is activated first. In the main thread 301, the control unit 303 performs user authentication in step S303. In the user authentication, the control unit 303 acquires user identification information for identifying the user of the client device 200 from the input device 204. The user identification information is, for example, an ID (Identifier) and a password. And the control part 303 transmits user identification information to the server apparatus 100 via a network.
  • ID Identity
  • the user authentication unit 401 of the server apparatus 100 performs user authentication using the user identification information, and when the user authentication is successful, the key generation unit 402 generates an encryption key and a decryption key.
  • the key generation unit 402 generates an encryption key and a decryption key using an algorithm such as PGP (Pretty Good Privacy) or RSA (registered trademark), for example.
  • the decryption key includes information necessary for decryption. Then, the key generation unit 402 transmits the decryption key to the client device 200.
  • the control unit 303 receives the decryption key transmitted from the server device 100, and generates a worker thread 302 in step S304.
  • the decryption compiling unit 305 is activated by the generation of the worker thread 302. Then, the control unit 303 passes the decryption key received from the server device 100 to the decryption compilation unit 305 on the worker thread 302.
  • step S305 the decryption compiling unit 305 requests the server apparatus 100 to transmit the encryption program via the network, and receives the encryption program from the server apparatus 100.
  • the encryption unit 403 encrypts the pre-compiled Shader program using the encryption key generated by the key generation unit 402.
  • the encryption program obtained by the encryption can be decrypted with the decryption key held by the decryption compilation unit 305. Then, the encryption unit 403 transmits the encryption program to the client device 200.
  • step S306 the decryption compiling unit 305 decrypts the encrypted program using the decryption key.
  • the decoding and compiling unit 305 obtains a pre-compiled Shader program. More specifically, the decryption compilation unit 305 obtains VertexShader and FragmentShader.
  • step S307 the decryption compilation unit 305 compiles VertexShader and FragmentShader.
  • step S308 the decryption compilation unit 305 stores the Shader program (two Shader objects) obtained by the compilation as an array in one object. Then, the decryption compilation unit 305 returns an object in which two Shader objects are stored to the control unit 303 of the main thread 301 as a return value. When a return value is returned, the worker thread 302 is released and the decryption compilation unit 305 ends the process.
  • the control unit 303 performs attachment processing to the Shader program in step S309 based on the return value from the decryption compilation unit 305. Specifically, the control unit 303 attaches a return value VertexShader Shader object and a Fragment Shader Shader object. Note that attaching means inputting a Shader object to WebGL and setting parameters.
  • step S310 the control unit 303 executes the Shader object and performs drawing processing using WebGL.
  • FIG. 1 an example will be described in which the time from the encryption program acquisition (step S305) to the attachment process (step S309) shown in FIG. 5 is measured.
  • the system configuration according to the present embodiment is as shown in FIG.
  • the hardware configuration of the server apparatus 100 is as shown in FIG.
  • the hardware configuration of the client device 200 is as shown in FIG.
  • the functional configurations of the server apparatus 100 and the client apparatus 200 are as shown in FIG.
  • differences from the first embodiment will be mainly described. Further, matters not described below are the same as those in the first embodiment.
  • FIG 7 and 8 show an operation example of the client device 200 according to the present embodiment.
  • Steps S303 and S304 are the same as those shown in FIG. That is, the control unit 303 receives the decryption key from the server device 100 in the main thread 301 and generates the worker thread 302. In step S311, the control unit 303 starts time measurement.
  • step S3050 the decryption compiling unit 305 receives, from the server device 100, the dummy encryption program obtained by encrypting the pre-compiled dummy program by the server device 100 in the worker thread 302.
  • the dummy program is a dummy Shader program.
  • Step S3050 is the same as step S305 except that the reception target program is a dummy encryption program.
  • step S3060 the decryption compiling unit 305 uses the decryption key to decrypt the dummy encryption program in the worker thread 302 to obtain a pre-compilation dummy program.
  • Step S3060 is the same as step S306 except that the program to be decrypted is a dummy encryption program.
  • step S3070 the decryption compilation unit 305 compiles the obtained dummy program before compilation in the worker thread 302 to obtain a dummy program after compilation.
  • Step S3070 is the same as step S307 except that the program to be compiled is a dummy program.
  • step S3080 the decryption compilation unit 305 stores the dummy Shader program (two Shader objects) obtained by compiling in the worker thread 302 as an array in one object. Then, the decryption compilation unit 305 returns an object in which two Shader objects are stored to the control unit 303 of the main thread 301 as a return value.
  • Step S3080 is the same as step S308 except that the two Shader objects are dummy Shader program objects.
  • step S3090 the control unit 303 performs an attachment process to the dummy Shader program in the main thread 301 based on the return value from the decryption compilation unit 305.
  • Step S3090 is the same as step S309, except that the program to be attached is a dummy Shader program.
  • step S312 the control unit 303 ends the time measurement.
  • the time measured between step S311 and step S312 is referred to as a first processing time.
  • step S313 the control unit 303 starts time measurement again.
  • Steps S305 to S309 are the same as S305 to S309 shown in FIG. That is, the decryption compilation unit 305 receives from the server device 100 an encrypted program obtained by encrypting the pre-compiled Shader program. Also, the decryption compiling unit 305 decrypts the encrypted program using the decryption key to obtain a pre-compiled Shader program. Then, the decryption compiling unit 305 compiles the Shader program, stores two Shader objects in one object, and returns a return value to the control unit 303. The control unit 303 performs an attach process to the Shader program based on the return value.
  • step S314 the control unit 303 ends the time measurement.
  • the time measured between steps S313 and S314 is referred to as a second processing time.
  • step S315 the control unit 303 performs an abnormality detection process using the first processing time and the second processing time.
  • the control unit 303 compares the first processing time and the second processing time, and when the difference between the first processing time and the second processing time is equal to or greater than a threshold value. It is determined that an abnormality has occurred. That is, the control unit 303 determines that an unauthorized process has been performed. Then, the control unit 303 notifies the server device 100 that unauthorized processing has been performed.
  • the server apparatus 100 prevents reverse engineering by freezing the user account of the user of the client apparatus 200.
  • the time (first processing time) from the reception of the dummy encryption program by the decryption compiling unit 305 to the regulation processing (attach processing) by the control unit 303, the decryption compiling unit Abnormality can be detected by comparing the time (second processing time) from the reception of the encryption program by 305 to the prescribed processing (attach processing) in the control unit 303.
  • the auxiliary storage device 105 stores an OS (Operating System). At least a part of the OS is executed by the processor 101.
  • the processor 101 executes a program that realizes the functions of the user authentication unit 401, the key generation unit 402, and the encryption unit 403 while executing at least a part of the OS.
  • the processor 101 executes the OS, task management, memory management, file management, communication control, and the like are performed.
  • the auxiliary storage device 205 stores an OS. Then, at least a part of the OS is executed by the processor 201.
  • the processor 201 executes a program that realizes the functions of the browser 208, WebApp 300, control unit 303, and decryption compilation unit 305 while executing at least a part of the OS.
  • the processor 201 executes the OS, task management, memory management, file management, communication control, and the like are performed.
  • information, data, signal values, and variable values indicating the processing results of the user authentication unit 401, the key generation unit 402, and the encryption unit 403 are stored in the memory 102, the auxiliary storage device 105, or the processor 101. Stored in a register or cache memory.
  • a program for realizing the functions of the user authentication unit 401, the key generation unit 402, and the encryption unit 403 is stored in a portable storage medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, and a DVD. It may be stored.
  • information, data, signal values, and variable values indicating the processing results of the browser 208, WebApp 300, control unit 303, and decryption compilation unit 305 are stored in the memory 102, the auxiliary storage device 105, or the processor 201. Stored in a register or cache memory. Further, programs for realizing the functions of the browser 208, the WebApp 300, the control unit 303, and the decryption compilation unit 305 are stored in a portable storage medium such as a magnetic disk, a flexible disk, an optical disk, a compact disk, a Blu-ray (registered trademark) disk, or a DVD. May be.
  • the browser 208, WebApp 300, control unit 303, decryption compilation unit 305, user authentication unit 401, key generation unit 402, and encryption unit 403 are replaced with “circuit” or “process” or “procedure” or “processing”. Also good.
  • the server apparatus 100 and the client apparatus 200 may be implemented by electronic circuits such as logic IC (Integrated Circuit), GA (Gate Array), ASIC (Application Specific Integrated Circuit), and FPGA (Field-Programmable Gate Array), respectively. Good.
  • the processor and the electronic circuit are also collectively referred to as a processing circuit.
  • server device 101 processor, 102 memory, 103 display device, 104 input device, 105 auxiliary storage device, 106 communication device, 200 client device, 201 processor, 202 memory, 203 display device, 204 input device, 205 auxiliary storage device, 206 GPU, 207 communication device, 208 browser, 300 WebApp, 301 main thread, 302 worker thread, 303 control unit, 305 decryption compilation unit, 401 user authentication unit, 402 key generation unit, 403 encryption unit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Technology Law (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Stored Programmes (AREA)

Abstract

Selon l'invention, un dispositif client (200) fonctionne sur de multiples fils. Une unité de commande (303) reçoit, dans un fil principal, une clé de chiffrement d'un dispositif serveur (100). Après avoir reçu une clé de chiffrement de l'unité de commande (303), l'unité de compilation de déchiffrement (305) reçoit, du dispositif serveur (100) dans un sous-fil, un programme chiffré obtenu par le dispositif serveur (100) chiffrant un programme de pré-compilation, puis déchiffre le programme chiffré reçu à l'aide d'une clé de déchiffrement afin d'obtenir le programme de pré-compilation et compile le programme de pré-compilation ainsi obtenu.
PCT/JP2016/062292 2016-04-18 2016-04-18 Dispositif de déchiffrement, procédé de compilation de déchiffrement et programme de compilation de déchiffrement WO2017183087A1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2016/062292 WO2017183087A1 (fr) 2016-04-18 2016-04-18 Dispositif de déchiffrement, procédé de compilation de déchiffrement et programme de compilation de déchiffrement
PCT/JP2017/009880 WO2017183357A1 (fr) 2016-04-18 2017-03-13 Dispositif de déchiffrement, procédé de déchiffrement-compilation et programme de déchiffrement-compilation

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2016/062292 WO2017183087A1 (fr) 2016-04-18 2016-04-18 Dispositif de déchiffrement, procédé de compilation de déchiffrement et programme de compilation de déchiffrement

Publications (1)

Publication Number Publication Date
WO2017183087A1 true WO2017183087A1 (fr) 2017-10-26

Family

ID=60116071

Family Applications (2)

Application Number Title Priority Date Filing Date
PCT/JP2016/062292 WO2017183087A1 (fr) 2016-04-18 2016-04-18 Dispositif de déchiffrement, procédé de compilation de déchiffrement et programme de compilation de déchiffrement
PCT/JP2017/009880 WO2017183357A1 (fr) 2016-04-18 2017-03-13 Dispositif de déchiffrement, procédé de déchiffrement-compilation et programme de déchiffrement-compilation

Family Applications After (1)

Application Number Title Priority Date Filing Date
PCT/JP2017/009880 WO2017183357A1 (fr) 2016-04-18 2017-03-13 Dispositif de déchiffrement, procédé de déchiffrement-compilation et programme de déchiffrement-compilation

Country Status (1)

Country Link
WO (2) WO2017183087A1 (fr)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184690A (ja) * 1997-12-24 1999-07-09 Fujitsu Ltd 暗号復元を行う翻訳装置およびその方法
JP2001134337A (ja) * 1999-08-05 2001-05-18 Canon Inc 暗号解読コンパイラ
JP2006129063A (ja) * 2004-10-28 2006-05-18 Fujitsu Ltd コンテンツ再生方法、再生プログラム、および再生装置
JP2007094728A (ja) * 2005-09-28 2007-04-12 Digital Electronics Corp 情報処理装置、情報処理システム、プログラムおよび記録媒体

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11184690A (ja) * 1997-12-24 1999-07-09 Fujitsu Ltd 暗号復元を行う翻訳装置およびその方法
JP2001134337A (ja) * 1999-08-05 2001-05-18 Canon Inc 暗号解読コンパイラ
JP2006129063A (ja) * 2004-10-28 2006-05-18 Fujitsu Ltd コンテンツ再生方法、再生プログラム、および再生装置
JP2007094728A (ja) * 2005-09-28 2007-04-12 Digital Electronics Corp 情報処理装置、情報処理システム、プログラムおよび記録媒体

Also Published As

Publication number Publication date
WO2017183357A1 (fr) 2017-10-26

Similar Documents

Publication Publication Date Title
Gröbert et al. Automated identification of cryptographic primitives in binary programs
KR101350390B1 (ko) 코드 난독화 장치 및 그 방법
US20120079282A1 (en) Seamless end-to-end data obfuscation and encryption
CN102737202B (zh) 利用迭代加密/解密密钥更新的指令加密/解密设备和方法
US20160203087A1 (en) Method for providing security for common intermediate language-based program
KR101216995B1 (ko) 인덱스 테이블 기반 코드 암호화 및 복호화 장치 및 그 방법
US9501646B2 (en) Program verification apparatus, program verification method, and computer readable medium
CN109284585B (zh) 一种脚本加密方法、脚本解密运行方法和相关装置
Ceccato et al. A large study on the effect of code obfuscation on the quality of java code
CN103988467A (zh) 确保软件加密技术安全的加密***和方法
CN104298932A (zh) 一种so文件的调用方法及装置
US10282312B2 (en) Integrated circuit, method for protecting an integrated circuit and computer program product
Protsenko et al. Dynamic self-protection and tamperproofing for android apps using native code
US9071420B2 (en) Information processing apparatus, tampering detection apparatus, information processing method, tampering detection method, and computer product
CN107871066B (zh) 基于安卓***的代码编译方法及装置
CN105229652A (zh) 检测针对软件应用的利用
Wang et al. On statistical distance based testing of pseudo random sequences and experiments with PHP and Debian OpenSSL
Holder et al. Evaluating optimal phase ordering in obfuscation executives
Graf et al. Checking applications using security APIs with JOANA
Feichtner A comparative study of misapplied crypto in Android and iOS applications
CN106462701A (zh) 以抵抗外部监视攻击的方式执行密码编译数据处理操作
WO2017183087A1 (fr) Dispositif de déchiffrement, procédé de compilation de déchiffrement et programme de compilation de déchiffrement
CN115828228A (zh) 一种验证内存马检测能力的方法、装置及电子设备
CN106372464A (zh) 一种嵌入式***中静态库文件的防盗版加密方法
JP5549810B2 (ja) プログラム難読化装置、プログラム制御装置、プログラム難読化方法及びプログラム

Legal Events

Date Code Title Description
NENP Non-entry into the national phase

Ref country code: DE

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 16899361

Country of ref document: EP

Kind code of ref document: A1

122 Ep: pct application non-entry in european phase

Ref document number: 16899361

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP