KR20060094457A - 코드 모핑 - Google Patents
코드 모핑 Download PDFInfo
- Publication number
- KR20060094457A KR20060094457A KR1020060001231A KR20060001231A KR20060094457A KR 20060094457 A KR20060094457 A KR 20060094457A KR 1020060001231 A KR1020060001231 A KR 1020060001231A KR 20060001231 A KR20060001231 A KR 20060001231A KR 20060094457 A KR20060094457 A KR 20060094457A
- Authority
- KR
- South Korea
- Prior art keywords
- code
- morphed
- morphing
- morph
- instructions
- Prior art date
Links
- 238000000034 method Methods 0.000 claims description 47
- 238000012360 testing method Methods 0.000 claims description 20
- 238000012545 processing Methods 0.000 claims description 19
- 238000003860 storage Methods 0.000 claims description 12
- 238000005096 rolling process Methods 0.000 claims description 4
- 238000005070 sampling Methods 0.000 claims 3
- 238000006243 chemical reaction Methods 0.000 claims 1
- 230000006870 function Effects 0.000 description 14
- 238000004891 communication Methods 0.000 description 4
- 230000008901 benefit Effects 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000001413 cellular effect Effects 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000035772 mutation Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004321 preservation Methods 0.000 description 1
- 230000000717 retained effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000014616 translation Effects 0.000 description 1
- 230000000007 visual effect Effects 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—Prevention of errors by analysis, debugging or testing of software
- G06F11/3668—Testing of software
- G06F11/3672—Test management
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B24—GRINDING; POLISHING
- B24C—ABRASIVE OR RELATED BLASTING WITH PARTICULATE MATERIAL
- B24C9/00—Appurtenances of abrasive blasting machines or devices, e.g. working chambers, arrangements for handling used abrasive material
- B24C9/003—Removing abrasive powder out of the blasting machine
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B24—GRINDING; POLISHING
- B24C—ABRASIVE OR RELATED BLASTING WITH PARTICULATE MATERIAL
- B24C7/00—Equipment for feeding abrasive material; Controlling the flowability, constitution, or other physical characteristics of abrasive blasts
- B24C7/0046—Equipment for feeding abrasive material; Controlling the flowability, constitution, or other physical characteristics of abrasive blasts the abrasive material being fed in a gaseous carrier
-
- B—PERFORMING OPERATIONS; TRANSPORTING
- B24—GRINDING; POLISHING
- B24C—ABRASIVE OR RELATED BLASTING WITH PARTICULATE MATERIAL
- B24C9/00—Appurtenances of abrasive blasting machines or devices, e.g. working chambers, arrangements for handling used abrasive material
- B24C9/006—Treatment of used abrasive material
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Mechanical Engineering (AREA)
- Quality & Reliability (AREA)
- Computer Hardware Design (AREA)
- Stored Programmes (AREA)
- Debugging And Monitoring (AREA)
- Devices For Executing Special Programs (AREA)
- Measuring Or Testing Involving Enzymes Or Micro-Organisms (AREA)
- Medicines Containing Antibodies Or Antigens For Use As Internal Diagnostic Agents (AREA)
- Investigating Strength Of Materials By Application Of Mechanical Stress (AREA)
- Special Wing (AREA)
- Storage Device Security (AREA)
Abstract
Description
Claims (18)
- 코드를 샘플링하는 단계와,양호한 방식으로 상기 코드를 모핑(morphing)하는 단계와,상기 모핑된 코드를 프로세싱하는 단계와,상기 코드에 대한 알려진 프로세싱 결과를 상기 모핑된 코드의 프로세싱 결과와 비교하는 단계를 포함하는 방법.
- 제1항에 있어서, 상기 코드는, 애플리케이션, 프로그램, 메써드(method), 기능(function) 및 실행가능 코드의 집합체(assemblage of executable code) 중의 하나의 적어도 일부분을 포함하는 방법.
- 제1항에 있어서, 상기 샘플링하는 단계는 상기 코드의 구문적 특징들 및 구성 속성들(syntactical characteristics and construct properties) 중의 적어도 하나를 해독(decipher)하는 것을 포함하는 방법.
- 제1항에 있어서, 상기 모핑하는 단계는 상기 코드의 콘텍스트(context)를 유지하면서 상기 코드의 적어도 하나의 하부 구조(underlying construct)를 재기입하는 것을 포함하는 방법.
- 제1항에 있어서, 상기 코드의 모핑은, 파라미터를 부가하는 것, 프리미티브 타입(primitive type)의 폭을 확장하는 것, 파라미터들을 재순서화(re-ordering)하는 것, 로컬 변수들을 재순서화하는 것, 로컬 변수를 부가하는 것, 외부 변수를 여분으로 사용하는 것, 여분 루프를 부가하는 것, 제어 흐름에 스티칭(stitching)하는 것, 상수를 언폴딩(unfolding)하는 것, 메써드를 상수로 대체하는 것, 폴스 스택 깊이(false stack depth)를 도입하는 것, 상수를 폴딩하는 것, 루프를 롤링 업(rolling up)하는 것, 공통 하위 표현을 도입하는 것, 타입 로컬들을 통해서 변환하는 것, 및 로컬들을 또 다른 저장 공간으로 변환하는 것 중의 적어도 하나를 포함하는 방법.
- 제1항에 있어서, 상기 모핑하는 단계는 관리된 실행 환경 하에서 실행되는 방법.
- 제1항에 있어서, 상기 프로세싱은 상기 코드를 컴파일링하는 것을 포함하는 방법.
- 판독되었을 때, 하나 또는 그 이상의 프로세서로 하여금,모핑된 코드를 생성하도록 알려진 코드를 모핑하고,상기 모프가 양호한지의 여부를 테스팅하도록 야기하는하나 또는 그 이상의 실행가능 명령어를 갖는 컴퓨터 판독 가능 매체.
- 제8항에 있어서, 상기 알려진 코드를 모핑하는 상기 하나 또는 그 이상의 명령어는 상기 하나 또는 그 이상의 프로세서로 하여금 구문적으로 및 구조적으로 중의 적어도 하나의 방식으로 상기 알려진 코드의 적어도 일부분을 재기입하도록 야기하는컴퓨터 판독 가능 매체.
- 제8항에 있어서, 상기 알려진 코드를 모핑하는 상기 하나 또는 그 이상의 명령어는, 상기 하나 또는 그 이상의 프로세서로 하여금, 상기 알려진 코드에 대하여 , 파라미터를 부가하는 것, 프리미티브 타입의 폭을 확장하는 것, 파라미터들을 재순서화하는 것, 로컬 변수들을 재순서화하는 것, 로컬 변수를 부가하는 것, 외부 변수를 여분으로 사용하는 것, 여분 루프를 부가하는 것, 제어 흐름에 스티칭하는 것, 상수를 언폴딩하는 것, 메써드를 상수로 대체하는 것, 폴스 스택 깊이를 도입하는 것, 상수를 폴딩하는 것, 루프를 롤링 업 하는 것, 공통 하위 표현을 도입하는 것, 타입 로컬들을 통해서 변환하는 것, 및 로컬들을 또 다른 저장 공간으로 변환하는 것 중의 적어도 하나를 실행하도록 야기하는컴퓨터 판독 가능 매체.
- 제8항에 있어서, 상기 모프가 양호한지의 여부를 테스팅하는 하나 또는 그 이상의 명령어는,상기 모핑된 코드를 컴파일링하고,상기 모핑된 코드를 컴파일링한 결과들을 상기 알려진 코드를 컴파일링한 알려진 결과들과 비교하는 것을 포함하는컴퓨터 판독 가능 매체.
- 제8항에 있어서, 상기 모프가 양호한지의 여부를 테스팅하는 하나 또는 그 이상의 명령어는,상기 모핑된 코드와 상기 알려진 코드를 프로세싱하는 타깃 오브젝트가 동일한 결과를 산출할 지의 여부를 판정하는 것을 포함하는컴퓨터 판독 가능 매체.
- 제8항에 있어서, 상기 하나 또는 그 이상의 프로세서는 관리된 실행 환경 하에서 상기 하나 또는 그 이상의 명령어를 실행하는컴퓨터 판독 가능 매체.
- 입력 코드의 하부 제어 구조들을 샘플링하는 샘플러(sampler)와,상기 하부 제어 구조들 중의 적어도 하나를 재기입하는 모퍼(morpher)와,상기 모퍼가 양호한 방식으로 상기 하부 제어 구조를 재기입했는 지의 여부 를 검증하는 오브젝트를 포함하는 시스템.
- 제14항에 있어서, 상기 입력 코드는, 애플리케이션, 프로그램, 메써드, 기능, 및 실행 가능 코드의 집합체 중의 하나의 적어도 일부분을 포함하는시스템.
- 제14항에 있어서, 상기 샘플러는, 상기 입력 코드의 원래의 콘텍스트를 여전히 유지하면서 구문적으로 및 구조적으로 중의 적어도 하나의 방식으로 재기입될 수 있는 상기 입력 코드의 일부분의 식별을 인에이블하는시스템.
- 제14항에 있어서, 상기 모퍼는, 상기 입력 코드의 원래의 콘텍스트를 여전히 유지하면서 상기 입력 코드를 구문적으로 변환하는시스템.
- 제14항에 있어서, 상기 모퍼는 상기 입력 코드에 대한 프로세싱 결과에 영향을 끼치지 않으면서 상기 입력 코드를 구조적으로 변환하는시스템.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US11/064,865 US8020152B2 (en) | 2005-02-24 | 2005-02-24 | Code morphing |
US11/064,865 | 2005-02-24 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20060094457A true KR20060094457A (ko) | 2006-08-29 |
KR101219874B1 KR101219874B1 (ko) | 2013-01-09 |
Family
ID=36693571
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020060001231A KR101219874B1 (ko) | 2005-02-24 | 2006-01-05 | 코드 모핑 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8020152B2 (ko) |
EP (1) | EP1696316B1 (ko) |
JP (1) | JP2006236327A (ko) |
KR (1) | KR101219874B1 (ko) |
CN (1) | CN1825277B (ko) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2012012861A1 (en) * | 2010-07-29 | 2012-02-02 | Irdeto Canada Corporation | System and method for efficiently deploying massively diverse program instances to resist differential attacks |
US8683452B1 (en) * | 2010-12-21 | 2014-03-25 | Emc Corporation | Dynamically obfuscated javascript |
US10459717B2 (en) * | 2013-08-07 | 2019-10-29 | Sap Se | Observing evolution of software development artifacts |
CN105677318A (zh) * | 2015-12-28 | 2016-06-15 | 心动网络股份有限公司 | 一种防止游戏被内存修改器修改的方法 |
US10248545B2 (en) * | 2016-02-17 | 2019-04-02 | Parasoft Corporation | Method for tracking high-level source attribution of generated assembly language code |
US11200151B1 (en) | 2021-03-12 | 2021-12-14 | Sas Institute Inc. | Graphical user interface and debugger system for selecting and testing alterations to source code for software applications |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP0988591A1 (en) * | 1997-06-09 | 2000-03-29 | Intertrust, Incorporated | Obfuscation techniques for enhancing software security |
WO1998059292A1 (en) * | 1997-06-25 | 1998-12-30 | Transmeta Corporation | Improved microprocessor |
US5903761A (en) * | 1997-10-31 | 1999-05-11 | Preemptive Solutions, Inc. | Method of reducing the number of instructions in a program code sequence |
US7089541B2 (en) * | 2001-11-30 | 2006-08-08 | Sun Microsystems, Inc. | Modular parser architecture with mini parsers |
US20030145190A1 (en) * | 2001-12-07 | 2003-07-31 | Paolo Faraboschi | Compiler algorithm to implement speculative stores |
EP1635255A3 (en) | 2002-03-20 | 2006-05-24 | Seiko Epson Corporation | Apparatus for processing instructions of different instruction set architectures |
US7228426B2 (en) * | 2002-04-03 | 2007-06-05 | Microsoft Corporation | Integrity ordainment and ascertainment of computer-executable instructions with consideration for execution context |
US20040172637A1 (en) * | 2003-02-28 | 2004-09-02 | Sap Ag | Code morphing manager |
US7669188B2 (en) * | 2004-12-03 | 2010-02-23 | Palo Alto Research Center Incorporated | System and method for identifying viable refactorings of program code using a comprehensive test suite |
-
2005
- 2005-02-24 US US11/064,865 patent/US8020152B2/en not_active Expired - Fee Related
-
2006
- 2006-01-05 KR KR1020060001231A patent/KR101219874B1/ko active IP Right Grant
- 2006-01-20 EP EP06100646.6A patent/EP1696316B1/en active Active
- 2006-01-24 JP JP2006015454A patent/JP2006236327A/ja active Pending
- 2006-01-24 CN CN2006100043233A patent/CN1825277B/zh not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2006236327A (ja) | 2006-09-07 |
EP1696316A2 (en) | 2006-08-30 |
CN1825277A (zh) | 2006-08-30 |
EP1696316B1 (en) | 2019-08-07 |
KR101219874B1 (ko) | 2013-01-09 |
EP1696316A3 (en) | 2006-10-04 |
US8020152B2 (en) | 2011-09-13 |
US20060190937A1 (en) | 2006-08-24 |
CN1825277B (zh) | 2012-10-10 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12008386B2 (en) | Conservative class preloading for real time java execution | |
US20230052827A1 (en) | Automated synthesis of reference policies for runtime microservice protection | |
US8615750B1 (en) | Optimizing application compiling | |
KR101944570B1 (ko) | 변형 컨텍스트-인식 데이터 소스 관리 | |
US20130167123A1 (en) | Application debugging | |
US10209968B2 (en) | Application compiling | |
US20100138817A1 (en) | In-place function modification | |
US9047100B2 (en) | Abstract syntax tree transformation | |
US6951014B1 (en) | Method and apparatus for representation of a JavaScript program for execution by a JavaScript interpreter | |
EP1696316B1 (en) | Code morphing for testing | |
US6898786B1 (en) | Javascript interpreter engine written in Java | |
US10579799B2 (en) | System and method for execution of objects lacking rules of interpretation | |
CN110678839A (zh) | 基于流的范围界定 | |
KR20210045122A (ko) | 기호 실행을 사용하는 소프트웨어 테스트 입력 생성 장치 및 방법 | |
EP3333746B1 (en) | System and method of execution of code by an interpreter | |
Kim et al. | Static dalvik bytecode optimization for Android applications | |
CN114546539B (zh) | 面向解释型语言源程序的系统调用白名单生成方法 | |
US20240378034A1 (en) | Lowering java try statements in a symbolic description language | |
Sigalov et al. | Finding Server-Side Endpoints with Static Analysis of Client-Side JavaScript | |
Srivastava | Practical Methods for Fuzzing Real-World Systems | |
CN117539493A (zh) | 应用开发的方法、装置、电子设备及存储介质 | |
WO2024173240A1 (en) | Transforming a java program using a symbolic description language model | |
CN119397544A (zh) | 智能合约静态分析方法及装置 | |
US20060184914A1 (en) | Random code generation | |
Nebbiante | EL: A Shell for the Ethos Operating System |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20060105 |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20101229 Comment text: Request for Examination of Application Patent event code: PA02011R01I Patent event date: 20060105 Comment text: Patent Application |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20120617 Patent event code: PE09021S01D |
|
E701 | Decision to grant or registration of patent right | ||
PE0701 | Decision of registration |
Patent event code: PE07011S01D Comment text: Decision to Grant Registration Patent event date: 20121204 |
|
GRNT | Written decision to grant | ||
PR0701 | Registration of establishment |
Comment text: Registration of Establishment Patent event date: 20130102 Patent event code: PR07011E01D |
|
PR1002 | Payment of registration fee |
Payment date: 20130102 End annual number: 3 Start annual number: 1 |
|
PG1601 | Publication of registration | ||
FPAY | Annual fee payment |
Payment date: 20151217 Year of fee payment: 4 |
|
PR1001 | Payment of annual fee |
Payment date: 20151217 Start annual number: 4 End annual number: 4 |
|
FPAY | Annual fee payment |
Payment date: 20161220 Year of fee payment: 5 |
|
PR1001 | Payment of annual fee |
Payment date: 20161220 Start annual number: 5 End annual number: 5 |
|
FPAY | Annual fee payment |
Payment date: 20171219 Year of fee payment: 6 |
|
PR1001 | Payment of annual fee |
Payment date: 20171219 Start annual number: 6 End annual number: 6 |
|
FPAY | Annual fee payment |
Payment date: 20181226 Year of fee payment: 7 |
|
PR1001 | Payment of annual fee |
Payment date: 20181226 Start annual number: 7 End annual number: 7 |
|
FPAY | Annual fee payment |
Payment date: 20191217 Year of fee payment: 8 |
|
PR1001 | Payment of annual fee |
Payment date: 20191217 Start annual number: 8 End annual number: 8 |
|
PC1903 | Unpaid annual fee |
Termination category: Default of registration fee Termination date: 20211013 |