[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 08/31 01:22 / Filesize : 264 KB / Number-of Response : 1016
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

Win32API質問箱 Build123



1 名前:デフォルトの名無しさん mailto:sageteoff [2016/10/08(土) 12:33:02.29 ID:0jaJMPXG.net]
Win32APIについての質問はこちらへどうぞ。

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

■過去スレ
Win32API質問箱 Build122
echo.2ch.net/test/read.cgi/tech/1451988219/

237 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 08:27:00.87 ID:GvPbDV6s.net]
どこがWin32APIの話なんだよ、ってことになるよなあ。
長々と議論に付き合ってた方々、お疲れ様。

238 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 09:07:26.76 ID:0vMtCyDD.net]
粒度の平均化してるとか言って全く出来てないし
精度の悪い数字を正しいと断定してるし
しかも間違ってる
何度も指摘してるのに正そうとしない
全部ダメでしょ。

239 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 09:21:55.13 ID:+ocxhyeH.net]
>>211みたいな事言ってるからお察し

240 名前:185 [2016/12/02(金) 10:43:58.72 ID:H1x5ETqP.net]
報告書は突っ返されたので、まだまだ続きそうです。

まず、大大大前提を確認したいのですが、
GetThreadTimes()で取得するCPU時間は
スレッドがCPUをとっている時間で、
一つのスレッドが同時に複数のコアを占有することはないので、
(精度云々ではなく定義上は)スレッドのCPU時間は実時間以下である(以下のペースで進む)。

これは、大前提としてあってますよね?

241 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 10:47:04.34 ID:rEQGNTwO.net]
なんだ学校の課題だったのか

242 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 11:24:10.48 ID:EDk65fqO.net]
質問者より賢い人はいないのか?
これでは、質問箱が成り立たないなw

243 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 11:27:08.99 ID:+ocxhyeH.net]
>>239
そうだな
じゃあ頼んだ

244 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 11:48:56.99 ID:2Jj/uLxs.net]
だから再現できるサンプルをサクッと上げろよ。
だれも実物や社外ライブラリまで上げろといってないんだわ。
コーディングやデバッグ能力以外の能力が大きく欠如してるだろ。

245 名前:185 [2016/12/02(金) 11:58:27.27 ID:H1x5ETqP.net]
10回やってみました。
つまり、>>226のコードでAとBだけでなく、AからJまでやってみました。

A
timeGetTime()による時間:7msec
カーネルモード時間:1092usec
ユーザモード時間:14133usec
B
timeGetTime()による時間:7msec
カーネルモード時間:249usec
ユーザモード時間:343usec
C
timeGetTime()による時間:7msec
カーネルモード時間:936usec
ユーザモード時間:9141usec
D
timeGetTime()による時間:7msec
カーネルモード時間:1372usec
ユーザモード時間:4180usec
E
timeGetTime()による時間:7msec
カーネルモード時間:561usec
ユーザモード時間:6583usec
F
timeGetTime()による時間:7msec
カーネルモード時間:717usec
ユーザモード時間:7737usec
G
timeGetTime()による時間:7msec
カーネルモード時間:468usec
ユーザモード時間:4773usec



246 名前:185 [2016/12/02(金) 11:58:51.26 ID:H1x5ETqP.net]
H
timeGetTime()による時間:7msec
カーネルモード時間:655usec
ユーザモード時間:9672usec
I
timeGetTime()による時間:7msec
カーネルモード時間:218usec
ユーザモード時間:4149usec
J
timeGetTime()による時間:7msec
カーネルモード時間:405usec
ユーザモード時間:10795usec
全体(A〜J)
timeGetTime()による時間:74msec
カーネルモード時間:6645usec
ユーザモード時間:71510usec

247 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 12:10:39.48 ID:fHtgnGrJ.net]
仕事が出来ないから、タダで手取り足取り協力してくれってか

248 名前:185 [2016/12/02(金) 13:02:57.14 ID:H1x5ETqP.net]
本件、私としては以下の結論に至りました。

