JP7320071B2 - ヒープメモリを利用して実行可能ファイルを保護する方法およびシステム - Google Patents
ヒープメモリを利用して実行可能ファイルを保護する方法およびシステム Download PDFInfo
- Publication number
- JP7320071B2 JP7320071B2 JP2021557267A JP2021557267A JP7320071B2 JP 7320071 B2 JP7320071 B2 JP 7320071B2 JP 2021557267 A JP2021557267 A JP 2021557267A JP 2021557267 A JP2021557267 A JP 2021557267A JP 7320071 B2 JP7320071 B2 JP 7320071B2
- Authority
- JP
- Japan
- Prior art keywords
- memory space
- memory
- location
- executable file
- relocation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; 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 OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F12/00—Accessing, addressing or allocating within memory systems or architectures
- G06F12/02—Addressing or allocation; Relocation
- G06F12/08—Addressing or allocation; Relocation in hierarchically structured memory systems, e.g. virtual memory systems
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Health & Medical Sciences (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- Multimedia (AREA)
- Technology Law (AREA)
- Storage Device Security (AREA)
Description
したがって、異なる実施形態であっても、特許請求の範囲と均等なものであれば、添付される特許請求の範囲に属する。
Claims (13)
- コンピュータ装置のメモリに積載された実行可能ファイルの内容に対するメモリ空間のうちから保護のために難読化された内容が積載された保護メモリ空間を識別する段階、
個別のヒープメモリを割り当てる段階、
前記保護メモリ空間の難読化された内容を復号化して前記割り当てられたヒープメモリにコピーする段階、および
メモリに積載された前記実行可能ファイルの再配置情報を利用して前記実行可能ファイルの内容に対するメモリ空間のアドレスを動的に修正する段階
を前記コンピュータ装置に実行させ、
前記修正する段階は、
前記再配置情報から把握される再配置位置が前記保護メモリ空間を示す場合、
前記保護メモリ空間の開始位置と前記再配置情報から把握される再配置位置との差である第1オフセットを計算する段階、
前記ヒープメモリの開始位置に前記第1オフセットを加えた前記ヒープメモリの第1位置に移動する段階、
前記実行可能ファイルの内容に対するメモリ空間の開始位置と前記保護メモリ空間の開始位置との差である第2オフセットを計算する段階、および
前記ヒープメモリの開始位置から前記第2オフセットを引いた位置から前記再配置情報によって計算された第1アドレス値を示すように前記第1位置に保存された第2アドレス値を修正する段階
を含む、コンピュータプログラム。 - コンピュータ装置のメモリに積載された実行可能ファイルの内容に対するメモリ空間のうちから保護のために難読化された内容が積載された保護メモリ空間を識別する段階、
個別のヒープメモリを割り当てる段階、
前記保護メモリ空間の難読化された内容を復号化して前記割り当てられたヒープメモリにコピーする段階、および
メモリに積載された前記実行可能ファイルの再配置情報を利用して前記実行可能ファイルの内容に対するメモリ空間のアドレスを動的に修正する段階
を前記コンピュータ装置に実行させ、
前記修正する段階は、
前記再配置情報から把握される再配置位置が前記保護メモリ空間でない場合、前記実行可能ファイルの内容に対するメモリ空間の開始位置から前記再配置情報によって計算されたアドレス値に基づいて、前記再配置位置に保存されたアドレス値を修正する段階
を含む、コンピュータプログラム。 - 前記再配置位置に保存されたアドレス値を修正する段階は、
前記計算されたアドレス値が前記保護メモリ空間を示さない場合、前記計算されたアドレス値を示すように前記再配置位置に保存されたアドレス値を修正する段階、および
前記計算されたアドレス値が前記保護メモリ空間を示す場合、前記保護メモリ空間の開始位置と前記計算されたアドレス値との差に相応するオフセットを計算し、前記ヒープメモリの開始位置に前記計算されたオフセットを加えたアドレス値として前記再配置位置に保存されたアドレス値を修正する段階
を含むことを特徴とする、請求項2に記載のコンピュータプログラム。 - 前記修正する段階の後に、前記メモリに積載された前記実行可能ファイルの再配置情報を削除する段階
をさらに前記コンピュータ装置に実行させる、請求項1から3のうちのいずれか一項に記載のコンピュータプログラム。 - 前記実行可能ファイルの実行の終了によって前記ヒープメモリを解除する段階
をさらに前記コンピュータ装置に実行させる、請求項1から4のうちのいずれか一項に記載のコンピュータプログラム。 - 前記ヒープメモリを割り当てる段階の後に、前記ヒープメモリに実行属性を追加する段階
をさらに前記コンピュータ装置に実行させる、請求項1から5のうちのいずれか一項に記載のコンピュータプログラム。 - 前記修正する段階の後に、前記ヒープメモリから書き込み属性を取り除く段階
をさらに前記コンピュータ装置に実行させる、請求項1から6のうちのいずれか一項に記載のコンピュータプログラム。 - 前記個別のヒープメモリを割り当てる段階は、
複数のヒープメモリを割り当てる段階を含み、
前記割り当てられたヒープメモリにコピーする段階は、
前記保護メモリ空間の難読化された内容を復号化して前記複数のヒープメモリに分散してコピーすることを特徴とする、請求項1から7のうちのいずれか一項に記載のコンピュータプログラム。 - 請求項1から8のうちのいずれか一項に記載のコンピュータプログラムを前記実行可能ファイルと連係させる段階、
前記実行可能ファイルの少なくとも一部の内容を難読化する段階、および
前記コンピュータプログラムと連係して少なくとも一部内容が難読化された実行可能ファイルを配布する段階
を含むことを特徴とする、実行可能ファイル保護方法。 - 前記連係させる段階は、
前記実行可能ファイルの最初の実行領域に前記コンピュータプログラムのコードを追加するか、前記コンピュータプログラムを含む別の実行ファイルまたは動的ライブラリを前記実行可能ファイルから呼び出すように前記実行可能ファイルを変更するか、または前記
実行可能ファイルを変更するための別の外部プログラムファイルとして前記コンピュータプログラムが含まれたファイルを生成することを特徴とする、請求項9に記載の実行可能ファイル保護方法。 - コンピュータ装置のメモリに積載された実行可能ファイルの内容に対するメモリ空間のうちから保護のために難読化された内容が積載された保護メモリ空間を識別する段階、
個別のヒープメモリを割り当てる段階、
前記保護メモリ空間の難読化された内容を復号化して前記割り当てられたヒープメモリにコピーする段階、および
メモリに積載された前記実行可能ファイルの再配置情報を利用して前記実行可能ファイルの内容に対するメモリ空間のアドレスを動的に修正する段階
を含み、
前記修正する段階は、
前記再配置情報から把握される再配置位置が前記保護メモリ空間を示す場合、
前記保護メモリ空間の開始位置と前記再配置情報から把握される再配置位置との差である第1オフセットを計算する段階、
前記ヒープメモリの開始位置に前記第1オフセットを加えた前記ヒープメモリの第1位置に移動する段階、
前記実行可能ファイルの内容に対するメモリ空間の開始位置と前記保護メモリ空間の開始位置との差である第2オフセットを計算する段階、および
前記ヒープメモリの開始位置から前記第2オフセットを引いた位置から前記再配置情報によって計算された第1アドレス値を示すように前記第1位置に保存された第2アドレス値を修正する段階
を含む、実行可能ファイル保護方法。 - コンピュータ装置のメモリに積載された実行可能ファイルの内容に対するメモリ空間のうちから保護のために難読化された内容が積載された保護メモリ空間を識別する段階、
個別のヒープメモリを割り当てる段階、
前記保護メモリ空間の難読化された内容を復号化して前記割り当てられたヒープメモリにコピーする段階、および
メモリに積載された前記実行可能ファイルの再配置情報を利用して前記実行可能ファイルの内容に対するメモリ空間のアドレスを動的に修正する段階
を含み、
前記修正する段階は、
前記再配置情報から把握される再配置位置が前記保護メモリ空間でない場合、前記実行可能ファイルの内容に対するメモリ空間の開始位置から前記再配置情報によって計算されたアドレス値に基づいて、前記再配置位置に保存されたアドレス値を修正する段階
を含む、実行可能ファイル保護方法。 - 請求項11または12に記載の方法をコンピュータ装置に実行させるためのコンピュータプログラムが記録されている、コンピュータ読み取り可能な記録媒体。
Applications Claiming Priority (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| PCT/KR2019/003618 WO2020196959A1 (ko) | 2019-03-28 | 2019-03-28 | 힙 메모리를 이용하여 실행 가능 파일을 보호하는 방법 및 시스템 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| JP2022535320A JP2022535320A (ja) | 2022-08-08 |
| JP7320071B2 true JP7320071B2 (ja) | 2023-08-02 |
Family
ID=72611577
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| JP2021557267A Active JP7320071B2 (ja) | 2019-03-28 | 2019-03-28 | ヒープメモリを利用して実行可能ファイルを保護する方法およびシステム |
Country Status (3)
| Country | Link |
|---|---|
| JP (1) | JP7320071B2 (ja) |
| KR (1) | KR102759489B1 (ja) |
| WO (1) | WO2020196959A1 (ja) |
Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001175466A (ja) | 1999-12-21 | 2001-06-29 | Fuji Xerox Co Ltd | 実行プログラムの生成方法及び実行プログラム生成装置、実行プログラムの実行方法、並びに、コンピュータ可読プログラム記憶媒体 |
| JP2015032009A (ja) | 2013-07-31 | 2015-02-16 | 富士通セミコンダクター株式会社 | プログラム実行方法および復号装置 |
Family Cites Families (8)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2009258772A (ja) * | 2006-08-09 | 2009-11-05 | Panasonic Corp | アプリケーション実行装置 |
| TWI438633B (zh) * | 2007-11-29 | 2014-05-21 | Ibm | 記憶體管理之垃圾收集方法、其電腦程式產品,及其裝置 |
| US9117094B2 (en) * | 2008-10-29 | 2015-08-25 | Microsoft Technology Licensing, Llc | Data location obfuscation |
| WO2014033606A2 (en) * | 2012-08-31 | 2014-03-06 | Pradeep Varma | Systems and methods of memory and access management |
| US9268677B2 (en) * | 2012-10-24 | 2016-02-23 | Apple Inc. | Dynamic obfuscation of heap memory allocations |
| KR101623096B1 (ko) * | 2015-05-13 | 2016-05-23 | 주식회사 에스이웍스 | 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법 |
| EP3179690A1 (en) * | 2015-12-11 | 2017-06-14 | Gemalto Sa | Mobile device having trusted execution environment |
| KR101753811B1 (ko) * | 2016-12-14 | 2017-07-19 | 올댓소프트 코. | 동적 할당 메모리를 이용하는 애플리케이션 코드 자가 변환 장치 및 이를 이용한 애플리케이션 코드 자가 변환 방법 |
-
2019
- 2019-03-28 JP JP2021557267A patent/JP7320071B2/ja active Active
- 2019-03-28 WO PCT/KR2019/003618 patent/WO2020196959A1/ko not_active Ceased
- 2019-03-28 KR KR1020217026454A patent/KR102759489B1/ko active Active
Patent Citations (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| JP2001175466A (ja) | 1999-12-21 | 2001-06-29 | Fuji Xerox Co Ltd | 実行プログラムの生成方法及び実行プログラム生成装置、実行プログラムの実行方法、並びに、コンピュータ可読プログラム記憶媒体 |
| JP2015032009A (ja) | 2013-07-31 | 2015-02-16 | 富士通セミコンダクター株式会社 | プログラム実行方法および復号装置 |
Also Published As
| Publication number | Publication date |
|---|---|
| KR102759489B1 (ko) | 2025-01-24 |
| WO2020196959A1 (ko) | 2020-10-01 |
| JP2022535320A (ja) | 2022-08-08 |
| KR20210133961A (ko) | 2021-11-08 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| US10255443B2 (en) | Method, apparatus, system and non-transitory computer readable medium for code protection | |
| CN108121594B (zh) | 一种进程管理方法及装置 | |
| US10204235B2 (en) | Content item encryption on mobile devices | |
| US9116621B1 (en) | System and method of transfer of control between memory locations | |
| CN112219202B (zh) | 用于客户操作系统的存储器分配 | |
| JP6917150B2 (ja) | コード保護方法およびコンピュータプログラム | |
| US8769498B2 (en) | Warning of register and storage area assignment errors | |
| CN113220314B (zh) | App资源加载及apk生成方法、装置、设备及介质 | |
| JP7320071B2 (ja) | ヒープメモリを利用して実行可能ファイルを保護する方法およびシステム | |
| CN113110849A (zh) | 按需加载资源 | |
| KR102763040B1 (ko) | 메모리상에서 실행 가능 이미지를 적재하는 방법 및 시스템 | |
| KR102803025B1 (ko) | 클래스 분산 및 순차적 메모리 적재를 이용한 파일 보호 방법 및 시스템 | |
| US11822663B2 (en) | Supervisor-based firmware hardening | |
| CN110633210B (zh) | 文件执行方法、装置、存储介质和电子设备 | |
| KR102677540B1 (ko) | 네이티브 라이브러리를 보호하는 방법 및 시스템 | |
| KR101771348B1 (ko) | 패키지 파일에 대한 패킹 방법 및 시스템 | |
| US9965621B2 (en) | Program protection device | |
| KR100848284B1 (ko) | 소프트웨어 스트리밍을 제공하는 적재기 및 방법 | |
| JP2025128494A (ja) | プログラム生成方法、プログラム生成装置、プログラム生成方法を実行可能なプログラム生成プログラム | |
| CN116340904A (zh) | 应用运行保护方法、装置、设备及存储介质 | |
| CN114238871A (zh) | So中类成员函数保护方法、存储介质、电子设备及系统 | |
| CN113535278A (zh) | 动态库调用方法、装置、电子设备及存储介质 | |
| CN114461306A (zh) | 运行软件的方法、装置及机器可读存储介质 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20220323 |
|
| A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20220323 |
|
| A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20230310 |
|
| A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20230411 |
|
| A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20230710 |
|
| TRDD | Decision of grant or rejection written | ||
| A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20230718 |
|
| A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20230721 |
|
| R150 | Certificate of patent or registration of utility model |
Ref document number: 7320071 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |