トップページ⇒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/
0558デフォルトの名無しさん2008/03/22(土) 18:26:49
まずスパイで解析しる
0559デフォルトの名無しさん2008/03/22(土) 18:27:18
すこし調べてみたら希望の動作をすることが出来ました。
お騒がせすみません。どうもありがとうございました。
0560デフォルトの名無しさん2008/03/22(土) 19:48:20
>>542
>pszBufferにNULLを渡すと落ちる。
Win32APIでもNULLを渡すと落ちる関数があるから別に関数側でやらなくてもよくね?
0561デフォルトの名無しさん2008/03/22(土) 19:51:53
APIってどうやって作るのかな?
やっぱWindowsを作った男たちでないと
作れないのかな。
FindWindowと同じの作れと言われても仕組みがわからんし
0562デフォルトの名無しさん2008/03/22(土) 19:54:15
FindWindowならEnumWindowsやGetWindowでつくれるんでない?
0563デフォルトの名無しさん2008/03/22(土) 19:56:15
逆汗してコード調べれば何してるかはわかるよ
たぶん途中でカーネルオブジェクトのハンドルテーブル見に行ってるんだろうけど
それと同じコード書けば良いだけ

単にAPI作りたいってんならDLL吐けばヨロシ
0564デフォルトの名無しさん2008/03/22(土) 20:16:25
なんでWin32APIと同じ関数を作る必要があるんだ?
バグがあって仕方なく、というなら分からなくはないが
0565デフォルトの名無しさん2008/03/22(土) 20:19:32
バグがあるんじゃね。脳に。
0566デフォルトの名無しさん2008/03/22(土) 20:20:32
それは湧いているという
0567デフォルトの名無しさん2008/03/22(土) 20:50:19
ロードしたDLLってプロセスごとにメモリ上に展開されるの?
それとも同じDLLロードしたら同じ物理メモリを参照するのかな
0568デフォルトの名無しさん2008/03/22(土) 20:52:59
される
0569デフォルトの名無しさん2008/03/22(土) 20:54:31
Copy on write
0570デフォルトの名無しさん2008/03/22(土) 20:56:25
初期は共有してたけど、
色々問題があったからプロセスごとに展開するように変更されたと記憶している。
0571デフォルトの名無しさん2008/03/22(土) 20:56:48
されるけどそういう考え方はしない方がいい
0572デフォルトの名無しさん2008/03/22(土) 20:59:39
Win95 あたりは共有されてなかったっけ?
0573デフォルトの名無しさん2008/03/22(土) 21:13:17
NTカーネルが分離で95カーネルは共有

Meがどうだったかはしらんけど98SEは共有
0574デフォルトの名無しさん2008/03/22(土) 21:17:13
じゃあDLLを使ってデータの共有はできひんのか
0575デフォルトの名無しさん2008/03/22(土) 21:24:02
ファイルマッピングオブジェクトでも使え
他にもWM_COPYDATA、グローバルアトム、レジストリなど
0576デフォルトの名無しさん2008/03/22(土) 21:24:05
FMOでおk
0577デフォルトの名無しさん2008/03/22(土) 21:24:06
OSが上手くやってくれるから気にすんな
0578デフォルトの名無しさん2008/03/22(土) 23:12:39
#pragma data_seg的な

DLL 内のデータをアプリケーションまたはほかの DLL と共有する方法
http://msdn2.microsoft.com/ja-jp/library/h90dkhs0(VS.80).aspx
0579デフォルトの名無しさん2008/03/22(土) 23:50:49
#pragma data_seg (".myseg")
int i = 0;
char a[32]n = "hello world";
#pragma data_seg()


char a[32]n ←この n の意味がわからないんだけど
0580デフォルトの名無しさん2008/03/23(日) 01:26:05
>>579
試せば分かるが n を書かないと共有されない。
0581デフォルトの名無しさん2008/03/23(日) 01:56:26
>>580
C言語的にはどんな意味があんの?
0582デフォルトの名無しさん2008/03/23(日) 02:24:00
誤植
0583デフォルトの名無しさん2008/03/23(日) 02:32:50
MS の独自拡張としか言えない
0584デフォルトの名無しさん2008/03/23(日) 02:43:27
エイプリルフールネタとしては秀逸な気がする。
0585デフォルトの名無しさん2008/03/23(日) 02:46:03
どっちなのー
0586デフォルトの名無しさん2008/03/23(日) 09:25:47
どこ探しても見つからないのでここで質問

SDKでレジストリを監視する方法とディレクトリツリー、またはファイルを監視して変更(名前の変更や内容の変更)を禁止する方法の2つを探しています
後者は変更を通知するAPIならあったんだけど変更をさせないで通知する方法とかないんかなと
どなたかわかる方いましたらよろしくお願いします
0587デフォルトの名無しさん2008/03/23(日) 09:28:26
>>586
アクセス権つければ禁止できるんじゃないかな。
0588デフォルトの名無しさん2008/03/23(日) 09:29:23
そういうときにNTFSのアクセス制御というものがあるんじゃない?
0589デフォルトの名無しさん2008/03/23(日) 09:47:18
>>587
読み取り専用にするって事??別に読み取り専用にして他のプロセスが属性変更したら再度読み取り専用にするって感じでもいいんだけど、ほぼ完全にアクセスを遮断してみたい
>>588
今調べてみたけどよくわからんから、ちょっと試してみます
ありがとうww
0590デフォルトの名無しさん2008/03/23(日) 10:20:14
完全にアクセスを遮断、なんてサービスかドライバを作らないと無理だろう
ACLを書き換えてもExplorerやRegEditで弄れるし
0591デフォルトの名無しさん2008/03/23(日) 10:25:11
なんかマルウェアくさい
0592デフォルトの名無しさん2008/03/23(日) 10:43:05
そりゃAdministratorsかCREATOR_OWNER(だっけ)使えば弄れるけどさ
0593デフォルトの名無しさん2008/03/23(日) 11:35:30
APIフックでできへんのか
0594デフォルトの名無しさん2008/03/23(日) 11:57:50
>>591
万が一質問者がマルウェアの類を作っているとしたら、この手の質問に回答すると共犯とか幇助って事になるのかな
0595デフォルトの名無しさん2008/03/23(日) 12:52:07
犯罪行為だとして、フツーあの質問からは予知できないから
共犯関係は成り立たないはず。
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
もうまるっきりスパイウェアの王道行ってますね

むしろ逝ってるか
■ このスレッドは過去ログ倉庫に格納されています