kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

Hot Patching

ついでにもう一つ、Hot-patchingですが、これ見たとき「あーWin/V」とか思ったのは秘密です。Inside Win/Vには「APIフックは先頭にjmp命令入れている…」ということが書いてあったような。
hot-patchingはない静的なパッチですが、DOS時代…私が入社する前の話ですが、生成されたバイナリには「パッチエリア」という予備を何KBか設けてあって、バグが見つかると、その部分からjmpでパッチエリア内のルーチンにとばすということを先輩達は当たり前のようにやっていました。「古典的な方法」と書かれていましたが、やはりDOS時代から根本は変わってないですね。多くはCPUが早くなった場合などによくあった、ウェイト方法の変更だったみたいです。
何でこんな事していたかといえば、「そこしか修正していない」と言うことが生成されたバイナリレベルで比較的わかりやすかったためです。