JP5996809B2 - コード難読化装置及びその方法 - Google Patents
コード難読化装置及びその方法 Download PDFInfo
- Publication number
- JP5996809B2 JP5996809B2 JP2015542937A JP2015542937A JP5996809B2 JP 5996809 B2 JP5996809 B2 JP 5996809B2 JP 2015542937 A JP2015542937 A JP 2015542937A JP 2015542937 A JP2015542937 A JP 2015542937A JP 5996809 B2 JP5996809 B2 JP 5996809B2
- Authority
- JP
- Japan
- Prior art keywords
- code
- native
- obfuscation
- important
- self
- 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 43
- 230000004075 alteration Effects 0.000 claims description 26
- 238000001514 detection method Methods 0.000 claims description 17
- 230000005540 biological transmission Effects 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 4
- 230000003068 static effect Effects 0.000 description 4
- 230000006835 compression Effects 0.000 description 1
- 238000007906 compression Methods 0.000 description 1
- 238000005242 forging Methods 0.000 description 1
- 230000002265 prevention Effects 0.000 description 1
- 230000001012 protector 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
- 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/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/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/125—Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
-
- 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/106—Enforcing content protection by specific content processing
- G06F21/1066—Hiding content
Description
Claims (10)
- アンドロイドアプリケーションの実行コードを入力される入力部と、
前記入力された実行コードを分析して、アプリケーションの偽造・変造の攻撃から保護せねばならない重要コードと、前記重要コード以外の一般コードとに区分するコード分析部と、
前記重要コードをCコードに変換させてネイティブコードを生成するコードコンバータ部と、
前記ネイティブコード及び前記一般コードを難読化する難読化部と、
前記難読化されたネイティブコードに偽造・変造探知コードを追加して暗号化した後、ローディングルーチンを追加させて自己書換え技法が適用されたネイティブコードを生成する自己コード保護部と、
前記自己書換え技法が適用されたネイティブコードと前記難読化された一般コードとを結合するコード結合部と、
を含むコード難読化装置。 - 前記コード結合部によって結合された前記自己書換え技法が適用されたネイティブコードと前記難読化された一般コードとをクライアントに伝送する伝送部をさらに含む請求項1に記載のコード難読化装置。
- 前記自己書換え技法が適用されたネイティブコードは、CPU環境で動作し、前記難読化された一般コードは、ダルビック仮想マシンで実行される請求項2に記載のコード難読化装置。
- 前記コード分析部は、
既保存された重要コードモデルを用いて、前記入力された実行コードとマッチングされる実行コードを前記重要コードと判断する請求項3に記載のコード難読化装置。 - 前記ローディングルーチンは、
前記暗号化されたネイティブコードが実行される時、前記ネイティブコードの暗号化された部分をデコーディングする請求項4に記載のコード難読化装置。 - コード難読化装置を利用したコード難読化方法において、
前記コード難読化装置はアンドロイドアプリケーションの実行コードを入力される段階と、
前記コード難読化装置は前記入力された実行コードを分析して、アプリケーションの偽造・変造の攻撃から保護せねばならない重要コードと、前記重要コード以外の一般コードとに区分する段階と、
前記コード難読化装置は前記重要コードをCコードに変換させてネイティブコードを生成する段階と、
前記コード難読化装置は前記ネイティブコード及び前記一般コードを難読化する段階と、
前記コード難読化装置は前記難読化されたネイティブコードに偽造・変造探知コードを追加して暗号化した後、ローディングルーチンを追加させて自己書換え技法が適用されたネイティブコードを生成する段階と、
前記コード難読化装置は前記自己書換え技法が適用されたネイティブコードと前記難読化された一般コードとを結合する段階と、
を含むコード難読化方法。 - 前記コード難読化装置はコード結合部によって結合された前記自己書換え技法が適用されたネイティブコードと前記難読化された一般コードとをクライアントに伝送する段階をさらに含む請求項6に記載のコード難読化方法。
- 前記自己書換え技法が適用されたネイティブコードは、CPU環境で動作し、前記難読化された一般コードは、ダルビック仮想マシンで実行される請求項7に記載のコード難読化方法。
- 前記実行コードを分析して区分する段階は、
既保存された重要コードモデルを用いて、前記入力された実行コードとマッチングされる実行コードを前記重要コードと判断する請求項8に記載のコード難読化方法。 - 前記ローディングルーチンは、
前記暗号化されたネイティブコードが実行される時、前記ネイティブコードの暗号化された部分をデコーディングする請求項9に記載のコード難読化方法。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR10-2013-0096514 | 2013-08-14 | ||
KR1020130096514A KR101350390B1 (ko) | 2013-08-14 | 2013-08-14 | 코드 난독화 장치 및 그 방법 |
PCT/KR2013/008744 WO2015023023A1 (ko) | 2013-08-14 | 2013-09-30 | 코드 난독화 장치 및 그 방법 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2016503541A JP2016503541A (ja) | 2016-02-04 |
JP5996809B2 true JP5996809B2 (ja) | 2016-09-21 |
Family
ID=50145291
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015542937A Active JP5996809B2 (ja) | 2013-08-14 | 2013-09-30 | コード難読化装置及びその方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8984299B1 (ja) |
EP (1) | EP2897072B1 (ja) |
JP (1) | JP5996809B2 (ja) |
KR (1) | KR101350390B1 (ja) |
WO (1) | WO2015023023A1 (ja) |
Families Citing this family (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101328012B1 (ko) * | 2013-08-12 | 2013-11-13 | 숭실대학교산학협력단 | 애플리케이션 코드 난독화 장치 및 그 방법 |
US9208348B1 (en) * | 2014-01-15 | 2015-12-08 | Symantec Corporation | Systems and methods for managing encrypted files within application packages |
US9659156B1 (en) * | 2014-03-20 | 2017-05-23 | Symantec Corporation | Systems and methods for protecting virtual machine program code |
US9547758B2 (en) * | 2014-05-19 | 2017-01-17 | Nxp B.V. | Program cable obfuscation based upon recently executed program code |
KR101566145B1 (ko) | 2014-10-23 | 2015-11-06 | 숭실대학교산학협력단 | 모바일 기기 및 상기 모바일 기기의 동작 방법 |
KR101518420B1 (ko) * | 2014-11-11 | 2015-05-07 | 주식회사 에스이웍스 | 안드로이드 플랫폼에서의 apk 파일 관리 장치 및 방법 |
NO20141445A1 (no) * | 2014-12-01 | 2016-06-02 | Protectoria As | Sikring av applikasjoner installert i lokalt endepunktutstyr |
DE102014019090A1 (de) * | 2014-12-18 | 2016-06-23 | Giesecke & Devrient Gmbh | Verfahren zum Bereitstellen einer sicherheitskritischen Softwareapplikation auf einer Computereinheit |
KR101628923B1 (ko) * | 2014-12-24 | 2016-06-22 | 고려대학교 산학협력단 | 코드 변환 방법 및 코드 변환 장치 |
KR101521765B1 (ko) * | 2015-01-08 | 2015-05-20 | 숭실대학교산학협력단 | 분간이 난해한 식별자 변환을 이용한 코드 난독화 장치 및 방법 |
EP3057019A1 (en) * | 2015-02-13 | 2016-08-17 | Thomson Licensing | Method and device for protecting an application and method and device for executing a protected application thus protected |
KR101740134B1 (ko) | 2015-08-10 | 2017-05-26 | 라인 가부시키가이샤 | 어플리케이션의 코드 난독화를 위한 시스템 및 방법 |
KR101710796B1 (ko) * | 2015-08-24 | 2017-02-28 | 숭실대학교산학협력단 | 난독화된 모바일 애플리케이션의 식별자 역난독화 장치 및 그 방법 |
US9992818B2 (en) * | 2015-10-06 | 2018-06-05 | Medtronic Minimed, Inc. | Protocol translation device |
KR101619458B1 (ko) | 2016-03-02 | 2016-05-10 | (주)케이사인 | 애플리케이션 코드 난독화 장치 및 이를 이용한 애플리케이션 코드 난독화 방법 |
KR101704703B1 (ko) * | 2016-06-08 | 2017-02-08 | (주)케이사인 | 더미 코드를 사용하는 애플리케이션 코드 은닉 장치 및 이를 이용한 애플리케이션 코드 은닉 방법 |
KR101845155B1 (ko) | 2016-06-30 | 2018-04-03 | 라인 가부시키가이샤 | 어플리케이션 패키지를 제공하는 방법 및 시스템, 그리고 어플리케이션을 실행하는 방법 및 시스템 |
KR101688814B1 (ko) * | 2016-07-11 | 2016-12-22 | (주)케이사인 | 주 기억 장치 내부의 코드 수정을 통한 애플리케이션 코드 은닉 장치 및 이를 이용한 애플리케이션 코드 은닉 방법 |
CN107292131A (zh) * | 2017-06-21 | 2017-10-24 | 北京深思数盾科技股份有限公司 | 软件保护方法和装置 |
EP3467691B1 (en) * | 2017-10-05 | 2020-08-26 | Eshard | Method of selecting software files |
CN109409037B (zh) * | 2018-09-29 | 2022-04-29 | 创新先进技术有限公司 | 一种数据混淆规则的生成方法、装置及设备 |
KR20210154017A (ko) * | 2020-06-11 | 2021-12-20 | 라인플러스 주식회사 | 클래스 분산 및 순차적 메모리 적재를 이용한 파일 보호 방법 및 시스템 |
JP2022175938A (ja) * | 2021-05-14 | 2022-11-25 | 株式会社デンソーテン | 画像処理装置、画像処理方法及び画像処理プログラム |
Family Cites Families (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6643775B1 (en) * | 1997-12-05 | 2003-11-04 | Jamama, Llc | Use of code obfuscation to inhibit generation of non-use-restricted versions of copy protected software applications |
GB0024918D0 (en) * | 2000-10-11 | 2000-11-22 | Sealedmedia Ltd | Method of providing java tamperproofing |
US7150003B2 (en) * | 2002-11-25 | 2006-12-12 | Matsushita Electric Industrial Co., Ltd. | Class coalescence for obfuscation of object-oriented software |
US7148154B2 (en) | 2003-08-20 | 2006-12-12 | Asm Japan K.K. | Method of forming silicon-containing insulation film having low dielectric constant and low film stress |
JP2007233426A (ja) * | 2004-04-05 | 2007-09-13 | Matsushita Electric Ind Co Ltd | アプリケーション実行装置 |
JP2006072584A (ja) * | 2004-08-31 | 2006-03-16 | Fuji Xerox Co Ltd | 実行プログラム生成装置、実行プログラム生成方法、プログラム処理装置、プログラム処理方法及びプログラム |
JP4664055B2 (ja) * | 2004-12-10 | 2011-04-06 | 株式会社エヌ・ティ・ティ・ドコモ | プログラム分割装置、プログラム実行装置、プログラム分割方法及びプログラム実行方法 |
US8200983B1 (en) * | 2006-09-09 | 2012-06-12 | 9Rays.Net, Inc. | System and method for tamper-proofing executable binary assemblies |
CN102598017B (zh) * | 2009-11-13 | 2016-03-09 | 爱迪德技术有限公司 | 提高Java字节码的防窜改能力的系统和方法 |
KR101234591B1 (ko) | 2011-05-13 | 2013-02-19 | 주식회사 인프라웨어테크놀러지 | Jni를 이용한 안드로이드 난독화 방법 |
KR101265099B1 (ko) * | 2011-06-15 | 2013-05-20 | 주식회사 터보테크 | 소프트웨어 보안 처리방법 및 기록매체 |
KR101944010B1 (ko) * | 2012-02-24 | 2019-01-30 | 삼성전자 주식회사 | 애플리케이션의 변조 감지 방법 및 장치 |
US8892876B1 (en) * | 2012-04-20 | 2014-11-18 | Trend Micro Incorporated | Secured application package files for mobile computing devices |
US9501382B2 (en) * | 2013-06-25 | 2016-11-22 | Purdue Research Foundation | Systems and methods of detecting power bugs |
RU2653985C2 (ru) * | 2013-06-28 | 2018-05-15 | Закрытое акционерное общество "Лаборатория Касперского" | Способ и система обнаружения вредоносного программного обеспечения путем контроля исполнения программного обеспечения запущенного по сценарию |
-
2013
- 2013-08-14 KR KR1020130096514A patent/KR101350390B1/ko active IP Right Grant
- 2013-09-30 WO PCT/KR2013/008744 patent/WO2015023023A1/ko active Application Filing
- 2013-09-30 US US14/360,306 patent/US8984299B1/en active Active
- 2013-09-30 EP EP13891571.5A patent/EP2897072B1/en active Active
- 2013-09-30 JP JP2015542937A patent/JP5996809B2/ja active Active
Also Published As
Publication number | Publication date |
---|---|
US8984299B1 (en) | 2015-03-17 |
EP2897072A1 (en) | 2015-07-22 |
WO2015023023A1 (ko) | 2015-02-19 |
KR101350390B1 (ko) | 2014-01-16 |
EP2897072A4 (en) | 2016-11-09 |
US20150095656A1 (en) | 2015-04-02 |
JP2016503541A (ja) | 2016-02-04 |
EP2897072B1 (en) | 2019-07-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5996809B2 (ja) | コード難読化装置及びその方法 | |
JP5996810B2 (ja) | 自己書換え基盤のアプリケーションコード難読化装置及びその方法 | |
JP5990654B2 (ja) | アプリケーションコード難読化装置及びその方法 | |
KR101471589B1 (ko) | 공통중간언어 기반 프로그램을 위한 보안 제공 방법 | |
CN104298932A (zh) | 一种so文件的调用方法及装置 | |
KR101521765B1 (ko) | 분간이 난해한 식별자 변환을 이용한 코드 난독화 장치 및 방법 | |
CN107430650B (zh) | 保护计算机程序以抵御逆向工程 | |
CN106548046B (zh) | 一种保护代码的装置和方法 | |
EP3126973A1 (en) | Method, apparatus, and computer-readable medium for obfuscating execution of application on virtual machine | |
Lim et al. | Structural analysis of packing schemes for extracting hidden codes in mobile malware | |
CN108133147B (zh) | 可执行代码的保护方法、设备及可读存储介质 | |
JP2019096299A (ja) | 共通中間言語のための保安提供装置と方法、及び保安実行装置と方法 | |
CN107257282A (zh) | 一种基于rc4算法的代码全包加密方法 | |
KR101557455B1 (ko) | 응용 프로그램 코드 분석 장치 및 그것을 이용한 코드 분석 방법 | |
KR20140139392A (ko) | 모바일 장치를 위한 애플리케이션 실행 파일 생성방법, 모바일 장치의 애플리케이션 실행 방법, 애플리케이션 실행 파일 생성 장치 및 모바일 장치 | |
CN112115430A (zh) | 一种apk的加固方法、电子设备及存储介质 | |
KR101749209B1 (ko) | 애플리케이션의 정보 은닉 방법 및 장치, 및 애플리케이션 실행 방법 및 장치 | |
KR101667774B1 (ko) | 스크립트 프로그램을 위한 보안 제공 장치 및 방법 | |
Sun et al. | Selwasm: A code protection mechanism for webassembly | |
KR102177920B1 (ko) | 원본코드 패킹장치 및 원본코드 패킹방법 | |
CN106845169B (zh) | 一种Jar包加固方法及系统 | |
Xu et al. | Recommendable Schemes of Anti-decompilation for Android Applications | |
Weng et al. | Code Protection Technology on iOS | |
CN113868655A (zh) | 木马查杀方法、装置、电子设备及计算机可读存储介质 | |
Sonnleitner et al. | Indirect Data Representation Via Offset Vectoring: A Code-integrity-driven In-memory Data Regeneration Scheme. |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20160428 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20160531 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20160711 |
|
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: 20160816 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20160824 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5996809 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |