トップページ⇒tech
64コメント10KB

メモリーのゼロ番地を読み書きする方法を教えてくれ

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさんNGNG
メモリーやディスクのゼロ番地にアクセスすると
ヌルポインタとやらになるらしいのですが
どうすれば読み書きできるのでしょうか
0002デフォルトの名無しさんNGNG
>>1
氏ね。
終了。
0003デフォルトの名無しさんNGNG
またぬるぽか
0004デフォルトの名無しさんNGNG
知ってるけど単発スレを立てるバカには教えない
0005デフォルトの名無しさんNGNG
void * zero = (void*)0;
0006デフォルトの名無しさんNGNG
mov byte ptr [0h],0
0007デフォルトの名無しさんNGNG
カロリーに見えた
0008デフォルトの名無しさんNGNG
mov eax,0h
out 0h,eax
0009デフォルトの名無しさんNGNG
>>1-8
ぜんぶNULLポインタに過ぎないわけだが
0010デフォルトの名無しさんNGNG
メモリーの一番端っこに電流流せばOK
0011デフォルトの名無しさんNGNG
ワラタ
0012デフォルトの名無しさんNGNG
物理メモリの0番地付近って実際使われてなさそうだな
もったいない
0013デフォルトの名無しさんNGNG
>>1
(OSやハードウェアに握られていなければ)名前が特別なだけで普通にアクセスできる(はず)。
逆にいえば「0」は特別な意味を持っているからまずOSやハードウェアが握っているんだよ。
0014デフォルトの名無しさんNGNG
OSやハードウェアが握っているから特別なんだよ
0015デフォルトの名無しさんNGNG
ちなみに、Windowsの話なら、
物理アドレス≠ポインタのアドレス
なのでそこんとこよろしく。>x86の仕組みを知らない人。
0016デフォルトの名無しさんNGNG
物理メモリの0x0番地はリセットベクタだろ。
0017デフォルトの名無しさんNGNG
×物理メモリ
○物理アドレス
0018デフォルトの名無しさんNGNG
windowsでもDDKなんかじゃ物理アドレスは叩けるべ
0019デフォルトの名無しさんNGNG
そういうのはリアルモードでやれよ。
0020デフォルトの名無しさんNGNG
0x7fff
0021デフォルトの名無しさんNGNG
0x0015
0022デフォルトの名無しさんNGNG
0120-xxx-xxx
0023デフォルトの名無しさんNGNG
0120-333-906
0024あぼーんNGNG
あぼーん
0025デフォルトの名無しさんNGNG
メモリの0番地に駆け込む方法を教えてくれ
0026デフォルトの名無しさんNGNG
>>25
回転ドアのように挟まるのでやめてください
0027デフォルトの名無しさんNGNG
彼女の記憶の0番地に駆け込みたい
0028デフォルトの名無しさんNGNG
電話番号は通報されますた
0029デフォルトの名無しさんNGNG
>>24は通報するともれなくワンギリ業者が逮捕されます
0030デフォルトの名無しさんNGNG
>>27
刷り込み
0031デフォルトの名無しさんNGNG
>>1
単発質問でスレを立てないでください。

***すれ立てるまでもない質問はここで 第56刷***
http://pc5.2ch.net/test/read.cgi/tech/1088022524/
0032デフォルトの名無しさんNGNG
プロテクトモーーーーーーーード!!!

何か強そう。
0033デフォルトの名無しさんNGNG
char *p = (char*)1;
printf("%x", --p);
*p = 'X';

0034デフォルトの名無しさんNGNG
そもそも下のほうのアドレスってROMじゃん
0035デフォルトの名無しさんNGNG
>>34
そんなもんはシステム依存だ。
0036デフォルトの名無しさんNGNG
IPLブート時なら好き勝手に書き換えられるだろ?
m68でもx86でも...
0037デフォルトの名無しさんNGNG
バンク切り替え・・・なつかすぃ〜。
0038デフォルトの名無しさんNGNG
>>35
そもそもヌルポインタの値もシステム依存だから大丈夫。
C言語の仕様だと、↓こんな感じで定義されてたんじゃなかったっけ?

