ページ 11

KeyLogger作成

Posted: 2012年12月23日(日) 15:53
by iru
現在Windows7proにて動作するKeyLoggerを作成しようとしています。

利用目的はWindowsのログ収集ソフト作成の一環で、すでにタスクとサービスのログ取得ソフトは出来上がっています。
次にフォルダ移動やKeyLogger作成に取り掛かっているのですが一向に進みません。
http://katahiromz.web.fc2.com/mzkeylog/index.html
に乗っているC言語のプログラムを読んでいるのですが、どこからKey入力を取得しているのかわからず進まない状態です。

ログはTXTかCSVで保存し、言語はC++でやろうと思っています。
現在かける言語は
C,Java,LISP,bat,SQL,PHPのみです。

APIやDLLの知識はまだまだなのでお手柔らかにご説明のほどよろしくお願いいたします。

Re: KeyLogger作成

Posted: 2012年12月23日(日) 16:11
by softya(ソフト屋)
メッセージフックでキーのメッセージ(操作情報)を取得しています。
「第160章」
http://www.kumei.ne.jp/c_lang/sdk2/sdk_160.htm
こう言うことをするためにもWindowsAPIの勉強もされたほうが良いと思いますよ。

Re: KeyLogger作成

Posted: 2012年12月23日(日) 16:36
by iru
ありがとうございます。
APIフックはまだやったことがないので是非勉強していきたいと思います。
お早い回答ありがとうございます。
ほかにAPIについてオススメのサイトはございませんか?
探していても難解なサイトしかでてこないものでして

Re: KeyLogger作成

Posted: 2012年12月23日(日) 16:43
by softya(ソフト屋)
まぁ、WindowsAPIはややこしいですが、APIのなにを勉強したいかによっても紹介サイトも変わります。万能なのは見た事無いです。
ウィンドウを作りたいのか、プロセス周りなのか、などなど。
ただ、ソースコードがあるのに解析が出来ていないのでデバッガやgrepなどの検索での解析力を身につけたほうが良いですよ。

Re: KeyLogger作成

Posted: 2012年12月24日(月) 12:13
by iru
ありがとうございます。
winnet.dllをフックしたり、ファイルの移動等を読み込むAPIを勉強したいです。
ソースコード解析はヘッダーファイルについてがよくわからなくなっています。
Javaでいうスーパークラスみたいなものだと思っているのですがまだ理解が浅いところだと思います。
デバッガやgrepなどの検索での解析力を身につけるようがんばります。

Re: KeyLogger作成

Posted: 2012年12月24日(月) 12:21
by softya(ソフト屋)
ヘッダーなどWin32APIのライブラリの情報はMSDNで検索しましょう。
Win32APIの関数の名前で検索すれば解説のところに必ず必要とするヘッダファイルが書いてあります。

例えばフック関数
「SetWindowsHookEx 関数」
http://msdn.microsoft.com/ja-jp/library/cc430103.aspx
ところどころ訳がバグっているので英語も見た方が良いですけどね。
「SetWindowsHookEx function (Windows)」
http://msdn.microsoft.com/en-us/library ... s.85).aspx

Re: KeyLogger作成

Posted: 2012年12月25日(火) 15:52
by iru
GetAsyncKeyStateを利用したグローバルフックプログラム(C++)かけました!!
ありがとうございます

APIに対する知識がかなり不足していました。
とりあえずアルファベットと数字を読み込むだけですが^^;

まだ、日本語を入力してもアルファベットのままなのでこれから変換できるようにして実用化しようと思います。
また、記号などは読み込み方がわからないので文字コードを参考にすればできるのかと思っている次第です。
入力例:オワタ \(^o^)/
記録:owata

Re: KeyLogger作成

Posted: 2012年12月25日(火) 16:02
by iru
さきほどの投稿はミスで、
>GetAsyncKeyStateを利用したグローバルフックプログラム(C++)かけました!!
ではなく、
GetAsyncKeyStateを利用したフックプログラム(C++)かけました!!

です。

グローバルフックはまだやっておりません。
DLL作成がわからないためです。