○timeGetTime()は信頼できる。
○GetThreadTime()は信用できない
 (ティック間切り上げ的な傾向あり。理由不明。)。
○timeGetTime()を基準に>>212のような方法をとるほかない。

もう一度GetThreadTime()はどうしても信用ならず、
他に有用な代替手段もないため、
>>212の方法が限界である旨を報告することにします。

何人かの真剣に助言して下さった方々、
本当にありがとうございました。

249 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 13:27:24.15 ID:bjzW9gj9.net]
>>228
ドラスレの木屋さんも、timeGetTimeのこと調べてたな

250 名前:デフォルトの名無しさん [2016/12/02(金) 14:04:58.11 ID:ELslSS33.net]
timeGetTimeやめてQueryPerformanceCounterを使ったら?

251 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 14:15:28.80 ID:ocojT6FV.net]
内容のアホさからして
オバケじゃないことは確実

252 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 14:17:49.26 ID:6Vgvdyao.net]
あらかじめtimeBeginPeriodも呼んでおかないと精度変わる

253 名前:デフォルトの名無しさん [2016/12/02(金) 14:21:54.01 ID:ELslSS33.net]
静的領域に書き込みすると、コピーオンライトが発生し、
動的領域を確保すると、最初とおよび足りない時はOSで確保と初期化があると思う
それが1回目が遅い理由な気がする

254 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 14:30:05.73 ID:LG3SGwVv.net]
質問者はアレだが
それはそうと、どうでも良いことをいうのはやめたほうが良いだろう
実時間とスレッド時間が食い違うって話だから
1回目が遅いとかそういう話ではない

255 名前:デフォルトの名無しさん [2016/12/02(金) 17:49:56.46 ID:EDk65fqO.net]
結局>>237すら教えてあげなかったんだな。



256 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 18:15:57.54 ID:2Jj/uLxs.net]
質問者のアプローチや解釈が正しいのかが分からないのに、憶測で質問者回答者とも上から目線で
やりあってる状況にまず疑問を抱いた方がいい。
そしてそれら以下の書き込みしかできないID:EDk65fqOはクソ中のクソだと認識した方がいい。

257 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 22:19:54.42 ID:rH7Be8WN.net]
最初からGetThreadTimesは約1/64秒の精度しか無いって分かっていたはずなのにね。
平均とっても意味がないってことが改めて分かったことだけが成果か。

258 名前:デフォルトの名無しさん mailto:sage [2016/12/02(金) 23:51:36.19 ID:DveiiCO5.net]
>>247とか>>249とか、全然関係ないことじゃん。

259 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 10:51:33.05 ID:YdYTZThj.net]
OSがどうやってカーネルモードやユーザーモードの時間を計測しているのか想像できないのかねえ
オーバーヘッドが高いやり方は採用できないと分かりそうなもんだが

260 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 11:08:29.93 ID:JHScEEfz.net]
触発されてGetThreadTimes=NtQueryInformationThread調べたんだけど”スレッド”の中身が興味深かった
質問者糞だから詳細は書かないがw

261 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 20:00:37.46 ID:6jC0i+kE.net]
俺もほんとはGetThreadTimesの特性知ってるけど、
質問者が土下座しないと教えてやらねぇw

262 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 20:35:28.76 ID:xp0AwakX.net]
GO

263 名前:デフォルトの名無しさん mailto:sage [2016/12/03(土) 20:36:25.77 ID:xp0AwakX.net]
the old new thing

264 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 11:31:12.68 ID:8oIVw/6i.net]
Windows10ってCOMポート番号は最大何番までなんでしょうか?

265 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 11:37:47.55 ID:NE4G8kum.net]
com1〜com256まで



266 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 12:08:20.93 ID:HYzaL+1F.net]
昔、レジストリから認識してるポート名を取得するサンプルあったな。
MSDNだったかな

267 名前:デフォルトの名無しさん mailto:sage [2016/12/04(日) 12:22:02.41 ID:SxgHpTya.net]
select欲しい

268 名前:261 mailto:sage [2016/12/04(日) 16:50:15.73 ID:8oIVw/6i.net]
>>262
>>263
ありがとうございました!

