アカウント名:
パスワード:
>・プログラムの自己書き換え。
いや、普通にできますけど?もしこれができなくなっているなら、脆弱性の問題で苦労したりしませんって。
>・例えばBASICで、まとまったひとつのプログラムの冒頭に
いや、普通にできますけど?最近は肥大化したフレームワークの底に隠されてしまう傾向にありますけど、フレームワークをつかわなければ普通にできますよ。
>・プログラムの自己書き換え。いや、普通にできますけど?もしこれができなくなっているなら、脆弱性の問題で苦労したりしませんって。
脆弱性って逆じゃないかい?大抵は実行属性の付いたセグメントは書き換え禁止で、書き換え可能なセグメントは実行禁止になってるはずだし。(DEP等が無いとそのまま通る環境が存在するのは虚しい限りだが)
意図的に実行可能+書き換え可能にしない限り、現代のOSでは本来自己書き換え出来てはだめです。
・・・まぁ、APIで書き換えれば無視出来る訳ですが。# Windowsで自プロセスにWriteProcessMemoryとか本末転倒なようで案外有効
まったくですな。必要なら都度VirtualProtectまたはmprotectで書込属性を与えて、書いて、書込権限剥奪・実行権限付与ですね。
自己書き換えはやらなくなったとしても、JITがはやっているので、広い意味で実行時にコードを書くという処理はちっとも廃れていないと思うのです。
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
にわかな奴ほど語りたがる -- あるハッカー
あれこれ (スコア:0)
類似のことで、例えばゲームで自分の残り機数データの格納アドレスを解析して、ミスしても減らないようにするとか。
・例えばBASICで、まとまったひとつのプログラムの冒頭に
FOR A=1 TO 100
末尾に
NEXT A
と付け加えるだけで繰り返し100回にできる、とか(今のWindowsだとVBscriptで出来るのか?やり方よくわからん)。
Re: (スコア:1)
>・プログラムの自己書き換え。
いや、普通にできますけど?
もしこれができなくなっているなら、脆弱性の問題で苦労したりしませんって。
>・例えばBASICで、まとまったひとつのプログラムの冒頭に
いや、普通にできますけど?
最近は肥大化したフレームワークの底に隠されてしまう傾向にありますけど、フレームワークをつかわなければ普通にできますよ。
Re: (スコア:0)
>・プログラムの自己書き換え。
いや、普通にできますけど?
もしこれができなくなっているなら、脆弱性の問題で苦労したりしませんって。
脆弱性って逆じゃないかい?
大抵は実行属性の付いたセグメントは書き換え禁止で、書き換え可能なセグメントは実行禁止になってるはずだし。(DEP等が無いとそのまま通る環境が存在するのは虚しい限りだが)
意図的に実行可能+書き換え可能にしない限り、現代のOSでは本来自己書き換え出来てはだめです。
・・・まぁ、APIで書き換えれば無視出来る訳ですが。
# Windowsで自プロセスにWriteProcessMemoryとか本末転倒なようで案外有効
Re:あれこれ (スコア:0)
まったくですな。必要なら都度VirtualProtectまたはmprotectで書込属性を与えて、書いて、書込権限剥奪・実行権限付与ですね。
自己書き換えはやらなくなったとしても、JITがはやっているので、広い意味で実行時にコードを書くという処理はちっとも廃れていないと思うのです。