No.5ベストアンサー
- 回答日時:
成り行き上の固定だと思うのでマイクロソフトが公式に認めるとも思えません。
アマチュアレベルならともかくプロがやるのはダメですよ。
「APIを自分で呼びだそう! - 桜花な日々」
http://d.hatena.ne.jp/rofi/20101229/1293657061
「リバースエンジニアリング入門(4):Undocumentedなデータ構造体を知る (2/3) - @IT」
http://www.atmarkit.co.jp/ait/articles/1111/18/n …
下の方法を使ったほうが良いと思います。
No.7
- 回答日時:
DLLが実際にプロセス空間にロードされる際には、DLLファイルに設定されているベースアドレスの位置にロードされる保証はありません。
が、WindowsOSの根幹に関わるDLLについてはベースアドレスが重複しないように設定されているようなので、DLLが更新されなければ概ね同じ位置にロードされるでしょう。
# 重複していて再配置する場合にそこそこコストがあるので…。
んで……
WindowsUpdateなどでDLLが更新されたら、そのアドレスは別のものになったりしますがそこら辺は問題ないんですか?
そういった問題にハマらない為にGetProcAddress()等で取得できる手段が用意されているのですが……。
何故にそんな情報が必要なのか?
とか掲示されれば、もう少し安全な別の方法とかが出てくるかも知れませんけど……。
ドライバ作成やデバッグでもするんですか?
# それならDDKですかねぇ。
回答ありがとうございました
DLL を詳しく知らないので、今勉強している真っ最中です
目的はデバッグで、情報が固定しているメモリアドレスがわかれば、だいぶ楽になるというものでした
たくさん情報いただいたので、勉強してみます
No.4
- 回答日時:
前のリンク先にも示した通り、CreateFileがあるkernel32.dllなどは環境を限定すればアドレスが固定されているとは思います。
Windows2000で日本語だけに限定等。ただ、その条件から外れるとアドレスが変わってしまう程度の危ういものです。
なので、想定する条件を絞り込めるのかが問題となります。
と言うことで、Windows2000で日本語だけってことなら出来るものもありますと言えると思いますが、それで良いのでしょうか?
何度もありがとうございます
それでよいです
想定する条件は絞り込めるようです
その場合、そういった保証されている部分の情報はどこから入手するのでしょうか
No.3
- 回答日時:
何がしたいかがよく見えてこないので概要だけ。
具体的なツール名は挙げませんが、プロセスメモリエディタやデバッガを使うと
どこに何があるかを簡単に調べることができます。
(内部でGetProcAddressを呼んでいるだけですが)
が、DLLのベースアドレスは実行環境・実行タイミングによって変わるため、
基本的に「このアドレスには必ずこのAPIがある」ということは保証できません。
(コンパイル時のオプションでベースアドレスが固定されている場合もあります)
回答ありがとうございます
わかりにくくなって失礼致しました
>「このアドレスには必ずこの API がある」ということは保証できません
保証されている部分というのがあると思います
その部分の情報を手に入れたいということです
よろしくお願いします
No.1
- 回答日時:
XPまでならuser32.dll/kernel32.dll/ntdll.dllに限り、アドレス値をハードコーティングでも大丈夫かなと。
(妥当かは別にして)
GetModuleHandle/GetProcAddressで、自力で調べるしかないのでは。
# 調査はC/C++の方が楽そうだけど
回答ありがとうございます
追跡やコーディングの方法ではなくて、例えば Windows2000 で 0x77e62b8d は CreateFile という API を指します(CreateFile は DLL なので、アドレスは固定ではないと指摘をいただきましたが)
このような情報はどこから入手するのでしょうか
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Oracle 参照関係のフィールドについて 1 2023/05/27 17:49
- YouTube YOUTUBEなどの動画をピックアップしてツイッターやブログなどに埋め込む方法を知りたいです 2 2023/07/08 19:47
- その他(ネットショッピング・通販・ECサイト) 中国のサイトで注文して昨日の返信です 配送状況は、下記配達会社のWEBサイトにご確認いただけます。 3 2022/12/31 08:19
- その他(開発・運用・管理) 【至急】.htaccessによるディレクトリ単位でのリダイレクト 2 2023/08/10 13:46
- Visual Basic(VBA) エクセルのマクロについて教えてください。 1 2022/12/26 12:05
- その他(開発・運用・管理) WindowsからSSHでサーバーにあるファイルをダウンロードできない…。 3 2022/04/24 11:08
- 食べ物・食材 外来生物法により特定外来生物に指定されている、ブラックバス・ブルーギルは、食べるとおいしいのですか? 5 2022/07/22 21:04
- 離婚・親族 離婚等における調査範囲 4 2023/06/21 11:11
- 失恋・別れ 暴力や束縛を繰り返す彼氏から逃げたいです。 相手は私の家の鍵を持っています。 やんわりと別れを伝えま 14 2022/04/01 17:34
- デスクトップパソコン パソコンについて質問です。 指定時間に使ってなかったら シャットダウンするように設定したいのですが 1 2023/05/30 13:48
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
メイクファイルからdllを生成す...
-
visual studioの不要なDll削除方法
-
VC++6.0 でのライブラリ参照方法
-
VB6.0(SP6)にて開発を行なって...
-
Excel2007のVBAで、セル範囲を...
-
ASP.NETのDLL入れ替えについて
-
VBAエディタのコード画面で、カ...
-
MSFlexGridコントロールのエラ...
-
ベースアドレスの設定について
-
ファイルをvbaで圧縮したいので...
-
APIの呼び出しDLLファイルの場...
-
VBにてIMEの入力モードを変える...
-
*.exeと異なるフォルダのDLLを...
-
python エラー
-
エクセルのエラーメッセージ「4...
-
C言語をコンパイルするとコンピ...
-
<unistd.h>をVisualStudioでつ...
-
VBAを何回も作り直して、容量が...
-
実行後にコンパイルに失敗しま...
-
アプリケーションのDLLファイル...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
M365にアップデートしてからコ...
-
C# DLL エントリ ポイントが...
-
visual studioの不要なDll削除方法
-
res://ieframe.dll/について
-
ASP.NETのDLL入れ替えについて
-
C++製DLLにてVB.NET関数を引数...
-
VB6.0(SP6)にて開発を行なって...
-
ファイルをvbaで圧縮したいので...
-
WIN10で常にフォームを手前に
-
VB.NET xdoc2txtをつかってPDF...
-
VC++6.0 でのライブラリ参照方法
-
VB2003で レジストリを格納する
-
user32.dllがないためアプリが...
-
エクセル マクロで指定フォルダ...
-
vb6で作成した画面が処理に時間...
-
VBAエディタのコード画面で、カ...
-
[VBA]64b版-行数表示.dllの登録...
-
指定された引数が有効範囲にな...
-
Java hs_err_pid0000.log解析
-
メイクファイルからdllを生成す...
おすすめ情報