JP2006235688A - プログラム難読化装置およびその方法ならびにプログラム - Google Patents

プログラム難読化装置およびその方法ならびにプログラム Download PDF

Info

Publication number
JP2006235688A
JP2006235688A JP2005045259A JP2005045259A JP2006235688A JP 2006235688 A JP2006235688 A JP 2006235688A JP 2005045259 A JP2005045259 A JP 2005045259A JP 2005045259 A JP2005045259 A JP 2005045259A JP 2006235688 A JP2006235688 A JP 2006235688A
Authority
JP
Japan
Prior art keywords
obfuscation
program
obfuscated
unit
executed
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
JP2005045259A
Other languages
English (en)
Other versions
JP4675642B2 (ja
Inventor
Shinsaku Kiyomoto
晋作 清本
Toshiaki Tanaka
俊昭 田中
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.)
KDDI Corp
Original Assignee
KDDI Corp
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 KDDI Corp filed Critical KDDI Corp
Priority to JP2005045259A priority Critical patent/JP4675642B2/ja
Publication of JP2006235688A publication Critical patent/JP2006235688A/ja
Application granted granted Critical
Publication of JP4675642B2 publication Critical patent/JP4675642B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

【課題】 新規な評価方法を用いて安全性を遂次計算することで効率的な難読化を実現する。
【解決手段】 プログラム難読化装置は、データ入力取込み部2を介して難読化前のプログラムを取込み、難読化処理部3を起動してあらかじめ複数用意された難読化アルゴリズムの一つに従って難読化処理を実行し、難読化判定出力部6が、難読化処理を1回実行する毎に安全性評価を行い、ユーザが定義した安全性評価のための要求条件を達成していれば処理を終了し、達成していなければ再度難読化処理を実行して上記判定を繰り返し最終的に最適な難読化プログラムを出力する。なお、安全性は、難読化前のプログラムに対する命令単位での差分を評価することによって行われる。
【選択図】 図1

Description