269 名前:デフォルトの名無しさん [2016/12/09(金) 00:46:48.41 ID:WzSsU1Dc.net]
WM_CHARでWPARAMに入ってくるコード一覧どっかない?
普通のキーならそのままだが、Back SpaceとかCtrl+Vとかのコードが知りたい。

270 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/12/09(金) 01:04:26.73 ID:IirsZJ4E.net]
>>266
キーが押されてるかどうかの確認は、WM_KEYDOWNを使う。
「仮想キーコード一覧」で検索。
ただし、Ctrl,Shift,Altはmodifiersと呼ばれ、特別扱い。CtrlとShiftは
GetKeyState(VK_SHIFT) < 0
GetKeyState(VK_CONTROL) < 0
で確認でき、AltはWM_NCKEYDOWNで確認できる。

271 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/12/09(金) 01:07:15.74 ID:IirsZJ4E.net]
訂正。
× AltはWM_NCKEYDOWNで確認できる。
○ AltはWM_SYSKEYDOWNで確認できる。

272 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 20:09:14.26 ID:UWkfYPy/.net]
プログラム実行中のログテキストをエディットコントロールに出力しようと思ったのですが、
32KB制限があり実用できないことが分かりました。

リッチエディットではそのような制限はないようなので、
特に問題なければこれでいこうかと考えているのですが、
他に良い方法があればご教示ください。

273 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 20:14:54.27 ID:cpVlzpwx.net]
>>269
つ AllocConsole

274 名前:デフォルトの名無しさん mailto:sage [2016/12/12(月) 20:17:01.65 ID:dREO/TsY.net]
EM_SETLIMITTEXT

275 名前:269 mailto:sage [2016/12/12(月) 20:41:35.46 ID:UWkfYPy/.net]
>>270
ありがとうございます。
今回は検索機能とかも付けたいので、エディット系コントロールを利用することにします。

>>271
ありがとうございます。
これで通常のエディットコントロールで32KB以上を扱えます。
助かりました!



276 名前:デフォルトの名無しさん mailto:sage [2016/12/13(火) 09:08:32.63 ID:GC6m09wL.net]
>>272
検索が必要ならリッチエディット

277 名前:269 mailto:sage [2016/12/13(火) 21:50:24.46 ID:EhPW3kvE.net]
>>273
リッチエディットで実装を進めていて、あとは検索機能だけ、というところまで作れたんですが、
まさかリッチエディット自体に検索機能があったとは・・・!
ここでお聞きしてよかったです。
ありがとうございました!

278 名前:デフォルトの名無しさん [2016/12/19(月) 05:43:50.59 ID:qsdLnaaR.net]
paint.netのツールウィンドウみたいなやつってどうやって表示するの?
ウィンドウスタイルを色々試してみたけどあれと同じようなウィンドウが出ない。

279 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 07:17:38.33 ID:jpBVYjvn.net]
拡張ウィンドウスタイル使え。

280 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 23:46:04.62 ID:qsdLnaaR.net]
>>276
ありがとう。
拡張スタイル使ってもやっぱり無理だ。
思い通りに動かない。
数年前からずっと謎なんだよなこれ。
動作上問題が少ないから我慢してたんだけども。

それっぽいウインドウは出るものの、paint.netのように全ウインドウがアクティブ状態にならない。
【参考画像】news.softpedia.com/images/extra/WINDOWS3/large/paint.net/paint.net%20interface.jpg
paint.netを実際に使ってるとよく分かるんだが、
参考画像のようにメインのウインドウもツール用のウインドウも常にアクティブな状態が維持される。
しかし、拡張スタイルでWS_EX_TOOLWINDOWを指定してもアクティブなウインドウは常に1つ。
メインのウインドウをクリックすればツール用ウインドウは非アクティブになり、
ツール用ウインドウをクリックすればメインウインドウは非アクティブになる。
非常に気持ちが悪い。
確かにWS_EX_TOOLWINDOWを利用すればメインウインドウより常に前面になり、
タスクバーにも表示されず、非常にpaint.netのツールウインドウと似たような挙動になるが、
このアクティブ/非アクティブに関しては挙動が全く違う。
ちなみにアクティブ/非アクティブの判断はタイトルバーの色で判断している。
さらに参考画像のツールウインドウのような右上の正方形の閉じるボタンの表示のさせかたも分からない。

