[過去ログ] Visual Studio 2017 Part6 (1002レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
590(3): デフォルトの名無しさん (ワッチョイ c5da-uR/r) [qsage] 2019/02/10(日) 02:51:04.35 ID:hVspAvhd0(1/5) AAS
実行中に自分自身を書き換えるプログラムコードが普通だと思い込んでる方が異常
今どきのプラグラミング言語でそんなことが出来るものはない
昔のZ80アセンブラでは割と有名なテクニックだったけどね
今ではCPUの特権命令でも使って余程特殊なコーディングを行わなければ不可能
592(1): デフォルトの名無しさん (ワッチョイ c5da-uR/r) [qsage] 2019/02/10(日) 03:59:24.37 ID:hVspAvhd0(2/5) AAS
それは動的割当てを行うようにプログラムを組んでいるだけの規定の動作
予めプログラムされた通りのコードに過ぎない
実行時書き換えというのは言葉通りコードそのものを書き換える行為のこと
ストレージ上の実行ファイルのバイトイメージとは別のメモリ上に展開されたイメージそのものを改変する行為のこと
メモリ上のイメージをストレージの本体と破綻なく同期させる必要がある
特殊なデバイスドライバーやコピーガードのためのランダマイズなどで利用される
598: デフォルトの名無しさん (ワッチョイ c5da-uR/r) [qsage] 2019/02/10(日) 07:11:54.32 ID:hVspAvhd0(3/5) AAS
>>593まだコードの意味を理解してないのか
少なくとも現在のCPUはコードとデータを明確に区別してコードを保護しているんだよ
普通はコードを改変することは出来ない
実際はもう少し複雑だけど単縦にx86のコードセグメントとデータセグメントって知ってるか?
プログラムコードはコードセグメントに配置される
そこで386以降のCPUのメモリ管理機構は内容の監視を行なってる
そこでコードを下手に書き換えると例外が発生する
x86のプロテクトモードの由来はメモリ上のコードとデータを区別して保護することから来てる
602: デフォルトの名無しさん (ワッチョイ c5da-uR/r) [qsage] 2019/02/10(日) 08:09:52.10 ID:hVspAvhd0(4/5) AAS
この場合書き換えではなくて埋め込み
exeはいわゆるパッケージやコンテナとしての役割
603(1): デフォルトの名無しさん (ワッチョイ c5da-uR/r) [qsage] 2019/02/10(日) 08:24:12.46 ID:hVspAvhd0(5/5) AAS
>>599そうだよ
プロテクトモード以前のセグメントは単にメモリ管理の都合上設けられただけの仕組みで保護機能は有していない
(プログラム次第で何でもできる、8bit CPUと同じレベル)
逆にプロテクトモード登場以降は基本を踏襲しつつも遥かに巨大で複雑なシステムになってる
従来プログラマが管理していた内容をCPUが自動で行うようになった
特権レベル、特権命令を理解してないとコードの書き換えは不可能になった
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.042s