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

Win32API質問箱 Build63

■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん2008/03/04(火) 12:15:58
スレ立てるまでもない、Win32APIのついての質問はこちらへどうぞ。
やさしいお兄さんやお姉さんたちが答えてくれるかも。

過去スレ、関連リンクは>>2-10くらい。

■注意
・質問する前にMSDNライブラリやPlatformSDK、Google等で検索しましょう。
・日本語版MSDN Online Libraryは不完全です。英語版(http://msdn2.microsoft.com/library/)の利用推奨。
・APIフックなど高度な事をしたい場合はできるだけAdvenced Windowsを読みましょう。
・言語特有の問題やIDE、MFCやVCLなどの質問はそれぞれの言語や開発環境スレで

- Win32API質問箱 wiki
http://wiki.livedoor.jp/program1/d/FrontPage

【前スレ】
http://pc11.2ch.net/test/read.cgi/tech/1202060403/
0596デフォルトの名無しさん2008/03/23(日) 14:48:04
ここがマルウェア作成スレだったら微妙
0597デフォルトの名無しさん2008/03/23(日) 15:17:58
今の日本の法律ではマルウェアの作成で罪に問われることはない。
0598デフォルトの名無しさん2008/03/23(日) 15:25:55
ウイルス作成罪ってまだ成立してなかったっけ?
0599デフォルトの名無しさん2008/03/23(日) 15:31:00
まだ。
CLANNAD ウィルスも罪状は著作権法違反。
0600デフォルトの名無しさん2008/03/23(日) 15:34:09
基本的な質問です、メニューからどんどんウィンドウを開いてゆく場合などは
どうするのでしょうか? 最初のメニューから関数呼んで新しいウィンドウくらすを
どんどん登録して処理するのですか? 全体的な流れとして??
0601デフォルトの名無しさん2008/03/23(日) 15:37:30
>>599
そうみたいだなぁ

仮に成立したとして、システムに介入するタイプのソフトがワクチンのヒューリスティック検知に引っかかるとか
シェアウェアのロジックボムとかもマズいのかな
0602デフォルトの名無しさん2008/03/23(日) 16:05:59
フォーマット シー
って書いたらタイホです
0603デフォルトの名無しさん2008/03/23(日) 18:14:24
format ℃は器物損壊か
0604デフォルトの名無しさん2008/03/23(日) 18:34:01
さすがに善意の提供者は対象外だろう。
悪意がないことを証明するために捜査を受ける必要があるかもしれないが。
0605デフォルトの名無しさん2008/03/23(日) 19:22:39
それを判断するのは裁判所ということになっていましてね
そして被告==犯罪者というのが日本の社会通念でして
0606デフォルトの名無しさん2008/03/23(日) 19:41:36
このスレに書き込むと犯罪者になりますので注意
0607デフォルトの名無しさん2008/03/23(日) 20:24:40
>>606=犯罪者
0608デフォルトの名無しさん2008/03/23(日) 20:40:33
>>607=犯罪者
0609デフォルトの名無しさん2008/03/23(日) 20:41:05
>>608=犯罪者
0610デフォルトの名無しさん2008/03/23(日) 20:41:54
    _, ._
  ( ・ω・) now shibakaring ...
  ○={=}〇,
   |:::::::::\, ', ´
、、、、し 、、、(((.@)WWWWWWWWWWWWWWWWWWWWWWW (26%)
0611デフォルトの名無しさん2008/03/23(日) 21:10:44
ここの質問って、右も左も分からない初心者か、ウイルス作ってるんじゃねーのという内容か
どちらか一方に当てはまる質問しか出てない気がするw
0612デフォルトの名無しさん2008/03/23(日) 22:00:14
フックの質問は多いな
0613デフォルトの名無しさん2008/03/23(日) 22:40:51
アッパーを教えてください
0614デフォルトの名無しさん2008/03/23(日) 23:29:21
高橋ジョージにでも聞け
0615デフォルトの名無しさん2008/03/23(日) 23:30:44
リソーススクリプトでは、標準のコントロールを配置する
ようなダイアログボックスを設計できます。

同じようにメインのウィンドウに対してリソーススクリプト
で標準のコントロールを配置することはできないのでしょうか?
0616デフォルトの名無しさん2008/03/23(日) 23:32:51
IDEでも使って下さい
環境スレで
0617デフォルトの名無しさん2008/03/23(日) 23:36:58
>>616
IDEを使いたくないのです。

できないということでしょうか?
0618デフォルトの名無しさん2008/03/23(日) 23:38:41
メモ帳でも出来るがダルイぞ
0619デフォルトの名無しさん2008/03/23(日) 23:41:22
ダイアログをメインのウィンドウにすればいいじゃん
0620デフォルトの名無しさん2008/03/23(日) 23:44:25
MFCのフォームビューが出来てるんだから出来るんじゃね
0621デフォルトの名無しさん2008/03/23(日) 23:45:21
APIスレならCreateWindowExでコリコリ行くべき
0622デフォルトの名無しさん2008/03/24(月) 05:56:16
ファイルをディスクキャッシュに乗せないように読み込む方法教えてください。
0623デフォルトの名無しさん2008/03/24(月) 06:44:49
システムキャッシュならAPIでできるが、
ディスクキャッシュは、そもそもできるのか?
0624デフォルトの名無しさん2008/03/24(月) 06:47:17
つ FFC
0625デフォルトの名無しさん2008/03/24(月) 08:48:40
CreateFileでFILE_FLAG_NO_BUFFERING?
0626デフォルトの名無しさん2008/03/24(月) 09:50:50
>>613
CharUpper / CharUpperBuff
0627デフォルトの名無しさん2008/03/24(月) 19:53:44
強烈なアッパーを放つ事ができました!
0628デフォルトの名無しさん2008/03/24(月) 19:54:52
クスリでもやってるの?
駄目だよ手出しちゃ…
0629デフォルトの名無しさん2008/03/24(月) 21:30:24
LoadCursorやLoadIconが更迭されてLoadImageを使うようになった理由を誰か知ってたら教えてくれ
0630デフォルトの名無しさん2008/03/24(月) 21:56:35
派閥争いだろ
0631デフォルトの名無しさん2008/03/24(月) 22:30:02
LoadCursorはともかく、
LoadIconは小サイズのアイコンが読み込めない時点で明らかに機能不足。
だが、通常サイズのアイコンにわざわざLoadImage使うことも絶対にないな。
0632デフォルトの名無しさん2008/03/24(月) 22:40:46
じゃあ逆にフックを防ぐ方法を聞くのは合法か?
0633デフォルトの名無しさん2008/03/24(月) 22:44:57
キーフック無効にするソフトとかあったら
キーロガー怖くなくて嬉しいかもしれない
0634デフォルトの名無しさん2008/03/24(月) 22:53:07
nProtect GameGuard
0635デフォルトの名無しさん2008/03/24(月) 22:55:53
hookguardってのがあってSetWindowsHookExのグローバル呼び出しフックを検出するコードを公開されてる
どっちかってーと概念実証のにおいがしたり、解説サイトがロシア語だったりするけど
0636デフォルトの名無しさん2008/03/24(月) 22:56:53
変な日本語になった('A`)
0637デフォルトの名無しさん2008/03/24(月) 22:58:54
ピーカブースタイルでダッキングでフックをかいくぐり華麗にアッパーをお見舞いしてやれ
0638デフォルトの名無しさん2008/03/24(月) 23:54:20
>622
FILE_FLAG_SEQUENTIAL_SCANも必要かも?
0639デフォルトの名無しさん2008/03/25(火) 00:12:53
>>638
それはキャッシュマネージャ用のヒントなのでFILE_FLAG_NO_BUFFERING使ってるときは関係ないはず。
まあ単なるヒントなので付けておいて悪いということもないけれど。
今後最適化に利用される可能性がないとも言えないし。
0640デフォルトの名無しさん2008/03/25(火) 00:33:47
>>622
ライトスルー属性で書いてね。
0641デフォルトの名無しさん2008/03/25(火) 03:23:26
今日、自分がどの仕事にどれぐらい時間を使ってるか
知りたかったからキーロガーで計ってやれとダウンロードしようとしたら
圧縮ファイルを落としてきた時点でNortonに削除された
0642デフォルトの名無しさん2008/03/25(火) 06:13:39
もし、キーロガ作ったらやっぱ削除しやがるのか?Norton先生
フォルダ除外とかできるんだろうけどさ
0643デフォルトの名無しさん2008/03/25(火) 06:16:40
フック検出かあ

自分自身が依存してるモジュールのリストを持っておけば
PSAPIで列挙してフック用のモジュールを検出できるかも
0644デフォルトの名無しさん2008/03/25(火) 06:27:57
んでもWH_KEYBOARD_LLのフックは侵入型じゃないからそれだと検出できないし。
0645デフォルトの名無しさん2008/03/25(火) 06:38:20
やろうと思えばキー状態監視でも拾える。
0646デフォルトの名無しさん2008/03/25(火) 09:02:33
APIフックならある程度検出できるがキーフックの検出は難しそうだなあ
Raw Inputを使えばSetWindowsHookExの影響を受けさせないことは可能?
0647デフォルトの名無しさん2008/03/25(火) 12:38:51
>>631
48ドットアイコンがロードできないんで最近は「通常サイズ」といっても微妙。
通常では32ドットアイコンを見かけないVistaでもいまだに32ドットだからなぁ。
0648デフォルトの名無しさん2008/03/25(火) 13:21:02
>>645
相当高速でループ回さないと取りこぼしちゃうよね
0649デフォルトの名無しさん2008/03/25(火) 15:19:28
>>648
ごくあたりまえのPCのCPUなら、キーボードをスキャンしてるチップが
マトリクスをスキャンするよりずっと速くループできると思う。
0650デフォルトの名無しさん2008/03/25(火) 15:21:43
アプリレベルとOSレベルじゃ・・・
0651デフォルトの名無しさん2008/03/25(火) 15:26:13
そもそも取りこぼすほどのタイピング速度なんて人間には不可能だろ
0652デフォルトの名無しさん2008/03/25(火) 15:26:24
アプリだってスレッドのプライオリティを上げればかなりリアルタイムに近い処理できるよ。
マウスカーソルさえ動かないくらいにCPUタイムを奪い撮れる。
キーロガー作ろうとすると、どこでどううまくSleepしてユーザに気付かれないかが難しそうだけど。
0653デフォルトの名無しさん2008/03/25(火) 16:30:00
CPU使用率なんて見てる奴なら(≒タスクマネージャの類を常駐させてる奴なら)
変なプロセスが起動してる時点でバレるだろ
0654デフォルトの名無しさん2008/03/25(火) 16:35:59
うるさいブタ野郎が
0655デフォルトの名無しさん2008/03/25(火) 16:43:36
フック後にフックdllの被フックプロセス側で自分自身をLoadLibraryするとフック解除後も居座る事が可能だから
タスクマネージャを眺めていても気付かないかも
0656デフォルトの名無しさん2008/03/25(火) 16:45:51
>>651
そういう安易な考えで作った糞アプリが
キーマクロを取りこぼして迷惑をかけるんだよ。反省しろ。
0657デフォルトの名無しさん2008/03/25(火) 16:46:23
もうまるっきりスパイウェアの王道行ってますね

むしろ逝ってるか
0658デフォルトの名無しさん2008/03/25(火) 17:47:10
>>655
>>643
0659デフォルトの名無しさん2008/03/25(火) 17:48:39
655が言ってるのはタスクマネージャで気付けるかだから>>643を持ち出しても意味無い
0660デフォルトの名無しさん2008/03/25(火) 17:52:22
つ ProcessExplorer
0661デフォルトの名無しさん2008/03/25(火) 18:38:14
ProcessExplorer はタスクマネージャーじゃないし
0662デフォルトの名無しさん2008/03/25(火) 18:49:46
SetWindowsHookExをフックすりゃよくね
0663デフォルトの名無しさん2008/03/25(火) 18:55:34
UserModeでどう頑張って隠蔽してもバレるから無駄
0664デフォルトの名無しさん2008/03/25(火) 18:56:43
素人さんが気付かないレベルならいいじゃん

って物騒だから。その辺にしとき
0665デフォルトの名無しさん2008/03/25(火) 19:17:20
入力補助アプリとか使ってたりするとMakeとBrakeがほぼ同時で単純スキャンじゃ確実に取りこぼすと思う。
0666デフォルトの名無しさん2008/03/25(火) 19:38:47
全部きっちり取らなきゃいけないものでもないしな
取りこぼしはサンプリングが多けりゃカバーできる
0667デフォルトの名無しさん2008/03/25(火) 20:23:09
LoadLibraryしたDLLの中DllMainとかで
VirtualAlloc→WriteProcessMemoryで実行コード埋め込んじゃえばモジュールも残らないよ
0668デフォルトの名無しさん2008/03/25(火) 21:19:53
その場合埋め込み先は(DLLから見て)自プロセスの中だから
わざわざ監視されてる可能性の高いWriteProcessMemoryを使う必要ないだろ
0669デフォルトの名無しさん2008/03/25(火) 21:29:32
> LoadLibraryしたDLL
これ自体CreateRemoteThreadなんかで仕込んでたら普通にセキュリティソフトが警告してくるだろう
0670デフォルトの名無しさん2008/03/25(火) 21:30:12
ライトプリンセス☆メモリー
0671デフォルトの名無しさん2008/03/26(水) 00:30:59
クスリでもやってるの?
ダメだよ手出しちゃ…
0672デフォルトの名無しさん2008/03/26(水) 00:42:56
誰か、>>466に答えられる人はいませんか?
0673デフォルトの名無しさん2008/03/26(水) 00:55:18
いません
0674デフォルトの名無しさん2008/03/26(水) 00:56:29
>>672
そもそもホットプラグ対応じゃないだろ
0675デフォルトの名無しさん2008/03/26(水) 08:45:16
WM_DEVICECHANGED がきたら、全部スキャンし直す。
0676デフォルトの名無しさん2008/03/26(水) 17:00:43
ファイルにエロ動画、3P、評価Sといったタグをつけるのはどうすればいいの?
ファイル名につけるの以外で。
0677デフォルトの名無しさん2008/03/26(水) 17:10:39
こっそりヘッダに埋め込む
0678デフォルトの名無しさん2008/03/26(水) 17:14:11
IPropertySetStorage
エクスプローラのファイルのプロパティの概要。

ファイルが構造化ストレージならファイル内に、
そうでないけどNTFSドライブ上のファイルなら副ストレージに情報を保管する。

0679デフォルトの名無しさん2008/03/26(水) 17:46:28
副ストレージ???

代替データストリームとか副次ストリームじゃないの?
0680デフォルトの名無しさん2008/03/26(水) 17:53:38
ああ、すまん。ごっちゃにしちまった。
0681デフォルトの名無しさん2008/03/26(水) 21:00:40
キーコードを文字列に変換してくれる関数なんてあります?
表だけでもあると助かるんですが
06826822008/03/26(水) 21:08:48
事故解決
06836832008/03/26(水) 21:25:02
>>682
?
0684デフォルトの名無しさん2008/03/26(水) 21:50:50
ConvertINetStringの使い方がよくわかりません。
0685デフォルトの名無しさん2008/03/26(水) 21:53:39
WINAPIの勉強始めましたが、
下記サイトのツリービューの例をコンパイルしましたが、
「未定義のシンボル item(関数 AddItem )」
とエラーが返ってきます・・・。

コモンコントロールの準備「comctl32.libをプロジェクトに加える」とありますが、
もしかしてilink32.cfgに「-L"C:\borland\bcc55\Lib\PSDK"」(←comctl32.libがあった場所)
を追加するのではなかったのでしょうか?
それ以外に間違ってそうな箇所はないきがするのですが。
どうすればコンパイルがとおるか教えてもらえないでしょうか。

環境:BCC
http://www.kumei.ne.jp/c_lang/sdk2/sdk_111.htm
0686デフォルトの名無しさん2008/03/26(水) 22:02:33
未定義のシンボルならコンパイル以前の問題
0687デフォルトの名無しさん2008/03/26(水) 22:07:46
>「未定義のシンボル item(関数 AddItem )」

俺には

「AddItemという関数内でitemというシンボルが未定義のまま使われている」

という意味にしか取れないんだが。
少しでもエラーの意味を考えたか?
06886722008/03/26(水) 22:08:58
>>674

アナログ接続ではWM_DEVICECHANGEは飛んできませんが、
デジタル接続の時だけは飛んできます。
これはホットプラグ対応ということなのでは?

>>675

全部スキャンし直す、ということですが
デバイスマネージャのツリーに表示されるような
接続機器情報を事前と事後に取得して比較する、という理解で合っていますか?
その情報を取得するためのAPIを見つけられませんでしたので
名前など手がかりを教えてもらえませんか?
0689デフォルトの名無しさん2008/03/26(水) 23:14:38
Sysinternalsのwinobjのようにオブジェクトマネージャの名前空間の
中身(当座は\Deviceディレクトリ)を列挙したいのですが、方法がわかりません。
ネイティブAPIを使うこと、ユーザモードで可能であるということは
winobjのドキュメントからわかるのですが、具体的なアプローチやサンプルなどご存知であれば教えてください
06906852008/03/26(水) 23:30:34
TV_INSERTSTRUCTというcommctrl.hで定義されている構造体の、
itemってのが未定義って返ってきてるのですが・・・。
commctrl.hにはTV_INSERTSTRUCTとTVITEMのどちらも定義されていそうでした。
定義ってそういう意味じゃないのでしょうか?
0691デフォルトの名無しさん2008/03/26(水) 23:35:20
>>690
エラーメッセージをコピペしてください
肝心の部分が端折られてて訳分かりません
0692デフォルトの名無しさん2008/03/26(水) 23:37:08
現実問題ファイルのフルパスがMAX_PATH超えることってあるの?
固定長バッファで組むとバグる?
0693デフォルトの名無しさん2008/03/26(水) 23:39:57
\\.\記法で64Kくらいまで長くできるとか何とか。
0694デフォルトの名無しさん2008/03/26(水) 23:43:48
(ヌル文字分引いた)259文字って結構長い。
第一エクスプローラもそれを超えるパスをまともに扱えない。
それに俺は大したものを作っているわけではないので、
だからGetOpenFileNameとかだとMAX_PATH固定で作っている。
GetSystemDirectoryみたいに予め必要なバッファの長さを問い合わせられるときには、
問い合わせて必要な分だけ確保するけど。
06956852008/03/27(木) 00:04:49
>>691
何故か解決しました。
拡張子がcだったのを、cppに変えたらコンパイル出来ました。
C++じゃないとコンパイル出来ないってことだったのでしょうか。

とりあえずの、メッセージすべて
bcc32 -W treevw01.c
Borland C++ 5.5.1 for Win32 Copyright (c) 1993, 2000 Borland
treevw01.c:
警告 W8057 treevw01.c 29: パラメータ 'hPrevInst' は一度も使用されない(関数 WinMain )
警告 W8057 treevw01.c 29: パラメータ 'lpsCmdLine' は一度も使用されない(関数 WinMain )
エラー E2451 treevw01.c 132: 未定義のシンボル item(関数 AddItem )
エラー E2451 treevw01.c 134: 未定義のシンボル item(関数 AddItem )
エラー E2451 treevw01.c 137: 未定義のシンボル item(関数 AddItem )
エラー E2451 treevw01.c 140: 未定義のシンボル item(関数 AddItem )
エラー E2451 treevw01.c 144: 未定義のシンボル item(関数 AddItem )
エラー E2451 treevw01.c 146: 未定義のシンボル item(関数 AddItem )
エラー E2451 treevw01.c 149: 未定義のシンボル item(関数 AddItem )
警告 W8019 treevw01.c 150: コードは効果を持たない(関数 AddItem )
エラー E2451 treevw01.c 152: 未定義のシンボル item(関数 AddItem )
警告 W8019 treevw01.c 153: コードは効果を持たない(関数 AddItem )
エラー E2451 treevw01.c 155: 未定義のシンボル item(関数 AddItem )
警告 W8019 treevw01.c 156: コードは効果を持たない(関数 AddItem )
エラー E2451 treevw01.c 158: 未定義のシンボル item(関数 AddItem )
警告 W8019 treevw01.c 159: コードは効果を持たない(関数 AddItem )
警告 W8004 treevw01.c 161: 'hChild2' に代入した値は使われていない(関数 AddItem )
*** 10 errors in Compile ***
0696デフォルトの名無しさん2008/03/27(木) 00:11:39
構造体のコンストラクタとかもC++じゃないとプリプロセッサで定義されないよ
■ このスレッドは過去ログ倉庫に格納されています