・・・と思ったら出てきたわ。
www.catch22.net/tuts/docking-toolbars-part-1

やっと出てきた。
WS_EX_TOOLWINDOWで検索してもノイズが多くてなかなか出てこなかった。
(ノイズ = MSDNのウインドウスタイルの一覧をコピペしただけのゴミサイト)
ノイズゴミサイトマジで迷惑。
嫌がらせでしかない。

281 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 23:50:28.70 ID:qsdLnaaR.net]
結局今回のカギはGoogle画像検索。
ふと「サンプル載せてるサイトの半数くらいはスクショも載せてるのではないか」と思い、
例の拡張スタイルで画像検索。
俺がやりたいのと同じ状況になってる画像を見つけて開いたらビンゴ。
画像検索なんて今まで思いもよらなかったよ。
文字検索するとノイズゴミサイトばかり出てきてどうにもならなかった。

282 名前:デフォルトの名無しさん mailto:sage [2016/12/19(月) 23:52:55.75 ID:qsdLnaaR.net]
MSDNのコピペサイト作ってるゴミ共は早く死ねばいいのにな。
役に立たないどころか大迷惑。
最近流行りの質の低いキュレーションサイト()と同レベル。

283 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 00:02:24.24 ID:tFkwVopE.net]
>>275の意味がまったくわからなkったわww

284 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 06:12:08.47 ID:ADGhogoA.net]
google personal blocklistでかたっぱしからブロックしてる
xxxユーザー会もノイズ源だね

285 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 09:20:12.73 ID:F0IdvAwo.net]
顔写真ブロックは必須
おまえらキモ面なのに何故あんな目立つ場所に配置すんだ



286 名前:デフォルトの名無しさん [2016/12/20(火) 12:55:43.49 ID:lAXr92yw.net]
>>278
おめ
興奮は伝わったが
もちつけ

287 名前:デフォルトの名無しさん [2016/12/20(火) 13:00:10.44 ID:lAXr92yw.net]
>>279
はてぶのことですねわかります

288 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 16:58:42.80 ID:WXAyO/1W.net]
>>277
そういうときはいっそそのソフト解析したら?
Paint.NETなら簡単に逆コンパイルできるし、Spy++とか使うだけでもある程度わかる

289 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 17:33:10.55 ID:Sq2CbWR0.net]
OSSのソフトを逆コンパイルするの?

290 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 17:44:58.45 ID:F0IdvAwo.net]
今はちがうだろ

291 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 18:45:47.25 ID:lAXr92yw.net]
新手のアフィか

292 名前:デフォルトの名無しさん mailto:sage [2016/12/20(火) 19:12:59.79 ID:F0IdvAwo.net]
アフィだったのかよ。新手すぎてアフィの影すら俺には見えん

293 名前:デフォルトの名無しさん [2016/12/20(火) 22:05:37.09 ID:JPbALvOm.net]
MSDNのコピペサイト全般のことだろう>アフィ

294 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 01:04:08.51 ID:HCdO29Rc.net]
質問
writefile関数を使用してint型で、データ保存ができません。同じ悩み持ったことある人いらっしゃいませんか。

295 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 01:09:18.76 ID:GvkBvmPc.net]
int Data = 123456;;
DWORD writeLen;
WriteFile(hFile,&Data,sizeof(Data),&writeLen,NULL);

こういうことだろ?



296 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 01:10:40.03 ID:kLgQ2k1v.net]
変数のアドレスをwritefileにわたさないとだめ。数値そのままわたしてるんでしょ

297 名前:デフォルトの名無しさん mailto:sage [2016/12/21(水) 21:06:02.77 ID:HCdO29Rc.net]
>>292
>>293