本発明は、プログラムを第三者が理解しにくいように効率的に改変することのできるプログラム難読化装置およびその方法ならびにプログラムに関する。
近年、コンピュータを利用した様々なサービスが提供されるようになった。このとき、サービス提供者は、ユーザに対してサービスを利用するためのプログラムを提供する。このようなプログラムには、例えば、暗号化鍵等を用い何らかの秘密情報を隠蔽する処理が施される。そのような場合、プログラムに対して攻撃者が理解しにくいように改変する必要があり、この技術を難読化と呼ぶ。
難読化は、プログラムの解析を困難にする用途でも使用される。例えば、プログラムが機密データや機密アルゴリズムを持つ場合、安全な構成で問題解析を困難にするように、ソースコードに対し、プログラムの仕様を変更しないように、関数へのポインタ変数を新たに複数導入し、また、関数ポインタの変数のいずれかに関数のアドレスを代入する命令文を複数挿入し、プログラムにおける関数の呼び出しを関数ポインタ変数の値に応じて呼び出すように変換する難読化方法が知られている(例えば、特許文献1参照)。
特開2003−337629号公報
しかしながら、上記した従来技術によれば、難読化手法を適用するに際して、安全性とファイルサイズの増加に対して効率的に難読化処理を施すことができず、結果的に冗長な難読化処理になってしまう。また、ファイルサイズの増加に対して十分に安全性を確保できないなどの問題があった。
本発明は、上記事情に基づいてなされたものであり、新規な評価方法を用いて安全性を遂次計算することで効率的な難読化を実現するプログラム難読化装置およびその方法ならびにプログラムを提供することを目的とする。
上記した課題を解決するために、本発明のプログラム難読化装置は、難読化前のプログラムとユーザによって定義される安全性評価のための要求条件を、入力装置を介して取り込むデータ入力取込み部と、演算装置を用い、前記取り込まれた難読化前のプログラムに関し、あらかじめ用意された複数の難読化手法のそれぞれを実行して難読化された複数のプログラムを生成出力する難読化処理部と、前記難読化処理アルゴリズムのそれぞれを実行する毎、前記難読化後のプログラムと前記取り込まれた難読化前のプログラムとの命令単位での差分を評価し、前記要求条件を満たしたときに前記難読化処理部による難読化処理の実行を終了させ、前記難読化後のプログラムを出力する難読化判定出力部と、を具備することを特徴とする。
また、本発明において、前記難読化判定出力部は、前記難読化前後のプログラムを構成する命令のうち、同一である命令数を前記難読化後の全体の命令数で除算した値を整数1から減算して得られる値の大小に基づき前記差分の評価を行うことを特徴とする。
また、本発明において、前記難読化処理部は、同じ難読化手法を数回実行して前記難読化判定出力部により生成される前記値の上昇の程度を評価し、前記複数の難読化手法のうち最適な難読化手法を選択して前記難読化処理を実行することを特徴とする。
また、本発明において、前記難読化判定出力部は、前記データ入力取込み部を介して更に取り込まれるファイルサイズに従ってその上限値との比較を行い、該ファイルサイズが該上限値以下である場合には、前記難読化処理を終了させることを特徴とする。
また、本発明は、プログラムを第三者が理解しにくいように改変する入出力装置と演算装置を備えたプログラム難読化装置に用いられるプログラム難読化方法であって、難読化前のプログラムとユーザによって定義される安全性評価のための要求条件とを、前記入力装置を介して取り込むステップと、前記演算装置を用い、前記取り込まれた難読化前のプログラムに関し、あらかじめ用意された複数の難読化手法のそれぞれを実行し、難読化された複数のプログラムを生成出力するステップと、前記難読化手法のそれぞれを実行する毎、前記難読化後のプログラムと前記取り込まれた難読化前のプログラムとの命令単位での差分を評価し、前記要求条件を満たしたときに前記難読化処理を終了させ、前記難読化後のプログラムを出力するステップと、を有することを特徴とする。
また、本発明は、プログラムを第三者が理解しにくいように改変するプログラム難読化装置に用いられるプログラムであって、難読化前のプログラムとユーザによって定義される安全性評価のための要求条件とを取り込む処理と、前記取り込まれた難読化前のプログラムに関し、あらかじめ用意された複数の難読化手法のそれぞれを実行し、難読化された複数のプログラムを生成出力する処理と、前記難読化手法のそれぞれを実行する毎、前記難読化後のプログラムと前記取り込まれた難読化前のプログラムとの命令単位での差分を評価し、前記要求条件を満たしたときに前記難読化処理を終了させ、前記難読化後のプログラムを出力する処理と、をコンピュータに実行させることを特徴とする。
本発明によれば、難読化処理部が、データ入力取込み部を介して難読化前のプログラムを取込み、あらかじめ複数用意された難読化手法に従って難読化処理を実行し、難読化判定出力部が、難読化処理を1回実行する毎に安全性評価を行い、ユーザが定義した安全性評価のための要求条件を達成していれば難読化処理を終了し、達成していなければ再度難読化処理を実行する。また、ユーザが、ファイルサイズの上限を定義した場合には、その上限内で安全性の評価値が最大となるように難読化手法を再帰的に実行する。そして、安全性を達成し、かつファイルサイズが上限以下であれば処理を終了する。この場合の安全性評価は、難読化前のプログラムに対する命令単位での差分として評価される。
このことにより、効率的に難読化前のプログラムが難読化処理されて改変されるためにプログラムの保護が可能であり、また、ファイルサイズが増加しても安全なシステムの構築が可能になる。
図1は、本発明の実施形態に係るプログラム難読化装置を機能展開して示したブロック図である。
図1に示されるように、本発明のプログラム難読化装置は、中央制御部1と、データ入力取込み部2と、難読化処理部3と、P値評価部4と、Q値評価部5と、難読化判定出力部6とで構成される。
データ入力取込み部2は、難読化前のプログラムと、ユーザによって定義される安全性評価およびファイルサイズに関する要求条件を、図示せぬ入力装置を介して取り込む機能を持つ。要求条件としては他に処理時間等も考えられる。また、難読化処理部3は、図示せぬ演算装置を用い、データ入力取込み部2によって取り込まれた難読化前のプログラムに関し、あらかじめ用意された複数の難読化手法(難読化アルゴリズム)のそれぞれを実行して複数の難読化されたプログラムを生成出力する機能を持つ。
また、難読化判定出力部6は、難読化アルゴリズムのそれぞれを実行する毎、難読化後のプログラムと取り込まれた難読化前のプログラムとを命令単位での差分で評価し、データ入力取込み部2によって取り込まれた要求条件を満たしたときに難読化処理部3による難読化処理の実行を終了させる機能を持つ。難読化判定出力部6はまた、データ入力取込み部2を介して更に取り込まれるファイルサイズに従ってその上限値との比較を行い、ファイルサイズが上限値以下である場合には、難読化処理部3による難読化処理を終了させ、難読化後のプログラムを出力する。
一方、P値評価部4は、難読化前後のプログラムを構成する命令のうち、同一である命令数を難読化後の全体の命令数で除算した値を整数1から減算して得られる値の大小に基づき差分の評価を行い、また、Q値評価部5は、難読化処理部3が同じ難読化処理手順を数回実行してP値評価部4により生成されるP値の上昇の程度を評価し、難読化処理部3が、複数の難読化アルゴリズムのうち最適な難読化アルゴリズムを選択して難読化処理を実行する。
なお、中央制御部1は、本発明のプログラム難読化装置の制御中枢となり、上記したデータ入力取込み部2、難読化処理部3、P値評価部4、Q値評価部5、難読化判定出力部6間のシーケンス制御を行う。
以下、図2、図3を参照しながら本発明の実施形態に関する動作について説明するが、ここでは、ユーザに有効期限のあるプログラムを提供し、対価を得るようなサービスを想定する。
本サービスの利用手順は以下のようになる。すなわち、まず、ユーザは、プログラム提供サイトにアクセスし、対価の支払いを行うと共にコンテンツのダウンロード要求を行う。一方、プログラム提供サイトは、ユーザからのダウンロード要求に対して、オリジナルプログラムを本発明のプログラム難読化装置に入力し、難読化されたプログラムを得る。また、プログラム提供サイトは、難読化処理が施されたプログラムをユーザに返信する。
このことにより、ユーザは受信した難読化プログラムを利用することができる。なお、受信した難読化プログラムには有効期限をチェックする機能が含まれており、有効期限を過ぎると使用不能になる。
図2は、本発明実施形態において用いられる難読化手法(難読化アルゴリズム)の一例をフローチャートで示した図である。
ここでは、難読化処理部3は、まず、乱数を生成し(S21)、生成した乱数をNビット出力のハッシュ関数に入力してNビットの初期値を得ている(S22)。そして、ここで得られたNビットの初期値を、使用する難読化手法の個数分nに分割し(S23)、分割したビット列に対して、2Nビットになるまで別の乱数を結合させ、再びハッシュ関数へ入力して、難読化手法の個数分のNビット乱数を得る(S24)。
続いて冗長度の導入を行う(S25〜S27)。具体的に、S25では、Nビット乱数を、n×1×mビットに分割し、nビットの変数名の宣言をmで指定される部分に1行追加する(冗長度の導入1)。そして、S26では、Nビット乱数をn×1m×m×pに分割し、nビットの変数名の宣言をmで指定される部分に1行追加する。また、上記の処理で生成した演算を、乱数pを使用してダミー処理を生成し追加する。ダミー処理の生成方法は、後述する処理手順の変更に準ずる(冗長度の導入2)。
次に、Nビット乱数をa×bビットに分割し、事前に作成されているa個のダミーコートサンプルから、値aを用いて選択し、bで指定される位置に挿入する(冗長度の導入3)。
次に処理手順の変更を行う(S28、S29)。具体的には、S28では、Nビット乱数をs×t×u×vに分割し、プログラムで使用されている変数を値sで指定し、tで指定される演算を指定された変数とuを入力とし、その後、逆演算を行う処理をvで指定される場所に追加する(処理手順の変更1)。
次に、S29では、Nビット乱数をe×f×g×h×iに分割し、プログラムで使用されている変数を値eで指定し、fで指定される演算を指定された変数とgを入力としてh回行い、その後逆演算を行う処理をiで指定される場所に追加する(処理手順の変更2)。
図3は、本発明の実施形態に係るプログラム難読化装置の動作を説明するために引用したフローチャートであり、本発明のプログラムの処理手順をも示している。
フローチャートの説明に先立ち、本発明の実施形態で用いられる安全性評価のための評価式について説明する。P値評価部4が実行する演算は、以下の数1で示される。
Figure 2006235688
ここで、Tは難読化後のプログラム全体の命令数、αは元コードと難読化後のコードにおいて同一である命令数である。また、命令単位以外にも、バイト単位でも同様の評価を行ってもよい。また、プログラムごとに最適な難読化方式は異なるため、Q値評価部5は、以下の数2を実行して評価し、複数用意された難読化アルゴリズムを決定しても良い。
Figure 2006235688
ここで、α’は、あるプログラムAを同一回数難読化処理を実行したプログラムA’,A’’において、同一である命令の個数である。すなわち、同じ難読化を何回も実行した場合に、どの程度P値が上昇するかを評価している。また、ここでも、命令単位以外に、バイト単位でも同様の評価を行っている。なお、Q値は、複数の難読化プログラム(A’’’,A’’’...)を利用して、その平均をとっても良い。
以下、図3に示すフローチャートを参照しながら図1の本発明の実施形態に係るプログラム難読化装置の動作について詳細に説明する。
ユーザは、まず、本発明のプログラム難読化装置に対し、図示せぬ入力装置を用いて難読化したいプログラム(被難読化プログラム)、および、達成したい安全性レベル(P値)及び、ファイルサイズなどの要求条件を入力する。
プログラム難読化装置は、データ入力取込み部2を介して被難読化プログラムと要求条件を取込み(S31)、中央制御部1によるコントロールの下、難読化処理部3へ供給する。難読化処理部3は、事前評価作業として、それぞれの難読化手法で難読化プログラムを複数作成し、Q値評価部5により得られるQ値を評価して最適な難読化アルゴリズムを求める(S32)。
具体的に、難読化処理部3は、最初、適当な難読化アルゴリズムを選択し、図2に示すフローチャートに従い図示せぬ演算装置を用いてその難読化アルゴリズムを実行する。ここで、Q値評価部5は、難読化前後のプログラムを用いてQ値を算出して安全性を達成しているか否かを評価する。ここでの評価式は上記した数2に従う。
続いて、難読化判定出力部6は、P値評価部4を介して上記した数1に従うP値を計算して安全性についての評価を行い(S34)、要求条件(P値)に従う安全性を達成していれば、続いてファイルサイズについて、これが適切であるか否かの要求条件の評価を行う(S35)。ここで、適切でなければ難読化処理部3による同じ難読化手法を用いた難読化処理(S32)、もしくは別の難読化手法に従う難読化処理(S33)へ戻る。
なお、S32の処理へ戻る場合は、難読化後のプログラムに対してQ値を評価することで、次に実行すべき難読化アルゴリズムを再決定する。
次に、S35において、ファイルサイズが適切であれば、難読化判定出力部6は、難読化されたプログラムを出力する。適切でなければS32もしくはS33の処理に戻る。S32の処理へ戻る場合は、難読化後のプログラムに対してQ値を評価することで、次に実行すべき難読化アルゴリズムを再決定する。
以上、説明したように本発明は、プログラム難読化装置が、データ入力取込み部を介して難読化前のプログラムを取込み、難読化処理部3を起動してあらかじめ複数用意された難読化アルゴリズムの一つに従って難読化処理を実行し、難読化判定出力部6が、難読化処理を1回実行する毎に安全性評価を行い、ユーザが定義した安全性評価のための要求条件を達成していれば処理を終了し、達成していなければ再度難読化処理を実行して上記判定を繰り返し、最終的に最適な難読化プログラムを出力するものである。
また、ユーザが、ファイルサイズの上限を定義した場合には、その上限内で安全性の評価値が最大となるように難読化アルゴリズムを再帰的に実行する。そして、安全性を達成し、かつ、ファイルサイズが上限以下であれば上記同様処理を終了する。この場合の安全性評価は、難読化前のプログラムに対する命令単位での差分として評価される。このことにより、効率的に難読化のためのプログラムの改変が実現されるためプログラムの保護が可能であり、また、ファイルサイズが増加しても安全なシステム構築が可能になる。
なお、図1に示す中央制御部1と、データ入力取込み部2と、難読化処理部3と、P値評価部4と、Q値評価部5と、難読化判定出力部6のそれぞれで実行される手順をコンピュータ読み取り可能な記録媒体に記録し、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することによって本発明のプログラム難読化装置を実現することができる。ここでいうコンピュータシステムとは、OSや周辺装置等のハードウェアを含む。
また、「コンピュータシステム」は、WWWシステムを利用している場合であれば、ホームページ提供環境(あるいは表示環境)も含むものとする。
また、上記プログラムは、このプログラムを記憶装置等に格納したコンピュータシステムから、伝送媒体を介して、あるいは、伝送媒体中の伝送波により他のコンピュータシステムに伝送されてもよい。ここで、プログラムを伝送する「伝送媒体」は、インターネット等のネットワーク(通信網)や電話回線等の通信回線(通信線)のように情報を伝送する機能を有する媒体のことをいう。
また、上記プログラムは、前述した機能の一部を実現するためのものであっても良い。さらに、前述した機能をコンピュータシステムにすでに記録されているプログラムとの組合せで実現できるもの、いわゆる差分ファイル(差分プログラム)であっても良い。
以上、この発明の実施形態につき、図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計等も含まれる。
本発明実施形態にかかわるプログラム難読化装置を機能展開して示したブロック図である。 本発明実施形態において用いられる難読化手法(難読化アルゴリズム)の一例をフローチャートで示した図である。 本発明実施形態にかかわるプログラム難読化装置の動作を説明するために引用したフローチャートである。
符号の説明
1…中央制御部、2…データ入力取込み部、3…難読化処理部、4…P値評価部、5…Q値評価部、6…難読化判定出力部

Claims (6)

  1. 難読化前のプログラムとユーザによって定義される安全性評価のための要求条件を、入力装置を介して取り込むデータ入力取込み部と、
    演算装置を用い、前記取り込まれた難読化前のプログラムに関し、あらかじめ用意された複数の難読化手法のそれぞれを実行して難読化された複数のプログラムを生成出力する難読化処理部と、
    前記難読化手法のそれぞれを実行する毎、前記難読化後のプログラムと前記取り込まれた難読化前のプログラムとの命令単位での差分を評価し、前記要求条件を満たしたときに前記難読化処理部による難読化処理の実行を終了させ、前記難読化後のプログラムを出力する難読化判定出力部と、
    を具備することを特徴とするプログラム難読化装置。
  2. 前記難読化判定出力部は、
    前記難読化前後のプログラムを構成する命令のうち、同一である命令数を前記難読化後のプログラムにおける全体の命令数で除算した値を整数1から減算して得られる値に基づき前記差分の評価を行うことを特徴とする請求項1に記載のプログラム難読化装置。
  3. 前記難読化処理部は、
    同じ難読化処理手法を数回実行して前記難読化判定出力部により生成される前記値の上昇の程度を評価し、前記複数の難読化手法のうち最適な難読化手法を選択して前記難読化処理を実行することを特徴とする請求項2に記載のプログラム難読化装置。
  4. 前記難読化判定出力部は、
    前記データ入力取込み部を介して更に取り込まれるファイルサイズに従ってその上限値との比較を行い、該ファイルサイズが該上限値以下である場合には、前記難読化処理を終了させることを特徴とする請求項1から3のいずれか1項に記載のプログラム難読化装置。
  5. プログラムを第三者が理解しにくいように改変する、入出力装置と演算装置を備えたプログラム難読化装置に用いられるプログラム難読化方法であって、
    難読化前のプログラムとユーザによって定義される安全性評価のための要求条件とを、前記入力装置を介して取り込むステップと、
    前記演算装置を用い、前記取り込まれた難読化前のプログラムに関し、あらかじめ用意された複数の難読化処理手法のそれぞれを実行し、難読化された複数のプログラムを生成出力するステップと、
    前記難読化処理手法のそれぞれを実行する毎、前記難読化後のプログラムと前記取り込まれた難読化前のプログラムとの命令単位での差分を評価し、前記要求条件を満たしたときに前記難読化処理を終了させ、前記難読化後のプログラムを出力するステップと、
    を有することを特徴とするプログラム難読化方法。
  6. プログラムを第三者が理解しにくいように改変するプログラム難読化装置に用いられるプログラムであって、
    難読化前のプログラムとユーザによって定義される安全性評価のための要求条件とを取り込む処理と、
    前記取り込まれた難読化前のプログラムに関し、あらかじめ用意された複数の難読化処理手法のそれぞれを実行し、難読化された複数のプログラムを生成出力する処理と、
    前記難読化処理手法のそれぞれを実行する毎、前記難読化後のプログラムと前記取り込まれた難読化前のプログラムとの命令単位での差分を評価し、前記要求条件を満たしたときに前記難読化処理を終了させ、前記難読化後のプログラムを出力する処理と、
    をコンピュータに実行させるプログラム。

