>>158 そうですか こっちはまだ巧くゆきません
 書換え可能なのは DLL のポインタ部だけなんで

function DllProcChange(new,old:pointer):Pointer;
var p:^Integer;
begin
p:=Pointer(integer(old)+2); //FF25 [xxxxxxxx]
p:=pointer(p^);
Result:=pointer(p^);
p^:=Integer(new);
end;
として
DllProcChange(@NewExcept,@RaiseException);
とやると、 Windows.RaiseException が書き換わってしまうし

@RaiseExceptionから手繰ろうとしても、@が先頭についてるからダメだし
system.pas を書き換えるのは嫌だしで難しいですね