ありがとうございます。引数としてアドレスを渡さないといけないのですね。試してみます!

298 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 08:34:56.43 ID:tk15BRot.net]
msdn 関数名
でググる癖をつけよう

299 名前:デフォルトの名無しさん [2016/12/22(木) 12:50:31.88 ID:y+mdv7YD.net]
-jp もお忘れなく

300 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 13:04:48.47 ID:hYDEOt1H.net]
どうしてこういう訳そのままずっと放置してんだろうな

> 関数が失敗すると、0 が返ります。拡張エラー情報を取得するには、 関数を使います。
> If the function fails, the return value is zero. To get extended error information, call GetLastError.

301 名前:デフォルトの名無しさん [2016/12/22(木) 18:24:16.26 ID:zHNnrJEM.net]
>>296
なんで付けるの?
誤訳トラップにハマりたいの?

俺は誤訳トラップどころか英語版と日本語版で引数違うトラップにハマったことがあるけども。
日本語版を穴が空くほど見て確認したけど何日経ってもコンパイルが通らず、
何の気なしに英語版開いたら引数の数が違って、
英語版見ながら修正したら一発でコンパイル通ったわ。

302 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 18:39:46.34 ID:hYDEOt1H.net]
>>298
+jp じゃなくて -jp

303 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 18:47:30.93 ID:YVr1LIe6.net]
>>298
今時どんな開発環境使ってるんだよ w
VisualStudio なら関数名 + '(' を入力した時点でプロトタイプが表示されるだろ

304 名前:デフォルトの名無しさん [2016/12/22(木) 18:55:29.30 ID:zHNnrJEM.net]
>>299
ごめんなさいwww

>>300
その当時はVector辺りで見つけてきた適当なテキストエディタとBCCだったよ。

305 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 19:02:14.56 ID:tk15BRot.net]
>>301
C言語を始めよう!



306 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 22:46:25.55 ID:+nnZ9oR0.net]
レポートタイプのリストビューをクリックしたら、その行のデータに対応する内容を
別の窓に詳細表示するというような動作をしているのですが、クリック時は NM_CLICK
を処理してクリックされた行を nmLv->iItem メンバを参照して知ることができます。

オペレーションとしてはマウスだけではなくキーボード操作でリストビューの選択行を
次々と移動させることも多いので、LVN_KEYDOWN も処理して上記と同様の動作を
させたいのですが、LVN_KEYDOWN 処理時は nmLv->iItem の中身が不定です。

LVN_KEYDOWN 処理時に ListView_GetNextItem で LVNI_ALL | LVNI_SELECTED を
指定して選択行を調べると、キーボードを押して選択行を変更する前の選択行が
得られてしまいます。

この辺は、一旦メッセージループを回すなどしてから現在の選択行を得ること自体は
可能と言

307 名前:ヲば可能なのですが、ここまでしないとダメなのかという疑問があります。

LVN_KEYDOWN 処理時、もしくはキーボード操作で選択行を変更した際、簡潔に
現在の選択行を得る方法はありますでしょうか?
[]
[ここ壊れてます]

308 名前:デフォルトの名無しさん mailto:sage [2016/12/22(木) 23:02:45.31 ID:hYDEOt1H.net]
LVN_ITEMCHANGED

309 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 14:54:42.80 ID:qGVMhgWM.net]
質問です。

win10 x64

windows がキャッシュしてる dns の名前解決結果の一部を書き換えることは可能ですか?
または、名前解決の最中に結果をいじるようなフックは出来ませんか?

例えば、example.com の ttl を長めに書き換える、とかです。

よろしくお願いします。

310 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/12/23(金) 15:00:49.80 ID:3xdKhrkh.net]
>>305
デバッグ特権があれば、別のプロセスのプロセスメモリーにアクセスすることも可能。

311 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 15:29:20.66 ID:Kb3OsEli.net]
対象アプリ限られてくるけどAPIフックすりゃ簡単に結果改竄はできるな
キャッシュ改竄はフィルタードライバあてる面倒なのしか思いつかない

