この研究室に興味のある研究者・企業の方に向けての情報です.
本研究室では,ソフトウェア開発の(中間)成果物の分析に取り組み,理論と実践の両面からソフトウェア工学の研究に取り組んでいます.
次の様な研究に従来から取り組んでおります.
本稿では,ソフトウェアの不正解析に対抗する難読化手法について提案する. 今日では,プログラム内の何を隠すのかの目的により,多くの手法が提案され,さらにツールも提供されている. その中で,本稿では,名前難読化に着目し,機械的なコールフローグラフ(CFG)の作成を妨げる手法について述べる. キーアイデアとして,Java 7で導入され …
本稿では、Java で作成されたソフトウェアを対象に、類似した命令列を持つメソッドの畳み込みを行う手法を提案する。 畳み込みとは、まず、類似した命令列を一つの命令列にまとめる。 そして、命令列間の差分は自己書き換えを用いて、実行時に適切な命令へと書き換える。 ソフトウェアの解析、改ざん(tamper)が困難にすることを目的とし、耐タンパ性を高 …
従来の Java プラットフォームにおけるプログラム保護はバイトコード(クラスファイル)の静的な変換が多くを占めており,静的解析には耐性があるものの,動的解析については脆弱であると指摘されている. それにも拘わらず,動的解析技術のみが進歩し,動的解析に対抗する保護技術については議論されてこなかった. 一度ロードしたクラスはいかなる変更もできな …
ソフトウェアの盗用を発見するための技術である,ソフトウェアバースマークについて調査を行い,現実世界に起こる盗用を発見するためのバースマークの能力を評価す. その評価により,現実世界の盗用を発見できるようになり,更には盗用であることを立証できることを目指す. バースマークの評価を行うに当たり,まず,盗用を行う盗用者の行動を整理すると共に,既存の …
名前難読化とは,プログラム中の名前(識別子)を別の名前に付け替えることで,プログラムを理解しづらいものにするソフトウェア保護手法である. 従来の名前難読化手法は,各名前を静的に別の文字列で置換するものであり,プログラム中に現れる任意のユーザ定義の名前を隠蔽できる. しかしながら,従来手法を用いてシステム定義の名前(標準ライブラリやAPIの呼び …