WO2010077000A2 - 소프트웨어 분리 실행 방법, 장치 및 컴퓨터로 읽을 수 있는 기록매체 - Google Patents
소프트웨어 분리 실행 방법, 장치 및 컴퓨터로 읽을 수 있는 기록매체 Download PDFInfo
- Publication number
- WO2010077000A2 WO2010077000A2 PCT/KR2009/007648 KR2009007648W WO2010077000A2 WO 2010077000 A2 WO2010077000 A2 WO 2010077000A2 KR 2009007648 W KR2009007648 W KR 2009007648W WO 2010077000 A2 WO2010077000 A2 WO 2010077000A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- software
- attribute information
- module
- execution
- present
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 31
- 238000004458 analytical method Methods 0.000 claims abstract description 17
- 230000006870 function Effects 0.000 claims description 24
- 238000011156 evaluation Methods 0.000 claims description 18
- 238000000605 extraction Methods 0.000 claims description 10
- 230000008569 process Effects 0.000 claims description 4
- 238000002347 injection Methods 0.000 claims description 2
- 239000007924 injection Substances 0.000 claims description 2
- 238000000926 separation method Methods 0.000 claims description 2
- 230000009466 transformation Effects 0.000 claims description 2
- 238000012545 processing Methods 0.000 abstract description 4
- 230000003068 static effect Effects 0.000 abstract description 2
- 238000012795 verification Methods 0.000 description 6
- 238000006243 chemical reaction Methods 0.000 description 5
- 238000004590 computer program Methods 0.000 description 4
- 230000004913 activation Effects 0.000 description 3
- 238000005259 measurement Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000010586 diagram Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 241000169170 Boreogadus saida Species 0.000 description 1
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000002547 anomalous effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000007519 figuring Methods 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/3089—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents
- G06F11/3096—Monitoring arrangements determined by the means or processing involved in sensing the monitored data, e.g. interfaces, connectors, sensors, probes, agents wherein the means or processing minimize the use of computing system or of computing system component resources, e.g. non-intrusive monitoring which minimizes the probe effect: sniffing, intercepting, indirectly deriving the monitored data from other directly available data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3476—Data logging
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/30—Monitoring
- G06F11/34—Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
- G06F11/3466—Performance evaluation by tracing or monitoring
- G06F11/3495—Performance evaluation by tracing or monitoring for systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/36—Preventing errors by testing or debugging software
- G06F11/3604—Software analysis for verifying properties of programs
- G06F11/3612—Software analysis for verifying properties of programs by runtime analysis
-
- 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
-
- 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/123—Restricting unauthorised execution of programs by using dedicated hardware, e.g. dongles, smart cards, cryptographic processors, global positioning systems [GPS] devices
Definitions
- the present invention relates to a method for executing software separation, an apparatus and a computer readable recording medium. More specifically, it analyzes control flows, data flows, and module structures for specific software through static binary analysis or runtime profiling (ie dynamic analysis) for specific software.
- the module is identified and separated from the main body and stored in a smart card with a secure execution environment.
- the user terminal stores a modified main body with the module removed and replaced with an interface code.
- smart card co-processing Co-Processing
- the present invention relates to a software separation execution method, a device and a computer-readable recording medium that can be implemented only when the smart card is fastened to the user terminal.
- the CD-Key for activation is exposed to the user for input in plain text format, the CD-Key and the CD-ROM are copied as they are, and the third party illegally uses them. have. Moreover, even if they do not have a CD-Key, they use the illegally created CD-Key Generation Program or crack the CD-Key Authentication Program to hack the software activation method. Sharing is a major threat to software copyright protection.
- the present invention provides a method for separating and executing a software, and a computer-readable recording medium, which can be implemented only when a smart card is fastened to a user terminal. There is a purpose.
- an analysis unit for finding any one of the control flow, data flow and module structure of the software;
- a profiling unit for tagging execution state and attribute information for each module of the software;
- An evaluation unit for assigning scores based on attribute information and user feedback to the profiled function module;
- An extraction unit for separating the modules having the highest score in the evaluation unit from the body of the software;
- an interfacing unit for inserting an input / output interfacing code for connecting the module separated from the main body and the binary code for the user terminal.
- the step of finding any one of the control flow, data flow and module structure of the software Tagging execution state and attribute information for each module of the software; Assigning scores based on attribute information and user feedback to the profiled functional module; Separating the modules having the highest score from the evaluation unit from a body of software; And inserting an input / output interfacing code for connecting the module separated from the main body and the binary code for the user terminal.
- Another object of the present invention is to provide a computer-readable recording medium having recorded thereon a program for executing each step of the above-described software separation execution method.
- the present invention compared to existing software copy protection technologies, by protecting the code in a physically secure execution environment called a smart card, it is possible to prevent cracks through reverse engineering. have.
- a copy protection effect is generated in a client-server type Co-Processing Scheme between a smart card and a user terminal, anti-debugging dependent on the system architecture. There is no need to rely on techniques or methods of obfuscating and complex code decryption, thereby reducing the effort of consuming security patches with crack techniques.
- by installing additional functions in the user terminal environment for data communication protection with a special track of a dongle or optical media, reverse engineering tool detection, and the like the possibility of an error occurring can be reduced. It can be effective.
- FIG. 1 is a block diagram schematically showing a software separation execution apparatus according to the present embodiment
- FIG. 2 is a flowchart illustrating a method of executing software separation according to the present embodiment.
- FIG. 1 is a block diagram schematically showing a software separation execution apparatus according to the present embodiment.
- the software separation execution apparatus 100 may include an analysis unit 110, a profiling unit 120, an evaluation unit 130, an extraction unit 140, An interfacing unit 150, a transformation unit 160, and a verification unit 170 are included.
- the software separation execution apparatus 100 includes the analysis unit 110, the profiling unit 120, the evaluation unit 130, the extraction unit 140, the interface unit 150, the conversion unit 160, and the verification unit. It is described as being configured to include only 170, but this is only illustrative of the technical idea of the present embodiment, those skilled in the art to which this embodiment belongs does not depart from the essential characteristics of this embodiment Various modifications and variations to the components included in the software separation execution apparatus 100 may be applied.
- the analysis unit 110 is a semantic analysis or interpreter in a state in which a binary file built with an object code is disassembled or a source file. Try running a summary (interpreter the input data and control flow) using Interpreter (anomalous semantic analysis), or run the software under analysis in source state or binary code. Insert the tracking code for tracing the function module and accumulate the logs while performing the actual execution (abnormal dynamic analysis) to execute the control, data flow, and module structure. Perform the task of figuring out the structure.
- the analysis unit 110 includes a summary execution interpreter for instrumentation, runtime debugger, virtual machine, and execution state prediction through dynamic code injection or source modification. Monitor or predict the operating status of the software using at least one of the techniques.
- the analysis unit 110 of the present invention may be implemented as an instrumentation (Instrumentation) in a range not departing from the essential characteristics of the present invention.
- the measurement unit may be implemented by reading a binary code of software and inserting a tracking code for tracing a function module.
- the profiling unit 120 performs a function of generating an execution state and an attribute information tag for each module. Meanwhile, the profiling unit 120 generates tracing log information by executing software within a range not departing from the essential characteristics of the present invention, and generates a tag in each log for each software progress. It can be implemented by performing.
- the evaluation unit 130 performs a function of assigning a score to the profiled function module based on specific attribute information and user feedback.
- the evaluation unit 130 includes input / output dynamicity attribute information, essential element presence / absence attribute information for reaching a specific progress state, stack usage, memory reference count attribute information, and architecture specific instructions. Instruction) According to one or more of attribute information, usage frequency attribute information, usage time attribute information, execution load attribute information, control flow attribute information, independent variable number attribute information in module, and execution delay time attribute information at separation execution Perform the function of calculating the score. Meanwhile, the evaluation unit 130 may be implemented to perform a function of assigning a score calculated based on specific attribute information to the profiled function module without departing from the essential characteristics of the present invention.
- evaluation unit 130 input / output dynamicity attribute information, code runtime load attribute information, essential element presence information for reaching a specific progress state, memory reference count attribute information, architecture special instruction use attribute or not
- the score may be calculated according to at least one of attribute information and frequency of use attribute information.
- the extraction unit 140 separates the modules having the highest score from the evaluation unit from the body of the software.
- the extraction unit 140 does not separate the components for the architecture-specific instruction usage information and the system call in the process of separating the modules having the highest score from the main body of the software.
- the extraction unit 140 may be implemented to perform the function of separating the body of the function module obtained the highest score in the evaluation unit 130 in a range not departing from the essential characteristics of the present invention, separating the body
- the components for memory reference, architecture-specific instruction usage information, and system call may be implemented by not separating them.
- the interfacing unit 150 replaces input / output between code modules such as a stack push / pop and a register variable by a remote procedure call with a smart card.
- the user terminal refers to a terminal having a memory for calculating, controlling and storing software, a microprocessor for executing and controlling a program, and the like.
- a personal computer (PC) a notebook computer, a portable personal computer
- the terminal may be one of a personal digital assistant (PDA) and a mobile communication terminal.
- the interfacing unit 150 implements a function of inserting an input / output interfacing code for connecting a function module whose body is separated from a binary code for a user terminal without departing from the essential characteristics of the present invention. Can be.
- the interfacing unit 150 may be implemented to replace the input / output through the stack push / pop with the USB input / output.
- the conversion unit 160 converts the function module into which the interfacing code is inserted, according to the architecture of the smart card.
- the smart card refers to a plastic type card having an integrated microchip (IC chip) capable of processing a specific task by having a microprocessor, a card operating system, a security module, a memory, and the like.
- the verification unit 170 performs a function of verifying whether or not the normal operation by executing the code converted by the conversion unit.
- the software separation execution apparatus 100 may further include an emulation unit that virtually drives the heterogeneous architecture.
- FIG. 2 is a flowchart illustrating a method of executing software separation according to the present embodiment.
- the analysis unit 110 analyzes the control flow, data flow, and module structure of the software (S210). On the other hand, if the analysis unit 110 is implemented as a measurement unit within the scope not departing from the essential characteristics of the present invention, the measurement unit after tracing the Function Module (Function Module) after reading the binary code of the software (Binary Code) You can insert the tracking code for
- the profiling unit 120 generates an execution state and an attribute information tag for each module of the software (S220). Meanwhile, the profiling unit 120 may generate tracing log information by executing software in a range not departing from the essential characteristics of the present invention, and may generate a tag in each log for each software progress state. .
- the evaluation unit 130 may include input / output dynamicity attribute information, essential element presence / absence attribute information for reaching a specific progress state, stack usage, memory reference count attribute information, and architecture special instruction ( Architecture Specific Instruction)
- a score can be calculated according to one or more of the property information, whether or not the property information is used, the number of independent variables used in the module, the execution time, the amount of calculation, and the frequency of use property information.
- the evaluation unit 130 input and output dynamicity attribute information, code runtime load attribute information, essential element presence or absence attribute information for reaching a specific progress state, memory reference without departing from the essential characteristics of the present invention
- the score may be calculated according to one or more pieces of attribute information among the count attribute information, architecture special instruction use attribute information, and use frequency attribute information.
- the extraction unit 140 separates the module having the highest score in the evaluation unit from the main body of the software (S240). On the other hand, the extraction unit 140 does not separate the components for the memory reference, architecture specific instruction usage information and system call in the process of separating the module having the highest score from the body of the software.
- the interfacing unit 150 inserts an input / output interfacing code for connecting the functional module separated from the main body and the binary code for the user terminal (S250). For example, the interface unit 150 replaces input / output between modules such as a stack push / pop and a register variable in the form of a remote procedure call.
- the interfacing unit 150 may be implemented by inserting an input / output interfacing code for connecting a function module having a separate body and binary codes for a user terminal without departing from the essential characteristics of the present invention. In other words, the interface 150 may replace the input / output through the stack push / pop with the USB input / output.
- the conversion unit 160 converts the function module into which the interfacing code is inserted, according to the architecture of the smart card (S260).
- the verification unit 170 executes the converted code and the original code at the same time to compare the execution result of the original code to verify whether or not the normal operation of the converted code (S270).
- the verification unit 170 may be implemented by verifying whether or not the normal operation by executing the code converted in the conversion unit 160 without departing from the essential characteristics of the present invention.
- the software separation execution method is described as sequentially executing steps S210 to S270.
- this is merely illustrative of the technical idea of the present embodiment, and has a general knowledge in the technical field to which the present embodiment belongs.
- FIG. 2 is not limited to time-series order.
- the method for executing software separation according to the present embodiment described in FIG. 2 may be implemented in a program and recorded in a computer-readable recording medium.
- the computer-readable recording medium having recorded thereon a program for implementing the software separation execution method according to the present embodiment includes all kinds of recording devices for storing data that can be read by a computer system.
- Examples of such computer-readable recording media include ROM, RAM, CD-ROM, magnetic tape, floppy disk, optical data storage, and the like, and are implemented in the form of a carrier wave (for example, transmission over the Internet). It includes being.
- the computer readable recording medium can also be distributed over network coupled computer systems so that the computer readable code is stored and executed in a distributed fashion.
- the present invention is applicable to various fields that can be executed only when a smart card is fastened to a user terminal, so that software can be separated into an open computing environment such as a PC and a protected computing environment such as a smart card. It is a useful invention that produces the effect.
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Quality & Reliability (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Remote Sensing (AREA)
- Radar, Positioning & Navigation (AREA)
- Computing Systems (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims (7)
- 소프트웨어의 제어 흐름, 데이터 흐름 및 모듈 구조 중 어느 하나를 알아내는 분석 (Analysis)부;상기 소프트웨어의 각 모듈 별로 실행 상태 및 속성 정보를 태깅(Tagging)하는 프로파일링(Profiling)부;프로파일링 된 기능 모듈(Function Module)에 속성 정보와 사용자 피드백에 의한 점수를 부여하는 평가(Assessment)부;상기 평가부에서 가장 높은 점수를 획득한 모듈들을 소프트웨어의 본체 바디(Body)로부터 분리하는 추출(Exrtaction)부; 및상기 본체 바디로부터 분리된 모듈과 사용자 단말기용 바이너리 코드를 연결하기 위한 입출력 인터페이싱 코드를 삽입하는 인터페이싱(Interfacing)부를 포함하는 것을 특징으로 하는 소프트웨어 분리 실행 장치.
- 제 1 항에 있어서,상기 인터페이싱 코드가 삽입된 기능 모듈을 스마트 카드(Smart Card)의 아키텍처에 따라 명령어 설정(Instruction Set)을 변환하는 변환(Transformation)부; 및이종 아키텍처를 가상으로 구동해주는 에뮬레이션부를 추가로 포함하는 것을 특징으로 하는 소프트웨어 분리 실행 장치
- 제 1 항에 있어서,상기 평가부는,입출력 다이나믹시티(In/Output Dynamicity) 속성 정보, 특정 진행 상태에 도달하기 위한 필수 요소 유무 속성 정보, 스택 사용량, 메모리 레퍼런스(Memory Reference) 횟수 속성 정보, 아키텍처 특수 명령어(Architecture Specific Instruction) 사용 유무 속성 정보, 사용 빈도 속성 정보, 사용 시점 속성 정보, 실행 부하 속성 정보, 제어 흐름 속성 정보, 모듈내 독립변수 개수 속성 정보 및 분리실행시 실행 지연 시간 속성 정보 중 하나 이상의 속성 정보에 따라 상기 점수를 산출하는 것을 특징으로 하는 소프트웨어 분리 실행 장치.
- 제 1 항에 있어서,상기 추출부는,상기 본체 바디로부터 상기 가장 높은 점수를 획득한 모듈들을 분리하는 과정에서 아키텍처 특수 명령어 사용 정보 및 시스템 콜(System Call)에 대한 구성요소는 분리하지 않는 것을 특징으로 하는 소프트웨어 분리 실행 장치.
- 제 1 항에 있어서,상기 소프트웨어는,다이나믹 코드 인젝션(Dynamic Code Injection)을 통한 인스트루먼테이션(Instrumentation), 런타임(Runtime) 디버거(Debugger), 가상 머신(Virtual Machine) 및 실행 상태 예측을 위한 요약 실행 인터프리터(Interpreter) 중 적어도 하나 이상의 소프트웨어를 포함하는 것을 특징으로 하는 소프트웨어 분리 실행 장치.
- 소프트웨어의 제어 흐름, 데이터 흐름 및 모듈 구조 중 어느 하나를 알아내는 단계;상기 소프트웨어의 각 모듈 별로 실행 상태 및 속성 정보를 태깅(Tagging)하는 단계;프로파일링 된 기능 모듈에 속성 정보와 사용자 피드백에 의한 점수를 부여하는 단계;상기 평가부에서 가장 높은 점수를 획득한 모듈들을 소프트웨어의 본체 바디(Body)로부터 분리하는 단계; 및상기 본체 바디로부터 분리된 모듈과 사용자 단말기용 바이너리 코드를 연결하기 위한 입출력 인터페이싱 코드를 삽입하는 단계를 포함하는 것을 특징으로 하는 소프트웨어 분리 실행 방법.
- 제 6 항에 의한 소프트웨어 분리 실행 방법의 각 단계를 실행하기 위한 프로그램을 기록한 컴퓨터로 읽을 수 있는 기록매체.
Priority Applications (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
EP09836321A EP2383653A2 (en) | 2008-12-29 | 2009-12-21 | Method for separately executing software, apparatus, and computer-readable recording medium |
CN2009801533458A CN102272738B (zh) | 2008-12-29 | 2009-12-21 | 分离地执行软件的方法、装置和计算机可读记录介质 |
JP2011544360A JP5346386B2 (ja) | 2008-12-29 | 2009-12-21 | ソフトウェア分離実行方法、装置、及びコンピュータで読み取り可能な記録媒体 |
US13/142,601 US9454456B2 (en) | 2008-12-29 | 2009-12-21 | Method for separately executing software, apparatus, and computer-readable recording medium |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2008-0135308 | 2008-12-29 | ||
KR1020080135308A KR101049718B1 (ko) | 2008-12-29 | 2008-12-29 | 소프트웨어 분리 실행 방법, 장치 및 컴퓨터로 읽을 수 있는 기록매체 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2010077000A2 true WO2010077000A2 (ko) | 2010-07-08 |
WO2010077000A3 WO2010077000A3 (ko) | 2010-09-16 |
Family
ID=42310327
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/KR2009/007648 WO2010077000A2 (ko) | 2008-12-29 | 2009-12-21 | 소프트웨어 분리 실행 방법, 장치 및 컴퓨터로 읽을 수 있는 기록매체 |
Country Status (6)
Country | Link |
---|---|
US (1) | US9454456B2 (ko) |
EP (1) | EP2383653A2 (ko) |
JP (1) | JP5346386B2 (ko) |
KR (1) | KR101049718B1 (ko) |
CN (1) | CN102272738B (ko) |
WO (1) | WO2010077000A2 (ko) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014524088A (ja) * | 2011-06-30 | 2014-09-18 | オラクル・インターナショナル・コーポレイション | セキュアホスト実行アーキテクチャ |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2405958A (en) * | 2003-08-20 | 2005-03-16 | Macrovision Europ Ltd | Code obfuscation and controlling a processor by emulation |
US8752035B2 (en) | 2011-05-31 | 2014-06-10 | Microsoft Corporation | Transforming dynamic source code based on semantic analysis |
US8555250B2 (en) * | 2011-05-31 | 2013-10-08 | Microsoft Corporation | Static semantic analysis of dynamic languages |
US9256401B2 (en) | 2011-05-31 | 2016-02-09 | Microsoft Technology Licensing, Llc | Editor visualization of symbolic relationships |
US8789018B2 (en) | 2011-05-31 | 2014-07-22 | Microsoft Corporation | Statically derived symbolic references for dynamic languages |
US9081588B2 (en) * | 2012-01-31 | 2015-07-14 | Mentor Graphics Corporation | Execution time profiling for interpreted programming languages |
US9542176B2 (en) * | 2012-08-20 | 2017-01-10 | Microsoft Technology Licensing, Llc | Predicting software build errors |
US8954939B2 (en) | 2012-12-31 | 2015-02-10 | Microsoft Corporation | Extending a development environment |
US9239710B2 (en) * | 2013-03-15 | 2016-01-19 | ArtinSoft Corporation | Programming language transformations with abstract syntax tree extensions |
WO2016122336A1 (en) * | 2015-01-26 | 2016-08-04 | Nord-Systems Sp. Z O.O. | Method of storing and processing data with the use of artificial neural networks |
CN106203002B (zh) * | 2015-05-06 | 2019-09-03 | 朗新科技股份有限公司 | 软件产品保护方法 |
US11516234B1 (en) * | 2019-07-08 | 2022-11-29 | Cisco Technology, Inc. | In-process correlation through class field injection |
CN111163066A (zh) * | 2019-12-16 | 2020-05-15 | 苏州哈度软件有限公司 | 一种基于云计算的网络安全软件系统 |
CN114858206A (zh) * | 2022-03-01 | 2022-08-05 | 中国商用飞机有限责任公司北京民用飞机技术研究中心 | 航空电机检测方法、装置、计算机设备及存储介质 |
CN116320720B (zh) * | 2023-05-08 | 2023-09-29 | 南京芯驰半导体科技有限公司 | 一种图像处理方法、装置、设备及存储介质 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
NO302388B1 (no) * | 1995-07-13 | 1998-02-23 | Sigurd Sigbjoernsen | Fremgangsmåte og anordning for å beskytte programvare mot bruk uten tillatelse |
CA2245822A1 (en) * | 1996-02-09 | 1997-08-14 | Integrated Technologies Of America, Inc. | Access control/crypto system |
US6308270B1 (en) * | 1998-02-13 | 2001-10-23 | Schlumberger Technologies, Inc. | Validating and certifying execution of a software program with a smart card |
JP3449256B2 (ja) | 1998-10-29 | 2003-09-22 | 日本電気株式会社 | クライアント/サーバアプリケーション作成方法及びその装置並びに情報記録媒体 |
US6823520B1 (en) * | 1999-01-22 | 2004-11-23 | Sun Microsystems, Inc. | Techniques for implementing security on a small footprint device using a context barrier |
US7200842B1 (en) | 1999-02-02 | 2007-04-03 | Sun Microsystems, Inc. | Object-oriented instruction set for resource-constrained devices |
US6892307B1 (en) * | 1999-08-05 | 2005-05-10 | Sun Microsystems, Inc. | Single sign-on framework with trust-level mapping to authentication requirements |
US6609198B1 (en) | 1999-08-05 | 2003-08-19 | Sun Microsystems, Inc. | Log-on service providing credential level change without loss of session continuity |
US6813693B2 (en) * | 2000-12-11 | 2004-11-02 | Microsoft Corporation | System and method for the discovery and use of repetitively accessed data |
US7313814B2 (en) * | 2003-04-01 | 2007-12-25 | Microsoft Corporation | Scalable, error resilient DRM for scalable media |
US7369982B2 (en) * | 2003-06-04 | 2008-05-06 | Stmicroelectronics, Inc. | Multi-mode smart card emulator and related methods |
WO2005076576A2 (en) * | 2004-02-03 | 2005-08-18 | Sandisk Secure Content Solutions, Inc. | Protection of digital data content |
JP4664055B2 (ja) * | 2004-12-10 | 2011-04-06 | 株式会社エヌ・ティ・ティ・ドコモ | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 |
JP4572121B2 (ja) | 2005-01-31 | 2010-10-27 | 株式会社シーイーシー | ソフトウェア開発支援装置およびソフトウェア開発支援用プログラム |
CN100461132C (zh) * | 2007-03-02 | 2009-02-11 | 北京邮电大学 | 基于源代码静态分析的软件安全代码分析器及其检测方法 |
US7942325B2 (en) * | 2008-01-29 | 2011-05-17 | Research In Motion Limited | Optimized smart card driver performance |
-
2008
- 2008-12-29 KR KR1020080135308A patent/KR101049718B1/ko active IP Right Grant
-
2009
- 2009-12-21 CN CN2009801533458A patent/CN102272738B/zh not_active Expired - Fee Related
- 2009-12-21 JP JP2011544360A patent/JP5346386B2/ja not_active Expired - Fee Related
- 2009-12-21 WO PCT/KR2009/007648 patent/WO2010077000A2/ko active Application Filing
- 2009-12-21 US US13/142,601 patent/US9454456B2/en not_active Expired - Fee Related
- 2009-12-21 EP EP09836321A patent/EP2383653A2/en not_active Withdrawn
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2014524088A (ja) * | 2011-06-30 | 2014-09-18 | オラクル・インターナショナル・コーポレイション | セキュアホスト実行アーキテクチャ |
Also Published As
Publication number | Publication date |
---|---|
CN102272738A (zh) | 2011-12-07 |
CN102272738B (zh) | 2013-11-13 |
EP2383653A2 (en) | 2011-11-02 |
KR101049718B1 (ko) | 2011-07-19 |
JP5346386B2 (ja) | 2013-11-20 |
JP2012514267A (ja) | 2012-06-21 |
US9454456B2 (en) | 2016-09-27 |
WO2010077000A3 (ko) | 2010-09-16 |
US20110271260A1 (en) | 2011-11-03 |
KR20100077385A (ko) | 2010-07-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2010077000A2 (ko) | 소프트웨어 분리 실행 방법, 장치 및 컴퓨터로 읽을 수 있는 기록매체 | |
EP3807797B1 (en) | Pointer authentication and dynamic switching between pointer authentication regimes | |
US20060253687A1 (en) | Overlapped code obfuscation | |
CN103150507B (zh) | 用于检测未知打包器和加密器的系统和方法 | |
CN101477610B (zh) | 源码和目标码联合嵌入的软件水印方法 | |
CN105683990A (zh) | 用于保护动态库的方法和装置 | |
CN105787305A (zh) | 一种抵抗符号执行和污点分析的软件保护方法 | |
US9721120B2 (en) | Preventing unauthorized calls to a protected function | |
WO2006069335A2 (en) | Information flow enforcement for risc-style assembly code | |
CN103065072A (zh) | 提高Java软件破解难度的方法及装置、版权验证方法 | |
CN109271789B (zh) | 恶意进程检测方法、装置、电子设备及存储介质 | |
US8775826B2 (en) | Counteracting memory tracing on computing systems by code obfuscation | |
WO2016024838A1 (ko) | 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 | |
Zhang et al. | Rapid Android parser for investigating DEX files (RAPID) | |
CN107577925A (zh) | 基于双重ARM指令虚拟的Android应用程序保护方法 | |
US8176560B2 (en) | Evaluation of tamper resistant software system implementations | |
KR100961146B1 (ko) | 악성 스크립트 코드 복호화 방법 및 시스템 | |
Razafindralambo et al. | A friendly framework for hidding fault enabled virus for Java based smartcard | |
Li et al. | Chosen-instruction attack against commercial code virtualization obfuscators | |
Iyer et al. | Toward application-aware security and reliability | |
US20100095376A1 (en) | Software watermarking | |
CN109344577A (zh) | 一种art下使用自修改技术进行软件保护的方法 | |
Lackner et al. | Countering type confusion and buffer overflow attacks on Java smart cards by data type sensitive obfuscation | |
CN104680043A (zh) | 一种可执行文件的保护方法及装置 | |
JP2009104589A (ja) | 情報処理装置及びその方法、プログラム、記録媒体 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 200980153345.8 Country of ref document: CN |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application |
Ref document number: 09836321 Country of ref document: EP Kind code of ref document: A2 |
|
ENP | Entry into the national phase |
Ref document number: 2011544360 Country of ref document: JP Kind code of ref document: A |
|
NENP | Non-entry into the national phase |
Ref country code: DE |
|
WWE | Wipo information: entry into national phase |
Ref document number: 13142601 Country of ref document: US Ref document number: 2009836321 Country of ref document: EP |