2番目の特別講演は、同じくイリノイ大学であるが、シカゴ校のGyungho Lee教授の、ソフトウェアを保護するアーキテクチャと題する講演である。
コンピュータウイルスはバッファオーバフローなどのソフトの欠陥を利用してプログラムを書き換え、コンピュータの制御権を握って色々な悪いことをやらせている。従って、プログラムの書き換えを検出して、書き換えられたプログラムやデータを使って実行しなければ、ウイルスが悪影響を及ぼすことは出来ず、安全性は保たれる。
プログラムの書き換えを検出する方法として、プログラムのチェックサムを計算してプログラムに埋め込んで置き、実行開始時にチェックサムを計算して、埋め込まれたものと一致するかどうかをテストするという手法がある。しかし、この手法では実行途中で発生した書き換えには対応できない。
正常実行時にどのようなシステムコールが呼ばれるのかを記録し、N個の連続するシステムコールに対して、記録に存在するシーケンスであるか記録に存在していないシーケンスであるかを判別し、異常な動作であるかどうかを見つけるN-gramと呼ぶ手法が提案されているが、システムコールが呼ばれる間隔はかなり長い時間であるので、システムにダメージを与える前に異常動作を検出できるかどうかについて問題がある。
リー先生の提案は、ソフトウェアだけで書き換えを検出するのではなく、ハードウェアに異常な動作を見つけさせる機能を追加するというもので、書き換えられた命令やデータが使われる前に異常動作かどうかを見つけることができる。良く用いられるアタックの方法として、スタックに書かれたサブルーチンコールからの戻り番地を書き換え、システムコールを呼び出してコンピュータの制御を奪うというような手法が用いられるが、サブルーチンからの戻りの間接ジャンプの飛び先のアドレスが異常なアドレスになっていることが検出できれば、このようなアタックを防ぐことができる。