・どんな処理系にも読み書きすることの出来ないアドレス、
 無効なアドレスが存在する
・↑の無効なアドレスを保持するポインタをヌルポインタと呼ぶ
・たいていの処理系では無効なアドレス値は0だけど、
 そうでない処理系も存在する
・C言語では、ポインタ変数に対して 0 を代入すると
 コンパイラによってヌルポインタの値に置き換えられる
0039デフォルトの名無しさんNGNG
ヌルポインタ≠ぬるぽ
0040デフォルトの名無しさんNGNG
>>39
ぬるぽ=NullPointerException
という見解が一般的
0041デフォルトの名無しさんNGNG
時代はNullReferenceException
0042デフォルトの名無しさんNGNG
>>40
言語仕様にポインタなんてないくせにNullPointerExceptionとかいう名前付けるJavaが悪い。
0043デフォルトの名無しさんNGNG
C:\tmp>type 0banchi.js
var メモリーのゼロ番地 = "ぬるぽ";
print(メモリーのゼロ番地);

C:\tmp>jsc /nologo 0banchi.js

C:\tmp>0banchi.exe
ぬるぽ

C:\tmp>
0044デフォルトの名無しさんNGNG
ガッ≠ぬるぽ
0045デフォルトの名無しさんNGNG
HP-UX の古い C コンパイラには、オプションの設定で
 「0 番地から 4 バイトの、0 クリアされた読取専用の領域を付加する」
オプションがあった。
0046デフォルトの名無しさんNGNG
>>42
JAVAにないのはポインタに対する演算で、ポインタそのものは存在するんだよ
0047デフォルトの名無しさんNGNG
同じ名前で少々違う概念だから混乱が生じるんだろうな。
0048デフォルトの名無しさんNGNG
そういやJavaにポインタはあるとかないとか下らない議論延々とやってたMLがあったな
0049デフォルトの名無しさんNGNG
レーザーポインタ
0050デフォルトの名無しさんNGNG
>>48
すげー素人集団MLだな。
0051デフォルトの名無しさんNGNG
新しいNULLの定義やexit()前にfree()が不要かを
せっせと議論してるのと変わらんね
0052デフォルトの名無しさんNGNG
ちゃんとfree()しろよ
0053デフォルトの名無しさんNGNG
わたしはちゃんと
free(); free(); free(); exit();
していますよ。
0054デフォルトの名無しさんNGNG
sync
sync
sync
shutdown
0055デフォルトの名無しさんNGNG
まじめ
まじめ
まじめ
コルト
0056デフォルトの名無しさんNGNG
>>45
なんで?
0057デフォルトの名無しさんNGNG
>>54
オリバー君を思い出した。
0058デフォルトの名無しさんNGNG
>>51

fjキタ━━━━━━(゚∀゚)━━━━━━ !!
0059デフォルトの名無しさんNGNG
10 P=PEEK(&H0)
20 P=P+1
30 POKE &H0,P
40 END
0060デフォルトの名無しさんNGNG
bochsとかでソースいじって0番地を好きなだけ読み書きすればいい
0061デフォルトの名無しさんNGNG
>>58
何もかも懐かしい。
0062バカ丸出し62番NGNG
はじめまして
現在、ネットワークゲームについて勉強しているものです。
というよりもBOTを作成しながらC++の勉強をしようと思っています。

そこで皆様方に質問があります。
ネットワークゲームでいわゆるBOTと言われているものは
メモリアドレスを直接参照することで動作していますよね?

某ゲームなんかの場合は親切?にもメモリアドレス表なる
ものが配布されていますが、あれはどのように解析されてい
るのですか?

地道にアドレスを一つずつ解析しているのでしょうか・・・?

---------------------------------------------------
開発環境はC++で、ウィンドウハンドルを取得するところまでは
自力で開発することができました。
0063バカ丸出し62番NGNG
自己解決できたかもしれません。
メモリダンプツールを使用したら色々とデータが取得できました。
お騒がせしました
0064デフォルトの名無しさんNGNG
>>62
普通の質問スレに行った方が返事があると思う
■ このスレッドは過去ログ倉庫に格納されています