vista対策
..
198:デフォルトの名無しさん
07/02/09 01:20:00
プログラマでさえこんな状態なのに、一般ユーザなんてどうすりゃいいのかわからんだろうな
199:デフォルトの名無しさん
07/02/09 01:34:15
本当の一般ユーザはUACにひっかかるような操作しないんじゃ……?
とMSは考えたのかも
200:デフォルトの名無しさん
07/02/09 02:03:23
結局、ユーザは何で呼び出されたのかわからないプログラムにも何も考えず許可押すんだから
あんまり意味が無い気もするな。そういう初心者は対象外なんかな。
201:デフォルトの名無しさん
07/02/09 02:09:01
とりあえず、ユーザが許可押したんだからこっち(MS)に責任は無いぞって事にしたいんだろ
そしてMS自らウイルススキャンソフトを出して二度おいしい
すべては計画通り
202:デフォルトの名無しさん
07/02/09 02:28:03
ライトユーザー ユーザー パワーユーザー の区分が必要だ
203:デフォルトの名無しさん
07/02/09 02:48:14
管理者アカウントで常用する悪癖が無くならない限り、どうしようもないな。
UACは、逆にユーザを甘やかす結果になっている気がする。
管理者アカウントのGUIは色数256固定とか位しないと駄目かもしれんね。
204:デフォルトの名無しさん
07/02/09 08:29:24
ハァ?
205:デフォルトの名無しさん
07/02/09 08:41:49
個人で使うパソコンに管理者とかユーザーとかいうのが、もともと不要だったんだよ
企業での利用でも1つのパソコンを共有するなんて、まず無いだろ?
206:デフォルトの名無しさん
07/02/09 08:45:22
どっちかっつーとウィルス対策が主眼なんじゃねーの?
207:デフォルトの名無しさん
07/02/09 11:03:56
UACは悪くはないんだが、
UNIXで言うところsuじゃなくて、sudoを毎回叩いている感覚が気にくわない。
208:デフォルトの名無しさん
07/02/09 12:28:14
UACダイアログ出すときの画面暗転に、もたつきがあるのが気に食わない。
もっとスムーズにやってほしい。画面暗転オフにできれば良いのに。
209:デフォルトの名無しさん
07/02/09 13:42:55
JIS2004フォント問題はどうする?
ユーザーの環境がJIS2004MS書体と旧来のMS書体が混在しそうな予感なんだが。
Vistaだけの問題じゃないところが痛い。
210:デフォルトの名無しさん
07/02/10 06:28:30
>>187
ならProgramDataでいいじゃん。つーかProgram Filesでも管理者は昇格すれば
書ける。Vistaに付属のコントロールパネルも多くは全ユーザーの設定を変更するとき
昇格が必要って仕様だし。
>>151 >>191
> 良い子は真似しないように。
>>208
署名を検証してるからかな。「署名の検証中です」ともなんとも表示されないから
巨大な実行ファイル(自己解凍のインストーラとか)の実行時はフリーズしたみたいになる
211:デフォルトの名無しさん
07/02/10 06:32:18
>>157
こんなの見つけた。一言で要約すると
「現在ログオンしているユーザーのアカウントで即時に一回限り実行されるタスクを登録」
URLリンク(www.codeproject.com)
212:デフォルトの名無しさん
07/02/12 22:55:56
アプリのexe自体がアンインストーラかねてんだけど、
通常実行時は昇格させないでアンインストール時は
昇格させる方法無い?
213:デフォルトの名無しさん
07/02/12 22:59:54
>>212
システムにアンインストーラとして登録しとけば勝手にやってくれんのか?
214:デフォルトの名無しさん
07/02/12 23:22:55
>>205
いや、それは使い方しだいだろ。
確かに、サーバークライアントとして、個々に割り当てられたOSの場合は
サーバー側が制限するのがほとんどだが、小企業になると、
【鯖】←→【PC】 PCーPC−PC−PC−PC みたいに、メインとサブのネットワークをわけて、
1台を共有する場合だってある。
家庭では、大人と子供で、設定を変えて(アダルトサイトを見れないようにとか、システムいじれないようにとか)もするだろ。
管理者権限を付加するかどうかのいま、VistaのUACのほうがいらね〜よ
215:デフォルトの名無しさん
07/02/13 00:37:53
少なくとも今の仕様だと、個人で使ってる人間は標準アカウントなんて作らんだろうな。
ほとんどの人は管理者アカウントだけで使うだろう。
本当に標準アカウントで使ってほしかったんだったら、標準アカウントをデフォルトにして、
OSの設定いじるような時はそのためのパスワード入力必須、パスワード入れたら管理者
アカウントに切り替わる(ただし、管理者アカウントというのが存在する事は意識させない)
みたいな仕様にできなかったものか。
216:デフォルトの名無しさん
07/02/13 01:11:50
RHLはGnome使う限りそんな感じだよね。
217:デフォルトの名無しさん
07/02/13 01:51:34
>>215
XPまででも普段からAdministratorsグループのアカウントを常用する奴が多かったから、
とりあえずそいつらに対する対策を取ったということではないだろうか。
218:デフォルトの名無しさん
07/02/13 02:00:40
>>217
それは逆なケースも多いと思うぞ。昔から使ってるアプリケーション
が管理者権限を持つユーザじゃないとまともに動作しないってことが
現実にあるし。
219:デフォルトの名無しさん
07/02/13 07:43:12
>>214
まあ、もっと単純にシングルユーザとはブランドを別ければよかったようにも思うな
1台のUSB-HDDとかUSBフラッシュに、ユーザー情報を全部押し込められるような
仕様にして、それもWindowsだという事にすると。
そうすりゃ、ユーザ数分OSが売れてMSもウハウハ
ユーザも、USBメモリだけ持ち歩けば出先のパソコンを汚さず自分の環境が使えて楽と
220:デフォルトの名無しさん
07/02/13 08:05:53
マイクロソフトがセキュリティにうるさくなったのはウィルス対策もでかいんじゃね?
一般権限と管理者権限じゃ乗っ取られたときのダメージが違うだろ?
…あんまり変わらん?
221:デフォルトの名無しさん
07/02/13 08:47:49
そもそも、みんながみんな管理者権限を使いまくるのは
ユーザ権限が弱すぎるからなんだし、これを強化すればそれだけでよかった気もする。
Program Filesはデフォルトでは空っぽにして、Windows付属ソフトはWindowsフォルダに全部ぶちこんで
そこだけを管理者以外触れないようにするとか
222:デフォルトの名無しさん
07/02/13 09:00:50
キンタマ等のwinny絡みは自己責任、
それ以外のウイルスの大半はマイクロソフトのセキュリティホールの問題がでかい。
メーラーでマクロとか無意味だよ。
223:デフォルトの名無しさん
07/02/13 09:55:59
>>220
管理権限が無くても
アプリさえ走らせられたらVNCもどきで利用画面覗いたり
個人情報の抜き取りとか迷惑メールの踏み台にするとかには何の支障もないだろ
キーロガーのようなDLLが必要なのはともかく
224:デフォルトの名無しさん
07/02/13 10:20:07
Vi$taうっとーしー
225:デフォルトの名無しさん
07/02/13 13:19:50
>>223
そうだなあ。
UNIXの管理してた頃はとにかくroot絶対死守だったけど、
いまどき一番問題なのは個人情報だから一般権限のほうが大事だもんなあ。
226:デフォルトの名無しさん
07/02/13 14:18:57
ローカルセキュリティーポリシーとかで
一般アプリも署名必須設定にできるんじゃないかな
現時点でデフォルトをこれにするのは無謀だが・・・
activexのcabパッケージはやったけども
227:デフォルトの名無しさん
07/02/13 15:49:33
MacOS9からXの時のように、ばっさりと替えてしまえばよかったのにね
228:デフォルトの名無しさん
07/02/13 17:22:44
拡張子「mst」のファイルが書き込みできないのは仕様ですか?
229:デフォルトの名無しさん
07/02/13 17:24:38
うわ、汚らしい強引な制限。
230:デフォルトの名無しさん
07/02/13 19:53:09
>>227
そんなことやったら、非難轟々だと思う。
シェアが低くて、信者が必死で擁護するMacじゃなきゃ無理。
231:デフォルトの名無しさん
07/02/13 20:25:29
MacOSXはMac信者にも嫌われてたけどな
232:デフォルトの名無しさん
07/02/13 20:26:51
あいつら馬鹿だからやっとこさ覚えた操作手順が変わるのを異様に拒絶してた
233:デフォルトの名無しさん
07/02/13 20:52:28
AppleIIの登場が77年、MS-DOSが81年、初代Macが84年。
未だににまがりなりにもDOSの資産を引き継いでるんだから、切り捨ての
連続でやってきたAppleと比べりゃたいしたもんだ。
234:デフォルトの名無しさん
07/02/13 21:56:15
MacOSXは、Win3.1から2000並みの変わりようだったからなあ。
235:デフォルトの名無しさん
07/02/13 22:11:32
VISTAでは、DOSがサポートされてないがな。
236:デフォルトの名無しさん
07/02/13 22:19:36
されてるだろ? 英語版限定だけど。
237:デフォルトの名無しさん
07/02/13 22:21:47
VMでDOS動かせばいいんじゃないの?
238:デフォルトの名無しさん
07/02/13 22:28:13
Vistaのコマンドプロンプトにファイルをエクスプローラからドラッグドロップできないっていうのは
どういうセキュリティ上の制限なんだろう
239:デフォルトの名無しさん
07/02/13 23:10:45
SPTI使ってフォーマットされてるドライブにWriteコマンド発行するとアクセス拒否されるんだけど仕様?
UACきってもダメだし。
240:デフォルトの名無しさん
07/02/14 03:30:28
>>238
うおお、下らん制限だ
241:デフォルトの名無しさん
07/02/14 06:37:32
>>221
ユーザー権限での使用はUACで便利になった。
今まで管理者で使ってた人は「不便になった」としか感じないだろうが
>>238
MIL。コマンドプロンプトのウィンドウはcsrss.exe(IL=System)が出してるから。
>>239
ページファイル攻撃に対策するための仕様。
URLリンク(www.itmedia.co.jp)
242:デフォルトの名無しさん
07/02/14 06:40:57
>>223
> VNCもどきで利用画面覗いたり
> 迷惑メールの踏み台にするとかには
管理者権限がないとWindowsファイアウォールに穴を開けられない。
243:デフォルトの名無しさん
07/02/14 09:25:33
>>242
サーバを組み込むタイプは制限されるかもしれないが
VNCでもワンクリック(ビュアーリスニングモード)タイプだとどうなの?
メール送信の踏み台にも、たとえばHTTPで送信内容を取得して、送信するアプリ書かれたら
ファイアウォールで防げる?
244:デフォルトの名無しさん
07/02/14 10:42:48
>>242
Vistaのファイアウォールって、デフォルトでインバウンド・アウトバウンド両方共
有効なんだっけ?
245:デフォルトの名無しさん
07/02/14 12:07:50
>>242
所詮Windowsだろ?
壁自体に穴が空いてるよ・・・
246:デフォルトの名無しさん
07/02/14 12:13:44
ファイアウォールの実行ソフトが単一バイナリならアタックしやすいだろうね。
247:デフォルトの名無しさん
07/02/14 12:31:46
>>245
それを言うなら、壁自体に窓が開いてる・・・・
248:デフォルトの名無しさん
07/02/14 12:57:45
>247
デケェなオイw
249:デフォルトの名無しさん
07/02/14 13:33:10
>>238
編集モードを有効にするとあら不思議
250:デフォルトの名無しさん
07/02/14 19:28:22
>>247
壁に窓が開いてるのは当たり前のような
251:デフォルトの名無しさん
07/02/14 20:16:26
>>250
お前頭いいな
252:デフォルトの名無しさん
07/02/15 07:11:01
>>250
おまえカプセルホテル使ったことないだろ
253:デフォルトの名無しさん
07/02/15 09:37:13
カプセルが当たり舞じゃないだろ。
それとも252はカプセルに住んでるのか?
ネットカフェに住むワーキングプアみたいな。
254:蕪木ら某 ◆Googl8RmwA
07/02/16 06:28:32
>>238>>240-241>>249
+ URLリンク(support.microsoft.com)
(w
255:デフォルトの名無しさん
07/02/16 10:31:20
Shift+右クリックは知らんかった
256:デフォルトの名無しさん
07/02/16 22:32:26
別に隠しコマンドみたいにする必要があるメニューじゃないと思うんだけどな。
パスのコピー
257:デフォルトの名無しさん
07/02/16 23:59:20
ぬう、これは...
士郎、でかした!!
258:デフォルトの名無しさん
07/02/17 00:06:44
自作ツールの出番が無くなる! Vista 乗り換えは禁止だなw
259:デフォルトの名無しさん
07/02/17 00:23:48
explorerのメニューがALTキーを押すと出てくるなんて気がつかなかったしな。
Vistaになってから、UI設計の質が落ちたような気がする。
260:デフォルトの名無しさん
07/02/17 01:47:23
詳細表示がLVS_EX_FULLROWSELECTだけど、
非選択項目を右クリックするとき
アイコンかラベルの上じゃないと反応しないのもUIの不一致だよな
261:デフォルトの名無しさん
07/02/17 03:36:56
初心者があまり使わない機能を隠蔽する方向か
にしても機能の選択が怪しいというかなんというか
262:デフォルトの名無しさん
07/02/17 14:04:51
「コマンド ウィンドウをここで開く」も同様の隠し機能ながら標準装備されたな
263:デフォルトの名無しさん
07/02/17 18:37:44
cdって入れてからフォルダをD&Dで・・・が使えなくなったからねえ
264:デフォルトの名無しさん
07/02/18 12:16:05
>>238 >>240-241 >>249 >>245
回避策がなんであれ、
ドラッグ&ドロップそのものができないのが
ひじょーに不便だよな。
SSHでも立ててPoderosaとかで試してみることにするわ。
265:デフォルトの名無しさん
07/02/21 20:24:45
Vista上で動くプログラムから、Vistaが
・クリーンインストールされたVistaなのか、
・XPからアップグレードされたVistaなのかを
スカッと見分ける方法ってありますか?
ご存じでしたら教ぇてくださぃ。
266:デフォルトの名無しさん
07/02/21 21:23:10
知らないけど見分けてどうすんだ?
267:デフォルトの名無しさん
07/02/21 21:30:58
マイクロソフトが「クリーンインストール」という用語を
紛らわしい感じに再定義したという話をきいたが。
URLリンク(pc.watch.impress.co.jp)
268:265
07/02/22 02:38:36
「クリーンインストール」という言葉はややこしいんですねぇ。
書き直すと、
-----
Vista上で動くプログラムから、そのVistaが
・XPからアップグレードされたVistaなのか
・アップグレードではない(初めからVistaが入っている)環境なのか
を見分ける方法ってありますか?
269:デフォルトの名無しさん
07/02/22 10:01:18
>>265
見分ける方法は知らないけど、「何のために見分けたいか」が書かれていると
「それなら見分けるんじゃなくてもxxxという方法が使えるよ」とか答えやすくて
いいんじゃないかな。
そもそも、「何のために」が分からないと、手持ちの情報を提供して役に立つかどうか、
こちらで判断できないじゃん。
270:265
07/02/22 10:29:40
元からVistaのPCと、XPからアップグレードしたVistaでは動作が違うところが沢山あるので、
とりあえずはケースバイケースで自作プログラムの動作を切り替えたいからです。
271:デフォルトの名無しさん
07/02/22 10:39:45
素のVistaで動くように作れば切り替えなくていいはずだが。
なぜ難しいほうに行きたがるのだろう。
272:デフォルトの名無しさん
07/02/22 11:21:46
「沢山」じゃなくて具体的にどーとかねーの?
273:デフォルトの名無しさん
07/02/22 11:48:48
>270
もう答え出てんじゃん。
「動作が違うところ」をトリガにすればおk。
274:デフォルトの名無しさん
07/02/22 11:55:07
設定に
□ 私はVistaを上書きでインストールしました。
ってチェックボックスつけとけば?
275:デフォルトの名無しさん
07/02/22 12:06:10
□ 私はコレで会社をやめました
276:デフォルトの名無しさん
07/02/22 13:33:14
Vistaでパソコンが終わりそうだ
URLリンク(www.nikkeibp.co.jp)
277:デフォルトの名無しさん
07/02/22 14:03:51
OSが変わった程度で世間が騒がなくなっただけでしょうに。辛口評価て(笑)
278:265
07/02/22 15:19:31
アップグレードしたVista上で、rundll32.exeを使って
printui.dll内のPrintUIEntry()を呼び出すとエラーが出ちゃいます。
クリーンインストールしたVistaや、2000/XP上ではエラーなく動いてくれるのに。
printui.dllをLoadLibrary()して呼び出せば、アップグレードした
Vista上でもエラーが出ないのですが、別の事情がありまして
なるべくrundll32.exeを使って呼び出したいのです。
279:265
07/02/22 15:20:24
という訳で、Vistaの素性を調べて、
アップグレードしたVista → LoadLibrary()経由で関数コール
それ以外のVista および XP/2000 → rundll32.exe経由で関数コール
としようと考えたのですが、その区別の仕方が見つからなく困っています。
GetProductInfoとかGetVersionExで取れると安易に考えていたのですが。
280:デフォルトの名無しさん
07/02/22 15:30:08
LoadLibrary経由に統一したらだめなのか?
281:デフォルトの名無しさん
07/02/22 16:04:26
だめなんですぅ
でも諦めたらそうするかも
282:デフォルトの名無しさん
07/02/22 17:47:07
ク...が暴走をはじm...
. ヽ |-、 !/_,/゙ ヽ___ \\,
`ー- ! , -\ _, -.! ヽ `ヽ \\_
ゝ | , -''. ̄ ̄\ :::::ヽ ヽ '、 | .\\_
/゛ \ :ヽ ' 、 | _, _、 \\_
/ 、 \l、 ! / .! \ \
_,____,|, | \ ヽ \_` . ‐-、
_,/ ! .l─ヽ .-/- ● \
` ー 、 ``ヽ、 ヽ !::::::.! .ー \ .\ \.\
`ヽ、 /-、 `'-、 ,_-‐‐'ヽ__|、::::::.! `ヽ,\ \\
\ ヽ、_ , ‐', -‐ ̄ .‖::::::ヽ ー' ''ー
`‐‐-/:: ̄'''--、_ l :/゛ `ヽ,:::ヽ
\ ::::::::\`ヽ| \:|
\ :::::::::`''ヽ--、 _,,.-‐ヽ !/
\_:::::::::::::::::.! /'´::::::::::::::`_ .、 !ヽ 、
`'ー-、 ::| ./::::::::::, ‐'": : : :`'‐.! .|ヽ .!、 、``ヽ
!__|  ̄ / : : : : : : : : : :! .!iヽ ! /: :.!
!: : : : : : : : : : : .\.-、` ー'' /
!: : : : : : : : : : : : :/ `ー、 ゙̄ヽ
i: | ヽ : : : : : : : : : : /`´  ̄'`
|: .! , -─'ー-、______/
ヽ \, ` ̄─ / l
` ー-` ー‐‐/ /
/ ,/
/ , /
 ̄
283:デフォルトの名無しさん
07/02/23 06:03:49
まずエラーの原因突き止めたら?
>>271
フォルダ仮想化で動作がおかしくなるから仮想化されてるかどうか見分けて
動作を変えたいみたいな本末転倒系の質問だろうと思ってたら案の定だった
(正解はもちろん「manifest追加して仮想化されないようにする」)
284:デフォルトの名無しさん
07/02/23 06:04:50
3行目以降は単なるたとえで>>265への答えじゃないので念のため
285:デフォルトの名無しさん
07/02/23 08:45:56
>>278
エラーでたらキャッチして、処理を切り替える訳にはいかんの?
286:デフォルトの名無しさん
07/02/23 10:08:20
>282
クリリンのことかぁぁぁぁ!!!
287:265
07/02/23 11:40:53
manifestは付けています。
>>285
レスありがとうございます。
printui.dll(もしくはその先)が勝手にエラーのメッセージボックスを
表示してしまうので、それを出したくないんですよぉ。
288:デフォルトの名無しさん
07/02/23 19:19:46
漏れの自作プログラムの中に、ある条件下でレジストリの HKEY_CLASSES_ROOT 配下に書き込みを行うものがある。
そのプログラムが HKEY_CLASSES_ROOT 配下への書き込みを行うまでは、何度起動してもUACのダイアログは
出なかったんだが、一度書き込みを行ってからは毎回ダイアログが出るようになった。
「危険な動作を行うプログラム」ってことをVistaが学習したんだろうな。
じゃあ、その学習内容はどこにあるんだろうかと、レジストリを検索してみたところ、
HKEY_CURRENT_USER\Software\Microsoft\Windows NT\CurrentVersion\AppCompatFlags\Layers
に記録されていることがわかった。
ここに実行ファイルのフルパス名で作成されている値を削除したら、UACのダイアログは出なくなった。
289:デフォルトの名無しさん
07/02/23 19:39:49
というわけで、レジストリ書き込み機能を別の exe に分離して、必要に応じてそっちを
起動するようにすれば、プログラムを起動するたびにUACダイアログが出るような事態は
避けられるんじゃないかと思いついたので、これから検証してみる。
290:デフォルトの名無しさん
07/02/23 21:47:37
ホホウ
291:デフォルトの名無しさん
07/02/23 23:07:12
この本(mook)どうよ?
URLリンク(www.amazon.co.jp)
292:デフォルトの名無しさん
07/02/24 05:37:58
随分検証に時間掛かるな。
293:デフォルトの名無しさん
07/02/24 10:37:51
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::。:::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::::::::::::::::::::::。::::::...... ... --─- :::::::::::::::::::: ..::::: . ..::::::::
:::::::::::::::::...... ....:::::::゜::::::::::.. (___ )(___ ) ::::。::::::::::::::::: ゜.::::::::::::
:. .:::::。:::........ . .::::::::::::::::: _ i/ = =ヽi :::::::::::::。::::::::::: . . . ..::::
:::: :::::::::.....:☆彡:::: //[|| 」 ||] ::::::::::゜:::::::::: ...:: :::::
:::::::::::::::::: . . . ..: :::: / ヘ | | ____,ヽ | | :::::::::::.... .... .. .::::::::::::::
::::::...゜ . .::::::::: /ヽ ノ ヽ__/ ....... . .::::::::::::........ ..::::
:.... .... .. . く / 三三三∠⌒>:.... .... .. .:.... .... ..
:.... .... ..:.... .... ..... .... .. .:.... .... .. ..... .... .. ..... ............. .. . ........ ......
:.... . ∧∧ ∧∧ ∧∧ ∧∧ .... .... .. .:.... .... ..... .... .. .
... ..:( )ゝ ( )ゝ( )ゝ( )ゝ無茶しやがって… ..........
.... i⌒ / i⌒ / i⌒ / i⌒ / .. ..... ................... .. . ...
.. 三 | 三 | 三 | 三 | ... ............. ........... . .....
... ∪ ∪ ∪ ∪ ∪ ∪ ∪ ∪ ............. ............. .. ........ ...
三三 三三 三三 三三
三三 三三 三三 三三
294:デフォルトの名無しさん
07/02/24 14:18:08
>>288 の身に一体何が…。
295:デフォルトの名無しさん
07/02/24 19:54:15
>>288
書き込みを行ったあとそのプログラムが終了したとき互換アシスタントが出なかった?
296:デフォルトの名無しさん
07/02/24 21:26:36
>291
今の時点で出ている Vista開発本は、英語以外、全て糞。
297:デフォルトの名無しさん
07/02/24 21:42:14
>296
英語の場合のお勧めってあります?
298:デフォルトの名無しさん
07/02/26 18:03:32
自作のDLLをregsvr32で登録するようなインストーラを
WindowsInstaller(VisualStudio.NET 2003)で作成しています。
UACが有効になっている状態だと、インストールの途中で
msiに対しての昇格ダイアログが出てくるのですが、
これを許可してもregsvr32でのレジストリ登録の段階で
エラー0x80070005(E_ACCESSDENIED)で弾かれてしまいます
(インストーラからは、カスタム動作の「確定」フェーズで
regsvr32を呼び出しています)。
DLLにマニフェストを添付してrequestedExecutionLevelを
設定してみてもだめでした(asInvoker、requireAdministratorともに)。
COM登録を含むインストーラは、どのように作成されることを
Microsoftは推奨してるのでしょうか。
299:デフォルトの名無しさん
07/02/26 18:33:05
>COM登録を含む
M$「だから、COMをドトネトで置き換えろっつーの」
300:デフォルトの名無しさん
07/02/26 19:38:40
それ言い出したらこのスレでネタにしてる話のほとんどは
アンマネージなアプリにしか関係ないような
301:デフォルトの名無しさん
07/02/26 20:17:39
MSI的にはregsvr32で登録するのは推奨してなかったはず。
302:298
07/02/26 20:28:53
>>299-301 様、ご意見ありがとうございます。
なるほど、regsvr32でのCOM登録はVistaでは
遂に切り捨てられたと見た方がよいのですね・・・
しかし、当方の場合は自作DLLですので変更の余地はありますが、
サードパーティーから提供されているCOMコンポーネントに
依存しているアプリケーションを作成しているベンダーは、
全自動でのインストーラを作成できなくなり困りそうですね
(WindowsInstaller以外ならその限りではないのかも知れませんが)。
「コマンドプロンプトを管理者として実行してregsvr32を・・・」のような
マニュアル書きでの対応になるのでしょうか。
303:デフォルトの名無しさん
07/02/26 20:34:10
regsvrで変更されるレジストリを記録して、
registoryテーブルに書くだけでないの?
304:デフォルトの名無しさん
07/02/26 20:46:06
vsdrfCOMSelfReg?
305:298
07/02/26 20:49:48
>>303 様
regsvr32を使用せず、msiによるレジストリ操作に任せるというわけですか。
確かにその方法ならregsvr32もDLLもコールすることなく
結果的にCOM登録できそうですね。
その方法はまだ試していませんでした、検証してみようと思います。
貴重なご意見ありがとうございました。
しかし、regsvr32の内部仕様に関しては詳しく知らないのですが、
環境によって動的に書き込む内容が変わるなどがあると少しまずいかもですね。
少なくとも、インストールフォルダを参照してDLLのパスを書き換える必要があるため
静的に書き戻すだけ、というわけにはいかないようです。
306:デフォルトの名無しさん
07/02/26 21:10:30
msiには、インストールフォルダ、とかの置換規則がいくつかあるよ。
307:デフォルトの名無しさん
07/02/26 22:40:26
だからvsdrfCOMSelfReg
セットアッププロジェクトってWindows Installerとは違うの?
308:デフォルトの名無しさん
07/02/26 22:41:10
SelfRegも、msiチームはあんまし・・・みたいな話だったなー。
309:デフォルトの名無しさん
07/02/26 23:15:03
じゃあXP以上ではReg-Free COMを使うとか
310:298
07/02/26 23:15:41
>>304,307 様
vsdrfCOMSelfRegって何のことだかわからなかったのですが、
セットアッププロジェクトに追加したDLLのプロパティで
勝手にregsvr32同等の機能をmsiにしてもらう方法があったのですね・・・
すみません、単に私がmsiに関しての機能を把握していないだけでした。
試してみたところ、問題なく登録することができました。
また、DllRegisterServer/DllUnregisterServer内での処理も
昇格された権限を継承して実行できているようです。
COM登録インストーラのUAC対応は、どうやらこうするのが本筋みたいですね。
というか、msiからregsvr32呼ぶこと自体が間違っていました。
>>308 様
懸念されている問題は、
URLリンク(support.microsoft.com)
にて記述されているようなことでしょうか。
確かに、上記のアーティクルでは[COM]か[COMRelativePath]が推奨されているようですね。
今は知識不足のため明確な違いがよくわかりませんが、
[COM]/[COMRelativePath]も調べてみて最適なものを採用してみようと思います。
本当にありがとうございました。
311:298
07/02/26 23:32:23
>>309 様
Reg-Free COMというのは知りませんでした。
調べてみたところ、VS2005からの機能のようなので残念ながら
今回は利用できませんが、開発環境をバージョンアップしたときの
選択肢になる可能性として参考にさせていただきます。
ありがとうございます。
312:デフォルトの名無しさん
07/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と言うらしいです。
これで、パパのクレジット番号だろうが、パスワードだろうが、ママがいちいち入力しなくても
親切にコピーしてくれるから、すごく便利だね!
一度おためしあれ。
313:312
07/02/27 00:43:18
あ、ちょっと間違えました。
実行ファイル名に"UPDATA"や・・・
↓
実行ファイル名に"UPDATE"や・・・
314:デフォルトの名無しさん
07/02/27 00:46:21
何が問題なのか全然わからね。
> UACにひっかかるexe
なんだからそのexeが悪意を持ってるって前提ならそもそも何でもやり放題だし
意図せずコピーされるって話なら対応策(の逆)を自分で書いてるし
>・そのexeにmanifestをつけないこと。あってもいいけど、実行権限を指定しなければok。
つーかそもそもインストーラからHKCUに書き込むなというか
315:デフォルトの名無しさん
07/02/27 00:50:59
>>312
ひでぇな、これ。
>>314
>>312の最後の部分をよく読め。この問題をすぐに理解できなくても
お前が馬鹿だとは思わないが、プログラマとして情報セキュリティに
関して理解を深めておくことを強く推奨する。
316:312
07/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名の文字列だけで引っかかるというのもね、ちょっと。
そんな恨み言いってもしょうがないんですけど。
317:デフォルトの名無しさん
07/02/27 01:05:21
俺も何が問題なのか理解できん。
その仕様を利用してどんな悪さが可能なのか提示キボンヌ。
ファイルのパスだけじゃなくファイル自体もコピーするってんなら、悪用の仕方もいろいろ思いつくんだけど。
318:デフォルトの名無しさん
07/02/27 01:07:51
>>317
ポイントは悪用じゃなくて、意図せずに情報が他のユーザに漏れてしまうこと。
319:デフォルトの名無しさん
07/02/27 01:15:39
意図せずに、ったって、setup.exeとか言う名前で、
しかも管理者権限をUACで有効にしてるんじゃないの?
320:312
07/02/27 01:19:39
ちゃんと書き込みしましょう。
正直、どんな「悪用」ができるかまで考えが及んでません。
ただ、この条件にマッチしてしまう市販ソフトが店頭に並んでしまっているわけです。
先ほど例として挙げたように、iTunesをはじめ、AcrobatReaderなんかも、バックグラウンドで
最新版をチェックするようなアプリには、××update.exeみたいな名前をつけちゃうんです。
で、MFCアプリの場合は、「参照」しただけでキーのコピーが行われてしまうので、
ソフトメーカーの姿勢として、どうやってこれを対処するのか?ってことなんです。
市場に出ているソフトを全回収?その費用は誰が持ってくれるの?
Vista対応って書いてないソフトだからほっとく?
テストした結果、パスワードがコピーされることが確認されました。
我々は、さすがにこの動作はMSが直してくれるだろうと思ってたんですが、
MSの見解として、「仕様」と位置づけられたために、手詰まりなんです。
そこで、この仕様は、本当にこのままで問題ないの?ということを、
高い知識を持った皆様に伺ってみたかったんです。
ちゃかしたような書き込みですみませんでしたが、かなり困ってます。
321:312
07/02/27 01:23:10
>>319
管理者権限を設定してあれば、この動作は起こりません。
権限を設定していないXP時代のアプリの場合に発生します。
で、Setupだけだったら問題は少なかったんです。
でもUpdateは、多くのソフトがこの名前を「インストーラ」ではなく、
「最新版チェックツール」につけているんです。
322:デフォルトの名無しさん
07/02/27 01:26:23
考えれば考えるほど、問題が出ない気がしてきた。
そもそも秘密文章とかは、パスがわかってもそもそも開けない
アクセス制限のかかった環境におくんじゃないのか
323:デフォルトの名無しさん
07/02/27 01:30:54
>>322
秘密文章のパスが書き込まれるだけならおっしゃるとおりです。
しかし、パスワードのような短い文字列は、HKCUに直接書きませんか?
もちろん、文字列をそのまま書き込むようなことはしないと思いますが、
たとえ暗号化してあっても、HKCUにパスワードが記入されていたときには、
自動ログインするよう動作のアプリの場合、ほかのユーザが「ログイン」
できてしまうわけです。
324:デフォルトの名無しさん
07/02/27 01:34:20
かつ、管理者権限を持つヒトが実行した、update.exeみたいな
名前のプログラムが、そのHKCUレジストリを参照したとき、だろ?
325:デフォルトの名無しさん
07/02/27 01:36:52
うーん。プログラムのアップデートサーバにログイン認証を仕掛けているとき、
アップデータがHKCUにログイン情報を書いていると、しつが管理者以外にも
漏れる、くらいしかシナリオが思い浮かばないな。
326:デフォルトの名無しさん
07/02/27 01:38:09
ちょっと考えただけで、例えば、誰かが勝手に作った gmail 関連のツールなんかで
インストール時に gmail のユーザアカウントとパスワードを入力→他のユーザから
メールボックス丸見えw なんて楽しそうなシナリオが満載ですねww
327:デフォルトの名無しさん
07/02/27 01:41:48
>>324
そうなんですが・・・
MFCプログラムでは、初期化のときに、このソフトはどのレジストリキー以下を参照するか
設定する流儀になってるんです。
これが、SetRegistryKeyというAPIです。
つまり、初期化のときに、「このアプリは、HKCU\MyCompany 以下に情報を書き込みます」と
設定しておけば、その後はいちいちMyCompanyを指定しなくても、レジストリの読み書きができる
ようになっています。
で、この動作の凶悪なところは、HKCU\MyCompany\MyApp\password というキーを参照しただけで、
SetRegistryKeyで設定したHKCU\MyCompany\以下を丸ごとコピーするのです。
つまり、前回終了したときのWindowの位置を参照しにいっただけで、隣に書いてあったPasswordまで
コピーされます。
MFCの中で、参照の際にSetRegistryKeyで指定した初期位置に対して、RegCreateKeyEx等を
実行してるんじゃないかと推測します。
レジストリの変更をリアルタイムに監視するツールで見てたんですけど、それはもう見事に
丸ごとコピーされました。なかなか壮観は映像でしたよ。
328:デフォルトの名無しさん
07/02/27 01:46:29
たしかにログイン情報は危ないかもな。
具体的な例はメールチェッカくらいしか思い浮かばないけど
これはレジストリあたりにパスワードを記録してる可能性高いし
暗号化されてる情報でもコピペすればそのまま使えるだろうから
329:デフォルトの名無しさん
07/02/27 01:50:12
>>328
たとえ他に危険がケースがなくともその例だけでもうお腹いっぱいだろ。
330:デフォルトの名無しさん
07/02/27 01:52:38
あともう一つ。
作業用フォルダとか、データ保存先フォルダ(これは大した問題じゃないですが)なんかがコピーされると、
アプリが起動しない、とか、「作業用フォルダが見つからないのできどうできない」とか、以前保存しておいた
ファイルがなくなった!(ように見える)とか、セキュリティというレベルでなくても、動作上の深刻な不具合は
たくさん起こりえると思います。
もちろん、異常なレジストリデータが入っていたときの処理を、きちんとアプリに実装していればいいんですけど・・・
こういう動作って、設計の時にはなかなか思いつかないんですよ。検査でも発見されにくいですし。
絶対自分しか書き込みしないと信じて作ると、そうなりますね。
まさか、まさか、OSが他人のキーをコピーするなんて、全く想定してませんでしたから・・・
331:デフォルトの名無しさん
07/02/27 02:43:16
>>330
関係無いけど口調が回りくどくてうざい。
もっと普通に書けんのか?
それと、文は簡潔に短く纏めろ。有意義な事が書かれてても駄文だと誰も読まんぞ。
332:デフォルトの名無しさん
07/02/27 03:00:36
>>331
外野は黙っててくれませんか?
折角有意義な情報を提供してあげているのだから・・・
もっと真面目に考えて欲しいものです
333:デフォルトの名無しさん
07/02/27 03:36:20
なんだコイツ?
334:デフォルトの名無しさん
07/02/27 03:37:25
>>332
ここでチマチマとやらずに、IPAなりセキュリティホールメモなりスラドなりにタレ込んで
話大きくしたらいいんじゃね?
335:デフォルトの名無しさん
07/02/27 04:12:57
おれはこういう情報も、チマチマ欲しいと思うんだがな
多少なり有意義な情報と思うよ
たしかに文章的には読むのを辞めたくなる文だが…
336:デフォルトの名無しさん
07/02/27 05:01:56
>>331
禿同
いくらいい情報でも文章がアレだと台無し。
>>332
折角能力高いのにもったいないですよー
337:デフォルトの名無しさん
07/02/27 05:16:37
参考になった。
いろんな意味で。
338:デフォルトの名無しさん
07/02/27 05:42:30
情報漏洩ネタだし、ageてみるテスト。
339:デフォルトの名無しさん
07/02/27 06:10:38
Yahooメッセンジャーはパスワードとかをレジストリの
HKEY_CURRENT_USER\Software\yahoojapan以下のどっかに保存してるみたいで
WinXPだとこれを丸ごとコピーすればそのまま別ユーザでも起動できるみたい。
この漏洩話が本当に起きるなら、Vistaで「HKCU\Software\yahoojapan」に
特定条件下でRegCreateKeyをかければ、全ユーザでYahooメッセの情報が共有されるってことなのかな
340:デフォルトの名無しさん
07/02/27 06:12:36
>>339
Yahooメッセンジャーって>>312の(条件)に当てはまるところがあんの?
341:340
07/02/27 06:13:35
ごめん、よく読んでなかった。
342:デフォルトの名無しさん
07/02/27 07:03:47
いやいや、一般ユーザの権限で、他のユーザのヤフーメッセンジャーのパスワードを盗める可能性が>>399によって提示されたのだよ。
もっとも、問題があるのはヤフーメッセのほうだと俺は思うけどな。
343:デフォルトの名無しさん
07/02/27 07:23:43
管理者ユーザのパスが漏洩する、であって、一般ユーザが能動的に
奪取は出来ないのでは?
344:デフォルトの名無しさん
07/02/27 07:53:48
これについては漏洩がどうとかいうより、これのせいで意図しないのに情報が
全ユーザにコピーされてしまうことで、レジストリにアクセスしたソフトが
変なクレームを受けることになる可能性のほうが重要な気もする
345:デフォルトの名無しさん
07/02/27 08:50:39
確かに、自社の製品がこれに該当したら冷汗ものだな。
346:312
07/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"));
347:デフォルトの名無しさん
07/02/27 09:07:58
うわ、最悪
途中でアップしてしまった。
もうどうでもいい
348:デフォルトの名無しさん
07/02/27 09:16:48
エーアイソフトさん大変だなw
349:デフォルトの名無しさん
07/02/27 09:38:45
俺がこの世でもっとも許せないヤツは、
スーパーで清算後に品物を袋詰めした後のカゴをカゴ置き場に戻さないヤツと、
プログラムのコメントにですます調を使うヤツだ。
350:デフォルトの名無しさん
07/02/27 09:53:37
今自作のプログラムをいじっていて気づいたんだが、.exeのファイル名だけじゃなく、
製品名やファイルの説明にsetupとかupdateが含まれていてもUACの対象になるのな。
351:デフォルトの名無しさん
07/02/27 10:10:35
そこまでしなくてもいいだろうになー
352:デフォルトの名無しさん
07/02/27 10:14:26
>>349
ですます調いいじゃん。なぜ駄目なの?
353:デフォルトの名無しさん
07/02/27 10:41:09
>>330
この「仕様」はそれとは逆で、HKCUはインストーラやアップデータが
書き込んでくれてるに違いないと決めつけてるレガシーアプリを動かすため。
標準ユーザーがインストーラ起動しても、インストーラが書き込むHKCUは
インストーラが動いてる管理者ユーザーのもので標準ユーザーのHKCUには
(この「仕様」がなければ)書き込まれないから。
Vista対応アプリのインストールを管理者ユーザーでしかテストしないと
ハマる可能性がありそうだ。
354:デフォルトの名無しさん
07/02/27 10:53:37
>>346-347
お前、全てにおいて最悪な社員だな・・・
355:デフォルトの名無しさん
07/02/27 10:55:10
で、アップデータがHKCUを参照してもそれは有効なHKCUであるとは限らないから、
結論から言えばアップデータもHKCUにさわっちゃダメってこと。
アプリ本体のexeがインストールやアップデート後の初回起動を認識して
HKCUを適切に生成したり更新したりできなくてはならない。
356:デフォルトの名無しさん
07/02/27 11:24:59
もうどうでもいいワラタ
357:デフォルトの名無しさん
07/02/27 12:30:42
結論:やっぱりレジストリは一切使うな
358:デフォルトの名無しさん
07/02/27 12:45:37
AppDataにXMLで設定を保存してるアプリも多いね。
359:デフォルトの名無しさん
07/02/27 13:19:18
iniファイルで十分
360:デフォルトの名無しさん
07/02/27 13:24:46
iniでは可変長のリストを持ちにくい件について。
361:デフォルトの名無しさん
07/02/27 13:26:51
可変長のものは個別に別ファイルで無問題
362:デフォルトの名無しさん
07/02/27 13:32:11
>>361
ちょwwwwwwそれはiniでは不十分ってことじゃないのか!?
363:デフォルトの名無しさん
07/02/27 13:56:04
独自フォー!マット
364:デフォルトの名無しさん
07/02/27 14:08:29
iniって拡張子にしてると、将来何が起きるか判らんから
適当に長い拡張子付けてるな。
どうせ設定・保存はなんか拡張してる間にか独自形式化しちゃったし
365:デフォルトの名無しさん
07/02/27 14:16:10
>>357
で、VirtualStoreがらみでハマるわけですな
366:デフォルトの名無しさん
07/02/27 14:21:25
つまり、独自フォルダにインストールし
レジストリは使わず、独自形式の設定ファイルを使うアプリが最強ってことですな
367:デフォルトの名無しさん
07/02/27 16:49:22
>>365
C:にはインストールできない仕様にする
368:デフォルトの名無しさん
07/02/27 16:53:28
どんどん本末転倒の坂を転げ落ちてますな
ちなみにuiAccess="true"はProgra Filesにインストールしないと効果が出ないよ
(おそらくユーザー権限で改竄ができるとダメ)
369:デフォルトの名無しさん
07/02/27 16:53:45
Progra Files
mが抜けた
370:デフォルトの名無しさん
07/02/27 19:45:08
>>339-341
それってさー、EXEコピって〜UPDATA.EXEとかにリネームして
実行しちゃえば条件に当てはまっちゃうんじゃないの?
別の名前じゃ起動しないとか、インストールしたフォルダからで
ないと起動しないとかならいいだろうけど。
371:デフォルトの名無しさん
07/02/27 21:08:30
rename shoot_yourself_in_the_foot.exe update.exe
update.exe
372:デフォルトの名無しさん
07/02/27 21:34:25
そもそもsetupやらupdateなんかがファイル名に含まれたらって
条件からして頭悪そうな案だよな。ていうか、やっつけ仕事?
373:デフォルトの名無しさん
07/02/27 22:06:09
これって「アプリのデータをバックアップするにはどうするの?」
ってユーザーから聞かれたら
C:\Users\ユーザー名\AppData\Roaming\アプリ名
とかのフォルダの中身をどっかに保存して再インストール時はそれを元の場所に
戻せって言う事になるんだよね?
んでデフォではAppDataフォルダは隠しフォルダで見えないわけで…
おまけにUsersフォルダはエクスプローラでは「ユーザー」とかって見えちゃうわけで、、、
素人相手だとまじで説明とか混乱しそうで大変そうだな。
374:デフォルトの名無しさん
07/02/27 22:21:53
AppDataはユーザーに触らせない前提のファイルを置く場所だから
ユーザーが自分でバックアップする必要があるならDocuments配下ですよ
375:デフォルトの名無しさん
07/02/27 22:33:37
あー、そかDocumentsの下にアプリ名のフォルダ作ってそこにデータ、と。
ウィンドウの位置とか画面レイアウトとかオプションの類の情報は
レジストリに書きなさいよ、と。
んでAppDataにはユーザーに触らせない前提のファイル…?、と。
ふむ。今までアプリのフォルダに全部つっこんでたから
MS様の流儀に対応しようとすると大変だな。
Documents下のアプリ名フォルダに全部ぶちこむかなぁ
376:デフォルトの名無しさん
07/02/27 23:49:42
>>375
Documentsの下に無断でフォルダを作るプログラマは、オレは首を
絞めてやるね。
377:デフォルトの名無しさん
07/02/27 23:55:46
俺もDocutemsじゃなくてAppDataが正解だと思うなぁ。
378:デフォルトの名無しさん
07/02/28 00:08:06
Documents以下にフォルダを作ってやりたいんですが構いませんねッ!?
[はい] [インストールのキャンセル]
ってダイアログ出せばいいんですね?
379:デフォルトの名無しさん
07/02/28 00:11:11
3大悪質プログラム
1)Cドライブの直下に無断でソフトをインストール
2)Documentsの直下に無断でフォルダを作りそこにデータを保存
3)エクスプローラなどの右クリックメニューに無断で項目を追加
380:デフォルトの名無しさん
07/02/28 00:13:45
おお378よ、
Documents以下にフォルダをつくらせないとはなさけない
Documents以下にフォルダをつくってもいいですか?
▽[はい] [いいえ]
381:デフォルトの名無しさん
07/02/28 00:25:00
ちょw、落ち着きかけた俺の心を乱すようなことをw
Documentsの下にわけわかんないフォルダを次々に作られるのは確かに
どーかと思うけどその方向がMSの思し召しだろ?たぶん。
AppDataだとバックアップ、リストアの手順を教えるのが面倒な事に
なりそうな予感がする。同様の理由でレジストリはまったく問題外。
つーことでDocumentsの下だな。
「スタートメニュー(?)からドキュメントっての開いてその中のアプリ名の
フォルダをどっかにコピっとけ」で済む。
今までなら「Program Filesの下のアプリのフォルダをどっかにコピっとけ」
って言うだけでプログラムごとバックアップできて良かったんだけどな。
もっと良い案があるなら教えてくれ。まじで。
382:デフォルトの名無しさん
07/02/28 00:31:36
よし、じゃぁフォルダを作らずにDocuments直下に
データファイルその他諸々を置く。これで決まり。
次ページ最新レス表示スレッドの検索類似スレ一覧話題のニュースおまかせリスト▼オプションを表示暇つぶし2ch
4306日前に更新/229 KB
担当:undef