312 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 15:36:22.73 ID:5J5pLbD7.net]
以下の処理を実装したく、助言をお願いします。

ダブルクリックや右クリ開くなどで、ファイルを開く際に
関連付けの有無に関わらず、そのファイルのパスを取得したい。

ShellProcあたりのフックかと考えましたが、パスをどうやって
調べるのか分かりません。

どうぞ宜しくお願いします。

313 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 15:54:43.63 ID:Kb3OsEli.net]
目的次第だがShellProcは違うんじゃないか
explorer.exeに対してShellExecuteあたりのフックか?

314 名前:デフォルトの名無しさん [2016/12/23(金) 15:59:09.98 ID:5tPECy1o.net]
>>305
proxy arp

315 名前:305 mailto:sage [2016/12/23(金) 16:14:48.81 ID:sqLqmtwC.net]
>>305, 306

レスありがとうございます。
DLL注入やアタッチのよるDNS改ざんは確かにできそうですね。
検討してみます。

ちなみに、プロセスは基本的には chrome です。


>>307

できればフィルタードライバの設計を、おおざっぱでもいいので教えて頂けませんか?
(ドライバのコーディングは、ほぼ経験が無く、ネットワークそのものの知識はあるものの、windows内部での扱いやAPIはまったく知識が無いです)

ちなみに、VPNによる仮想アダプタと、複数のネットワークカード(アダプタ)があるのですが、それでも対応可能でしょうか?
(直感的には、特定アダプタに対するフィルターだと、アダプタの優先度に左右されそう。アダプタ依存にはしたくないです)



316 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 16:17:28.56 ID:gpKoKuI/.net]
>>304
解決しました。
どうもありがとうございました。

317 名前:デフォルトの名無しさん mailto:sage [2016/12/23(金) 16:45:40.87 ID:Kb3OsEli.net]
>>311
WDKサンプルのこのあたりが参考になるのかな
NDIS 6.0 Filter Driver
Windows Filtering Platform Packet Modification Sample

318 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 07:41:05.18 ID:AXa0yhpU.net]
>>313
ありがとうございます。参考にさせて頂きます。

319 名前:デフォルトの名無しさん mailto:sage [2016/12/24(土) 20:58:07.38 ID:3KzFEnUI.net]
>>314
きっとおまえがやりたいことはchrome拡張でonbeforerequestいじれば解決する・・・

320 名前:デフォルトの名無しさん mailto:sage [2016/12/25(日) 22:10:16.80 ID:n7UGfNqJ.net]
iniファイルから文字列を読み込むGetPrivateProfileString()なんですが、
セミコロン以下のコメント文まで読み込んでしまいます。

コメント文は読み込まないようにできないでしょうか?
それとも自分でコメント文を削除するしかないでしょうか?

321 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 00:55:07.08 ID:cwwyPIk6.net]
同一行にコメントはwindows的にアウト

322 名前:316 mailto:sage [2016/12/26(月) 01:06:56.36 ID:CvSBnmkv.net]
>>317
なるほど!
ありがとうございました!

323 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 08:40:18.91 ID:I+2Q+LPS.net]
コメントを勘違いしてるんじゃね?

324 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 21:20:51.81 ID:SUV7MStA.net]
セミコロン付けたらコメントになるって言うけどよー
あれ実際は特別扱いなんかしてなくて、例えば
;abc=def
にしたら「;abc」って名前になるから「abc」に一致しなくなるだけじゃないかと疑ってる

325 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 21:34:05.02 ID:sfc5Nc1U.net]
じゃあ「;abc」で試してみればよくね?



326 名前:デフォルトの名無しさん mailto:sage [2016/12/26(月) 22:12:12.96 ID:ffv778mh.net]
セミコロンは行頭にある時だけを特別扱いしているみたいだ

327 名前:316 mailto:sage [2016/12/29(木) 11:37:53.16 ID:E1SACFDz.net]
使ってるエディタが.iniの同一行コメントもコメント色に変換してくれるので、誤解してしまいました。
気を付けます。