JP2005045259A 2005-02-22 2005-02-22 プログラム難読化装置およびその方法ならびにプログラム Expired - Fee Related JP4675642B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2005045259A JP4675642B2 (ja) 2005-02-22 2005-02-22 プログラム難読化装置およびその方法ならびにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2005045259A JP4675642B2 (ja) 2005-02-22 2005-02-22 プログラム難読化装置およびその方法ならびにプログラム

Publications (2)

Publication Number Publication Date
JP2006235688A true JP2006235688A (ja) 2006-09-07
JP4675642B2 JP4675642B2 (ja) 2011-04-27

Family

ID=37043306

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005045259A Expired - Fee Related JP4675642B2 (ja) 2005-02-22 2005-02-22 プログラム難読化装置およびその方法ならびにプログラム

Country Status (1)

Country Link
JP (1) JP4675642B2 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008102576A (ja) * 2006-10-17 2008-05-01 Kddi Corp プログラム解析方法およびプログラム
JP2010072958A (ja) * 2008-09-18 2010-04-02 Fuji Xerox Co Ltd プログラム難読化装置及び難読化プログラム
JP2010517119A (ja) * 2007-01-18 2010-05-20 パナソニック株式会社 難読化支援装置
JP2010262334A (ja) * 2009-04-30 2010-11-18 Kddi Corp プログラム難読化装置、プログラム難読化方法およびプログラム

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002514333A (ja) * 1997-06-09 2002-05-14 インタートラスト テクノロジーズ コーポレイション ソフトウェアセキュリティを増強するための混乱化技術
JP2002236522A (ja) * 2000-12-05 2002-08-23 Kenta Hori ソフトウエアの不正利用防止方法及びプログラム並びに記憶媒体
JP2003337629A (ja) * 2002-05-18 2003-11-28 Mitsuko Miyaji プログラム難読化方法及び装置
JP2004348710A (ja) * 2003-05-20 2004-12-09 Samsung Electronics Co Ltd 固有番号を用いたプログラムの耐タンパ手法、及び難読化されたプログラムアップグレード方法、並びにこれらの方法のための装置
JP2005266887A (ja) * 2004-03-16 2005-09-29 Kddi Corp プログラム難読化装置、プログラム配布システム、コンピュータプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002514333A (ja) * 1997-06-09 2002-05-14 インタートラスト テクノロジーズ コーポレイション ソフトウェアセキュリティを増強するための混乱化技術
JP2002236522A (ja) * 2000-12-05 2002-08-23 Kenta Hori ソフトウエアの不正利用防止方法及びプログラム並びに記憶媒体
JP2003337629A (ja) * 2002-05-18 2003-11-28 Mitsuko Miyaji プログラム難読化方法及び装置
JP2004348710A (ja) * 2003-05-20 2004-12-09 Samsung Electronics Co Ltd 固有番号を用いたプログラムの耐タンパ手法、及び難読化されたプログラムアップグレード方法、並びにこれらの方法のための装置
JP2005266887A (ja) * 2004-03-16 2005-09-29 Kddi Corp プログラム難読化装置、プログラム配布システム、コンピュータプログラム

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008102576A (ja) * 2006-10-17 2008-05-01 Kddi Corp プログラム解析方法およびプログラム
JP2010517119A (ja) * 2007-01-18 2010-05-20 パナソニック株式会社 難読化支援装置
US9589115B2 (en) 2007-01-18 2017-03-07 Panasonic Intellectual Property Management Co., Ltd. Obfuscation assisting apparatus
JP2010072958A (ja) * 2008-09-18 2010-04-02 Fuji Xerox Co Ltd プログラム難読化装置及び難読化プログラム
JP2010262334A (ja) * 2009-04-30 2010-11-18 Kddi Corp プログラム難読化装置、プログラム難読化方法およびプログラム

