研究課題/領域番号 |
26540027
|
研究機関 | 名古屋大学 |
研究代表者 |
酒井 正彦 名古屋大学, 情報科学研究科, 教授 (50215597)
|
研究期間 (年度) |
2014-04-01 – 2017-03-31
|
キーワード | 難読プログラム / Malbolge / コンパイラ |
研究実績の概要 |
本研究は、プログラム難読化によるソフトウェア保護を目指し、最も難解かつプログラミングも困難と考えられている言語Malbolgeによるプログラム手法の開発を目指すものである。 昨年度から開発中であった、実行時に利用できるメモリ空間を3の20乗に拡張したMalbolge20言語の低級アセンブラを開発し、WEBで公開した(URL: http://www.trs.cm.is.nagoya-u.ac.jp/Malbolge/20trits_lal/on-lal.html.en)。低級アセンブラプログラムの作成困難性は、Malbolgeプログラム作成と比較すると易しいが、依然として普通のプログラミング手法の手におえるものではない。これまでにノウハウとして蓄えた低級アセンブリプログラムの作成手法は次のとおりである。(1) まず逐次的な処理に対する擬似命令列、ならびに、これらの実行制御を設計する。(2) これらの全体を眺めながら、低級アセンブリプログラムを作成する。その際に、(1)の部分ごとに低級アセンブリプログラムを作成してからそれらを組み合わせるといった通常のアプローチが使えないのが難しい点である。これは通常のプログラミング言語から低級アセンブリ言語へのコンパイラ作成のための障害となっている。これを解決するため、まず中間言語として擬似命令列に繰り返し構造を導入し、それら全体を一度に低級アセンブリ言語に変換する手法を開発した。これによりコンパイラ作成のための準備が整いつつある。 以上の他、組合せ最適化のための擬ブールソルバの改良により、コードの生成能力を増強することが出来た。
|
現在までの達成度 (区分) |
現在までの達成度 (区分)
2: おおむね順調に進展している
理由
初年度計画のうち達成が遅れていた低級アセンブリプログラムのシステム的な作成手法の開発を終え、当該年度の主な実施計画である低級アセンブリプログラムへの系統的な生成手法にめどが立ち、設計した中間言語から低級アセンブリプログラムが生成できるようになった。 当初はSATソルバによる組合せ最適化による手法を予定していたが、適用可能な規模に限界があり、また、低級アセンブラ言語自体の強い制約により解決のための問題分割が思うように出来なかったものの、適切な中間言語の設計に成功したため組合せ最適化手法に頼らない生成手法の設計が可能に立ったためである。
|
今後の研究の推進方策 |
これまでに中間言語から低級アセンブリ言語への変換、ならびに、低級アセンブリ言語からMalbolge言語への変換はほぼ実現が出来ている。実用化のためには、簡素ではあるが普通のプログラミング言語といえるような言語で中間言語への変換が可能な言語を設計し、その中間言語へのコンパイラを設計し実現する必要がある。 最終年度は、これらを達成し、これまでの成果と統合することで、超難読言語であるMalbolgeのプログラム作成を可能にしたい。
|
次年度使用額が生じた理由 |
ほぼ計画通りに予算を使用したが、他の事情により1回分国内出張ができなかったため。
|
次年度使用額の使用計画 |
国内出張に利用予定である。
|
備考 |
(2)は(1)の英語版です。
|