/
ijexp32.txt
211 lines (157 loc) · 8.26 KB
/
ijexp32.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
i.j Shell Property Sheets Export/Import 32 ver.1.01 簡易説明書
概要
エクスプローラのプロパティにて、実行ファイルの PE 構造、インポートと
エクスポートを表示する。
VC++ 名の時は、可能な限りデコードする。
著作権者
本ソフトウェアの著作権は、i.j こと 加藤 勲 が有しています。
E-mail : VYG04631@nifty.ne.jp
Web : http://member.nifty.ne.jp/~ij/
分類
フリーソフト
動作環境
Windows 95/98 (3.1+Win32s, NT 不明)
要 MFC42.DLL, MSVCRT.DLL, MSVCP50.DLL
帰属
MS-Windows 95/98 は米国マイクロソフト社の登録商標です。
ご使用の前に
本ソフトウエアを使用する前に、この章を最後までお読み下さい。
◎本ソフトウエアは、i.j こと 加藤 勲 が、その全権を所有しています。
◎この権利は、私が国籍を持つ日本国の法律、および、国際法によって
保護されています。
◎この権利は、誰にも譲渡されることはありません。
◎本ソフトウエアは、フリーソフトです。
・本ソフトウエアを使用する時に、お金を払う必要はありません。
・i.j は 本ソフトウエアを無償で供給していますが、本ソフトウエアを
入手する時にかかった費用については、i.j は一切関与しません。
・本ソフトウエアは、以下を除いた方々は、自由に使うことができます。
99年7月現在、該当者はいません。
◎本ソフトウエアは、自由に配布してかまいません。
・本ソフトウエアの配布を妨げてはいけません。
・本ソフトウエアの配布を、i.j に連絡する義務は現在、免除しています。
・配布に際しては、オリジナル・アーカイブ内の全てのファイル、および、
文章が含まれていなければなりません。
・オリジナル・アーカイブを改変した時は、改変個所、改変者名と、改変者の
連絡先を明記しなければなりません。 また、改変を、i.j に連絡する義務は
現在、免除しています。
・オリジナル・アーカイブには無いファイル、および、文章については、
i.j は一切関与しません。
◎本ソフトウエアによって生じた全ての損害に、i.j は一切責任を取りません。
・i.j は 本ソフトウエアにバグが無いことを保証しません。
・i.j は 本ソフトウエアのバグを修正する義務を負いません。
・i.j は 本ソフトウエアに対する改変の依頼を受ける義務を負いません。
・i.j は 本ソフトウエアのサポートを、いつでも打ち切ることができます。
・同梱のソースを改変して作成された 本ソフトウエアの亜種によって生じた
問題・損害については、i.j は一切関与しません。改変者に連絡してください。
◎本ソフトウエアを使用することに不安があるのなら、ただちに使用を
中止してください。
・i.j は 本ソフトウエアの使用を強要しません。
・本ソフトウエアは、あなたの好きな時に使用開始でき、あなたの好きな時に
使用中止できます。
インストール
ijexp32.inf を右クリックし、インストールを選んで下さい。
「再起動しますか?」と聞いて来た時は、再起動後から本ソフトウエアが
使用可能になります。聞いて来ない時は、すぐに使用可能になります。
アンインストール
以下の手順でアンインストールします。
1) "コントロールパネル" の "アプリケーションの追加と削除" を選ぶ。
2) "i.j Shell Property Sheets Export/Import 32 (Remove only)" を
クリックする。
3) "追加と削除" ボタンを押す。
4) 問答無用で削除開始します。
「削除してもいいですか」と聞いて来ないのは、マイクロソフト側の
バグだと思うのですが...
レジストリ
Win95/98 の場合、以下のレジストリが追加されます。
上記の "アンインストール" で、全ての変更は削除されるはずです。
+- HKEY_CLASSES_ROOT
| +- CLSID
| | +- 00000001-23D0-0001-8000-004026419740 ←追加
| | | +- 以下全部
| | +- 00000002-23D0-0001-8000-004026419740 ←追加
| | | +- 以下全部
| | +- 00000003-23D0-0001-8000-004026419740 ←追加
| | +- 以下全部
| +- dllfile
| | +- shellex
| | +- PropertySheetHandlers
| | +- 00000001-23D0-0001-8000-004026419740 ←追加
| | +- 00000002-23D0-0001-8000-004026419740 ←追加
| | +- 00000003-23D0-0001-8000-004026419740 ←追加
| +- exefile
| +- shellex
| +- PropertySheetHandlers
| +- 00000001-23D0-0001-8000-004026419740 ←追加
| +- 00000003-23D0-0001-8000-004026419740 ←追加
+- HKEY_LOCAL_MACHINE
+- SoftWare
+- Microsoft
+- Windows
+- CurrentVersion
+- Uninstall
+- ijexp32 ←追加
使い方
.dll の場合、プロパティに ExeHdr,Export,Import タグが追加されます。
.exe の場合、プロパティに ExeHdr,Import タグが追加されます。
ExeHdr タグでは、.exe や .dll の PE ヘッダー情報を表示します。
DOS ヘッダーと PE ヘッダーの基本部分を表示させる時は Hdr ボタンを、
データディレクトリを表示させる時は Dir ボタンを、セクションを
表示させる時は Sec ボタンを押してください。
Save ボタンを押すと、3つまとめてファイルに保存できます。
Export タグでは、.dll のエクスポート名がリストアップされます。
VC チェックボックスが ON の時は、VC++ 名を解析して、可能な限り
クラス構造を再構築します。OFF の時は、16進4桁の順序数と
非解析のエクスポート名がリストアップされます。
どちらの時も Save ボタンで、ファイルに保存できます。
特に OFF の時のファイルは、エクスポート名リストとして、
次の Import タグで使用可能です。
Import タグでは、.exe や .dll が使用するサーバー名、順序数、
そしてインポート名がリストアップされます。VC チェックボックスが
ON の時は、可能な限りインポート名を C++ 構文に解析して表示します。
FN チェックボックスが ON の時は、サーバー名のみ表示します。
括弧で囲われている順序数は、参考値です。サーバーによっては
間違った値の時があります。どれが正しいのか間違っているのか見分ける
客観的な方法を、私は知りません。どちらにしても、インポート名は
正しいものです。
括弧に囲われていない順序数は、実は、クライアントにはインポート名が
書かれていません。順序数のみ書かれています。これではあんまりなので、
順序数とエクスポート名のリストを元に、エクスポート名を補っています。
このため、サーバーのバージョンによっては、間違ったエクスポート名が
表示される可能性があります。また、エクスポート名リストに無いものは
<unknown name> として表示されます。
こちらも、Save ボタンで、ファイルに保存できます。
VC++ 名の解析
添付の vcbungle.txt を参照して下さい。
エクスポート名リスト
代表的ないくつかのサーバーのリスト(.exp)を添付しています。
特に mfc??.dll のエクスポート名リストは、VC++ を持っていないと
作成できない様です。リリース版のみ添付しています。
デバッグ版 mfc??d.dll のリストは、サイズの関係で添付していません。
必要な方は VC++ を持っていると思いますので、各自で作成して下さい。
以下のファイルを加工します。
<VC++ のディレクトリ>\mfc\src\intel\mfc??d.def
このファイルを awk で変換します(perl は知らないので)。
{
if ($2 == "@") {
printf "%04x,%s\n", $3, $1
}
}
ちなみに、.def の方は MFC の一部なので、許可無く配布できません。
添付の加工して作った mfc??.exp は、MFC として使えなくなっていますが、
ひょっとすると配布するのは、まずいかもしれません(法律の専門家で無いので
判断しかねます)。しかし、これが無いと困る実行ファイルも多いので、
添付しています。ですから、その内、添付しなくなるかもしれません。
一般のサーバーの場合、Export タグで VC チェックボックスを OFF にして
保存したファイルを、エクスポート名リストとして使用できます。
格納先は、<Windows システムディレクトリ>\ShellExt\ ディレクトリです。
しかし、インポートの時、順序数だけでも関数アドレスが取得できるので、
無名のエクスポート関数が存在します。この場合、エクスポート名リストを
作成しても、いくつかのインポート名は <unknown name> になってしまいます。
参考文献
MSJ #31 : Win32 PE ファイルフォーマットを解析する : Matt Pietrek
履歴
制作日 ver. 概要
10may99 1.00 VC++ 名の解析のまとめと、シェル拡張プロパティの
習得のために作成した。
10jul99 1.01 PE ヘッダータグ追加。
Import タグに FN ボタン追加。