リバースエンジニアリング
ナビゲーションに移動
検索に移動
リバース・エンジニアリングとは、「暗号解読」あるいは「翻訳」の一種である。
概要[編集]
「暗号」は「復号」されることを想定しているが、ソースコードを翻訳した「物理的なディジタルデータ」や、元のソースコードをトランスレータ(言語変換系)によって変換されたコードから、「プログラマの意図にまで踏込んで、解読する」という技藝(アート)である。
たとえば、どこぞの会社の熱間圧延施設があったとする。この制禦用のコードが、もともとは FORTRAN で書かれていたものであり、それをツールで プログラミング言語 C のコードに変換されたものであったとする。そうなると、コードは「GOTO 文の砂嵐またはジャングル」になってしまい、保守が行えなくなる。これでは保守担当者としては堪ったものではないので、その C のコードにリバースエンジニアリングをかけて解読し、「熱間圧延のワーク(被加工材)のシステム上における位置」を表す「ペトリネットの拡張表現」を実装したということがわかった[1]。
人間生活との関わり・利用[編集]
こうした作業は「発掘」とも云われる。あるマシンのアセンブラにリバース・エンジニアリングしてみたところ、途中で葉が歯が立たなくなったので一度退却したら、実は仮想マシンとそのコードであったという実話がある(たしか『プログラミング・セミナー』に「黄金虫」として紹介されていた)。
脚注[編集]
- ↑ 扇島では現在でも伝承されていそうに思う。