KR20140053756A - 어플리케이션을 보호하기 위한 링크와 로드 방법 - Google Patents
어플리케이션을 보호하기 위한 링크와 로드 방법 Download PDFInfo
- Publication number
- KR20140053756A KR20140053756A KR1020127028136A KR20127028136A KR20140053756A KR 20140053756 A KR20140053756 A KR 20140053756A KR 1020127028136 A KR1020127028136 A KR 1020127028136A KR 20127028136 A KR20127028136 A KR 20127028136A KR 20140053756 A KR20140053756 A KR 20140053756A
- Authority
- KR
- South Korea
- Prior art keywords
- software modules
- instances
- compiled software
- random
- security
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000009466 transformation Effects 0.000 claims abstract description 30
- 238000000844 transformation Methods 0.000 claims abstract description 16
- 238000006243 chemical reaction Methods 0.000 claims abstract description 11
- 238000002156 mixing Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 230000001131 transforming effect Effects 0.000 claims 4
- 206010025482 malaise Diseases 0.000 claims 1
- 230000008901 benefit Effects 0.000 abstract description 5
- 230000003111 delayed effect Effects 0.000 abstract 1
- 230000006870 function Effects 0.000 description 23
- 238000010276 construction Methods 0.000 description 5
- 238000013507 mapping Methods 0.000 description 5
- 238000013459 approach Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 4
- 230000004888 barrier function Effects 0.000 description 3
- 239000000203 mixture Substances 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 230000009471 action Effects 0.000 description 2
- 230000008859 change Effects 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 238000012360 testing method Methods 0.000 description 2
- 230000006399 behavior Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000004590 computer program Methods 0.000 description 1
- 238000013501 data transformation Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 231100001261 hazardous Toxicity 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005012 migration Effects 0.000 description 1
- 238000013508 migration Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 230000004044 response Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000008685 targeting 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
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- 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/14—Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
-
- 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/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/51—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability
-
- 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/54—Link editing before load time
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Stored Programmes (AREA)
- Storage Device Security (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
도 1은 빌드시간(build-time)에 다양성을 통하여 결과물 바이너리(binary)와 보호의 연결(linking)을 나타낸다.
도 2는 보안성/작업 타겟에 최적화된 믹스캐치 선정을 나타내는 순서도이다.
도 3은 변환 상수들의 후기 바인딩을 나타낸다.
도 4는 런타임 로딩 중 다이버스(diverse) 모듈들을 선정하는 것을 보여준다.
도 5는 런타임 로딩 중 랜덤 어드레스 업무를 나타낸다.
도 6은 동적 라이브러리를 대체되는 다이버스(diverse) 모듈로 구축하는 것을 보여준다.
Claims (27)
- 빌드시간(build-time) 또는 로드시간(load-time)에 목적 코드(object-code)로의 보안성 변환을 적용하는 방법에 있어서,
랜덤 시드(seed)를 가상의 무작위 숫자 생성기(pseudo-random number generator)에 입력용으로 특정하는 단계;
실행 모듈의 개별 인스턴스를 생성하는 단계에 있어서:
상기 가상의 무작위 숫자 제조기에 입력용으로 상기 랜덤시드를 적용함으로써 복수의 컴파일드 소프트웨어 모듈들의 다변화하여, 상기 복수의 컴파일드 소프트웨어 모듈들(compiled software modules)의 개별 인스턴스들의 집합으로부터 상기 복수의 컴파일드 소프트웨어 모듈들의 인스턴스들을 무작위로 선택하여 상기 컴파일드 소프트웨어 모듈들의 선정된 인스턴스들의 무작위 레이아웃을 결정하는 단계;
상기 컴파일드 소프트웨어 모듈들의 상기 선택된 인스턴스들을 상기 무작위 레이아웃에 따라서 상기 실행 모듈의 상기 개별 인스턴스를 생성하도록 결합시키는 단계를 포함하여 상기 실행 모듈의 상기 개별 인스턴스를 생성하는 단계; 및
상기 실행 모듈의 상기 개별 인스턴스 내부의 심볼들을 해결하는 단계를 포함하는 보안성 변환의 적용방법. - 제 1 항에 있어서, 상기 무작위 선정은 복수의 인스텐시에이트 모듈들(instantiated modules)을 포함하는 다양하게 프로비저닝된(provisioned) 라이브러리로부터 무작위 선택하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법.
- 제 2 항에 있어서, 상기 다양하게 프로비저닝된(provisioned) 라이브러리 내의 각 인스텐시에이트 모듈은 개별 보안성 특성들(distinct security characteristics)을 예시하고, 상기 무작위 선택하는 단계는,
복수의 컴파일드 소프트웨어 모듈들의 어셋(asset) 순위 및 복수의 컴파일드 소프트웨어 모듈들 내부의 콜 사이트들(call cites)의 프로파일 가중을 복수의 컴파일드 소프트웨어 모듈 내부로 끼워 넣는 단계;
상기 어셋(asset) 순위와 상기 프로파일 가중에 기초한 상기 무작위 선정을 제한하는 단계를 더 포함하는 보안성 변환의 적용 방법. - 제 1 항에 있어서, 상기 무작위 레이아웃을 결정하는 단계는 상기 선정된 컴파일드 소프트웨어 모듈들의 인스턴스들을 분리된 코드 부분으로 진입시켜 메모리 영상 내부의 코드 부분의 위치가 무작위로 배정하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법.
- 제 4 항에 있어서, 상기 코드 부분들의 상기 위치를 무작위로 배정하는 단계는 상기 컴파일드 소프트웨어 모듈들의 상기 선정된 인스턴스들의 다른 것들로부터 코드 부분들을 혼합하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법.
- 제 4 항에 있어서, 상기 부분들의 위치를 무작위로 배정하는 단계는 상기 컴파일드 소프트웨어 모듈들들의 상기 선정된 인스턴스들의 다른 부분들과 데이터부분을 혼합하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법.
- 제 1 항에 있어서, 상기 다변화 작업들은 보안성 변환상수들의 후기 바인딩을 더 포함하되,
상기 랜덤 시드를 상기 허위의 무작위 숫자 생성기의 입력항으로서 상기 컴파일드 소프트웨어 모듈들의 상기 선정된 인스턴스들에 적용되는 보안성 변환들에 대한 메타데이터에 따라서 상기 보안성 병환 상수들을 무작위로 결정하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법. - 제 7 항에 있어서, 상기 보안성 변환들은 프로그램 변환들인 것을 특징으로 하는 보안성 변환의 적용 방법.
- 제 8 항에 있어서, 상기 프로그램 변환들은 데이터 흐름 변환들 또는 제어 흐름 변환들인 것을 특징으로 하는 보안성 변환의 적용 방법.
- 실행 프로그램 영상의 복수의 다이버스(diverse) 인스턴스들을 생성하는 방법에 있어서,
원하는 실행 프로그램의 영상의 인스턴스를 얻기 위해서는,
랜덤시드를 가상의 무작위 숫자 생성기입력용으로 명시하는 단계;
실행프로그램 영상의 개별 인스턴스를 생성하는 단계;
상기 가상의 무작위 숫자 제조기에 입력용으로 상기 랜덤시드를 적용함으로써 복수의 컴파일드 소프트웨어 모듈들의 다변화하여, 상기 복수의 컴파일드 소프트웨어 모듈들(compiled software modules)의 개별 인스턴스들의 집합으로부터 상기 복수의 컴파일드 소프트웨어 모듈들의 인스턴스들을 무작위로 선택하여 상기 컴파일드 소프트웨어 모듈들의 선정된 인스턴스들의 무작위 레이아웃을 결정하는 단계;
상기 컴파일드 소프트웨어 모듈들의 상기 선택된 인스턴스들을 상기 무작위 레이아웃에 따라서 상기 실행 프로그램 영상의 상기 개별 인스턴스를 생성하도록 결합시키는 단계를 포함하여 상기 실행 모듈의 상기 개별 인스턴스를 생성하는 단계; 및
상기 실행 모듈의 상기 개별 인스턴스 내부의 심볼들을 해결하는 방법을 포함하는 보안성 변환의 적용 방법. - 제 10 항에 있어서, 상기 무작위 선정을 하는 단계는 복수의 인스텐시에이트 모듈들을 포함하는 다양하게 프로비저닝된(provisioned) 라이브러리로부터 무작위 선정을 하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법.
- 제 11 항에 있어서, 상기 다양하게 프로비저닝된 라이브러리 내 인스텐시에이트 모듈은 개별 보안 특성들로 인스텐시에이트(instantiate)되고, 상기 무작위 선택을 하는 단계는,
상기 복수의 컴파일드 소프트웨어 모듈들의 어셋(asset) 순위와 콜 사이트들의 프로파일 가중을 복수의 컴파일드 소프트웨어 모듈들에 끼워넣는 단계;
상기 어셋(asset) 순위와 상기 프로파일 가중에 기초한 상기 무작위 선택을 포함하는 단계를 더 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법. - 제 10 항에 있어서, 상기 랜덤 레이아웃을 결정하는 단계는 상기 컴파일드 소프트웨어 모듈들의 상기 선정된 인스턴스들을 분리된 코드 부분들로 진입시키는 단계와 상기 메모리 영상 내부의 상기 코드 부분의 위치를 무작위로 배정하도록 하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법.
- 제 13 항에 있어서, 상기 코드부분들의 상기 위치를 무작위 배정하는 단계는 상기 컴파일드 소프트웨어 모듈들의 상기 선정된 인스턴스들의 다른 것들로부터 코드 부분을 혼합하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법.
- 제 13 항에 있어서, 상기 부분들의 상기 위치를 무작위 배정하는 단계는 상기 컴파일드 소프트웨어 모듈들의 상기 선정된 인스턴스들의 다른 것들의 코드 부분들과 데이터 부분들을 혼합하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법.
- 제 10 항에 있어서, 상기 다변화 작업들은 보안성 변환 상수들의 후기 바인딩을 더 포함하되,
상기 랜덤 시드를 상기 가상의 무작위 숫자 생성기의 입력용으로 상기 컴파일드 소프트웨어 모듈들의 선정된 인스턴스들에 적용되는 보안성 변환들에 대한 메타 데이터에 따라 상기 보안성 변환 상수들을 무작위로 결정하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법. - 제 16 항에 있어서, 상기 보안성 변환들은 프로그램 변환들인 것을 특징으로 하는 보안성 변환의 적용 방법.
- 제 17 항에 있어서, 상기 프로그램 변환들은 데이터 흐름 변환들 또는 제어 흐름 변환들인 것을 특징으로 하는 보안성 변환의 적용 방법.
- 실행 프로그램 영상의 복수의 다이버스(diverse) 인스턴스들을 생성하는 방법에 있어서,
원하는 실행 프로그램 영상의 인스턴스 또는 동적 라이브러리는,
랜덤 시드(seed)를 무작위 선택을 하는 가상의 무작위 숫자 생성기(pseudo-random number generator)에 입력용으로 특정하는 단계;
다변화 작업들을 적용하여 상기 무작위 선택으로 결정된 복수의 컴파일드 소프트웨어 모듈들을 복수의 컴파일드 소프트웨어 모듈들로 변환하고, 복수의 컴파일드 소프트웨어 모듈들과 관계된 심볼들을 해결하는 단계; 및
상기 해결된 심볼들에 의해 결정된 개별 환경설정(configuration)을 가지는 상기 실행 프로그램 영상의 인스턴스들을 생성하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법. - 제 19 항에 있어서, 상기 복수의 컴파일드 소프트웨어 모듈들을 변환하는 단계는 상기 복수의 소프트웨어 모듈의 무작위로 된 메모리 영상 레이아웃을 제공하기 위해 심볼들을 해결하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법.
- 제 19 항에 있어서, 복수의 컴파일드 소프트웨어 모듈들을 변환하는 단계는 상기 복수의 소프트웨어 모듈들의 개별 인스턴스들의 무작위로 선정하기 위하여 상기 심볼들을 해결하는 단계를 포함하는 것을 특징으로 하는 보안성 변환의 적용 방법.
- 빌드 시간(build-time)에 압축된 실행 모듈의 복수의 다이버스(diverse) 개별 인스턴스들을 제공하기 위한 링커는,
프로세서가 런타임(Run-time)에 실행 모듈의 다이버스(diverse) 개별 인스턴스들을 개별 무작위 선택하도록 환경 설정된 가상의 무작위 숫자 생성기; 및
상기 프로세서가 복수의 컴파일드 소프트웨어 모듈들을 변환하도록 하는 런타임 모듈을 포함하되,
다변화 과정을 적용함으로써 상기 무작위 선택에 의하여 결정된 복수의 컴파일드 소프트웨어 모듈들을 변환하는 단계와;
상기 복수의 컴파일드 소프트웨어 모듈들과 관계되는 심볼들을 해결하는 단계; 및
상기 프로그램의 각 실시에 따른 상기 해결된 심볼들에 의해 결정된 개별 환경설정을 가지는 실행 프로그램 영상의 인스턴스를 생성하는 단계를 포함하는 것을 특징으로 하는 링커. - 런타임(run-time)에 실행 프로그램 영상의 다이버스(diverse) 개별 인스턴스들을 제공하는 로더에 있어서,
프로세서가 상기 실행 프로그램 영상의 각 다이버스(diverse) 개별 인스턴스를 위하여 개별 무작위 선택을 생성하도록 환경 설정된 가상의 무작위 숫자 생성기; 및
상기 무작위 선택에 의해 결정된, 복수의 컴파일드 소프트웨어 모듈들을 다변화 작업들을 적용하여 변환하는 단계와;
상기 복수의 컴파일드 소프트웨어 모듈들에 관계되는 심볼들을 해결하는 단계;
상기 해결된 심볼들에 의해 결정되는 개별 환경설정을 가지는 상기 실행 프로그램 영상의 인스턴스를 생성하는 단계를 포함하여 상기 프로세서가 복수의 컴파일드 소프트웨어 모듈들을 변환하도록 하는 연결(linking) 모듈들을 포함하는 보안성 변환의 적용 방법. - 실행 프로그램 영상의 복수의 다이버스(diverse) 인스턴스를 생성하는 로더에 있어서,
실행 프로그램 영상의 원하는 인스턴스를 위해 프로세서가 개별 무작위 선택을 생성하도록 설정된 가상의 무작위 숫자 생성기; 및
상기 복수의 컴파일드 소프트웨어 모듈들의 개별 인스턴스들의 집합으로부터 상기 복수의 컴파일드 소프트웨어 모듈들의 인스턴스를 선택하는 상기 무작위 선택을 적용함으로써 복수의 컴파일드 소프트웨어 모듈들에 다변화 작업을 적용하는 단계;
상기 컴파일드 소프트웨어 모듈들의 상기 선전된 인스턴스들을 상기 무작위 레이아웃에 따라서 상기 실행 프로그램 영상의 개별 인스턴스를 생성하도록 결합시키는 단계; 및
실행 프로그램 영상의 상기 개별 인스턴스 내부의 심볼들을 해결하는 단계를 포함하여 상기 프로세서가 상기 실행 프로그램 영상의 개별 인스턴스를 생성하도록 하는 런타임(run-time) 모듈을 포함하는 로더. - 제 24 항에 있어서, 상기 무작위 레이아웃은 런타임(run-time) 로딩 중 랜덤 어드레스 업무를 포함하는 것을 특징으로 하는 로더.
- 제 24 항에 있어서, 상기 복수의 소프트웨어 모듈들의 인스턴스들의 상기 선정은 런타임 컨디션들을 더 기초로 하는 것을 특징으로 하는 로더.
- 제 26 항에 있어서, 상기 런타임(run-time) 컨디션들은 승인되지 않은 브리치(breach)를 검출하는 단계를 포함하는 것을 특징으로 하는 로더.
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/CA2010/000450 WO2011120122A1 (en) | 2010-03-31 | 2010-03-31 | Method for linking and loading to protect applications |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20140053756A true KR20140053756A (ko) | 2014-05-08 |
Family
ID=44711251
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020127028136A KR20140053756A (ko) | 2010-03-31 | 2010-03-31 | 어플리케이션을 보호하기 위한 링크와 로드 방법 |
Country Status (7)
Country | Link |
---|---|
US (1) | US9639377B2 (ko) |
EP (1) | EP2553570B1 (ko) |
JP (1) | JP5735629B2 (ko) |
KR (1) | KR20140053756A (ko) |
CN (1) | CN102939587B (ko) |
CA (1) | CA2792304C (ko) |
WO (1) | WO2011120122A1 (ko) |
Families Citing this family (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9645992B2 (en) | 2010-08-21 | 2017-05-09 | Oracle International Corporation | Methods and apparatuses for interaction with web applications and web application data |
US9128732B2 (en) * | 2012-02-03 | 2015-09-08 | Apple Inc. | Selective randomization for non-deterministically compiled code |
US9722972B2 (en) | 2012-02-26 | 2017-08-01 | Oracle International Corporation | Methods and apparatuses for secure communication |
DE102012024250B4 (de) * | 2012-08-02 | 2023-04-13 | Masktech International Gmbh | Verfahren zur Bereitstellung von Chips mit hoher Kopierschutzfunktion, insbesondere für digitale Authentifizierungssysteme, wie Chipkarten oder dergleichen, sowie danach hergestellte Chips |
US9344422B2 (en) | 2013-03-15 | 2016-05-17 | Oracle International Corporation | Method to modify android application life cycle to control its execution in a containerized workspace environment |
WO2014144961A1 (en) * | 2013-03-15 | 2014-09-18 | Oracle International Corporation | Establishing trust between applications on a computer |
US9129112B2 (en) | 2013-03-15 | 2015-09-08 | Oracle International Corporation | Methods, systems and machine-readable media for providing security services |
US9268552B1 (en) * | 2013-06-18 | 2016-02-23 | Ayla Networks, Inc. | Patching improvement for executables in memory constrained devices |
CN103885785A (zh) * | 2014-04-09 | 2014-06-25 | 南京长观信息科技有限公司 | 一种描述3d场景中大批量随机同类对象的方法 |
US10019569B2 (en) * | 2014-06-27 | 2018-07-10 | Qualcomm Incorporated | Dynamic patching for diversity-based software security |
KR101695639B1 (ko) * | 2014-08-13 | 2017-01-16 | (주)잉카엔트웍스 | 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템 |
CN105335286B (zh) * | 2014-08-15 | 2018-02-16 | 阿里巴巴集团控股有限公司 | 一种静态库测试方法及装置 |
CN106663018B (zh) | 2014-09-24 | 2020-09-15 | 甲骨文国际公司 | 修改移动设备应用生命周期的系统、方法、介质和设备 |
US10275154B2 (en) | 2014-11-05 | 2019-04-30 | Oracle International Corporation | Building memory layouts in software programs |
US10353793B2 (en) | 2014-11-05 | 2019-07-16 | Oracle International Corporation | Identifying improvements to memory usage of software programs |
US9552192B2 (en) * | 2014-11-05 | 2017-01-24 | Oracle International Corporation | Context-based generation of memory layouts in software programs |
WO2018097866A2 (en) * | 2016-08-18 | 2018-05-31 | Yongxin Zhou | Software protection via keyed relational randomization |
CN107015491B (zh) * | 2017-04-13 | 2019-05-14 | 北京机械设备研究所 | 一种顺序控制方法 |
US12007908B2 (en) * | 2017-12-14 | 2024-06-11 | Arris Enterprises Llc | Method and apparatus to dynamically encode data at runtime |
CN110134428B (zh) * | 2018-02-09 | 2024-02-06 | 中兴通讯股份有限公司 | 一种安全防护方法及装置 |
US11113392B2 (en) * | 2018-08-14 | 2021-09-07 | RunSafe Security, Inc. | Executable binary code insertion |
TWI768255B (zh) * | 2019-10-28 | 2022-06-21 | 瑞昱半導體股份有限公司 | 雲端部署開機映像的電子裝置、開機映像的雲端部署系統及其方法 |
CN112784275B (zh) * | 2019-11-01 | 2024-09-03 | 瑞昱半导体股份有限公司 | 电子装置、开机映像的云端部署系统及其方法 |
WO2022140347A1 (en) * | 2020-12-21 | 2022-06-30 | RunSafe Security, Inc. | System and methods for post-mortem debugging of transformed binaries |
US12050668B1 (en) * | 2021-01-08 | 2024-07-30 | Take-Two Interactive Software, Inc. | Method and system for obfuscating and protecting game logic and variables during video game compilation |
US11539503B2 (en) * | 2021-03-03 | 2022-12-27 | Red Hat, Inc. | Container management for cryptanalysis attack protection |
US11662987B2 (en) | 2021-08-06 | 2023-05-30 | International Business Machines Corporation | Logically splitting object code into modules with lazy loading of content |
CN113867720B (zh) | 2021-09-29 | 2024-12-24 | 上海同星智能科技有限公司 | 软件平台用第三方程序库函数互调方法及互调系统 |
EP4167111B1 (en) * | 2021-10-12 | 2024-05-01 | Planora Oy | Method and apparatus for preparing unique software |
CN115794260B (zh) * | 2023-02-06 | 2023-05-05 | 湖南高至科技有限公司 | 一种简单的dsp软件库动态加载方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7565665B2 (en) | 1998-09-09 | 2009-07-21 | Microsoft Corporation | Efficient linking and loading for late binding and platform retargeting |
US6801999B1 (en) * | 1999-05-20 | 2004-10-05 | Microsoft Corporation | Passive and active software objects containing bore resistant watermarking |
US6594761B1 (en) | 1999-06-09 | 2003-07-15 | Cloakware Corporation | Tamper resistant software encoding |
US6779114B1 (en) | 1999-08-19 | 2004-08-17 | Cloakware Corporation | Tamper resistant software-control flow encoding |
US7287166B1 (en) * | 1999-09-03 | 2007-10-23 | Purdue Research Foundation | Guards for application in software tamperproofing |
KR100568228B1 (ko) | 2003-05-20 | 2006-04-07 | 삼성전자주식회사 | 고유번호를 이용한 프로그램 탬퍼 방지 방법과 난독처리된 프로그램 업그레이드 방법, 상기 방법을 위한 장치 |
US7454745B2 (en) * | 2003-07-31 | 2008-11-18 | International Business Machines Corporation | Automated semantic-based updates to modified code base |
US8307354B2 (en) | 2004-06-28 | 2012-11-06 | Panasonic Corporation | Program creation device, program test device, program execution device, information processing system |
US20060179421A1 (en) * | 2005-02-09 | 2006-08-10 | International Business Machines Corporation | Dynamic interface binding using XML transformations |
US7567971B2 (en) * | 2005-05-20 | 2009-07-28 | International Business Machines Corporation | Generic symbol referencing mechanism |
US20070245323A1 (en) * | 2006-04-13 | 2007-10-18 | Apple Computer, Inc. | Sharing compiled versions of files |
US20080016314A1 (en) | 2006-07-12 | 2008-01-17 | Lixin Li | Diversity-based security system and method |
US7724918B2 (en) * | 2006-11-22 | 2010-05-25 | International Business Machines Corporation | Data obfuscation of text data using entity detection and replacement |
US20130124849A1 (en) * | 2009-08-26 | 2013-05-16 | Joseph D. Steele | System And Method For Individualizing Content For A Consumer |
-
2010
- 2010-03-31 EP EP10848641.6A patent/EP2553570B1/en active Active
- 2010-03-31 KR KR1020127028136A patent/KR20140053756A/ko not_active Application Discontinuation
- 2010-03-31 WO PCT/CA2010/000450 patent/WO2011120122A1/en active Application Filing
- 2010-03-31 CN CN201080065909.5A patent/CN102939587B/zh active Active
- 2010-03-31 CA CA2792304A patent/CA2792304C/en not_active Expired - Fee Related
- 2010-03-31 US US13/634,724 patent/US9639377B2/en active Active
- 2010-03-31 JP JP2013501567A patent/JP5735629B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2013524321A (ja) | 2013-06-17 |
CA2792304C (en) | 2018-07-31 |
US20130014275A1 (en) | 2013-01-10 |
CN102939587A (zh) | 2013-02-20 |
EP2553570A4 (en) | 2014-04-09 |
US9639377B2 (en) | 2017-05-02 |
EP2553570B1 (en) | 2018-08-15 |
WO2011120122A1 (en) | 2011-10-06 |
EP2553570A1 (en) | 2013-02-06 |
CA2792304A1 (en) | 2011-10-06 |
CN102939587B (zh) | 2016-08-03 |
JP5735629B2 (ja) | 2015-06-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR20140053756A (ko) | 어플리케이션을 보호하기 위한 링크와 로드 방법 | |
Gal et al. | Trace-based just-in-time type specialization for dynamic languages | |
KR101440646B1 (ko) | 컴퓨터 구현가능 방법, 및 소프트웨어 보안 향상 방법 | |
Rose | Bytecodes meet combinators: invokedynamic on the JVM | |
US10216497B2 (en) | Selective compiling method, device, and corresponding computer program product | |
CN103460217A (zh) | 用于保护应用程序和相关计算机程序产品的方法 | |
US7418699B2 (en) | Method and system for performing link-time code optimization without additional code analysis | |
CN113342323B (zh) | 软件在线开发的方法及装置 | |
Grimmer et al. | An efficient native function interface for java | |
Murphy et al. | Software profiling options and their effects on security based diversification | |
US20080250399A1 (en) | Evaluation and Selection of Programming Code | |
Liem et al. | A compiler-based infrastructure for software-protection | |
Li et al. | Towards a generic framework for automating extensive analysis of android applications | |
Reif et al. | TACAI: an intermediate representation based on abstract interpretation | |
Daynes et al. | Sharing the runtime representation of classes across class loaders | |
Yusuf et al. | On-stack replacement to improve JIT-based obfuscation a preliminary study | |
Kang et al. | Modular implementation of adaptive decisions in stochastic simulations | |
Abrath | Practical protections for native programs | |
McGachey et al. | Classifying Java class transformations for pervasive virtualized access | |
Robatmili et al. | Muscalietjs: Rethinking layered dynamic web runtimes | |
Petráček | LLVM obfuskátor | |
Vernemmen | Semantic software renewability | |
Ghosh et al. | What's the PointiSA? | |
Solutions | DashO User's Guide | |
De Bus et al. | Diabatik: Diablo’s instrumentation toolkit |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0105 | International application |
Patent event date: 20121026 Patent event code: PA01051R01D Comment text: International Patent Application |
|
PG1501 | Laying open of application | ||
A201 | Request for examination | ||
PA0201 | Request for examination |
Patent event code: PA02012R01D Patent event date: 20150323 Comment text: Request for Examination of Application |
|
N231 | Notification of change of applicant | ||
PN2301 | Change of applicant |
Patent event date: 20150415 Comment text: Notification of Change of Applicant Patent event code: PN23011R01D |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20160830 Patent event code: PE09021S01D |
|
E902 | Notification of reason for refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Notification of reason for refusal Patent event date: 20170428 Patent event code: PE09021S01D |
|
E90F | Notification of reason for final refusal | ||
PE0902 | Notice of grounds for rejection |
Comment text: Final Notice of Reason for Refusal Patent event date: 20171027 Patent event code: PE09021S02D |
|
E601 | Decision to refuse application | ||
PE0601 | Decision on rejection of patent |
Patent event date: 20180227 Comment text: Decision to Refuse Application Patent event code: PE06012S01D Patent event date: 20171027 Comment text: Final Notice of Reason for Refusal Patent event code: PE06011S02I Patent event date: 20170428 Comment text: Notification of reason for refusal Patent event code: PE06011S01I Patent event date: 20160830 Comment text: Notification of reason for refusal Patent event code: PE06011S01I |