328 名前:デフォルトの名無しさん mailto:age [2016/12/30(金) 13:34:08.58 ID:qor2kyvR.net]
winsockの関数フックしたいんですけどインポートアドレステーブル上の
ws2_32.dllの関数だけ取得できません。どうしたら?

ttp://up2.cache.kouploader.jp/koups19399.txt
このコードは
自身のロードしたDLLの関数名を列挙するだけのシンプルなものですが、
やはりwinsockの関数名だけ取得できないです。

ImageDirectoryEntryToData()の第3引数を
IMAGE_DIRECTORY_ENTRY_IATや
IMAGE_DIRECTORY_ENTRY_DELAY_IMPORTに変えても取得できませんでした(そもそも関数がnull返してくる

329 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 13:46:15.25 ID:ymKNG2iV.net]
WSAStartupは成功してんの?

330 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 13:47:50.05 ID:LToUj4mC.net]
名無しだからcontinueですっ飛ばしてんだろ

331 名前:片山博文MZ ◆T6xkBnTXz7B0 mailto:sage [2016/12/30(金) 14:07:12.37 ID:nsN9rWIv.net]
GetLastError()を調べてみよ。

332 名前:324 mailto:sage [2016/12/30(金) 14:41:23.26 ID:qor2kyvR.net]
>>325
成功しているようです

>>326
関数名が名無しということですか?

>>327
どのタイミングでですか?


if(IMAGE_SNAP_BY_ORDINAL(pThunkData->u1.Ordinal))
winsockの関数だけこのif文が真になります。

ttp://i.imgur.com/jWNmlgm.png

デバッガでIAT覗くと、正しい関数名ではないが、2つの関数らしきもの?が表示されていて
これがWSAStartup()/WSACleanup()に対応するものだと思われます

他のDLLでは関数名が正しく表示されます。

これが、関数名が名無しということならどう対処するのかご教示頂きたいです。

海外のフォーラムの似たような質問では
ImageDirectoryEntryToData()の第3引数を
IMAGE_DIRECTORY_ENTRY_DELAY_IMPORTに変えて成功したと書かれていたんですけどね、成功しませんでした。

333 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 15:38:47.57 ID:LToUj4mC.net]
>>328
関数名は名前あるけど、インポートが名無し

334 名前:デフォルトの名無しさん [2016/12/30(金) 15:39:26.81 ID:Q3tvxZdg.net]
マクロというオチ

335 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 15:40:45.50 ID:LToUj4mC.net]
対処は名前比較じゃなくてアドレス比較



336 名前:デフォルトの名無しさん mailto:sage [2016/12/30(金) 19:08:50.21 ID:qor2kyvR.net]
>>331
ヒントありがとうございました。解決しました

PIMAGE_THUNK_DATA pThunkData = (PIMAGE_THUNK_DATA)((PBYTE)hmodCaller + pImportDesc->OriginalFirstThunk);
PIMAGE_THUNK_DATA pRealThunk = (PIMAGE_THUNK_DATA)((PBYTE)hmodCaller + pImportDesc->FirstThunk);
while(pThunkData->u1.Function){
FARPROC pfnImportedFunc = (FARPROC)(pRealThunk->u1.Function);
・・・
上記のIAT上の関数アドレスと、
LoadLibrary()&GetProcAddress()で取得したwinsock関数のアドレス
を比較し一致したものを書き換えたら成功しました。

ttp://blog.techlab-xe.net/wp-content/uploads/2014/05/pe-format-import-func-list.png
これそもそも
文字列比較より
アドレス比較を用いる方法のほうが正確なやりかたですよね?

337 名前:デフォルトの名無しさん [2017/01/21(土) 17:55:42.90 ID:0py1wTB0.net]
CreateProcess関数の質問です。この関数で開いた外部プロセスを、操作しようとしたらハンドルされていない例外エラー発生したことある人いますか?

エラーメッセの
オブジェクト参照がオブジェクトインスタンスに設定されていませんの意味もいまいちわからずです。悩んでいます。

どなたかヒントをくれたら幸いですm(__)m






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<264KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef