JP6815386B2 - アプリケーションのコードを保護するためのシステム、方法およびプログラム - Google Patents
アプリケーションのコードを保護するためのシステム、方法およびプログラム Download PDFInfo
- Publication number
- JP6815386B2 JP6815386B2 JP2018506544A JP2018506544A JP6815386B2 JP 6815386 B2 JP6815386 B2 JP 6815386B2 JP 2018506544 A JP2018506544 A JP 2018506544A JP 2018506544 A JP2018506544 A JP 2018506544A JP 6815386 B2 JP6815386 B2 JP 6815386B2
- Authority
- JP
- Japan
- Prior art keywords
- file
- code
- encrypted
- intermediate language
- library
- 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
- 238000000034 method Methods 0.000 title claims description 44
- 230000008569 process Effects 0.000 claims description 20
- 230000008676 import Effects 0.000 claims description 5
- 230000005540 biological transmission Effects 0.000 claims description 4
- 230000004044 response Effects 0.000 claims description 3
- 238000011084 recovery Methods 0.000 description 19
- 230000015654 memory Effects 0.000 description 16
- 238000004891 communication Methods 0.000 description 13
- 238000010586 diagram Methods 0.000 description 8
- 238000004590 computer program Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 238000010295 mobile communication Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 241000136406 Comones Species 0.000 description 1
- 230000004075 alteration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000009434 installation Methods 0.000 description 1
- 230000005389 magnetism Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
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
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/60—Protecting data
- G06F21/62—Protecting access to data via a platform, e.g. using keys or access control rules
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- General Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- Technology Law (AREA)
- Multimedia (AREA)
- Health & Medical Sciences (AREA)
- Bioethics (AREA)
- General Health & Medical Sciences (AREA)
- Storage Device Security (AREA)
Description
510:受信制御部
520:暗号化制御部
530:ファイル追加制御部
540:送信制御部
Claims (20)
- サーバのシステムであって、
アプリケーションのコードがコンパイルされて生成された中間言語コードを含むファイルおよび前記中間言語コードによって前記アプリケーションを実行するように電子機器に実行環境を提供するためのライブラリファイルを含むパッケージを受信する受信制御手段と、
前記中間言語コードを含むファイルのうちの少なくとも1つのファイルを暗号化するように前記サーバを制御する暗号化制御手段と、
前記電子機器での前記アプリケーションの実行のために前記ライブラリファイルを用いることで、少なくとも1つの前記暗号化されたファイルを復号するためのコードを含む復号用ファイルを前記パッケージに追加する、ファイル追加制御手段と、を含み、
前記ライブラリファイルは、前記中間言語コードを含むファイルを呼び込むためのコードを含む第1ライブラリファイルおよび前記第1ライブラリファイルに対するAPI(Application Programming Interface)コールによって前記中間言語コードを含むファイルのバッファを読み取ってパースするためのコードを含む第2ライブラリファイルを含むことを特徴とするシステム。 - 前記受信制御手段は、
前記中間言語コードを含むファイルのうちの暗号化するためのファイルに関する情報をさらに受信するように前記サーバを制御し、
前記暗号化制御手段は、
前記中間言語コードを含むファイルのうちの前記さらに受信した情報に対応するファイルを暗号化するように前記サーバを制御することを特徴とする、請求項1に記載のシステム。 - 前記少なくとも1つのファイルは、前記実行環境のためのヘッダ部分および前記アプリケーションのためのコード部分を含み、
前記暗号化制御手段は、
前記ヘッダ部分および前記コード部分のうちの少なくとも一方を暗号化するように前記サーバを制御することを特徴とする、請求項1に記載のシステム。 - 前記暗号化制御手段は、
前記ヘッダ部分を暗号化する場合、前記ヘッダ部分が含む情報をヌル値に変更して暗号化することを特徴とする、請求項3に記載のシステム。 - 前記復号用ファイルは、前記第2ライブラリファイルが含むコードに基づいて前記第1ライブラリファイルがAPIコールされることによって読み取られる少なくとも1つの前記暗号化されたファイルに対するバッファを復号し、少なくとも1つの前記暗号化されたファイルを復号するためのコードを含むことを特徴とする、請求項1に記載のシステム。
- 前記復号用ファイルは、前記第1ライブラリファイルのAPIに関する情報を含む前記第2ライブラリファイルのIAT(Import Address Table)をフッキングし、前記第2ライブラリファイルが含むコードによる前記APIコールを確認するためのコードを含むことを特徴とする、請求項5に記載のシステム。
- ネットワークを介した前記電子機器からの要請に応じ、前記復号用ファイルが追加された前記パッケージを前記電子機器に送信するように前記サーバを制御する送信制御手段
をさらに備えることを特徴とする、請求項1に記載のシステム。 - アプリケーションのコードがコンパイルされて生成された中間言語コード、少なくとも1つの暗号化されたファイルおよび前記中間言語コードによって前記アプリケーションを実行するように電子機器に実行環境を提供するためのライブラリファイルおよび少なくとも1つの前記暗号化されたファイルを復号するための復号用ファイルを含むパッケージを受信する受信制御手段と、
前記アプリケーションの実行過程において、前記復号用ファイルに含まれたコードの制御にしたがって前記アプリケーションの実行のために前記ライブラリファイルを用いることで、少なくとも1つの前記暗号化されたファイルを復号する復号制御手段と、を含み、
前記ライブラリファイルは、前記中間言語コードを含むファイルを呼び込むためのコードを含む第1ライブラリファイルおよび前記第1ライブラリファイルに対するAPI(Application Programming Interface)コールによって前記中間言語コードを含むファイルのバッファを読み取ってパースするためのコードを含む第2ライブラリファイルを含むことを特徴とするシステム。 - 前記復号制御手段は、
前記第2ライブラリファイルが含むコードに基づいて前記第1ライブラリファイルがAPIコールされることによって読み取られる少なくとも1つの前記暗号化されたファイルに対するバッファを前記復号用ファイルが含むコードの制御にしたがって復号し、少なくとも1つの前記暗号化されたファイルを復号することを特徴とする、請求項8に記載のシステム。 - 前記復号制御手段は、
前記復号用ファイルが含むコードの制御にしたがって前記第1ライブラリファイルのAPIに関する情報を含む前記第2ライブラリファイルのIAT(Import Address Table)をフッキングし、前記第2ライブラリファイルが含むコードによる前記APIコールを確認することを特徴とする、請求項9に記載のシステム。 - 前記復号制御手段は、
少なくとも1つの前記暗号化されたファイルのヘッダ部分が予め設定された値で始まるかによって少なくとも1つの前記暗号化されたファイルの暗号化の可否を確認することを特徴とする、請求項8に記載のシステム。 - アプリケーションのコードがコンパイルされて生成された中間言語コードを含むファイルおよび前記中間言語コードによって前記アプリケーションを実行するように電子機器に実行環境を提供するためのライブラリファイルを含むパッケージを受信する受信工程と、
前記中間言語コードを含む前記ファイルのうちの少なくとも1つのファイルを暗号化する暗号化工程と、
前記電子機器での前記アプリケーションの実行のために前記ライブラリファイルを用いることで、少なくとも1つの前記暗号化されたファイルを復号するためのコードを含む復号用ファイルを前記パッケージに追加する追加工程と、を含み、
前記ライブラリファイルは、前記中間言語コードを含むファイルを呼び込むためのコードを含む第1ライブラリファイルおよび前記第1ライブラリファイルに対するAPI(Application Programming Interface)コールによって前記中間言語コードを含むファイルのバッファを読み取ってパースするためのコードを含む第2ライブラリファイルを含むことを特徴とする方法。 - 前記受信工程は、
前記中間言語コードを含むファイルのうちの暗号化するためのファイルに関する情報をさらに受信し、
前記暗号化工程は、
前記中間言語コードを含むファイルのうちの前記さらに受信した情報に対応するファイルを暗号化することを特徴とする、請求項12に記載の方法。 - 前記少なくとも1つのファイルは、前記実行環境のためのヘッダ部分および前記アプリケーションのためのコード部分を含み、
前記暗号化工程は、
前記ヘッダ部分および前記コード部分のうちの少なくとも一方を暗号化することを特徴とする、請求項12に記載の方法。 - 前記復号用ファイルは、前記第2ライブラリファイルが含むコードに基づいて前記第1ライブラリファイルがAPIコールされることによって読み取られる少なくとも1つの前記暗号化されたファイルに対するバッファを復号し、少なくとも1つの前記暗号化されたファイルを復号するためのコードを含むことを特徴とする、請求項12に記載の方法。
- ネットワークを介した前記電子機器からの要請に応じ、前記復号用ファイルが追加された前記パッケージを前記電子機器に送信する工程
をさらに含むことを特徴とする、請求項12に記載の方法。 - 請求項12〜16のうちのいずれか一項に記載の方法を実行するためのプログラム。
- プログラムであって、電子機器のシステムに、
アプリケーションのコードがコンパイルされて生成された中間言語コード、少なくとも1つの暗号化されたファイルおよび前記中間言語コードによって前記アプリケーションを実行するように電子機器に実行環境を提供するためのライブラリファイルおよび少なくとも1つの前記暗号化されたファイルを復号するための復号用ファイルを含むパッケージを受信する受信工程と、
前記アプリケーションの実行過程において、前記復号用ファイルに含まれたコードの制御にしたがって前記アプリケーションの実行のために前記ライブラリファイルを用いることで、少なくとも1つの前記暗号化されたファイルを復号するように前記電子機器を制御する復号工程と、
を実行させ、
前記ライブラリファイルは、前記中間言語コードを含むファイルを呼び込むためのコードを含む第1ライブラリファイルおよび前記第1ライブラリファイルに対するAPI(Application Programming Interface)コールによって前記中間言語コードを含むファイルのバッファを読み取ってパースするためのコードを含む第2ライブラリファイルを含むことを特徴とする、プログラム。 - 前記復号工程は、
前記第2ライブラリファイルが含むコードに基づいて前記第1ライブラリファイルがAPIコールされることによって読み取られる少なくとも1つの前記暗号化されたファイルに対するバッファを前記復号用ファイルが含むコードの制御にしたがって復号し、少なくとも1つの前記暗号化されたファイルを復号するように前記電子機器を制御することを特徴とする、請求項18に記載のプログラム。 - 前記復号工程は、
少なくとも1つの前記暗号化されたファイルのヘッダ部分が予め設定された値で始まるかによって少なくとも1つの前記暗号化されたファイルの暗号化の可否を確認することを特徴とする、請求項18に記載のプログラム。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020150112740A KR101740133B1 (ko) | 2015-08-10 | 2015-08-10 | 어플리케이션의 코드를 보호하기 위한 시스템 및 방법 |
KR10-2015-0112740 | 2015-08-10 | ||
PCT/KR2016/008587 WO2017026738A1 (ko) | 2015-08-10 | 2016-08-04 | 어플리케이션의 코드를 보호하기 위한 시스템 및 방법 |
Publications (3)
Publication Number | Publication Date |
---|---|
JP2018527664A JP2018527664A (ja) | 2018-09-20 |
JP2018527664A5 JP2018527664A5 (ja) | 2019-09-12 |
JP6815386B2 true JP6815386B2 (ja) | 2021-01-20 |
Family
ID=57984491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2018506544A Active JP6815386B2 (ja) | 2015-08-10 | 2016-08-04 | アプリケーションのコードを保護するためのシステム、方法およびプログラム |
Country Status (3)
Country | Link |
---|---|
JP (1) | JP6815386B2 (ja) |
KR (1) | KR101740133B1 (ja) |
WO (1) | WO2017026738A1 (ja) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7131946B2 (ja) | 2017-04-20 | 2022-09-06 | Line株式会社 | アプリケーションの保安性を評価する方法およびシステム |
WO2018194198A1 (ko) * | 2017-04-20 | 2018-10-25 | 라인 가부시키가이샤 | Pe 파일의 난독화 적용 여부의 탐지 및 보안성 평가를 위한 방법 및 시스템 |
WO2018194196A1 (ko) * | 2017-04-20 | 2018-10-25 | 라인 가부시키가이샤 | Elf 파일의 난독화 적용 여부의 탐지 및 보안성 평가를 위한 방법 및 시스템 |
WO2018199366A1 (ko) * | 2017-04-28 | 2018-11-01 | 라인 가부시키가이샤 | 덱스 파일의 난독화 적용 여부의 탐지 및 보안성 평가를 위한 방법 및 시스템 |
CN111273943A (zh) * | 2018-12-04 | 2020-06-12 | 北京嘀嘀无限科技发展有限公司 | 应用文件的生成方法、装置及电子设备 |
CN110472425A (zh) * | 2019-07-18 | 2019-11-19 | 福建天晴在线互动科技有限公司 | 基于Mono的Unity插件加密方法、存储介质 |
CN110619220B (zh) * | 2019-08-09 | 2022-03-11 | 北京小米移动软件有限公司 | 对神经网络模型加密的方法及装置、存储介质 |
Family Cites Families (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5625690A (en) * | 1993-11-15 | 1997-04-29 | Lucent Technologies Inc. | Software pay per use system |
JP4727366B2 (ja) * | 2005-09-28 | 2011-07-20 | 株式会社デジタル | 情報処理装置、情報処理システム、プログラムおよび記録媒体 |
JP2007172526A (ja) * | 2005-12-26 | 2007-07-05 | Nippon Computer Co Ltd | 情報処理システム、情報処理方法 |
JP2007328541A (ja) * | 2006-06-07 | 2007-12-20 | Canon Inc | 電子機器 |
EP2467800B1 (en) * | 2009-11-13 | 2021-06-30 | Irdeto B.V. | System and method to protect java bytecode code against static and dynamic attacks within hostile execution environments |
KR101092373B1 (ko) * | 2010-01-07 | 2011-12-09 | 한국과학기술연구원 | 소프트웨어 패키지의 생성 및 설치를 위한 시스템 및 방법 |
CN102236757A (zh) * | 2011-06-30 | 2011-11-09 | 北京邮电大学 | 一种适用于Android***的软件保护方法及*** |
US8887152B1 (en) * | 2011-11-04 | 2014-11-11 | Trend Micro, Inc. | Android application virtual environment |
US8892876B1 (en) * | 2012-04-20 | 2014-11-18 | Trend Micro Incorporated | Secured application package files for mobile computing devices |
KR101472346B1 (ko) * | 2012-05-24 | 2014-12-16 | 주식회사 엘지유플러스 | 암호화된 웹 어플리케이션 제공 방법, 이를 지원하는 단말, 및 이를 위한 기록매체 |
KR101391982B1 (ko) * | 2012-08-28 | 2014-05-07 | 바른소프트기술 주식회사 | 안드로이드 어플리케이션의 디컴파일 방지를 위한 암호화 방법 |
KR101471589B1 (ko) * | 2013-08-22 | 2014-12-10 | (주)잉카엔트웍스 | 공통중간언어 기반 프로그램을 위한 보안 제공 방법 |
-
2015
- 2015-08-10 KR KR1020150112740A patent/KR101740133B1/ko active IP Right Grant
-
2016
- 2016-08-04 WO PCT/KR2016/008587 patent/WO2017026738A1/ko active Application Filing
- 2016-08-04 JP JP2018506544A patent/JP6815386B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
KR101740133B1 (ko) | 2017-05-26 |
WO2017026738A1 (ko) | 2017-02-16 |
KR20170018744A (ko) | 2017-02-20 |
JP2018527664A (ja) | 2018-09-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP6815386B2 (ja) | アプリケーションのコードを保護するためのシステム、方法およびプログラム | |
JP6815385B2 (ja) | アプリケーションのコード難読化のためのシステムおよび方法 | |
US10255443B2 (en) | Method, apparatus, system and non-transitory computer readable medium for code protection | |
JP6490598B2 (ja) | コンパイラベースの難読化 | |
US20170116410A1 (en) | Software protection | |
RU2542930C2 (ru) | Защищенная загрузка и конфигурирование подсистемы с нелокального запоминающего устройства | |
CN111143869B (zh) | 应用程序包处理方法、装置、电子设备及存储介质 | |
US9158902B2 (en) | Software modification for partial secure memory processing | |
CN109891415B (zh) | 针对未经授权的客户端应用程序保护Web服务器 | |
US9887842B2 (en) | Binding software application bundles to a physical execution medium | |
CN114547558A (zh) | 授权方法、授权控制方法及装置、设备和介质 | |
KR101734663B1 (ko) | 안드로이드 어플리케이션의 역공학 방지 방법 및 이를 수행하는 장치 | |
CN112363771B (zh) | 应用程序的处理方法及相关产品 | |
KR20170069337A (ko) | 애플리케이션 보호를 위한 암호화 처리 방법, 이에 의해 생성된 프로그램 및 이를 위한 장치 | |
KR20190060179A (ko) | 공통 중간 언어를 위한 보안 제공 장치와 방법, 및 보안 실행 장치와 방법 | |
KR101832594B1 (ko) | 중간 언어 파일의 로딩 속도 개선을 위한 방법 및 시스템 | |
US7934214B2 (en) | Computer implemented method, system and computer program product for controlling software entitlement | |
KR20100036298A (ko) | 임베디드 및 모바일 기기에서 특정 런타임 기반의 콘텐츠를 다른 기종의 단말에서 구동하는 방법 | |
KR20150047001A (ko) | 애플리케이션 프로그램 보호 방법 및 장치 | |
JP7015120B2 (ja) | アプリケーションパッケージを提供する方法およびシステム、アプリケーションを実行する方法およびシステム | |
KR102677540B1 (ko) | 네이티브 라이브러리를 보호하는 방법 및 시스템 | |
KR20240010048A (ko) | 소프트웨어 이용 시스템 및 소프트웨어 이용 방법 | |
KR20210151077A (ko) | 메모리상에서 실행 가능 이미지를 적재하는 방법 및 시스템 | |
Cho et al. | Potential privacy vulnerabilities in android data sharing between applications | |
JP2007525738A (ja) | 複数オブジェクトのダウンロード |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190731 |
|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20190731 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20200327 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20200421 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20200616 |
|
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: 20201201 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20201222 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6815386 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R371 | Transfer withdrawn |
Free format text: JAPANESE INTERMEDIATE CODE: R371 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
S533 | Written request for registration of change of name |
Free format text: JAPANESE INTERMEDIATE CODE: R313533 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |