- アセンブラ初心者スレッド
733 :,,・´∀`・,,)っ-○○○[]:2015/07/08(水) 03:10:34.57 ID:88H8yWBh - > exeをロードした後セグメントの値をゴリゴリ書き直したり
そんなん知ってるが?てかJITのコード書いてましたが? ユーザーモードでコードセグメントの書き換えを行うには特別なAPIを呼び出す必要がある上 キャッシュのinvalidationを都度やる必要があるからペナルティを伴う その時点のEIP値をとった方が遥かに柔軟だしそもそもそんなコードの書き換えしてまで call命令をわざわざ回避する理由がねーぢゃん
| - アセンブラ初心者スレッド
734 :,,・´∀`・,,)っ-○○○w[]:2015/07/08(水) 03:25:16.20 ID:88H8yWBh - んで、自己書き換えでオフセットの整合をとるために結局EIPを取る必要があって
特に32ビットではCALL命令を使う必要がある、と。 本末転倒だな
| - アセンブラ初心者スレッド
737 :,,・´∀`・,,)っ-○○○w[]:2015/07/08(水) 06:24:13.84 ID:88H8yWBh - > 86はセグメントと内蔵MMUがあるからそこまでしなくてもリロケータブルになる。
> 別に1バイト単位でリロケータブルにしても意味ないからね。 うわークソ老害が姿を表したぞ おま絶対50歳超えてるだろ > 86はセグメントと内蔵MMUがあるからそこまでしなくてもリロケータブルになる。 > 別に1バイト単位でリロケータブルにしても意味ないからね。 このおじいちゃん再配置可能の意味をものすごい古い意味でしか知らないようだけどVista以降のOSは触ったことがなさそうだな 👀 Rock54: Caution(BBR-MD5:0be15ced7fbdb9fdb4d0ce1929c1b82f)
| - アセンブラ初心者スレッド
738 :,,・´∀`・,,)っ-○○○w[sage]:2015/07/08(水) 06:30:07.39 ID:88H8yWBh - まあとりあえず今のWindows(DEP+ASLR前提)環境で通用する知識を頼むはwww
| - アセンブラ初心者スレッド
739 :,,・´∀`・,,)っ-○○○w[sage]:2015/07/08(水) 07:54:58.71 ID:88H8yWBh - WindowsというよりMacのほうが先か
それでなくとも*NIXでforkとかやるのにEIP/RIPの取得は必須なんだが (子プロセスで完全なコピーをとるからね) 結果的にスレッドが割り当てられるアドレスをバイナリ生成時に決め打ちすることができないんだよ おじいちゃんは所詮DOSとかの時代のシングルタスク知識止まり
|
|