JP5996809B2 - コード難読化装置及びその方法 - Google Patents

コード難読化装置及びその方法 Download PDF

Info

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
Application number
JP2015542937A
Other languages
English (en)
Other versions
JP2016503541A (ja
Inventor
ジョン ヒョン イ
ジョン ヒョン イ
ジン ヒョク ジュン
ジン ヒョク ジュン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Foundation of Soongsil University Industry Cooperation
Original Assignee
Foundation of Soongsil University Industry Cooperation
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Foundation of Soongsil University Industry Cooperation filed Critical Foundation of Soongsil University Industry Cooperation
Publication of JP2016503541A publication Critical patent/JP2016503541A/ja
Application granted granted Critical
Publication of JP5996809B2 publication Critical patent/JP5996809B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/14Protecting executable software against software analysis or reverse engineering, e.g. by obfuscation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/12Protecting executable software
    • G06F21/121Restricting unauthorised execution of programs
    • G06F21/125Restricting unauthorised execution of programs by manipulating the program code, e.g. source code, compiled code, interpreted code, machine code
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/10Protecting distributed programs or content, e.g. vending or licensing of copyrighted material ; Digital rights management [DRM]
    • G06F21/106Enforcing content protection by specific content processing
    • G06F21/1066Hiding content

Description

本発明は、コード難読化装置及びその方法に係り、より詳細には、アンドロイドアプリケーションの偽造・変造の防止のための自己書換え基盤の難読化装置及びその方法に関する。
既存の難読化装置及びその方法は、ジャバ仮想マシンで動作するアプリケーションを対象にしてアプリケーションを構成するコード構造を変更することによって、難読化を適用する。ここで、難読化が適用されたアプリケーションは、難読化適用前と同様に、ジャバ仮想マシンで動作する命令語集合と目的ファイル構造とで構成される。
しかし、既存の難読化装置または方法による場合、仮想マシンで動作する管理されるコード(Managed Code)が有する逆工学脆弱性は、難読化以後にも同様に残されるという問題点がある。
管理されるコードが有する逆工学脆弱性は、次のようであるが、コンパイルされた目的コードにクラス名、メンバ変数名、メソッド名などソースコード情報が含まれ、コードが明示的に構造化されており、逆工学を通じて特定のロジックを探すか、分析することが容易である。
アンドロイドアプリケーションも、前記ジャバマシンで動作するアプリケーションと類似しているようにダルビック仮想マシン(Dalvik Virtual Machine)で動作する管理されるコードで構成され、DEX(Dalvik Executable)ファイル形式で保存される。したがって、アンドロイドアプリケーションは、同一に管理されるコードの逆工学脆弱性が存在する。
本発明の背景となる技術は、特許文献1に記載されている。
韓国登録特許第10−1234591号公報
本発明が解決しようとする課題は、難読化の対象となるアプリケーションの重要コード部分をCPU命令語集合で再構成し、重要コードを、管理されるコードからネイティブコード(Native Code)に変換することによって、管理されるコードの逆工学脆弱性の1つである構造化されたコード情報を除去して、相対的に逆工学を難解に作って逆工学を防止する。
また、ネイティブコードに変換された重要コードを保護するために、自己書換え基盤のコード保護技法と偽造・変造探知技術とを適用することによって、逆工学分析に対する抵抗性を向上させる。
前記のような目的を果たすための本発明の一実施形態によるアプリケーションコード難読化装置は、アンドロイドアプリケーションの実行コードを入力される入力部と、前記入力された実行コードを分析して、アプリケーションの偽造・変造の攻撃から保護せねばならない重要コードと、前記重要コード以外の一般コードとに区分するコード分析部と、前記重要コードをCコードに変換させてネイティブコードを生成するコードコンバータ部と、前記ネイティブコード及び前記一般コードを難読化する難読化部と、前記難読化されたネイティブコードに偽造・変造探知コードを追加して暗号化した後、ローディングルーチンを追加させて自己書換え技法が適用されたネイティブコードを生成する自己コード保護部と、前記自己書換え技法が適用されたネイティブコードと前記難読化された一般コードとを結合するコード結合部と、を含む。
また、前記コード結合部によって結合された前記自己書換え技法が適用されたネイティブコードと前記難読化された一般コードとをクライアントに伝送する伝送部をさらに含みうる。
また、前記自己書換え技法が適用されたネイティブコードは、CPU環境で動作し、前記難読化された一般コードは、ダルビック仮想マシンで実行可能である。
また、前記コード分析部は、既保存された重要コードモデルを用いて、前記入力された実行コードとマッチングされる実行コードを前記重要コードと判断する。
また、前記ローディングルーチンは、前記暗号化されたネイティブコードが実行される時、前記コードの暗号化された部分をデコーディングすることができる。
また、前記偽造・変造探知コードは、コードの偽造ないし変造の行為からネイティブコードを保護することができる。
本発明の一実施形態によるコード難読化方法は、アンドロイドアプリケーションの実行コードを入力される段階と、前記入力された実行コードを分析して、アプリケーションの偽造・変造の攻撃から保護せねばならない重要コードと、前記重要コード以外の一般コードとに区分する段階と、前記重要コードをCコードに変換させてネイティブコードを生成する段階と、前記ネイティブコード及び前記一般コードを難読化する段階と、前記難読化されたネイティブコードに偽造・変造探知コードを追加して暗号化した後、ローディングルーチンを追加して自己書換えネイティブコードを生成する段階と、前記自己書換えネイティブコードと前記難読化された一般コードとを結合する段階と、を含む。
本発明のコード難読化装置及びその方法によれば、難読化の対象となるアプリケーションの重要コード部分をCPU命令語集合で再構成し、重要コードを、管理されるコードからネイティブコードに変換することによって、管理されるコードの逆工学脆弱性の1つである構造化されたコード情報を除去して、相対的に逆工学を難解にして逆工学を防止することができる。
また、ネイティブコードに変換された重要コードを保護するために、自己書換え基盤のコード保護技法と偽造・変造探知技術とを適用することによって、逆工学分析に対する抵抗性を向上させる。
本発明の実施形態によるコード難読化装置の構成図である。 本発明の実施形態によるコード難読化方法のフローチャートである。 本発明の実施形態による難読化及び暗号化されたアプリケーションファイルの構成図である。
以下、添付した図面を参照して、当業者が容易に実施できるように本発明の実施形態を詳しく説明する。しかし、本発明は、さまざまな異なる形態で具現され、ここで説明する実施形態に限定されるものではない。そして、図面で本発明を明確に説明するために、説明と関係のない部分は省略し、明細書全体を通じて類似した部分については、類似した図面符号を付する。
まず、本発明のコード難読化装置について説明する。
図1は、本発明の実施形態によるコード難読化装置の構成図である。
図1を参照すれば、本発明の実施形態によるコード難読化装置100は、入力部110、コード分析部120、コードコンバータ部130、難読化部140、自己コード保護部150、及びコード結合部160を含み、伝送部170をさらに含みうる。
入力部110は、アンドロイドアプリケーションの実行コードを入力される。ここで、入力部は、キーパッド形態として入力インターフェース部が備えられうる。
コード分析部(Code Structure Analyzer)120は、APK(Android Package)ファイル内に圧縮されている実行ファイルであるDEXファイルを分析して、ユーザ入力によって重要コードを既存コードから分離する。
コードコンバータ部(Dalvik to C Code Converter)130は、一般コードと分離された重要コードとを分析して、Cコードで再構成してマネージドコード(Managed Code)をネイティブコードに変換する。
難読化部(Obfuscator)140は、ネイティブコード難読化部(Native Code Obfuscator)141とマネージドコード難読化部(Managed Code Obfuscator)142とを含みうる。ネイティブコード難読化部141は、ネイティブコードに変換された重要コードに対してネイティブ環境で難読化技法を適用する。また、マネージドコード難読化部142は、一般コードに対してマネージド環境で難読化技法を適用する。
自己コード保護部(Self Code Protector)150は、難読化されたネイティブコードを静的分析から保護するために偽造・変造探知コード(Tamper−Detection Code)を追加し、自己書換え基盤のコード保護技法を適用してコードを暗号化する。そして、自己コード保護部150は、前記暗号化されたネイティブコードにローディングルーチンを追加して自己書換えネイティブコードを生成する。
コード結合部160は、難読化された一般コードと自己書換えネイティブコードとを再びAPKファイルでパッケージングする。
伝送部170は、コード結合部160によってパッケージングされたコード(自己書換えネイティブコードと難読化された一般コード)をクライアントに伝送する。この際、伝送部170は、パッケージングされたコードを直接クライアントに伝達することもでき、アンドロイドマーケットなどにアップロードを行って、クライアントがダウンロードされるようにする。
以下、図2及び図3を通じて本発明の実施形態によるコード難読化方法について説明する。
図2は、本発明の実施形態によるコード難読化方法のフローチャートであり、図3は、本発明の実施形態による難読化されて結合されたアプリケーションファイルの構成図である。
図2を参照すれば、入力部110は、アンドロイドアプリケーションの実行コードを入力される(ステップS210)。ここで、実行コードが入力される過程は、入力インターフェースを通じてユーザがアンドロイドアプリケーションファイルであるAPKファイルを指定する行為、指定されたAPKファイルの圧縮を解除する行為、アンドロイドアプリケーションの実行ファイルであるDEXファイルを指定する行為を含みうる。
アンドロイドアプリケーションは、拡張子がapk形態であるファイルで配布される。ここで、apkは、Android Packageを意味するが、アンドロイドアプリケーションのビルド過程でさまざまなファイルのコンパイルまたはリンク過程を経ながら、圧縮ファイル形態の拡張子がapkであるファイル(以下、APKファイル)が生成される。実行コードは、アンドロイドアプリケーションファイルであるAPKファイル内に圧縮されているdex拡張子を有する実行ファイル(以下、DEXファイル)のコードを意味する。
コード分析部120は、入力部110に入力された実行コードを分析して、アプリケーションの偽造・変造の攻撃から保護せねばならない重要コードと、前記重要コードを除く一般コードとに区分する(ステップS220)。
コード区分のためにコード分析部120は、既保存された重要コードモデルを用いて、前記入力された実行コードで重要コードモデルとマッチングされるコードを重要コードと判断する。ここで、入力された実行コードは、DEXファイルを構成するコードである。また、重要コードとは、ユーザの観点で攻撃者の偽造・変造の行為から保護せねばならないコードを言う。重要コードと反対される概念として重要コード以外のコードを一般コードと称する。
コードコンバータ部130は、一般コードと分離された重要コードとを分析して、Cコードで再構成してマネージドコードをネイティブコードに変換する(ステップS230)。
変換されたネイティブコードは、ELF(Executable and Linkable Format)形態で保存される。ELF形態は、コードの構造が明示的に区分されず、DEX形態に比べて、コードの偽造・変造のための動的分析または静的分析に相対的に容易に露出されない長所がある。また、ELF形態は、命令語構成がダルビック(Dalvik)命令語に比べて、機械語に近い低いレベルのCPU命令語で構成されており、攻撃者の動的分析及び静的分析を難しくする。
ネイティブコード難読化部141は、ネイティブコードに変換された重要コードに対してネイティブ環境で適用可能な難読化技法を適用する(ステップS240)。
自己コード保護部150は、難読化されたネイティブコードを静的分析から保護するために偽造・変造探知コードを追加し、自己書換え基盤のコード保護技法を適用してコードを暗号化する。そして、自己コード保護部150は、前記暗号化されたネイティブコードにローディングルーチンを追加して自己書換えネイティブコードを生成する(ステップS250)。
その他に、ネイティブコードに追加された偽造・変造探知コードは、動的にアプリケーションの偽造・変造を検査することによって、攻撃者のコード追加または変造の行為を探知することができる。偽造・変造探知コードによって攻撃者の偽造・変造の行為が探知される場合、偽造・変造探知コードは、実行状態にあるアプリケーションを強制終了させることによって、攻撃者のコード分析の行為を中止させることができる。また、偽造・変造探知コードは、自己書換え技法によって保護されて攻撃者の偽造・変造探知ルーチンの迂回可能性を減少させる。
自己コード保護部150によって追加されたローディングルーチンは、特定コードが実行される時、特定コードの暗号化部分をデコーディングする。すなわち、暗号化された特定コードは、実行時に呼び出されるルーチンのみ一時的にデコーディングされる。したがって、暗号化されたコードが露出される時間的な範囲を減らすことによって、攻撃者によるコードの偽造・変造の行為を防止することができる。
マネージドコード難読化部142は、マネージドコードに変換された一般コードに対してマネージド環境で適用可能な難読化技法を適用する(ステップS255)。すなわち、難読化部140は、ハードウェア的にネイティブコード難読化部141とマネージドコード難読化部142とに分離され、ネイティブ環境とマネージド環境という互いに異なる環境で重要コードまたは一般コードを分離して難読化する。
そして、コード結合部160は、図3のように難読化された一般コード(Obfuscated General Code)に該当するマネージドコードセクション(Managed Code Section)とローディングルーチン(Loading Routine)とが追加された自己書換え重要コードに該当するネイティブコードセクション(Native Code Section)でAPKファイルをパッケージングする(ステップS260)。
図3で難読化されたアンドロイドアプリケーションファイルのコード部分が、マネージドコードセクションとネイティブコードセクションとに区分される。マネージドコードセクションは、難読化部140によって難読化された一般コードを含み、ネイティブコードセクションは、暗号化されたコード(Encrypted Code)及びローディングルーチンを含む。
自己コード保護部150によって暗号化されたコードは、ネイティブコードが暗号化された秘密コード(Secrete Code)、ネイティブコードに含まれて伝送される秘密データ(Secrete Data)、及び偽造・変造防止コード(Tamper−Detection Code)を含む。
伝送部170は、コード結合部160によって結合された自己書換えネイティブコードと難読化された一般コードとをクライアントに伝送する(ステップS270)。ここで、伝送されるファイルの形態は、クライアントからダウンロードされて設置することができる形態になり、ネイティブコードと一般コードとを含むAPKファイルであり得る。
このように、本発明の実施形態によれば、難読化の対象となるアプリケーションの重要コード部分をCPU命令語集合で再構成し、重要コードを、管理されるコードからネイティブコードに変換することによって、管理されるコードの逆工学脆弱性の1つである構造化されたコード情報を除去して、相対的に逆工学を難解に作って逆工学を防止することができる。
また、ネイティブコードに変換された重要コードを保護するために、自己書換え基盤のコード保護技法と偽造・変造探知技術とを適用することによって、逆工学分析に対する抵抗性を向上させる。
以上、本発明について実施形態を中心に説明した。当業者ならば、本発明の本質的な特性から外れない範囲内で変形された形態として具現可能であるということを理解できるであろう。したがって、開示された実施形態は、限定的な観点ではなく、説明的な観点で考慮されなければならない。したがって、本発明の範囲は、前述した実施形態に限定されず、特許請求の範囲に記載の内容及びそれと同等な範囲内にある多様な実施形態が含まれるように解釈しなければならない。
本発明は、コード難読化装置及びその方法関連の技術分野に適用可能である。

Claims (10)

  1. アンドロイドアプリケーションの実行コードを入力される入力部と、
    前記入力された実行コードを分析して、アプリケーションの偽造・変造の攻撃から保護せねばならない重要コードと、前記重要コード以外の一般コードとに区分するコード分析部と、
    前記重要コードをCコードに変換させてネイティブコードを生成するコードコンバータ部と、
    前記ネイティブコード及び前記一般コードを難読化する難読化部と、
    前記難読化されたネイティブコードに偽造・変造探知コードを追加して暗号化した後、ローディングルーチンを追加させて自己書換え技法が適用されたネイティブコードを生成する自己コード保護部と、
    前記自己書換え技法が適用されたネイティブコードと前記難読化された一般コードとを結合するコード結合部と、
    を含むコード難読化装置。
  2. 前記コード結合部によって結合された前記自己書換え技法が適用されたネイティブコードと前記難読化された一般コードとをクライアントに伝送する伝送部をさらに含む請求項1に記載のコード難読化装置。
  3. 前記自己書換え技法が適用されたネイティブコードは、CPU環境で動作し、前記難読化された一般コードは、ダルビック仮想マシンで実行される請求項2に記載のコード難読化装置。
  4. 前記コード分析部は、
    既保存された重要コードモデルを用いて、前記入力された実行コードとマッチングされる実行コードを前記重要コードと判断する請求項3に記載のコード難読化装置。
  5. 前記ローディングルーチンは、
    前記暗号化されたネイティブコードが実行される時、前記ネイティブコードの暗号化された部分をデコーディングする請求項4に記載のコード難読化装置。
  6. コード難読化装置を利用したコード難読化方法において、
    前記コード難読化装置はアンドロイドアプリケーションの実行コードを入力される段階と、
    前記コード難読化装置は前記入力された実行コードを分析して、アプリケーションの偽造・変造の攻撃から保護せねばならない重要コードと、前記重要コード以外の一般コードとに区分する段階と、
    前記コード難読化装置は前記重要コードをCコードに変換させてネイティブコードを生成する段階と、
    前記コード難読化装置は前記ネイティブコード及び前記一般コードを難読化する段階と、
    前記コード難読化装置は前記難読化されたネイティブコードに偽造・変造探知コードを追加して暗号化した後、ローディングルーチンを追加させて自己書換え技法が適用されたネイティブコードを生成する段階と、
    前記コード難読化装置は前記自己書換え技法が適用されたネイティブコードと前記難読化された一般コードとを結合する段階と、
    を含むコード難読化方法。
  7. 前記コード難読化装置はコード結合部によって結合された前記自己書換え技法が適用されたネイティブコードと前記難読化された一般コードとをクライアントに伝送する段階をさらに含む請求項6に記載のコード難読化方法。
  8. 前記自己書換え技法が適用されたネイティブコードは、CPU環境で動作し、前記難読化された一般コードは、ダルビック仮想マシンで実行される請求項7に記載のコード難読化方法。
  9. 前記実行コードを分析して区分する段階は、
    既保存された重要コードモデルを用いて、前記入力された実行コードとマッチングされる実行コードを前記重要コードと判断する請求項8に記載のコード難読化方法。
  10. 前記ローディングルーチンは、
    前記暗号化されたネイティブコードが実行される時、前記ネイティブコードの暗号化された部分をデコーディングする請求項9に記載のコード難読化方法。

JP2015542937A 2013-08-14 2013-09-30 コード難読化装置及びその方法 Active JP5996809B2 (ja)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
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 Закрытое акционерное общество "Лаборатория Касперского" Способ и система обнаружения вредоносного программного обеспечения путем контроля исполнения программного обеспечения запущенного по сценарию

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