リバースエンジニアリング

出典: 謎の百科事典もどき『エンペディア(Enpedia)』
ナビゲーションに移動 検索に移動

リバース・エンジニアリングとは、「暗号解読」あるいは「翻訳」の一種である。

概要[編集]

「暗号」は「復号」されることを想定しているが、ソースコードを翻訳した「物理的なディジタルデータ」や、元のソースコードをトランスレータ(言語変換系)によって変換されたコードから、「プログラマの意図にまで踏込んで、解読する」という技藝(アート)である。

たとえば、どこぞの会社の熱間圧延施設があったとする。この制禦用のコードが、もともとは FORTRAN で書かれていたものであり、それをツールで プログラミング言語 C のコードに変換されたものであったとする。そうなると、コードは「GOTO 文の砂嵐またはジャングル」になってしまい、保守が行えなくなる。これでは保守担当者としては堪ったものではないので、その C のコードにリバースエンジニアリングをかけて解読し、「熱間圧延のワーク(被加工材)のシステム上における位置」を表す「ペトリネットの拡張表現」を実装したということがわかった[1]

人間生活との関わり・利用[編集]

こうした作業は「発掘」とも云われる。あるマシンのアセンブラにリバース・エンジニアリングしてみたところ、途中で葉が歯が立たなくなったので一度退却したら、実は仮想マシンとそのコードであったという実話がある(たしか『プログラミング・セミナー』に「黄金虫」として紹介されていた)。

脚注[編集]

  1. 扇島では現在でも伝承されていそうに思う。

関連項目[編集]