ソフトウェア工学講座
>
公開ソフトウェア
>
RINRUN
RINRUN: プログラムカムフラージュ化ツール
hits since 2003-09-30
RINRUNは、プログラムをカムフラージュするためのツールです。
カムフラージュとは、自己書き換えを用いてプログラムの解析を困難にする
技術です。
詳しくは、
関連文献を参照してください。
RINRUN version 0.1.0 (2003/3/18)
-
Windows 98/Me/2000/XPに対応しています。
-
現時点では、CPUがx86系、OSがWindowsであるコンピュータにおいて、
Cygwinのgccを用いて開発しているソフトウェアに対してのみ適用できます。
-
自己書き換えルーチンを複雑化する機能はまだ実装されていません。
-
まだまだ試作の段階です:-)
本ソフトウェアの再配布は禁止します。
本ソフトウェアの内部で用いられているプログラムの解析を困難にするための
アルゴリズムは、2004年3月現在、特許出願中です(特願2002-355881)。
本ソフトウェアを適用したソフトウェアを商用利用される場合は、e-mailにて
ご相談ください。
連絡先 : 神崎 雄一郎
kanzaki <@> kumamoto-nct.ac.jp
2004.3.18 Ver.0.1.0 公開
最も簡単な例として、
Cで書かれた単一のソースプログラムtest.cがあり、
その実行可能ファイルtest.exeを得たい場合を考えます。
gcc -o test.exe test.c
-
アセンブリのソースを得る。
gcc -S test.c
アセンブリファイルtest.sができる。
-
rinrun.exeを起動する。
-
リストボックスにtest.sをドラッグ&ドロップする。
-
カムフラージュ数(# of camfoulage)を聞かれるので、
-
カムフラージュさせたい命令数を入力する(たとえば100)。
-
(初期設定がまだの場合は)[Setteing]-[Path]でgcc.exeのある場所を設定する。
-
STARTボタンを押してカムフラージュ実行。
-
カムフラージュされたtest.sが指定のディレクトリ
(デフォルトでは入力ファイルと同じディレクトリ)に、
指定のファイル名(デフォルトではrr_"拡張子抜きの入力ファイル名"
"カムフラージュ数".s)で出力される。
-
カムフラージュされたアセンブリファイル(ここではrr_test100.sとします)をアセンブルする。
gcc -o test.exe rr_test100.s
-
同梱のsetflag.exeを使って、
test.exeのコード領域に書き込み可能フラグを付加する。
-
test.exeをドラッグ&ドロップする。
-
.textセクションを選択し、"WRITE"のボタンをチェックした状態にする。
-
上書き保存する。
以上です。
なお、コマンドラインから一括処理できるようにするため、各アプリにバッチモードを用意しています。
詳細は同梱のReadMe.txtを参照してください。
-
神崎雄一郎,門田暁人,中村匡秀,松本健一,"命令のカムフラージュによるソフトウェア保護方法," 電子情報通信学会論文誌A,VOL.J87-A,No.6,pp.755-767,June 2004.
-
Yuichiro Kanzaki, Akito Monden, Masahide Nakamura, Ken-ichi Matsumoto, "Exploiting self-modification mechanism for program protection," 27th Computer Software and Applications Conference (COMPSAC2003), pp.170-179, Dallas, USA, Nov. 2003. - 神崎雄一郎, 門田暁人, 中村匡秀, 松本健一, "命令コードの実行時置き換えによるプログラムの解析防止," 電子情報通信学会技術報告, 情報セキュリティ研究会, Vol. ISEC2002-98, pp.13-19, Dec. 2002.
(PDF 78K)
-
門田暁人, 神崎雄一郎, "自己書き換え処理追加プログラム、自己書き換え処理追加装置及び自己書き換え処理追加方法," 特願2002-355881, Dec. 2002.