トップページ⇒tech
1001コメント301KB

vista対策

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2006/11/06(月) 20:41:33
まとめたい
0253デフォルトの名無しさん2007/02/15(木) 09:37:13
カプセルが当たり舞じゃないだろ。

それとも252はカプセルに住んでるのか?
ネットカフェに住むワーキングプアみたいな。
0254蕪木ら某 ◆Googl8RmwA 2007/02/16(金) 06:28:32
>>238>>240-241>>249
+ http://support.microsoft.com/kb/929457/JA/
 (w
0255デフォルトの名無しさん2007/02/16(金) 10:31:20
Shift+右クリックは知らんかった
0256デフォルトの名無しさん2007/02/16(金) 22:32:26
別に隠しコマンドみたいにする必要があるメニューじゃないと思うんだけどな。
パスのコピー
0257デフォルトの名無しさん2007/02/16(金) 23:59:20
ぬう、これは...
士郎、でかした!!
0258デフォルトの名無しさん2007/02/17(土) 00:06:44
自作ツールの出番が無くなる! Vista 乗り換えは禁止だなw
0259デフォルトの名無しさん2007/02/17(土) 00:23:48
explorerのメニューがALTキーを押すと出てくるなんて気がつかなかったしな。
Vistaになってから、UI設計の質が落ちたような気がする。
0260デフォルトの名無しさん2007/02/17(土) 01:47:23
詳細表示がLVS_EX_FULLROWSELECTだけど、
非選択項目を右クリックするとき
アイコンかラベルの上じゃないと反応しないのもUIの不一致だよな
0261デフォルトの名無しさん2007/02/17(土) 03:36:56
初心者があまり使わない機能を隠蔽する方向か
にしても機能の選択が怪しいというかなんというか
0262デフォルトの名無しさん2007/02/17(土) 14:04:51
「コマンド ウィンドウをここで開く」も同様の隠し機能ながら標準装備されたな
0263デフォルトの名無しさん2007/02/17(土) 18:37:44
cdって入れてからフォルダをD&Dで・・・が使えなくなったからねえ
0264デフォルトの名無しさん2007/02/18(日) 12:16:05
>>238 >>240-241 >>249 >>245
回避策がなんであれ、
ドラッグ&ドロップそのものができないのが
ひじょーに不便だよな。
SSHでも立ててPoderosaとかで試してみることにするわ。
0265デフォルトの名無しさん2007/02/21(水) 20:24:45
Vista上で動くプログラムから、Vistaが
・クリーンインストールされたVistaなのか、
・XPからアップグレードされたVistaなのかを
スカッと見分ける方法ってありますか?
ご存じでしたら教ぇてくださぃ。
0266デフォルトの名無しさん2007/02/21(水) 21:23:10
知らないけど見分けてどうすんだ?
0267デフォルトの名無しさん2007/02/21(水) 21:30:58
マイクロソフトが「クリーンインストール」という用語を
紛らわしい感じに再定義したという話をきいたが。
http://pc.watch.impress.co.jp/docs/2007/0207/ubiq171.htm
02682652007/02/22(木) 02:38:36
「クリーンインストール」という言葉はややこしいんですねぇ。
書き直すと、

-----
Vista上で動くプログラムから、そのVistaが
・XPからアップグレードされたVistaなのか
・アップグレードではない(初めからVistaが入っている)環境なのか
を見分ける方法ってありますか?
0269デフォルトの名無しさん2007/02/22(木) 10:01:18
>>265
見分ける方法は知らないけど、「何のために見分けたいか」が書かれていると
「それなら見分けるんじゃなくてもxxxという方法が使えるよ」とか答えやすくて
いいんじゃないかな。

そもそも、「何のために」が分からないと、手持ちの情報を提供して役に立つかどうか、
こちらで判断できないじゃん。
02702652007/02/22(木) 10:29:40
元からVistaのPCと、XPからアップグレードしたVistaでは動作が違うところが沢山あるので、
とりあえずはケースバイケースで自作プログラムの動作を切り替えたいからです。
0271デフォルトの名無しさん2007/02/22(木) 10:39:45
素のVistaで動くように作れば切り替えなくていいはずだが。
なぜ難しいほうに行きたがるのだろう。
0272デフォルトの名無しさん2007/02/22(木) 11:21:46
「沢山」じゃなくて具体的にどーとかねーの?
0273デフォルトの名無しさん2007/02/22(木) 11:48:48
>270
もう答え出てんじゃん。
「動作が違うところ」をトリガにすればおk。
0274デフォルトの名無しさん2007/02/22(木) 11:55:07
設定に

□ 私はVistaを上書きでインストールしました。

ってチェックボックスつけとけば?
0275デフォルトの名無しさん2007/02/22(木) 12:06:10
□ 私はコレで会社をやめました
0276デフォルトの名無しさん2007/02/22(木) 13:33:14
Vistaでパソコンが終わりそうだ
ttp://www.nikkeibp.co.jp/news/flash/526308.html
0277デフォルトの名無しさん2007/02/22(木) 14:03:51
OSが変わった程度で世間が騒がなくなっただけでしょうに。辛口評価て(笑)
02782652007/02/22(木) 15:19:31
アップグレードしたVista上で、rundll32.exeを使って
printui.dll内のPrintUIEntry()を呼び出すとエラーが出ちゃいます。
クリーンインストールしたVistaや、2000/XP上ではエラーなく動いてくれるのに。
printui.dllをLoadLibrary()して呼び出せば、アップグレードした
Vista上でもエラーが出ないのですが、別の事情がありまして
なるべくrundll32.exeを使って呼び出したいのです。
02792652007/02/22(木) 15:20:24
という訳で、Vistaの素性を調べて、
アップグレードしたVista → LoadLibrary()経由で関数コール
それ以外のVista および XP/2000 → rundll32.exe経由で関数コール
としようと考えたのですが、その区別の仕方が見つからなく困っています。
GetProductInfoとかGetVersionExで取れると安易に考えていたのですが。
0280デフォルトの名無しさん2007/02/22(木) 15:30:08
LoadLibrary経由に統一したらだめなのか?
0281デフォルトの名無しさん2007/02/22(木) 16:04:26
だめなんですぅ
でも諦めたらそうするかも
0282デフォルトの名無しさん2007/02/22(木) 17:47:07
ク...が暴走をはじm...

. ヽ    |-、      !/_,/゙ ヽ___  \\,
  `ー- ! , -\    _, -.!   ヽ   `ヽ \\_
    ゝ | , -''. ̄ ̄\ :::::ヽ   ヽ '、  |   .\\_
      /゛       \ :ヽ     ' 、 |  _, _、 \\_
     /  、       \l、         ! /  .!   \ \
   _,____,|,               |  \ ヽ    \_` . ‐-、
_,/                       !  .l─ヽ   .-/-  ● \
` ー 、      ``ヽ、             ヽ  !::::::.!  .ー \ .\ \.\
    `ヽ、  /-、   `'-、       ,_-‐‐'ヽ__|、::::::.!      `ヽ,\  \\
       \   ヽ、_       , ‐', -‐ ̄  .‖::::::ヽ       ー'   ''ー
        `‐‐-/:: ̄'''--、_  l :/゛       `ヽ,:::ヽ
             \ ::::::::\`ヽ|          \:|
               \ :::::::::`''ヽ--、    _,,.-‐ヽ !/
                 \_:::::::::::::::::.!  /'´::::::::::::::`_ .、 !ヽ 、
                   `'ー-、 ::| ./::::::::::, ‐'": : : :`'‐.! .|ヽ .!、 、``ヽ
                        !__|  ̄ / : : : : : : : : : :! .!iヽ !   /: :.!
                              !: : : : : : : : : : : .\.-、` ー'' /
                              !: : : : : : : : : : : : :/ `ー、 ゙̄ヽ
                    i: |      ヽ : : : : : : : : : : /`´    ̄'`
                    |: .!    , -─'ー-、______/
                    ヽ \,   ` ̄─ / l
                      ` ー-` ー‐‐/  /
                           /  ,/
                          / , /
                          ̄
0283デフォルトの名無しさん2007/02/23(金) 06:03:49
まずエラーの原因突き止めたら?
>>271
フォルダ仮想化で動作がおかしくなるから仮想化されてるかどうか見分けて
動作を変えたいみたいな本末転倒系の質問だろうと思ってたら案の定だった
(正解はもちろん「manifest追加して仮想化されないようにする」)
0284デフォルトの名無しさん2007/02/23(金) 06:04:50
3行目以降は単なるたとえで>>265への答えじゃないので念のため
0285デフォルトの名無しさん2007/02/23(金) 08:45:56
>>278
エラーでたらキャッチして、処理を切り替える訳にはいかんの?
0286デフォルトの名無しさん2007/02/23(金) 10:08:20
>282
クリリンのことかぁぁぁぁ!!!
02872652007/02/23(金) 11:40:53
manifestは付けています。

>>285
レスありがとうございます。
printui.dll(もしくはその先)が勝手にエラーのメッセージボックスを
表示してしまうので、それを出したくないんですよぉ。
0288デフォルトの名無しさん2007/02/23(金) 19:19:46
漏れの自作プログラムの中に、ある条件下でレジストリの HKEY_CLASSES_ROOT 配下に書き込みを行うものがある。
そのプログラムが HKEY_CLASSES_ROOT 配下への書き込みを行うまでは、何度起動してもUACのダイアログは
出なかったんだが、一度書き込みを行ってからは毎回ダイアログが出るようになった。
「危険な動作を行うプログラム」ってことをVistaが学習したんだろうな。

じゃあ、その学習内容はどこにあるんだろうかと、レジストリを検索してみたところ、
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
に記録されていることがわかった。
ここに実行ファイルのフルパス名で作成されている値を削除したら、UACのダイアログは出なくなった。
0289デフォルトの名無しさん2007/02/23(金) 19:39:49
というわけで、レジストリ書き込み機能を別の exe に分離して、必要に応じてそっちを
起動するようにすれば、プログラムを起動するたびにUACダイアログが出るような事態は
避けられるんじゃないかと思いついたので、これから検証してみる。
0290デフォルトの名無しさん2007/02/23(金) 21:47:37
ホホウ
0291デフォルトの名無しさん2007/02/23(金) 23:07:12
この本(mook)どうよ?
ttp://www.amazon.co.jp/dp/4797340681/
0292デフォルトの名無しさん2007/02/24(土) 05:37:58
随分検証に時間掛かるな。
0293デフォルトの名無しさん2007/02/24(土) 10:37:51

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::。:::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::。::::::...... ...   --─-  :::::::::::::::::::: ..::::: . ..::::::::
:::::::::::::::::...... ....:::::::゜::::::::::..   (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..::::
:::: :::::::::.....:☆彡::::   //[||    」  ||]  ::::::::::゜:::::::::: ...:: :::::
 :::::::::::::::::: . . . ..: :::: / ヘ | |  ____,ヽ | | :::::::::::.... .... .. .::::::::::::::
::::::...゜ . .:::::::::  /ヽ ノ    ヽ__/  ....... . .::::::::::::........ ..::::
:.... .... .. .     く  /     三三三∠⌒>:.... .... .. .:.... .... ..
:.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ......
:.... . ∧∧   ∧∧  ∧∧   ∧∧ .... .... .. .:.... .... ..... .... .. .
... ..:(   )ゝ (   )ゝ(   )ゝ(   )ゝ無茶しやがって… ..........
....  i⌒ /   i⌒ /  i⌒ /   i⌒ / .. ..... ................... .. . ...
..   三  |   三  |   三  |   三 |  ... ............. ........... . .....
...  ∪ ∪   ∪ ∪   ∪ ∪  ∪ ∪ ............. ............. .. ........ ...
  三三  三三  三三   三三
 三三  三三  三三   三三
0294デフォルトの名無しさん2007/02/24(土) 14:18:08
>>288 の身に一体何が…。
0295デフォルトの名無しさん2007/02/24(土) 19:54:15
>>288
書き込みを行ったあとそのプログラムが終了したとき互換アシスタントが出なかった?
0296デフォルトの名無しさん2007/02/24(土) 21:26:36
>291
今の時点で出ている Vista開発本は、英語以外、全て糞。
0297デフォルトの名無しさん2007/02/24(土) 21:42:14
>296
英語の場合のお勧めってあります?
0298デフォルトの名無しさん2007/02/26(月) 18:03:32
自作のDLLをregsvr32で登録するようなインストーラを
WindowsInstaller(VisualStudio.NET 2003)で作成しています。

UACが有効になっている状態だと、インストールの途中で
msiに対しての昇格ダイアログが出てくるのですが、
これを許可してもregsvr32でのレジストリ登録の段階で
エラー0x80070005(E_ACCESSDENIED)で弾かれてしまいます
(インストーラからは、カスタム動作の「確定」フェーズで
regsvr32を呼び出しています)。

DLLにマニフェストを添付してrequestedExecutionLevelを
設定してみてもだめでした(asInvoker、requireAdministratorともに)。

COM登録を含むインストーラは、どのように作成されることを
Microsoftは推奨してるのでしょうか。
0299デフォルトの名無しさん2007/02/26(月) 18:33:05
>COM登録を含む

M$「だから、COMをドトネトで置き換えろっつーの」
0300デフォルトの名無しさん2007/02/26(月) 19:38:40
それ言い出したらこのスレでネタにしてる話のほとんどは
アンマネージなアプリにしか関係ないような
0301デフォルトの名無しさん2007/02/26(月) 20:17:39
MSI的にはregsvr32で登録するのは推奨してなかったはず。
03022982007/02/26(月) 20:28:53
>>299-301 様、ご意見ありがとうございます。

なるほど、regsvr32でのCOM登録はVistaでは
遂に切り捨てられたと見た方がよいのですね・・・

しかし、当方の場合は自作DLLですので変更の余地はありますが、
サードパーティーから提供されているCOMコンポーネントに
依存しているアプリケーションを作成しているベンダーは、
全自動でのインストーラを作成できなくなり困りそうですね
(WindowsInstaller以外ならその限りではないのかも知れませんが)。

「コマンドプロンプトを管理者として実行してregsvr32を・・・」のような
マニュアル書きでの対応になるのでしょうか。
0303デフォルトの名無しさん2007/02/26(月) 20:34:10
regsvrで変更されるレジストリを記録して、
registoryテーブルに書くだけでないの?
0304デフォルトの名無しさん2007/02/26(月) 20:46:06
vsdrfCOMSelfReg?
03052982007/02/26(月) 20:49:48
>>303 様

regsvr32を使用せず、msiによるレジストリ操作に任せるというわけですか。
確かにその方法ならregsvr32もDLLもコールすることなく
結果的にCOM登録できそうですね。

その方法はまだ試していませんでした、検証してみようと思います。
貴重なご意見ありがとうございました。

しかし、regsvr32の内部仕様に関しては詳しく知らないのですが、
環境によって動的に書き込む内容が変わるなどがあると少しまずいかもですね。
少なくとも、インストールフォルダを参照してDLLのパスを書き換える必要があるため
静的に書き戻すだけ、というわけにはいかないようです。
0306デフォルトの名無しさん2007/02/26(月) 21:10:30
msiには、インストールフォルダ、とかの置換規則がいくつかあるよ。
0307デフォルトの名無しさん2007/02/26(月) 22:40:26
だからvsdrfCOMSelfReg
セットアッププロジェクトってWindows Installerとは違うの?
0308デフォルトの名無しさん2007/02/26(月) 22:41:10
SelfRegも、msiチームはあんまし・・・みたいな話だったなー。
0309デフォルトの名無しさん2007/02/26(月) 23:15:03
じゃあXP以上ではReg-Free COMを使うとか
03102982007/02/26(月) 23:15:41
>>304,307 様

vsdrfCOMSelfRegって何のことだかわからなかったのですが、
セットアッププロジェクトに追加したDLLのプロパティで
勝手にregsvr32同等の機能をmsiにしてもらう方法があったのですね・・・

すみません、単に私がmsiに関しての機能を把握していないだけでした。

試してみたところ、問題なく登録することができました。
また、DllRegisterServer/DllUnregisterServer内での処理も
昇格された権限を継承して実行できているようです。

COM登録インストーラのUAC対応は、どうやらこうするのが本筋みたいですね。
というか、msiからregsvr32呼ぶこと自体が間違っていました。


>>308 様

懸念されている問題は、
ttp://support.microsoft.com/kb/307367/ja
にて記述されているようなことでしょうか。

確かに、上記のアーティクルでは[COM]か[COMRelativePath]が推奨されているようですね。
今は知識不足のため明確な違いがよくわかりませんが、
[COM]/[COMRelativePath]も調べてみて最適なものを採用してみようと思います。

本当にありがとうございました。
03112982007/02/26(月) 23:32:23
>>309 様

Reg-Free COMというのは知りませんでした。
調べてみたところ、VS2005からの機能のようなので残念ながら
今回は利用できませんが、開発環境をバージョンアップしたときの
選択肢になる可能性として参考にさせていただきます。

ありがとうございます。
0312デフォルトの名無しさん2007/02/27(火) 00:32:42
MSが仕様だと言い張るので、Vistaのすばらしい機能を紹介します。
レジストリのHKEY_CURRENT_USERのキーを同一PC上のユーザにコピーする「機能」です。

(条件)
・実行ファイル名に"UPDATA"や"SETUP"などの文字を含む 例)MyUpdate.exe つまり、UACにひっかかるexeであること。
・そのexeにmanifestをつけないこと。あってもいいけど、実行権限を指定しなければok。

(方法)
・そのexeの中で、HKCUのキーを書き込むだけでそのキーが全ユーザにコピーされます。
・MFCアプリなら、CWinApp::GetProfileStringなどで、参照するだけでOK!ナイスすぎ。
 しかも、書き込んだキーだけじゃなく、SetRegistryKeyで設定したグループ以下を
 全部丸ごとコピーしてくれるから、とっても簡単!
 通常は、会社名を設定するから、あなたの会社のソフトをまとめて面倒みてくれます。
 microsoftをSetRegistryKeyにしたら・・・うは〜
・書き込むって言ったけど、RegCreateKeyExをやっても、そのキーが丸ごとコピーされマス!

(ただし)
・すでにキーが設定されていれば、上書きはされません。
 キーが空だった場合のみ,ほかのユーザのHKCUのキーが新規で追加されます。
 でも、普通デフォルト設定はキーを空にするよね。
・コピーする内容がパスだった場合、ご親切にもパスのユーザー名の部分だけ置き換えてくれます。
 たとえば、c:\User\papa\秘密.txt という文字列を書き込んだ場合は、ママのレジストリには
 c:\User\mama\秘密.txt と置き換えてコピーしてくれるんです!開発者のことよく考えてくれるね〜 

このすごい機能は、RedirectHKCUKeysと言うらしいです。
これで、パパのクレジット番号だろうが、パスワードだろうが、ママがいちいち入力しなくても
親切にコピーしてくれるから、すごく便利だね!
一度おためしあれ。
03133122007/02/27(火) 00:43:18
あ、ちょっと間違えました。

実行ファイル名に"UPDATA"や・・・
↓
実行ファイル名に"UPDATE"や・・・
0314デフォルトの名無しさん2007/02/27(火) 00:46:21
何が問題なのか全然わからね。
> UACにひっかかるexe
なんだからそのexeが悪意を持ってるって前提ならそもそも何でもやり放題だし
意図せずコピーされるって話なら対応策(の逆)を自分で書いてるし
>・そのexeにmanifestをつけないこと。あってもいいけど、実行権限を指定しなければok。
つーかそもそもインストーラからHKCUに書き込むなというか
0315デフォルトの名無しさん2007/02/27(火) 00:50:59
>>312
ひでぇな、これ。

>>314
>>312の最後の部分をよく読め。この問題をすぐに理解できなくても
お前が馬鹿だとは思わないが、プログラマとして情報セキュリティに
関して理解を深めておくことを強く推奨する。
03163122007/02/27(火) 01:03:21
314さんのおっしゃるとおりです。
MSの方も同じことをおっしゃっていました。
「これから」対応するソフトはmanifestをつけるだけでいいから
全然問題ありません。

インストーラからHKCUに書き込むのは確かにヘンです。
でも、アップデートプログラムは・・・?

CDに書いて店頭に並んじゃったCDは、Vista対応じゃないから自己責任ですよね。
ちなみに、ヒマなときに検索したところ、iTunes、Realplayer、DivX Cordecあたりは、
××update.exeというマニフェストを含まないexeがインストールされます。
HKCUに書き込みを行っていないことを願うばかりです。
iTunesは、iPodにCDで入ってますから。
対応OSよく見ないVistaユーザなんていないですよね。

そもそも、exe名の文字列だけで引っかかるというのもね、ちょっと。
そんな恨み言いってもしょうがないんですけど。
0317デフォルトの名無しさん2007/02/27(火) 01:05:21
俺も何が問題なのか理解できん。
その仕様を利用してどんな悪さが可能なのか提示キボンヌ。
ファイルのパスだけじゃなくファイル自体もコピーするってんなら、悪用の仕方もいろいろ思いつくんだけど。
0318デフォルトの名無しさん2007/02/27(火) 01:07:51
>>317
ポイントは悪用じゃなくて、意図せずに情報が他のユーザに漏れてしまうこと。
0319デフォルトの名無しさん2007/02/27(火) 01:15:39
意図せずに、ったって、setup.exeとか言う名前で、
しかも管理者権限をUACで有効にしてるんじゃないの?
03203122007/02/27(火) 01:19:39
ちゃんと書き込みしましょう。
正直、どんな「悪用」ができるかまで考えが及んでません。

ただ、この条件にマッチしてしまう市販ソフトが店頭に並んでしまっているわけです。
先ほど例として挙げたように、iTunesをはじめ、AcrobatReaderなんかも、バックグラウンドで
最新版をチェックするようなアプリには、××update.exeみたいな名前をつけちゃうんです。

で、MFCアプリの場合は、「参照」しただけでキーのコピーが行われてしまうので、
ソフトメーカーの姿勢として、どうやってこれを対処するのか?ってことなんです。

市場に出ているソフトを全回収?その費用は誰が持ってくれるの?
Vista対応って書いてないソフトだからほっとく?
テストした結果、パスワードがコピーされることが確認されました。

我々は、さすがにこの動作はMSが直してくれるだろうと思ってたんですが、
MSの見解として、「仕様」と位置づけられたために、手詰まりなんです。

そこで、この仕様は、本当にこのままで問題ないの?ということを、
高い知識を持った皆様に伺ってみたかったんです。

ちゃかしたような書き込みですみませんでしたが、かなり困ってます。
03213122007/02/27(火) 01:23:10
>>319
管理者権限を設定してあれば、この動作は起こりません。
権限を設定していないXP時代のアプリの場合に発生します。

で、Setupだけだったら問題は少なかったんです。
でもUpdateは、多くのソフトがこの名前を「インストーラ」ではなく、
「最新版チェックツール」につけているんです。
0322デフォルトの名無しさん2007/02/27(火) 01:26:23
考えれば考えるほど、問題が出ない気がしてきた。
そもそも秘密文章とかは、パスがわかってもそもそも開けない
アクセス制限のかかった環境におくんじゃないのか
0323デフォルトの名無しさん2007/02/27(火) 01:30:54
>>322
秘密文章のパスが書き込まれるだけならおっしゃるとおりです。

しかし、パスワードのような短い文字列は、HKCUに直接書きませんか?
もちろん、文字列をそのまま書き込むようなことはしないと思いますが、
たとえ暗号化してあっても、HKCUにパスワードが記入されていたときには、
自動ログインするよう動作のアプリの場合、ほかのユーザが「ログイン」
できてしまうわけです。
0324デフォルトの名無しさん2007/02/27(火) 01:34:20
かつ、管理者権限を持つヒトが実行した、update.exeみたいな
名前のプログラムが、そのHKCUレジストリを参照したとき、だろ?
0325デフォルトの名無しさん2007/02/27(火) 01:36:52
うーん。プログラムのアップデートサーバにログイン認証を仕掛けているとき、
アップデータがHKCUにログイン情報を書いていると、しつが管理者以外にも
漏れる、くらいしかシナリオが思い浮かばないな。
0326デフォルトの名無しさん2007/02/27(火) 01:38:09
ちょっと考えただけで、例えば、誰かが勝手に作った gmail 関連のツールなんかで
インストール時に gmail のユーザアカウントとパスワードを入力→他のユーザから
メールボックス丸見えw なんて楽しそうなシナリオが満載ですねww
0327デフォルトの名無しさん2007/02/27(火) 01:41:48
>>324
そうなんですが・・・

MFCプログラムでは、初期化のときに、このソフトはどのレジストリキー以下を参照するか
設定する流儀になってるんです。
これが、SetRegistryKeyというAPIです。

つまり、初期化のときに、「このアプリは、HKCU\MyCompany 以下に情報を書き込みます」と
設定しておけば、その後はいちいちMyCompanyを指定しなくても、レジストリの読み書きができる
ようになっています。

で、この動作の凶悪なところは、HKCU\MyCompany\MyApp\password というキーを参照しただけで、
SetRegistryKeyで設定したHKCU\MyCompany\以下を丸ごとコピーするのです。

つまり、前回終了したときのWindowの位置を参照しにいっただけで、隣に書いてあったPasswordまで
コピーされます。

MFCの中で、参照の際にSetRegistryKeyで指定した初期位置に対して、RegCreateKeyEx等を
実行してるんじゃないかと推測します。

レジストリの変更をリアルタイムに監視するツールで見てたんですけど、それはもう見事に
丸ごとコピーされました。なかなか壮観は映像でしたよ。
0328デフォルトの名無しさん2007/02/27(火) 01:46:29
たしかにログイン情報は危ないかもな。
具体的な例はメールチェッカくらいしか思い浮かばないけど
これはレジストリあたりにパスワードを記録してる可能性高いし
暗号化されてる情報でもコピペすればそのまま使えるだろうから
0329デフォルトの名無しさん2007/02/27(火) 01:50:12
>>328
たとえ他に危険がケースがなくともその例だけでもうお腹いっぱいだろ。
0330デフォルトの名無しさん2007/02/27(火) 01:52:38
あともう一つ。

作業用フォルダとか、データ保存先フォルダ(これは大した問題じゃないですが)なんかがコピーされると、
アプリが起動しない、とか、「作業用フォルダが見つからないのできどうできない」とか、以前保存しておいた
ファイルがなくなった!(ように見える)とか、セキュリティというレベルでなくても、動作上の深刻な不具合は
たくさん起こりえると思います。

もちろん、異常なレジストリデータが入っていたときの処理を、きちんとアプリに実装していればいいんですけど・・・
こういう動作って、設計の時にはなかなか思いつかないんですよ。検査でも発見されにくいですし。

絶対自分しか書き込みしないと信じて作ると、そうなりますね。

まさか、まさか、OSが他人のキーをコピーするなんて、全く想定してませんでしたから・・・
0331デフォルトの名無しさん2007/02/27(火) 02:43:16
>>330
関係無いけど口調が回りくどくてうざい。
もっと普通に書けんのか?
それと、文は簡潔に短く纏めろ。有意義な事が書かれてても駄文だと誰も読まんぞ。
0332デフォルトの名無しさん2007/02/27(火) 03:00:36
>>331
外野は黙っててくれませんか?

折角有意義な情報を提供してあげているのだから・・・

もっと真面目に考えて欲しいものです
0333デフォルトの名無しさん2007/02/27(火) 03:36:20
なんだコイツ?
0334デフォルトの名無しさん2007/02/27(火) 03:37:25
>>332
ここでチマチマとやらずに、IPAなりセキュリティホールメモなりスラドなりにタレ込んで
話大きくしたらいいんじゃね?
0335デフォルトの名無しさん2007/02/27(火) 04:12:57
おれはこういう情報も、チマチマ欲しいと思うんだがな
多少なり有意義な情報と思うよ
たしかに文章的には読むのを辞めたくなる文だが…
0336デフォルトの名無しさん2007/02/27(火) 05:01:56
>>331
禿同

いくらいい情報でも文章がアレだと台無し。

>>332
折角能力高いのにもったいないですよー
0337デフォルトの名無しさん2007/02/27(火) 05:16:37
参考になった。

いろんな意味で。
0338デフォルトの名無しさん2007/02/27(火) 05:42:30
情報漏洩ネタだし、ageてみるテスト。
0339デフォルトの名無しさん2007/02/27(火) 06:10:38
Yahooメッセンジャーはパスワードとかをレジストリの
HKEY_CURRENT_USER\Software\yahoojapan以下のどっかに保存してるみたいで
WinXPだとこれを丸ごとコピーすればそのまま別ユーザでも起動できるみたい。
この漏洩話が本当に起きるなら、Vistaで「HKCU\Software\yahoojapan」に
特定条件下でRegCreateKeyをかければ、全ユーザでYahooメッセの情報が共有されるってことなのかな
0340デフォルトの名無しさん2007/02/27(火) 06:12:36
>>339
Yahooメッセンジャーって>>312の(条件)に当てはまるところがあんの?
03413402007/02/27(火) 06:13:35
ごめん、よく読んでなかった。
0342デフォルトの名無しさん2007/02/27(火) 07:03:47
いやいや、一般ユーザの権限で、他のユーザのヤフーメッセンジャーのパスワードを盗める可能性が>>399によって提示されたのだよ。
もっとも、問題があるのはヤフーメッセのほうだと俺は思うけどな。
0343デフォルトの名無しさん2007/02/27(火) 07:23:43
管理者ユーザのパスが漏洩する、であって、一般ユーザが能動的に
奪取は出来ないのでは?
0344デフォルトの名無しさん2007/02/27(火) 07:53:48
これについては漏洩がどうとかいうより、これのせいで意図しないのに情報が
全ユーザにコピーされてしまうことで、レジストリにアクセスしたソフトが
変なクレームを受けることになる可能性のほうが重要な気もする
0345デフォルトの名無しさん2007/02/27(火) 08:50:39
確かに、自社の製品がこれに該当したら冷汗ものだな。
03463122007/02/27(火) 09:07:14
みなさん、ご意見ありがとうございました。
回りくどい表現ですみませんでした。
最後に、この症状が発生するアプリの作り方だけアップします。

CUpdateApp::InitInstance()
{
//CWinAppを利用して参照するレジストリの最上位を指定します。
SetRegistryKey(_T("Aisoft"));

//HKCU\Software\Aisoft\AU配下にあるTestEntryから文字列を取得します。
CString strTestEnty = GetProfileString(_T("AU"),_T("TestEntry"),_T("TestData"));

0347デフォルトの名無しさん2007/02/27(火) 09:07:58
うわ、最悪
途中でアップしてしまった。

もうどうでもいい
0348デフォルトの名無しさん2007/02/27(火) 09:16:48
エーアイソフトさん大変だなw
0349デフォルトの名無しさん2007/02/27(火) 09:38:45
俺がこの世でもっとも許せないヤツは、
スーパーで清算後に品物を袋詰めした後のカゴをカゴ置き場に戻さないヤツと、
プログラムのコメントにですます調を使うヤツだ。
0350デフォルトの名無しさん2007/02/27(火) 09:53:37
今自作のプログラムをいじっていて気づいたんだが、.exeのファイル名だけじゃなく、
製品名やファイルの説明にsetupとかupdateが含まれていてもUACの対象になるのな。
0351デフォルトの名無しさん2007/02/27(火) 10:10:35
そこまでしなくてもいいだろうになー
0352デフォルトの名無しさん2007/02/27(火) 10:14:26
>>349
ですます調いいじゃん。なぜ駄目なの?
■ このスレッドは過去ログ倉庫に格納されています