アカウント名:
パスワード:
より多くのコメントがこの議論にあるかもしれませんが、JavaScriptが有効ではない環境を使用している場合、クラシックなコメントシステム(D1)に設定を変更する必要があります。
あつくて寝られない時はhackしろ! 386BSD(98)はそうやってつくられましたよ? -- あるハッカー
hackというよりは (スコア:5, すばらしい洞察)
なぜならば、途中でNUL terminateしない文字列だけコードを書けるということは、sprintf系のバッファオーバーフローで容易にコードを注入できるということを意味していますので。
いわゆるshellcodeも、0x00を使わないか、どうしても使う場合は自己書き換えで表現することが多いですね。
Re:hackというよりは (スコア:0)
486以降の時代になるとパイプライン実行のために実行コードが先読みされてメモリから
CPUのキャッシュに入る仕様になったため、実行直前の命令が書かれたメモリを書き換えた
ところで件の命令は既にCPU内に取り込まれてしまっており書き換わらないため、命令を
書き換えたつもりが書き換えてない動作になってしまい、今まで386で動いていたソフト
でも486では動かない・・・とかそういうソフトが大量に出たはず。
・・・と思って見てみたら
# 実はレジスタ間の演算が一切できないのもつらいところ。必ずメモリvsレジスタで計算することになる。
# さらに、 sub [EAX], ESI はいいけど、 sub [EAX], EAX はダメとか、レジスタに微妙な拘束条件がつきまくる。
これを打開するための縛りだったんですね。
Re:hackというよりは (スコア:1, 参考になる)