Also Published As

Publication number Publication date
JP4675642B2 (ja) 2011-04-27

Similar Documents

Publication Publication Date Title
JP6257754B2 (ja) データの保護
US20170116410A1 (en) Software protection
EP3038004A1 (en) Method for providing security for common intermediate language-based program
CN103530535A (zh) 一种Android平台应用程序保护的加脱壳方法
US20170024585A1 (en) Secured electronics device
WO2015035827A1 (en) Method and apparatus for providing string encryption and decryption in program files
JP6884284B2 (ja) キー付きメッセージ認証コードのホワイトボックス計算
US10867017B2 (en) Apparatus and method of providing security and apparatus and method of executing security for common intermediate language
CN110210211A (zh) 一种数据保护的方法和计算设备
JP4675642B2 (ja) プログラム難読化装置およびその方法ならびにプログラム
CN109117670A (zh) 一种实现剪切板数据加密和解密方法、装置及硬件设备
CN109343971B (zh) 一种基于缓存技术的浏览器数据传递方法及装置
CN114547653B (zh) 开发环境的加密方法、解密方法及装置、设备和介质
JP3970856B2 (ja) プログラム難読化装置、プログラム配布システム、コンピュータプログラム
CN109657480A (zh) 一种文件处理方法、设备及计算机可读存储介质
JP2007183931A (ja) セキュアデバイス、情報処理端末、サーバ、および認証方法
CN105095698B (zh) 基于最近执行的程序代码的程序代码模糊处理
US10909245B1 (en) Secure quarantine of potentially malicious content
CN110032832B (zh) 一种Web应用程序的处理方法及装置
JP2007086845A (ja) クライアントサーバシステムおよび同システムにおけるサーバサイドプログラムの実現方法ならびにそのサーバ装置、サーバサイドプログラム
JP5149061B2 (ja) プログラム難読化装置、プログラム難読化方法およびプログラム
CN113965366B (zh) 反向代理钓鱼攻击的防御方法、系统和计算机设备
CN110858243A (zh) 用于网关的页面获取方法和装置
JP6215468B2 (ja) プログラム保護装置
JP6752347B1 (ja) 情報処理装置、コンピュータプログラム及び情報処理方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20070905

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20071012

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20071012

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20101108

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20101116

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101220

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20101221

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20110126

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140204

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees