AT版の Windows 2000拡張カーネルv2.9を移植するにあたって、詳細の調査を行いました。
全く同じもの
browseui.dll
comctl32.dll
dssenh.dll
gdi32.dll
lsasrv.dll
mspatcha.dll
ntdll.dll
rsaenh.dll
schannel.dll
shlwapi.dll
urlmon.dll
win32k.sys
winhttp.dll
wordpad.exe
xpob2res.dll
リンク日時のみ違うもの
atmfd.dll
cryptui.dll
dnsapi.dll
kernel32.dll
msafd.dll
msvcirt.dll
mswsock.dll
ole32.dll
shell32.dll
user32.dll
wintrust.dll
他のブロック(リソースなど)の日時も違うが中身は一緒の物
atl.dll
expand.exe
imagehlp.dll
mfc40loc.dll
mfc42loc.dll
mfc42u.dll
msvcrt.dll
oleaccrc.dll
BASE Addressだけ違うもの
advapi32.dll [795f0000][79480000]
crypt32.dll [79b60000][79aa0000]
dbghelp.dll [726a0000][726c0000]
comsvcs.dll [78d20000][69cc0000]
fontsub.dll [6f200000][6f220000]
mfc40.dll [6ae60000][6ae80000]
mfc40u.dll [6abf0000][6ac10000]
mpr.dll [79a40000][79980000]
oleacc.dll[67be0000][67c50000]
psapi.dll [67440000][674b0000]
rpcrt4.dll [786f0000][78780000]
userenv.dll [793f0000][79280000]
t2embed.dll[65210000][65290000]
mfc42.dll[6aaf0000][6ab10000]
インポートアドレスキャッシュが違うもの
ntsd.exe(advapi32.dll)
oleaut32.dll(advapi32.dll)
riched20.dll(advapi32.dll)
imm32.dll(advapi32.dll)
iphlpapi.dll(advapi32.dll)
ws2_32.dll(advapi32.dll)
sens.dll(advapi32.dll/RPCRT4.DLL)
ベースアドレスとインポートキャッシュが違うもの
esent.dll[6f620000][6f620000] (advapi32.dll)
hid.dll[6eda0000][6eda0000] (advapi32.dll)
msvbvm60.dll[690f0000][69130000] (advapi32.dll)
setupapi.dll[6c8d0000][78310000] (USERENV.DLL/rpcrt4.dll/advapi32.dll)
usp10.dll [64840000][648d0000] (advapi32.dll)
winsta.dll [63940000][639d0000] (advapi32.dll)
wtsapi32.dll [637a0000][63830000](winsta.dll/REGAPI.dll)
で、インポートアドレスキャッシュってなんぞやっておもうかもしれないのですが、これは私がDLLの解析を行った結果便宜的にそう呼んでる物なのですが、解析結果から次のようなことが分かっています。
・インポートしたDLLの関数名とそのアドレスを DLL内部に持っているので LoadLibrary を関数実行前に実行しなくても、アドレスに直接飛ぶことができる
・DLLの更新があるとアドレスは当然変更されることもある。
・それを回避するために、DLLのリンク日時を内部で保持し比較する必要がある。
・DLL のリンク日時に不整合があった場合は、このキャッシュを利用しないで処理を行う。
こんな感じになってる。
当初、 ws2_32.dll を改造した時に、一部の環境で不安定になったりしたのがこのキャッシュの効果で、
改造したDLLでアドレスが変わってるにもかかわらず、DLLのリンク日時が変更されていなかったため不正なアドレスに飛ぶケースがあったからである( ˘ω˘)
この日記の最後の8行、自動改行働かずに、右フレーム突き破っています。
二度見して、Chrome・IEで確認してしまいました。
この日記の最後の8行、自動改行働かずに、右フレーム突き破っています。
二度見して、Chrome・IEで確認してしまいました。
この日記の最後の8行、自動改行働かずに、右フレーム突き破っています。
二度見して、Chrome・IEで確認してしまいました。
>>1
ありがとうございます
確認したら変なタグ入ってますね。
なんかブラウザアップデートしてからLivedoorBlogの編集使いにくくなったのでこう言うことがよくあります
>>1
ありがとうございます
確認したら変なタグ入ってますね。
なんかブラウザアップデートしてからLivedoorBlogの編集使いにくくなったのでこう言うことがよくあります
>>1
ありがとうございます
確認したら変なタグ入ってますね。
なんかブラウザアップデートしてからLivedoorBlogの編集使いにくくなったのでこう言うことがよくあります