2014年2月16日日曜日

uohook5.dllをつかったサンプルを作ってみた

Lazybonesさんのところにおいてあったuohook5.dllのソースを元にしてサンプルを作成してみました。
こちら
VisualStudio2008のプロジェクトです。

uohook5.dllのソース自体をいじりたくはなかったのですが、リンクして実行してみるとDllEntryPoint()のところでmemset()を使用するとSetWindowsHookEx()が成功しなかったので、やむなくそこの箇所をコメントアウト><
ついでに変数宣言の部分も{0}でリセット。
ここの箇所、FL作っている方々はどう対処しているんでしょうか???

あと、パケット送受信部分をスレッドに分けるのがなんかうざったかったのでメッセージループに組み込んでみましたが、UIの反応が鈍くなってしまいました。
UOHOOK_GetEvent()ってイベントがないときにすぐに返してくれるわけではなく一定時間のウェイトがあるのですね。
なんとなくそうした理由もわかるけど、サンプルですしあまりハマりたくはないので深く考えないこととしましたw
ということでUOHOOK_GetEvent()も小変更。

それから、ログアウトの判別(0x01)がsendとrecvで逆のような。。。

それからそれから、クライアントへのパケット送信を試してみたらクラッシュしてしまい、クライアントがクラッシュレポートを送信しやがったので、怖くなって以降の作業に手を出せなくなってしまいましたwww
(だから作りかけです。。。)

結局オリジナルのuohook5.dllからところどころいじりたくなってしまうので、僕は今までどおりのuohook4ベースのdllでやっていくことにしますが、uohook5.dllって多数のuohook5.dll使用アプリを1つの注入でまかなえるようになっていて、よく考えられた設計なんですよね。

9 件のコメント:

  1. 以前コメントしたものです。
    ありがとうございます^^

    どこまで突っ込めるかわかりませんが
    とりあえずVisualStudio2008入れるところからだな。。。笑

    ソース眺めてみます!

    返信削除
  2. VisualStudioは、フリーで入手できるVisualStudioExpressで構わないと思いますよ。
    私は古い開発マシンに入っているものをそのまま利用し続けているだけですし。

    返信削除
  3. ソースをのんびり眺めております・・・

    そして、uoclistをダウンロードしてみましたが起動しません。。。
    どんな感じなのか見てみたかったのですが。


    祖父がなくなったりしてどたばたしているせいでブログの記事全部見れてないのですが、OSとかも含めて対象外の可能性もありますね。

    一応自分の環境だけ書いておきます。
    Windows7 home 64bit

    管理者として実行や、互換性のテストもしてみましたが
    can not execute uo client! you may retry.
    と出てしまいます。

    UO実行してから起動してみたり、逆にしてみたり散々やってはみたのですが。

    返信削除
  4. 申し訳ありません。
    32bit-Windowsでしかテストをしていません。
    実行できる可能性があるとしたら、UOclientを実行した後でattachボタンを押すのですが(機能に制限あり)、64bit環境がないので未検証(この方法でもダメそうですね)。。。
    近々、7の64bitを入れてみようと思います。

    返信削除
  5. お疲れ様です。

    先ほど眠ってたPCに32bitのXPを放り込んでみました。
    時間がなかったので起動確認までですが、確かに32bitXPPRO,SP3で動作していました。
    ちょっとまだなにができるかは試してないですが、無駄にわくわくします笑

    英語ってだけで一瞬身構えますが笑
    週末に色々触ってみたいと思います^^

    返信削除
  6. こんばんは。はじめまして。
    非常に興味がありまして是非使ってみたいのですが、上記の匿名さんと同じように7の64bitの為に使えません。是非とも7の64bit対応Verをお願い致します。

    返信削除
  7. UO、全く忘れてましたwww

    64bit対応は、32bitAPIを使ったコードを削ってビルドすれば動くかもしれんね(´・ω・`)
    それに、アドレスを直に探してコードに書き込むようにしているので、まずは32bitでちゃんと動作するか確認することから始めないとならないなぁ。。。
    すでにどうアドレスを探したのかメモ書きしか残ってない(´・ω・`)

    そもそも、64bitのWin7いれてないよ。OSイメージとコードは持っているので、余っているHDDにインストールするところから始める必要ありです。ごめんね。暇な時にやっては見るよ。

    返信削除
  8. お返事ありがとうございます。
    UOはPubが入るとグローバルルートが新マジックになるのでなかなか面白いと思います。
    64bit対応は大変そうですね。無理なさらないで下さい。
    ですが、機能豊富で是非使ってみたいので、気長に待つことにします。

    返信削除
  9. はじめまして。
    私も、uoclistに興味があって使ってみたかったのですが、ダウンロードしようとすると
    「The requested URL was not found on this server. That’s all we know.」となってしまい、ダウンロードできません、、。(ブラウザも色々と変えてみましたがダメでした)
    いまって、サーバ上のファイルはない状態でしょうか。
    暇な時にでもご確認いただけると。。。よろしくお願いいたします。

    返信削除