JP2019535087A - ソフトウェアリパッケージング防止方法および装置 - Google Patents

ソフトウェアリパッケージング防止方法および装置 Download PDF

Info

Publication number
JP2019535087A
JP2019535087A JP2019520118A JP2019520118A JP2019535087A JP 2019535087 A JP2019535087 A JP 2019535087A JP 2019520118 A JP2019520118 A JP 2019520118A JP 2019520118 A JP2019520118 A JP 2019520118A JP 2019535087 A JP2019535087 A JP 2019535087A
Authority
JP
Japan
Prior art keywords
installation package
digital watermark
target file
watermark information
verification information
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.)
Granted
Application number
JP2019520118A
Other languages
English (en)
Other versions
JP6746156B2 (ja
JP2019535087A5 (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
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 Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2019535087A publication Critical patent/JP2019535087A/ja
Publication of JP2019535087A5 publication Critical patent/JP2019535087A5/ja
Application granted granted Critical
Publication of JP6746156B2 publication Critical patent/JP6746156B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/566Dynamic detection, i.e. detection performed at run-time, e.g. emulation, suspicious activities
    • 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/16Program or content traceability, e.g. by watermarking
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • 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/1063Personalisation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/03Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
    • G06F2221/033Test or assess software

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Multimedia (AREA)
  • Technology Law (AREA)
  • Virology (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Editing Of Facsimile Originals (AREA)
  • Storage Device Security (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Medical Treatment And Welfare Office Work (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本出願は、リパッケージング対策のための方法および装置を提供する。本方法は、インストールパッケージ内のターゲットファイルを実施し、かつインストールパッケージ内の安全な動的ライブラリをロードするステップと、ターゲットファイル内のコードに基づいて、すなわちターゲットファイル内に埋め込まれたデジタル透かし情報および安全な動的ライブラリ内に記憶された検証情報を取得するステップと、デジタル透かし情報および検証情報に基づいてインストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証するステップとを実行するステップとを含む。本出願におけるインストールパッケージは検証コードを含むので、オペレーティングシステムがどれほど改変されようとも、システム内のインストールパッケージを検証するプロセスを回避することはできない。上記によって、インストールパッケージがリパッケージされているかどうかを検証するために、システムがインストールパッケージの自己署名を検証するときに、インストールパッケージがリパッケージされているかどうかを効率的に検証することができないことがあるという既存の問題が緩和される。以下の既存の問題、すなわちインストールパッケージがリパッケージされているかどうかを検証するためにシステムがインストールパッケージのハッシュ値を計算するときに検証効率が低下することがあるという問題もまた緩和される。

Description

本出願は、コンピュータ技術の分野に関し、詳細には、リパッケージング対策のための方法および装置に関する。
現在、多くの悪意のあるアプリケーションソフトが、オリジナルのインストールパッケージ内に広告を埋め込み、マルウェアを自動的にダウンロードしてルートプログラムなどを実施するために、リパッケージングを介してオリジナルのインストールパッケージを改変している。
リパッケージングプロセスを図1に示す。最初に、オリジナルのインストールパッケージは、オリジナルのインストールパッケージのソースコードを取得するために逆コンパイルされる。次いで、ユーザは、ソースコードを改変して、たとえば別のコードを追加し、追加されたコードは、広告であってもよいか、またはマルウェアなどを自動的にダウンロードするためのプログラムであってもよい。最終的に、改変されたファイルは、リパッケージされたインストールパッケージを取得するためにリパッケージされる。
ソースコードは、前のリパッケージングプロセスにおいて改変されるので、リパッケージされたインストールパッケージの自己署名(self-signature)は、もはやオリジナルのインストールパッケージの自己署名ではない。したがって、既存の技術において、リパッケージング対策のための方法は、インストールパッケージがリパッケージされているかどうかを判断するために、インストールパッケージの自己署名を検査することであってもよい。特定の検証プロセスを図2に示す。
特定のインストールパッケージがインストールされると、インストールパッケージ内のターゲットファイルが実施され、インストールパッケージ内の安全な動的ライブラリがロードされる。一般に、情報セキュリティを確保するために、いくつかの検証情報が、安全な動的ライブラリ内に記憶される。検証情報は、インストールパッケージに対応するオリジナルのインストールパッケージの自己署名を含む。オペレーティングシステムは、インストールパッケージの自己署名を検証するためのインターフェースを提供するので、インストールパッケージの自己署名をターゲットファイルから取得し、オリジナルのインストールパッケージの自己署名を安全な動的ライブラリから取得した後、オペレーティングシステムは、インストールパッケージの自己署名がオリジナルのインストールパッケージの自己署名と一致するかどうかを検証する。それらが一致する場合、オペレーティングシステムは、インストールパッケージはオリジナルのインストールパッケージであると判定する。それらが一致しない場合、オペレーティングシステムは、インストールパッケージはリパッケージされたインストールパッケージであると判定する。
既存の技術では、リパッケージング対策のための別の方法は、下記であってもよい。オペレーティングシステムが、今回インストールされたインストールパッケージのハッシュ(ハッシュ値)を計算してハッシュ値を検査し、すなわちそのハッシュ値をオリジナルのインストールパッケージのハッシュ値と比較し、それらが一致する場合、インストールパッケージはオリジナルのインストールパッケージであると判定し、それらが一致しない場合、インストールパッケージはリパッケージされたインストールパッケージであると判定する。
既存の技術におけるリパッケージング対策のための上記2つの方法は、リパッケージングを効果的に防止するために、完全に信頼できるオペレーティングシステム内で使用されなければならない。しかしながら、多くの既存のオペレーティングシステムはオープンソースであるので、ユーザはオリジナルのオペレーティングシステムを改変することができ、それによりオペレーティングシステムは、インストールパッケージの自己署名を検査せず、またはインストールパッケージのハッシュ値を検査しない。そのため、ユーザによってダウンロードされたインストールパッケージがリパッケージされたインストールパッケージであるか否かにかかわらず、オペレーティングシステムは、デフォルトで、インストールパッケージはオリジナルのインストールパッケージであるとみなす。
加えて、リパッケージング対策のための第2の方法では、インストールされるべきインストールパッケージが大きいメモリを占有することがある。そのため、オペレーティングシステムがインストールパッケージのハッシュ値を計算するとき、オペレーティングシステムの検証効率が影響を受ける。
本出願は、システムがインストールパッケージの自己署名を検査するときに、インストールパッケージがリパッケージされているかどうかを効率的に検証することができないことがあるという既存の問題を緩和するため、およびインストールパッケージがリパッケージされているかどうかを検査するためにシステムがインストールパッケージのハッシュ値を計算するときに、インストールパッケージが大きいメモリを使用しているので検証効率が低いことがあるという既存の問題を緩和するために、リパッケージング対策のための方法および装置を提供する。
本出願はリパッケージング対策のための方法を提供し、本方法は、インストールパッケージ内のターゲットファイルを実施してインストールパッケージ内の安全な動的ライブラリをロードするステップと、ターゲットファイル内のコードに基づいて、ターゲットファイル内に埋め込まれたデジタル透かし情報および安全な動的ライブラリ内に記憶された検証情報を取得するステップと、デジタル透かし情報および検証情報に基づいてインストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証するステップとを実行するステップとを含む。
同様に、本出願はリパッケージング対策のための装置をさらに提供し、装置は実施ユニットと実行ユニットとを含み、実施ユニットは、インストールパッケージ内のターゲットファイルを実施してインストールパッケージ内の安全な動的ライブラリをロードするように構成され、実行ユニットは、ターゲットファイル内のコードに基づいて、ターゲットファイル内に埋め込まれたデジタル透かし情報および安全な動的ライブラリ内に記憶された検証情報を取得することと、デジタル透かし情報および検証情報に基づいてインストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証することを実行するように構成される。
本出願で提供されるリパッケージング対策のための方法では、インストールパッケージは検証コードを含む。インストールパッケージがインストールされると、オペレーティングシステムは、ターゲットファイル内にデジタル透かし情報をコードに基づいて取得し、インストールパッケージ内の安全な動的ライブラリ内の検証情報を取得して、デジタル透かし情報および検証情報に基づいてインストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証する。本出願で提供されるリパッケージング対策のための方法を使用することによって、以下の有益な効果が達成される。
1.本出願では、インストールパッケージは、インストールパッケージがリパッケージされているかどうかを検証するために使用されるコードを含む。したがって、オペレーティングシステムがどれほど改変されようとも、インストールパッケージを検証するプロセスを回避することはできない。上記によって、インストールパッケージがリパッケージされているかどうかを検証するためにインストールパッケージの自己署名を検査するとき、インストールパッケージの自己署名を検証するプロセスをシステムが省略することがあるのでインストールパッケージがリパッケージされているかどうかを効率的に検証することができないという既存の問題が緩和される。
2.本出願では、インストールパッケージがリパッケージされているかどうかが、デジタル透かし情報および検証情報に基づいて検証される。したがって、インストールパッケージのハッシュ値を計算することによってインストールパッケージがリパッケージされているかどうかを検証する既存の技術における方法と比較して、本出願は、インストールパッケージがリパッケージされているかどうかの検証においてより高い効率を有する。
本明細書で説明する添付の図面は、本出願に対してより深い理解を与え、本出願の一部を構成するために使用される。本出願および説明の概略的実装形態は本出願を説明するために使用され、本出願を不適切に制限するものではない。
既存の技術における、リパッケージング方法を示す概略的フローチャートである。 既存の技術における、リパッケージング対策のための方法を示す概略的フローチャートである。 本出願の実装形態による、リパッケージング対策のための方法を示す概略的フローチャートである。 本出願の実装形態による、デジタル透かし情報をターゲットファイル内に埋め込む概略的フローチャートである。 本出願の実装形態による、リパッケージング対策のための別の方法を示す概略的フローチャートである。 本出願の実装形態による、デジタル透かし情報を識別するための方法を示す概略的フローチャートである。 本出願の実装形態による、リパッケージング対策のためのさらに別の方法を示す概略的フローチャートである。 本出願の実装形態による、リパッケージング対策のためのさらに別の方法を示す概略的フローチャートである。 本出願の実装形態による、リパッケージング対策のための装置を示す概略的構造図である。
本出願の目的、技術的解決策、および利点をより明確にするために、以下において本出願の特定の実装形態および対応する添付の図面を参照しながら本出願の技術的解決策を明確にかつ包括的に説明する。明らかに、説明する実装形態は、本出願の実装形態の全部ではなく一部にすぎない。本出願における実装形態に基づいて創造のための労力を伴わずに当業者によって取得されるすべての他の実装形態は、本出願の保護範囲の中に入る。
以下において、添付の図面を参照しながら本出願の実装形態内で提供される技術的解決策を詳細に説明する。
本出願は、システムがインストールパッケージの自己署名を検査するときに、インストールパッケージがリパッケージされているかどうかを効率的に検証することができないことがあるという既存の問題を緩和するため、およびインストールパッケージがリパッケージされているかどうかを検査するためにシステムがインストールパッケージのハッシュ値を計算するときに、インストールパッケージが大きいメモリを占有するので検証効率が低いことがあるという既存の問題を緩和するために、リパッケージング対策のための方法を提供する。本方法のプロセスが図3に示され、以下のステップを含む。
ステップ301:インストールパッケージ内のターゲットファイルを実施し、インストールパッケージ内の安全な動的ライブラリをロードする。
本ステップでは、ユーザが特定のインストールパッケージをダウンロードしてインストールパッケージをインストールすると、オペレーティングシステムはインストールパッケージ内のターゲットファイルを実施し、インストールパッケージ内の安全な動的ライブラリを同時にロードする。ターゲットファイルは所定のコードに基づいてコンパイルされたターゲットファイルであり、デジタル透かし情報はコンパイルされたターゲットファイル内に埋め込まれる。デジタル透かし情報は、文字列、命令などであってもよい。安全な動的ライブラリは、インストールパッケージについての検証情報を記憶し、検証情報は、インストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証するために使用される。
デジタル透かし情報をターゲットファイル内に埋め込む前述の方法では、デジタル透かし情報は、ターゲットファイルの終端に埋め込まれてもよく、またはデジタル透かし情報は、ターゲットファイルの別のロケーションに埋め込まれてもよい。
オペレーティングシステムは、ANDROID(登録商標)システムであってもよく、ターゲットファイルはdexファイルであってもよい。dexファイルは、ANDROIDシステム内の実行ファイルであり、Java(登録商標)コードを使用することによって記述される。安全な動的ライブラリは、共有オブジェクト(so)ライブラリであってもよく、c/c++を使用することによって記述される。一般に、soライブラリは、いくつかのセキュリティ情報、たとえば検証情報を記憶する。実行ファイルがロードまたは実施されると、soライブラリは、オペレーティングシステムによってロードされる。または、オペレーティングシステムはWINDOWS(登録商標)であってもよく、ターゲットファイルはexeファイルであってもよく、安全な動的ライブラリはdllライブラリなどである。オペレーティングシステム、ターゲットファイル、および安全な動的ライブラリは、本明細書では限定されない。
図4に示すように、ターゲットファイルがdexファイルである場合、デジタル透かし情報がターゲットファイル内に埋め込まれているとき、ターゲットファイルのデータの完全性および正確さを確保するために、ターゲットファイルヘッダのチェックサム、署名、ファイルサイズなどの対応する値が、デジタル透かし情報に基づいて再計算される。
インストールパッケージがリパッケージされたインストールパッケージである場合、ユーザがオリジナルのインストールパッケージをリパッケージするとき、ユーザはオリジナルのインストールパッケージ内のオリジナルファイル内のコードを改変することができるとしても、オリジナルのインストールパッケージの安全な動的ライブラリ内の検証情報は容易には改変され得ないことに留意することは価値がある。したがって、インストールパッケージの安全な動的ライブラリは、依然としてオリジナルのインストールパッケージの検証情報を記憶している。デジタル透かし情報もまたオリジナルのインストールパッケージ内に埋め込まれていると仮定すると、安全な動的ライブラリ内に記憶された検証情報は、オリジナルファイル内に埋め込まれたデジタル透かし情報であってもよい。1つの理由を図5に示す。
オリジナルのインストールパッケージがリパッケージされているとき、オリジナルのインストールパッケージに対応するソースコードファイルを取得するために、オリジナルのインストールパッケージが最初に逆コンパイルされる必要がある。デジタル透かし情報は、所定のコードに基づいてオリジナルファイル内にコンパイルされた後にオリジナルファイルに埋め込まれるので、オリジナルのインストールパッケージが逆コンパイルされているときにデジタル透かし情報Aは失われる。次いで、ユーザは、ソースコードファイルを改変することができる。図5に示すように、別のコードが追加されてもよい。加えて、ユーザは、リパッケージされたインストールパッケージを構築するために、デジタル透かし情報Bをソースコードファイル内にさらに埋め込む。最後に、ソースコードファイルがリパッケージされ、リパッケージされたインストールパッケージの安全な動的ライブラリは、依然として検証情報Aを記憶している。したがって、デジタル透かし情報Aは、オリジナルのインストールパッケージの識別子として使用することができ、インストールパッケージがリパッケージされているかどうかを検証するために使用される。
本出願の実装形態を明確に説明するために、本出願の実装形態内のステップは、一例として、デジタル透かし情報をターゲットファイルの終端に埋め込むことによって、以下で説明される。
ステップ302:ターゲットファイル内のコードに基づいて以下のステップ、すなわちターゲットファイル内に埋め込まれたデジタル透かし情報および安全な動的ライブラリ内に記憶された検証情報を取得するステップ、ならびにデジタル透かし情報および検証情報に基づいてインストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証するステップを実行する。
本ステップでは、オペレーティングシステムは、図6に示す方法、すなわちターゲットファイルのオリジナルの長さに基づいてターゲットファイル内のデジタル透かし情報の開始アドレスを決定するステップと、開始アドレスに基づいてターゲットファイルからデジタル透かし情報を取得するステップとを使用することによって、ターゲットファイル内のコードに基づいてターゲットファイル内のデジタル透かし情報を取得する。ターゲットファイルのオリジナルの長さは、本明細書では、デジタル透かし情報が埋め込まれる前のターゲットファイルの長さである。
デジタル透かし情報を取得し、安全な動的ライブラリから検証情報を取得した後、オペレーティングシステムは、デジタル透かし情報および検証情報に基づいてインストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証する。検証方法は、Table 1(表1)
Figure 2019535087
に示すように、デジタル透かし情報のタイプに基づいて決定されてもよい。
デジタル透かし情報が文字列であるとき、デジタル透かし情報が検証情報と一致するかどうかが検証される。デジタル透かし情報が検証情報と一致する場合、インストールパッケージはオリジナルのインストールパッケージであると判定される。デジタル透かし情報が検証情報と一致しない場合、インストールパッケージはリパッケージされたインストールパッケージであると判定される。
実際の応用例では、デジタル透かし情報が文字列である場合、文字列は固定長の文字列であってもよく、またはランダム長の文字列であってもよい。デジタル透かし情報が固定長の文字列であるとき、文字列が安全な動的ライブラリ内の検証情報と一致するかどうかは、直接検証されるか、または透かし値が安全な動的ライブラリ内の検証情報と一致するかどうかを判定するために、現在ダウンロードされたインストールパッケージに対応する透かし値が計算される。図7は、dexファイル内の透かし値を計算することによって、インストールパッケージがリパッケージされているかどうかを検証するための方法を示す。詳細は以下のとおりである。
dexファイルはdexヘッダとdexボディとを含む。dexヘッダはデータサイズとデータoffとを含み、dexボディはデータを含み、データサイズはデータのサイズを示し、データoffはデータのオフセットを示す。デジタル透かし情報はオリジナルのdexファイル内に埋め込まれたと仮定する。オリジナルのdexファイルがリパッケージされているとき、dexボディ内のデータ部分に対応するコードが改変され、コードが改変された後、オリジナルのdexファイル内に埋め込まれたデジタル透かし情報が失われるばかりでなく、データのサイズも変更される。したがって、dexヘッダ内のデータサイズに対応する値が変化する。オリジナルのdexファイルをリパッケージすることも、以下のとおりであってもよい。dexボディ内のデータ以外の部分に対応するコードが改変され、コードが改変された後、オリジナルのdexファイル内に埋め込まれたデジタル透かし情報もまた失われ、dexボディ内のデータのロケーションがオフセットされる(図7に示す)。そのため、dexヘッダ内のデータoffに対応する値が変化する。
オリジナルのインストールパッケージに対応する透かし値を計算するための方法は、「データサイズ+データoff」である、すなわち透かし値は、データサイズに対応する値とデータoffに対応する値との和である、と仮定する。ユーザがオリジナルのインストールパッケージをリパッケージするとき、データoffまたはデータサイズに対応する値が変化し、リパッケージされたインストールパッケージに対応する透かし値も変化する。この時点において、オペレーティングシステムは、リパッケージされたインストールパッケージに対応する透かし値が安全な動的ライブラリ内の検証情報と一致するかどうかを検証することによって、インストールパッケージがリパッケージされているかどうかを判定することができる。本明細書の透かし値を計算するための方法は、一例にすぎない。実際の応用例では、透かし値を計算するための方法は、実際の状況に基づいて決定することができ、たとえば、「データサイズ-データoff」、「データサイズ/データoff」などであってもよい。
前の方法が、現在ダウンロードされたインストールパッケージがリパッケージされているかどうかを検証するために使用されるとき、オリジナルのインストールパッケージ内のデジタル透かし情報がリパッケージされたインストールパッケージ内に埋め込まれている場合でも、インストールパッケージに対応する透かし値は変化する。したがって、オペレーティングシステムは、インストールパッケージの透かし値に基づいて、インストールパッケージがリパッケージされているかどうかを正確に判断することができる。
デジタル透かし情報がランダム長の文字列であるとき、文字列の長さを最初に計算することができ、次いで文字列の長さが安全な動的ライブラリ内の検証情報の長さと一致するかどうかが検証され、文字列の長さが安全な動的ライブラリ内の検証情報の長さと一致しない場合、インストールパッケージはリパッケージされたインストールパッケージであることが直ちに決定され、または文字列の長さが安全な動的ライブラリ内の検証情報の長さと一致する場合、文字列が安全な動的ライブラリ内の検証情報と一致するかどうかが検証され、文字列が同じく安全な動的ライブラリ内の検証情報と一致する場合、インストールパッケージはオリジナルのインストールパッケージであると判定され、または文字列が安全な動的ライブラリ内の検証情報と一致しない場合、インストールパッケージはリパッケージされたインストールパッケージであると判定される。
デジタル透かし情報が命令であるとき、インストールパッケージを検証するために複数の方法が存在する。例として、3つの検証方法を以下で説明する。
第1の方法は、デジタル透かし情報が文字列であるときにインストールパッケージを検証するための前の方法と同様である。オペレーティングシステムは、命令が安全な動的ライブラリ内の検証情報と一致するかどうかを検証し、命令が安全な動的ライブラリ内の検証情報と一致する場合、オペレーティングシステムは、インストールパッケージはオリジナルのインストールパッケージであると判定し、命令が安全な動的ライブラリ内の検証情報と一致しない場合、オペレーティングシステムは、インストールパッケージはリパッケージされたインストールパッケージであると判定する。
第2の方法では、オペレーティングシステムは、動作結果を取得するために命令に基づいて対応する動作を実行し、次いで動作結果が検証情報と一致するかどうかを検証し、動作結果が検証情報と一致する場合、オペレーティングシステムは、インストールパッケージはオリジナルのインストールパッケージであると判定し、動作結果が検証情報と一致しない場合、オペレーティングシステムは、インストールパッケージはリパッケージされたインストールパッケージであると判定する。
たとえば、命令は、「XXアドレスにおけるコンテンツが安全な動的ライブラリ内の検証情報と一致するかどうかの照会」であってもよい。オペレーティングシステムは、命令に基づいてターゲットファイル内のXXアドレスからのアドレスに対応するコンテンツ(動作結果)を照会し、コンテンツが安全な動的ライブラリ内の検証情報と一致するかどうかを検証する。コンテンツが安全な動的ライブラリ内の検証情報と一致する場合、オペレーティングシステムは、インストールパッケージはオリジナルのインストールパッケージであると判定する。コンテンツが安全な動的ライブラリ内の検証情報と一致しない場合、オペレーティングシステムは、インストールパッケージはリパッケージされたインストールパッケージであると判定する。
第3の方法では、オペレーティングシステムは、動作結果を取得するために命令に基づいて対応する動作を実行し、動作結果が検証情報内の動作結果と一致するかどうかを検証し、かつ命令が検証情報内の命令と一致するかどうかを検証する。2つの検証の結果が両方とも「一致」である場合、オペレーティングシステムは、インストールパッケージはオリジナルのインストールパッケージであると判定する。2つの検証のいずれかの結果が「不一致」であるか、または2つの検証の結果が両方とも「不一致」である場合、オペレーティングシステムは、インストールパッケージはリパッケージされたインストールパッケージであると判定する。
検証方法を明確に説明するために、本明細書で簡単な例を提供する。安全な動的ライブラリ内の検証情報内の動作結果が“2”であると仮定すると、動作命令は“1+1”であり、ターゲットファイル内のデジタル透かし情報に対応する命令は“3-1”であり、オペレーティングシステムが命令に基づいて動作を実行した後に取得された動作結果も“2”である。オペレーティングシステムが、動作結果が検証情報内の動作結果と一致するかどうかを検証するのみである場合、オペレーティングシステムは、誤ってインストールパッケージはオリジナルのインストールパッケージであるものとみなすが、オペレーティングシステムがさらに、命令が検証情報内の命令と一致するかどうかを検証する場合、オペレーティングシステムは、正確にインストールパッケージはリパッケージされているかどうかを判定する。
ターゲットファイル内のデジタル透かし情報に対応する命令は、単純な「リターン」命令であってもよく、またはオペレーティングシステムと相互作用するために使用される別の命令であってもよい。たとえば、命令は、「ターゲットファイルの自己署名が安全な動的ライブラリ内の検証情報と一致するかどうかをオペレーティングシステムに検証させる」であってもよい。別の例として、命令は、「デジタル透かし情報が埋め込まれる前のターゲットファイルの長さが安全な動的ライブラリ内に記憶された検証情報と一致するかどうかをオペレーティングシステムに検証させる」であってもよい。命令は、ユーザのニーズに基づいてセットされてもよい。
加えて、インストールパッケージがリパッケージされたインストールパッケージである場合、以下の場合があってもよい。デジタル透かし情報が、インストールパッケージに対応するオリジナルファイル内に埋め込まれる。オリジナルのインストールパッケージをリパッケージするプロセスにおいて、オリジナルのインストールパッケージ内のデジタル透かし情報が失われることが前のコンテンツから理解されてもよい。ユーザが、オリジナルファイルのコードを改変した後にデジタル透かし情報を追加しない場合、オペレーティングシステムは、インストールパッケージ内のコードに基づいて、インストールパッケージのターゲットファイルがデジタル透かし情報を含むかどうかを照会することができる。
インストールパッケージを検証するための前の方法は一例にすぎない。実際の応用例では、複数のタイプのデジタル透かし情報が存在し、複数の対応する検証方法も存在し、それらは本明細書では限定されない。
本出願で提供されるリパッケージング対策のための方法では、インストールパッケージは検証コードを含む。インストールパッケージがインストールされるとき、図8に示すように、オペレーティングシステムは、コードに基づいてインストールパッケージ内の安全な動的ライブラリ内の検証情報を取得し、ターゲットファイル内に埋め込まれたデジタル透かし情報を取得し、デジタル透かし情報および検証情報に基づいてインストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証する。本出願で提供されるリパッケージング対策のための方法を使用することによって、以下の有益な効果が達成される。
1.本出願では、インストールパッケージは、インストールパッケージがリパッケージされているかどうかを検証するために使用されるコードを含む。したがって、オペレーティングシステムがどれほど改変されようとも、インストールパッケージを検証するプロセスを回避することはできない。上記によって、インストールパッケージがリパッケージされているかどうかを検証するためにインストールパッケージの自己署名を検査するときに、インストールパッケージの自己署名を検証するプロセスをシステムが省略することがあるためインストールパッケージがリパッケージされているかどうかを効率に検証することができないという既存の問題が緩和される。
2.本出願では、インストールパッケージがリパッケージされているかどうかが、デジタル透かし情報および検証情報に基づいて検証される。したがって、インストールパッケージのハッシュ値を計算することによってインストールパッケージがリパッケージされているかどうかを検証する既存の技術における方法と比較して、本出願は、インストールパッケージがリパッケージされているかどうかの検証においてより高い効率を有する。
同様に、本出願は、システムがインストールパッケージの自己署名を検査するときに、インストールパッケージがリパッケージされているかどうかを効率的に検証することができないことがあるという既存の問題を緩和するため、およびインストールパッケージがリパッケージされているかどうかを検査するためにシステムがインストールパッケージのハッシュ値を計算するときに、インストールパッケージが大きいメモリを占有するので検証効率が低いことがあるという既存の問題を緩和するために、リパッケージング対策のための装置をさらに提供する。装置の構造が図9に示され、以下のユニット、すなわち実施ユニット901と実行ユニット902とを含む。
実施ユニット901は、インストールパッケージ内のターゲットファイルを実施し、インストールパッケージ内の安全な動的ライブラリをロードするように構成される。
実行ユニット902は、ターゲットファイル内のコードに基づいて、ターゲットファイル内に埋め込まれたデジタル透かし情報および安全な動的ライブラリ内に記憶された検証情報を取得することと、デジタル透かし情報および検証情報に基づいてインストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証することとを実行するように構成される。
本装置の実装形態の作業フローは以下のとおりである。最初に、実施ユニット901は、インストールパッケージ内のターゲットファイルを実施してインストールパッケージ内の安全な動的ライブラリをロードし、次いで実行ユニット902は、ターゲットファイル内のコードに基づいて、ターゲットファイル内に埋め込まれたデジタル透かし情報および安全な動的ライブラリ内に記憶された検証情報を取得することと、デジタル透かし情報および検証情報に基づいてインストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証することとを実行する。
本装置の実装形態では、リパッケージング対策が多くの方法を使用することによって実装される。たとえば、第1の実装形態では、ターゲットファイルは所定のコードがコンパイルされた後に取得されたターゲットファイルであり、デジタル透かし情報はコンパイルされたターゲットファイルの終端に埋め込まれる。
第2の実装形態では、ターゲットファイル内に埋め込まれたデジタル透かし情報を取得することは、ターゲットファイルのオリジナルの長さに基づいてターゲットファイル内のデジタル透かし情報の開始アドレスを決定することであって、オリジナルの長さはデジタル透かし情報が埋め込まれる前のターゲットファイルの長さである、決定することと、開始アドレスに基づいてターゲットファイルからデジタル透かし情報を取得することとを含む。
第3の実装形態では、デジタル透かし情報および検証情報に基づいてインストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証することは、デジタル透かし情報が検証情報と一致するかどうかを検証することと、デジタル透かし情報が検証情報と一致する場合にインストールパッケージはオリジナルのインストールパッケージであると判定することか、またはデジタル透かし情報が検証情報と一致しない場合にインストールパッケージはリパッケージされたインストールパッケージであると判定することとを含む。
第4の実装形態では、デジタル透かし情報および検証情報に基づいてインストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証することは、デジタル透かし情報が命令であるときに動作結果を取得するために命令に基づいて動作を実行することと、動作結果が検証情報と一致するかどうかを検証することと、動作結果が検証情報と一致する場合にインストールパッケージはオリジナルのインストールパッケージであると判定することか、または動作結果が検証情報と一致しない場合にインストールパッケージはリパッケージされたインストールパッケージであると判定することとを含む。
第5の実装形態では、デジタル透かし情報および検証情報に基づいてインストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証することは、デジタル透かし情報が命令であるときに動作結果を取得するために命令に基づいて動作を実行することと、動作結果が検証情報内の動作結果と一致するかどうかを検証することと、命令が検証情報内の命令と一致するかどうかを検証することと、動作結果が検証情報内の動作結果と一致しかつ命令が検証情報内の命令と一致する場合にインストールパッケージはオリジナルのインストールパッケージであると判定することか、またはそうではない場合にインストールパッケージはリパッケージされたインストールパッケージであると判定することとを含む。
本装置の実装形態において達成される有益な効果は、前の方法の実装形態において達成される有益な効果と同じかまたは同様である。繰り返しを避けて簡明にするために、本明細書では詳細を省略する。
本発明の実装形態が方法、システム、またはコンピュータプログラム製品として提供されてもよいことは、当業者には理解されよう。それゆえ、本発明は、ハードウェアのみの実装形態、ソフトウェアのみの実装形態、またはソフトウェアとハードウェアの組合せの実装形態の形を取ることができる。加えて、本発明は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(限定はしないが、ディスクメモリ、CD-ROM、光学メモリなどを含む)上で実装されるコンピュータプログラム製品の形を取ることができる。
本発明は、本発明の実装形態による方法、デバイス(システム)、およびコンピュータプログラム製品のフローチャートおよび/またはブロック図を参照して説明される。コンピュータプログラム命令は、フローチャートおよび/またはブロック図における各プロセスおよび/または各ブロック、ならびにフローチャートおよび/またはブロック図におけるプロセスおよび/またはブロックの組合せを実装するために使用されてもよいことを理解されたい。これらのコンピュータプログラム命令は、汎用コンピュータ、専用コンピュータ、埋め込みプロセッサ、またはマシンを生成するための任意の他のプログラマブルデータ処理デバイスのプロセッサに提供することができ、それによりコンピュータまたは任意の他のプログラマブルデータ処理デバイスのプロセッサによって実行される命令は、フローチャート内の1つもしくは複数のプロセス内、および/またはブロック図の1つもしくは複数のブロック内に特定の機能を実装するためのデバイスを生成する。
コンピュータまたは任意の他のプログラマブルデータ処理デバイスに対して、特定の方法を使用することによって働くように命令することができる、これらのコンピュータプログラム命令をコンピュータ可読メモリ内に記憶することができ、それによりコンピュータ可読メモリ内に記憶された命令は、命令デバイスを含む製造品を生成する。命令デバイスは、フローチャート内の1つもしくは複数のプロセス内、および/またはブロック図の1つもしくは複数のブロック内で特定の機能を実施する。
これらのコンピュータプログラム命令は、コンピュータまたは別のプログラマブルデータ処理デバイスにロードすることができ、それにより一連の動作およびステップがコンピュータまたは別のプログラマブルデバイス上で実行され、それによりコンピュータ実装処理が生成される。それゆえ、コンピュータまたは別のプログラマブルデバイス上で実行される命令は、フローチャート内の1つもしくは複数のプロセス内、および/またはブロック図の1つもしくは複数のブロック内で、特定の機能を実施するためのステップを提供する。
典型的な構成では、コンピューティングデバイスは、1つまたは複数の中央処理装置(CPU)と、1つまたは複数の入力/出力インターフェースと、1つまたは複数のネットワークインターフェースと、1つまたは複数のメモリとを含む。
メモリは、コンピュータ可読媒体内の揮発性メモリ、ランダムアクセスメモリ(RAM)、および/またはリードオンリーメモリ(ROM)もしくはフラッシュメモリ(フラッシュRAM)などの不揮発性メモリなどを含むことができる。メモリは、コンピュータ可読媒体の一例である。
コンピュータ可読媒体は、任意の方法または技術を使用することによって情報を記憶することができる、永久的および非永久的、取り外し可能および取り外し不可能な媒体を含む。情報は、コンピュータ可読命令、データ構造、プログラムのモジュール、または他のデータであってもよい。コンピュータ記憶媒体の例は、限定はしないが、相ランダム変化メモリ(PRAM:phase-random change memory)、スタティックランダムアクセスメモリ(SRAM)、ダイナミックランダムアクセスメモリ(DRAM)、別のタイプのランダムアクセスメモリ(RAM)、リードオンリーメモリ(ROM)、電気的消去可能プログラマブルリードオンリーメモリ(EEPROM)、フラッシュメモリもしくは別のメモリ技術、コンパクトディスクリードオンリーメモリ(CD-ROM)、デジタル多用途ディスク(DVD)もしくは別の光学式記憶、磁気カセットテープ、磁気テープ/ディスク記憶、または別の磁気記憶デバイスもしくは任意の他の非伝送媒体を含み、コンピューティングデバイスによってアクセスされてもよい情報を記憶するために使用することができる。本明細書で定義されるように、コンピュータ可読媒体は、変調されたデータ信号およびキャリアなどの一時的コンピュータ可読媒体(一時的媒体)を含まない。
「含む」、「包含する」という用語、またはそれらの任意の他の変形は、非排他的包含をカバーすることを意図しており、それにより要素のリストを含むプロセス、方法、製品、またはデバイスは、それらの要素を含むばかりでなく、明示的に列挙されていない他の要素をも含むか、またはそのようなプロセス、方法、製品、もしくはデバイスに固有の要素をさらに含むことにさらに留意することは価値がある。「〜を含む」に先行する要素は、その要素を含むプロセス、方法、製品、またはデバイス内に付加的な同等の要素の存在を排除することはなく、より制約することもない。
本明細書の実装形態が方法、システム、またはコンピュータプログラム製品として提供されてもよいことは、当業者には理解されよう。それゆえ、本出願は、ハードウェアのみの実装形態、ソフトウェアのみの実装形態、またはソフトウェアとハードウェアの組合せの実装形態の形を取ることができる。加えて、本出願は、コンピュータ使用可能プログラムコードを含む1つまたは複数のコンピュータ使用可能記憶媒体(限定はしないが、ディスクメモリ、CD-ROM、光学メモリなどを含む)上で実装されるコンピュータプログラム製品の形を取ることができる。
前の説明は、本出願の実装形態にすぎず、本出願を制限することを意図していない。当業者にとって、本出願における様々な変更が存在してもよい。本出願の趣旨および原理内で作成される任意の変更形態、等価な置換、改善などは、本出願の特許請求の範囲内に入るものとする。
901 実施ユニット
902 実行ユニット

Claims (13)

  1. リパッケージング対策のための方法であって、
    インストールパッケージ内のターゲットファイルを実施し、かつ前記インストールパッケージ内の安全な動的ライブラリをロードするステップと、
    前記ターゲットファイル内のコードに基づいて、
    前記ターゲットファイル内に埋め込まれたデジタル透かし情報および前記安全な動的ライブラリ内に記憶された検証情報を取得するステップと、
    前記デジタル透かし情報および前記検証情報に基づいて前記インストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証するステップと
    を実行するステップと
    を含む、方法。
  2. 前記ターゲットファイルが、所定のコードがコンパイルされた後に取得されたターゲットファイルであり、
    前記デジタル透かし情報が、前記コンパイルされたターゲットファイルの終端に埋め込まれる、
    請求項1に記載の方法。
  3. 前記ターゲットファイル内に埋め込まれたデジタル透かし情報を取得する前記ステップが、
    前記ターゲットファイルのオリジナルの長さに基づいて前記ターゲットファイル内の前記デジタル透かし情報の開始アドレスを決定するステップであって、前記オリジナルの長さが、前記デジタル透かし情報が埋め込まれる前の前記ターゲットファイルの長さである、ステップと、
    前記開始アドレスに基づいて前記ターゲットファイルから前記デジタル透かし情報を取得するステップと
    を含む、請求項2に記載の方法。
  4. 前記デジタル透かし情報および前記検証情報に基づいて前記インストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証する前記ステップが、
    前記デジタル透かし情報が、前記検証情報と一致するかどうかを検証するステップと、
    前記デジタル透かし情報が前記検証情報と一致する場合に前記インストールパッケージがオリジナルのインストールパッケージであると判定するステップか、または
    前記デジタル透かし情報が前記検証情報と一致しない場合に前記インストールパッケージがリパッケージされたインストールパッケージであると判定するステップと
    を含む、請求項1に記載の方法。
  5. 前記デジタル透かし情報および前記検証情報に基づいて前記インストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証する前記ステップが、
    前記デジタル透かし情報が命令であるときに動作結果を取得するために前記命令に基づいて動作を実行するステップと、
    前記動作結果が前記検証情報と一致するかどうかを検証するステップと、
    前記動作結果が前記検証情報と一致する場合に前記インストールパッケージがオリジナルのインストールパッケージであると判定するステップか、または
    前記動作結果が前記検証情報と一致しない場合に前記インストールパッケージがリパッケージされたインストールパッケージであると判定するステップと
    を含む、請求項1に記載の方法。
  6. 前記デジタル透かし情報および前記検証情報に基づいて前記インストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証する前記ステップが、
    前記デジタル透かし情報が命令であるときに動作結果を取得するために前記命令に基づいて動作を実行するステップと、
    前記動作結果が前記検証情報内の動作結果と一致するかどうかを検証し、前記命令が前記検証情報内の命令と一致するかどうかを検証するステップと、
    前記動作結果が前記検証情報内の前記動作結果と一致しかつ前記命令が前記検証情報内の前記命令と一致する場合に前記インストールパッケージがオリジナルのインストールパッケージであると判定するステップか、または
    そうでない場合に前記インストールパッケージがリパッケージされたインストールパッケージであると判定するステップと
    を含む、請求項1に記載の方法。
  7. 前記方法がANDROID(登録商標)オペレーティングシステムに適用され、
    前記ターゲットファイルがdexファイルであり、
    前記安全な動的ライブラリがsoライブラリである、請求項1から6のいずれか一項に記載の方法。
  8. リパッケージング対策のための装置であって、
    実施ユニットと実行ユニットとを備え、
    前記実施ユニットが、インストールパッケージ内のターゲットファイルを実施して前記インストールパッケージ内の安全な動的ライブラリをロードするように構成され、
    前記実行ユニットが、前記ターゲットファイル内のコードに基づいて、すなわち
    前記ターゲットファイル内に埋め込まれたデジタル透かし情報および前記安全な動的ライブラリ内に記憶された検証情報を取得することと、
    前記デジタル透かし情報および前記検証情報に基づいて前記インストールパッケージがリパッケージされたインストールパッケージであるかどうかを検証することと
    を実行するように構成される、装置。
  9. 前記ターゲットファイルが、所定のコードがコンパイルされた後に取得されたターゲットファイルであり、
    前記デジタル透かし情報が、前記コンパイルされたターゲットファイルの終端に埋め込まれる、請求項8に記載の装置。
  10. 前記ターゲットファイル内に埋め込まれたデジタル透かし情報を前記取得することが、
    前記ターゲットファイルのオリジナルの長さに基づいて前記ターゲットファイル内の前記デジタル透かし情報の開始アドレスを決定することであって、前記オリジナルの長さが、前記デジタル透かし情報が埋め込まれる前の前記ターゲットファイルの長さである、決定することと、
    前記開始アドレスに基づいて前記ターゲットファイルから前記デジタル透かし情報を取得することと
    を含む、請求項9に記載の装置。
  11. 前記デジタル透かし情報および前記検証情報に基づいて前記インストールパッケージがリパッケージされたインストールパッケージであるかどうかを前記検証することが、
    前記デジタル透かし情報が、前記検証情報と一致するかどうかを検証することと、
    前記デジタル透かし情報が前記検証情報と一致する場合に前記インストールパッケージがオリジナルのインストールパッケージであると判定することか、または
    前記デジタル透かし情報が前記検証情報と一致しない場合に前記インストールパッケージがリパッケージされたインストールパッケージであると判定することと
    を含む、請求項8に記載の装置。
  12. 前記デジタル透かし情報および前記検証情報に基づいて前記インストールパッケージがリパッケージされたインストールパッケージであるかどうかを前記検証することが、
    前記デジタル透かし情報が命令であるときに動作結果を取得するために前記命令に基づいて動作を実行することと、
    前記動作結果が前記検証情報と一致するかどうかを検証することと、
    前記動作結果が前記検証情報と一致する場合に前記インストールパッケージがオリジナルのインストールパッケージであると判定することか、または
    前記動作結果が前記検証情報と一致しない場合に前記インストールパッケージがリパッケージされたインストールパッケージであると判定することと
    を含む、請求項8に記載の装置。
  13. 前記デジタル透かし情報および前記検証情報に基づいて前記インストールパッケージがリパッケージされたインストールパッケージであるかどうかを前記検証することが、
    前記デジタル透かし情報が命令であるときに動作結果を取得するために前記命令に基づいて動作を実行することと、
    前記動作結果が前記検証情報内の動作結果と一致するかどうかを検証し、前記命令が前記検証情報内の命令と一致するかどうかを検証することと、
    前記動作結果が前記検証情報内の前記動作結果と一致しかつ前記命令が前記検証情報内の前記命令と一致する場合に前記インストールパッケージがオリジナルのインストールパッケージであると判定することか、または
    そうでない場合に前記インストールパッケージがリパッケージされたインストールパッケージであると判定することと
    を含む、請求項8に記載の装置。
JP2019520118A 2016-10-11 2017-09-26 ソフトウェアリパッケージング防止方法および装置 Active JP6746156B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201610887188.5 2016-10-11
CN201610887188.5A CN106971098B (zh) 2016-10-11 2016-10-11 一种防重打包的方法及其装置
PCT/CN2017/103403 WO2018068633A1 (zh) 2016-10-11 2017-09-26 一种防重打包的方法及其装置

Publications (3)

Publication Number Publication Date
JP2019535087A true JP2019535087A (ja) 2019-12-05
JP2019535087A5 JP2019535087A5 (ja) 2020-07-30
JP6746156B2 JP6746156B2 (ja) 2020-08-26

Family

ID=59334735

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2019520118A Active JP6746156B2 (ja) 2016-10-11 2017-09-26 ソフトウェアリパッケージング防止方法および装置

Country Status (11)

Country Link
US (1) US10685117B2 (ja)
EP (1) EP3528149B1 (ja)
JP (1) JP6746156B2 (ja)
KR (1) KR102192880B1 (ja)
CN (1) CN106971098B (ja)
ES (1) ES2874781T3 (ja)
PH (1) PH12019500785A1 (ja)
PL (1) PL3528149T3 (ja)
SG (1) SG11201903264RA (ja)
TW (1) TWI675310B (ja)
WO (1) WO2018068633A1 (ja)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106971098B (zh) 2016-10-11 2020-06-02 阿里巴巴集团控股有限公司 一种防重打包的方法及其装置
CN107256349B (zh) * 2017-06-13 2020-02-28 广州阿里巴巴文学信息技术有限公司 动态库防盗用方法、装置、电子设备及可读存储介质
KR101920597B1 (ko) * 2017-11-16 2018-11-21 숭실대학교산학협력단 동적 코드 추출 기반 자동 분석 방지 우회 및 코드 로직 해석 장치
CN108304697B (zh) * 2017-12-11 2020-05-19 深圳壹账通智能科技有限公司 检测app二次打包的方法、装置及移动终端
CN109739544B (zh) * 2018-12-25 2022-11-04 北京三快在线科技有限公司 用于生成应用安装包的方法、装置及电子设备
CN109901981A (zh) * 2019-02-28 2019-06-18 北京智游网安科技有限公司 一种截屏泄露处理方法、智能终端及存储介质
CN110704816B (zh) * 2019-09-29 2021-10-22 武汉极意网络科技有限公司 接口破解的识别方法、装置、设备及存储介质
CN113132421B (zh) * 2019-12-30 2022-11-04 Oppo广东移动通信有限公司 文件检测方法、装置、终端及存储介质
CN113127859B (zh) * 2019-12-30 2024-04-12 Oppo广东移动通信有限公司 待检测文件的检测方法、装置、终端及存储介质
CN113127418A (zh) * 2019-12-30 2021-07-16 Oppo广东移动通信有限公司 文件检测方法、装置、终端及存储介质
CN113709195B (zh) * 2020-05-20 2024-05-28 广州汽车集团股份有限公司 一种车辆软件升级方法、装置及系统
CN112069468B (zh) * 2020-08-26 2023-05-30 上海上讯信息技术股份有限公司 一种页面动态水印的方法及设备
CN113641964B (zh) * 2021-10-19 2022-05-17 北京邮电大学 重打包应用检测方法、电子设备及存储介质

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TW480439B (en) * 1998-12-17 2002-03-21 Inventec Corp Method for examining correctness of system operation
US7421586B2 (en) * 1999-05-12 2008-09-02 Fraunhofer Gesselschaft Protecting mobile code against malicious hosts
US20060010430A1 (en) * 2001-05-04 2006-01-12 Thales Device and process for the signature, the marking and the authentication of computer programs
EP1546892B1 (en) * 2002-09-04 2017-03-29 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Protecting mobile code against malicious hosts cross references to related applications
US7784044B2 (en) * 2002-12-02 2010-08-24 Microsoft Corporation Patching of in-use functions on a running computer system
US8024571B2 (en) * 2006-12-22 2011-09-20 Schlumberger Technology Corporation Method of and system for watermarking application modules
US8375458B2 (en) * 2007-01-05 2013-02-12 Apple Inc. System and method for authenticating code executing on computer system
US8950007B1 (en) * 2008-04-07 2015-02-03 Lumension Security, Inc. Policy-based whitelisting with system change management based on trust framework
US8410619B2 (en) * 2008-12-10 2013-04-02 Sumitomo Bakelite Co., Ltd. Granular epoxy resin composition for encapsulating semiconductor, semiconductor device using the same and method for producing semiconductor device
US8844032B2 (en) * 2012-03-02 2014-09-23 Sri International Method and system for application-based policy monitoring and enforcement on a mobile device
US20120317421A1 (en) * 2012-06-19 2012-12-13 Concurix Corporation Fingerprinting Executable Code
KR101498820B1 (ko) * 2013-11-06 2015-03-05 순천향대학교 산학협력단 안드로이드 환경에서의 어플리케이션 리패키징 탐지 방법
US9619665B2 (en) * 2014-07-22 2017-04-11 Cheng-Han KO Method and system for adding dynamic labels to a file and encrypting the file
KR101695639B1 (ko) * 2014-08-13 2017-01-16 (주)잉카엔트웍스 클라우드 기반의 애플리케이션 보안 서비스 제공 방법 및 시스템
CN104239757B (zh) * 2014-09-30 2017-04-19 北京奇虎科技有限公司 应用程序防止逆向的方法及装置、运行方法及终端
CN104932902B (zh) * 2015-07-09 2019-07-12 魅族科技(中国)有限公司 一种生成apk文件的方法及终端
CN105205356B (zh) * 2015-09-17 2017-12-29 清华大学深圳研究生院 一种app应用重打包检测方法
CN105956456B (zh) * 2016-04-26 2019-02-19 南京邮电大学 一种对Android系统进行四重联合签名验证的实现方法
CN106971098B (zh) * 2016-10-11 2020-06-02 阿里巴巴集团控股有限公司 一种防重打包的方法及其装置

Also Published As

Publication number Publication date
EP3528149A1 (en) 2019-08-21
TWI675310B (zh) 2019-10-21
PL3528149T3 (pl) 2021-10-11
US20190243974A1 (en) 2019-08-08
SG11201903264RA (en) 2019-05-30
EP3528149B1 (en) 2021-04-07
KR102192880B1 (ko) 2020-12-22
JP6746156B2 (ja) 2020-08-26
US10685117B2 (en) 2020-06-16
KR20190061075A (ko) 2019-06-04
ES2874781T3 (es) 2021-11-05
CN106971098A (zh) 2017-07-21
PH12019500785A1 (en) 2019-11-11
EP3528149A4 (en) 2019-10-16
WO2018068633A1 (zh) 2018-04-19
TW201814576A (zh) 2018-04-16
CN106971098B (zh) 2020-06-02

Similar Documents

Publication Publication Date Title
JP6746156B2 (ja) ソフトウェアリパッケージング防止方法および装置
AU2014348812B2 (en) Improved control flow integrity system and method
US11507669B1 (en) Characterizing, detecting and healing vulnerabilities in computer code
US8356351B2 (en) Method and device for verification of code module in virtual machine
US9871800B2 (en) System and method for providing application security in a cloud computing environment
WO2020177429A1 (zh) 在应用中嵌入代码的方法、装置及电子设备
CN113326058A (zh) 一种应用的版本更新方法、装置、设备及介质
US11176060B2 (en) Dynamic memory protection
US20150026483A1 (en) Systems and Methods for Mobile Application Protection
CN109815682B (zh) 一种对权限进行追踪管理的方法、装置和计算机记录介质
KR20130051225A (ko) 이기종 컴퓨팅 환경에서 보안 강화 방법 및 장치
CN112230930A (zh) 混合技术栈构建打包的方法和装置及机器可读存储介质
US10387644B2 (en) Systems and methods for intrinsic runtime security
KR101842263B1 (ko) 어플리케이션에 대한 역공학 차단 방법 및 장치
US11113392B2 (en) Executable binary code insertion
LU102412B1 (en) A Method and Apparatus for Embedding Codes in an Application, and an Electronic Device
KR102626841B1 (ko) 동적 라이브러리의 자가 무결성 검증 방법 및 이를 위한 장치
KR20180093529A (ko) 바이트코드와 네이티브코드 간의 상호 의존성에 기반한 어플리케이션 위변조 방지 방법 및 장치
KR20200116812A (ko) 자바 라이브러리의 무결성을 보장하기 위한 방법 및 장치
Lee et al. Method to Modify the Hex of Android Manifest File in Android Apps for Dynamic Analysis
CN112784222A (zh) 一种安卓apk安装包防篡改校验方法
KR20180055626A (ko) 루팅 탐지 장치 및 방법, 이를 수행하기 위한 기록 매체

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190527

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20190527

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20200529

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200619

A871 Explanation of circumstances concerning accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A871

Effective date: 20200619

A975 Report on accelerated examination

Free format text: JAPANESE INTERMEDIATE CODE: A971005

Effective date: 20200630

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: 20200706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200730

R150 Certificate of patent or registration of utility model

Ref document number: 6746156

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

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