7月 07

通信内容の書き換えに挑戦!パケット書き換えSDK 第一回
こんにちは!code_zeroです。今回はいよいよパケット書き換えをやっていきます。パケット書き換えだけではなく、接続のブロックなどいろいろな使い方が出来ますよ〜。

パケットというのは、あて先情報などが記載されたネットワーク通信の最小単位のことで、この場合はIPパケットです。ただ、実際はアプリケーション TCPIP通信を書き換えます。このほうがデバイスドライバも不要ですし、通信の検出がカンタンなので便利です。ただ、ユーザーモードで動作するので、ゲームによってはうまくやらないと検出されてしまいます。

今回はWinsock2をターゲット環境とします。以下のような感じで6つのAPIをフックすれば大抵大丈夫です。では、次回からさっそくやってみましょう!

Hook(WINSOCK2DLL,’send’, @sendHookProc, @sendNextHook);
Hook(WINSOCK2DLL,’sendto’, @sendtoHookProc, @sendtoNextHook);
Hook(WINSOCK2DLL,’recv’, @recvHookProc, @recvNextHook);
Hook(WINSOCK2DLL,’recvfrom’, @recvfromHookProc, @recvfromNextHook);
Hook(WINSOCK2DLL,’WSASend’, @WSASendHookProc, @WSASendNextHook);
Hook(WINSOCK2DLL,’WSARecv’, @WSARecvHookProc, @WSARecvNextHook);

あと二回信の書き換えの話題を扱って、その次の回からはまた初心者向けの内容に戻ります!
[hr /]
通信内容の書き換えに挑戦!パケット書き換えSDK 第ニ回
こんにちは!code_zeroです。今回も引き続きパケット書き換えの話題です。

パケット書き換えSDKは次のゴーストリプレイのバージョンに付属しています。以下の様に主要メソッドをフックして、接続先の取得も行うコードが実装されているので、後はロジックを組み込むだけです。VC++の場合もIUnknownを継承したインターフェイスを宣言することで、プラグインを作成できます。 C++のサンプルも準備中です。

プラグインを起動したプロセス、具体的にはゴーストリプレイから起動させたゲームでのみ動作するので、他の方法よりはかなり簡単にパケットを書き換えられます。

function sendHookProc(s: TSocket; Buf : Pointer; Len, Flags: Integer): Integer; stdcall;
var saddr : TSockAddrIn; slen : Integer;
begin
 if Len > 0 then begin
 sLen := sizeof(TSockaddrIn);
 if GetPeerName(s, saddr, sLen) = 0 then begin
  //接続先がわかった
  //Bufがデータのポインタ 必要に応じて書き換える
 end;
 end;
//元々のWinsockメソッドを呼ぶ
Result := sendNextHook(s, Buf, Len, Flags);
end;

次回から初心者の方向けの企画に戻ります
[hr /]
今回は実際にパケット書き換えを行ってみましょう!

今回はグーグルのホームページのGoogleという表記をGoggleに変えます!サイトのリンクも変わってしまうので、ホームページは正常に動作しなくなるのですが、通信を書き換えられるサンプルとしてご紹介します。まずは画像をみてください

goggle

こんなことができちゃいます。今回は受信するデータを書き換えていますが、同様に送信するデータも変更できますよ!! データの送信にはAPIがいくつかあるので、それらの内部から共通して呼び出すためのメソッドをまずは用意します。今回利用するプログラミングはDelphi 7以降です。APIを呼び出しているだけですので、C++でも同様に作成できます。

procedure PerformReceiveHook(Buf : Pointer; Len:integer;var saddr : TSockAddrIn);
var i:integer;
p:pbyte;
const
sgoogle:pchar=’google’;sgoggle:pchar=’goggle’;
sgoogle2:pchar=’Google’;sgoggle2:pchar=’Goggle’;
begin
 if len<6 then exit;  p:=buf;  for i:=0 to Len-6 do begin   if CompareMem(p,sgoogle,6) then   CopyMemory(p,sgoggle,6)   else if CompareMem(p,sgoogle2,6) then   CopyMemory(p,sgoggle2,6);   inc(p);  end;  end; これで書き換える処理ができました。あとはこれを以下のようにフック関数の中に入れていくだけです。完成したものはゴーストリプレイの次回のアップデートパッチ、SDKフォルダに入っているので、それを見てみてくださいね。 Size := recvNextHook(s, Buf, Len, Flags);//本来のAPI if Size > 0 then begin
 // figure out the ip and port for the communication
 sLen := sizeof(TSockaddrIn);
 if GetPeerName(s, saddr, sLen) = 0 then begin
  //接続先が取得できた
  PerformReceiveHook(Buf,Size,saddr);
 end;
end;
Result := Size;
次回からは初心者育成企画です。プログラミング環境の構築から行っていきます。お楽しみに!!
[hr /]
http://www.internal.co.jp/products/util/ghostreplay/magazine/files/055.html

Tagged with:
6月 14

こんばんは fedoraxです。

今日は暑かったですね。皆さんはいかがおすごしでしたか?

おいらは、昨日のまでのカンファレンスの疲れのせいで、
眼鏡をかけたまま、PCつけっぱでねてました。

あさおきたら画面にくぁwせdrftgyふじこlp;@:…

目覚めがすっきりしない。。。。。暑い〜

今年の夏はエルニーニョ現象で特に暑いらしいが、、、もう暑い、、、、

CPUの温度計は。。。42.5度。。。まだ今年の夏は早いか。。。

起き上がると、、、汗がたら〜と垂れてくる。。。。

熱帯魚の温度計は。。。25度。。。正常。。。。

パソコンの前に向かってプログラミングを始めるが、、、、アイディアがでてこない、、、、

Perlでプログラミングを書いているのだが、、、root権限でしか動かない仕様に頭をなやませ
いい方法はないかと考えてみる。。。。

電話がなって母親からの昼飯の相談、、、、

そうだ!OpenGLで行こう。。。。と思い付くが。。。。。
freeglut : ERROR: Internal error in function fgOpenWindow. X Error of failed request: BadWindow (invalid Window parameter) …

動かなぇ。。。。

でも、
http://nehe.gamedev.net/
なページを見つけた。

振り出しに戻る。。。。。アイディアが思いつかないので、、、GunslingerGirl OVAを見ながら
お昼ごはん。。。。ZZZzzz……

また寝ているのかと母親に起こされ、、、、しぶしぶ起きる。。。。

そうだ!Qtで開発すればいいんじゃね?・・・・

PerlQtを調べてみる。。。version3か。。。。まぁいいや。。。。

./configure
make
make install

….
Not Found smoke….

ふざけるな?そんなにスモークチーズが食べたいか?・・・・

振り出しに戻る。。。。
PerlのQt4はないかと探してみる。。。。。

google code にあった。

とりあえずコンパイル?
ccmake…
make
make install
….

Qt::application error!

。。。。。。。

なんでどいつもこいつも動かねぇんだよ。。。

そんなにいやなのか?ただ、CUIをGUIに変えるだけなのに。。。。
もうCUIでは完成してるのに。。。。

root権限め〜。。。。ZZZzzz…..

zzzz………………………
zzzz……………………..
zzzz……………………..

晩御飯どうする?と呼びにきた母親に起こされ。。。。。
晩御飯を食べてる途中。。。。。

あ〜そういえば。。。以前Qtで外部コマンドを動かすツールを作ったなぁ。。。。。

ってかなんで俺こんなにPerlにこだわってるんだろう。。。。。
別にPerlじゃなくてもいいじゃん。。。。。。

libpcapがつかえればいいんだから。。。。。

C言語でもいいんじゃねぇ?

ってかC++にすればQtも使えるじゃん!!↑↑↑

どっかにサンプル転がってないかなぁ。。。。。

おーあったあった。。。。
#include

pcaplookupdev()…..

おーデバイス出た!

しかも、、、、一般ユーザーでつかえた!!↑↑↑

ヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタ
ヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタ
ヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタ
ヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタ
ヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタ
ヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタヵタ
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・
・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・

C言語で骨組みのキャプチャー部分完成!

ってかもう2時ジャン。。。。。
あとは、Qtで肉付けすれば、、、完成か

Tagged with:
6月 07

サイトのアクセスログという物は大変面白い物だと思います。

とりあえず自分のサイトには3種類のアクセス解析を埋め込んでいるのですが。
まぁ見る人はたいていmixiか直リンクなんですけど

たま〜にgoogle検索から引っかかってくるのもあるんですよ。
一応、サイト自体もgoogle検索に引っかかりやすいようにsitemapを送っているんですけど

自分がエントリーしていた企業や有名な大学も有れば
地方の専門学校や。。。。県立の教育委員会、、、脳血管研究センターと

どこから来たんでしょうと思うぐらい様々です。

しかも、その引っかかったで有ろうリファラー(前のページの情報)を見ると
どのようにして来たかが分かるのですが。。。

あれですね、、、、先日どこかの県で違法ソフトで問題になっていたけど
まさか、自分のページにも該当しそうな記事が有ったんですね

まぁ確かに検索ワードの上位に[drm 解除]なんですけど、、、、、

個人的にはこういうのを県の公のPCで検索して良い物であろうか。。。。。
因に該当ページは
http://server.is.land.to/entry.php?38

まぁこういう物ばかりではないんですけどね
さっきの脳血管研究所が調べていた該当ページは
http://server.is.land.to/entry.php?512

Tagged with:
1月 27

今年に入ってアクセス解析をつけた
http://server.is.land.to
だけど、最近企業からのアクセスがすごく多い

とくにFedoraCoreに日本語化
Qt4の導入など

なるほどなぁ。。。。というページが多く
逆に一言とかプログラミングのページはあまりヒットしていない模様

また、エンジンはGoogleからだけで
Yahooからヒットしない点に置いては、
Yahooの策略か?

まぁこれからも技術的なページをどんどん公開していきますよ〜

Tagged with:
1月 10

MSN,SKYPE,YAHOO,GOOGLE,IRCなど
IMメッセンジャーを複数立ち上げていると、

起動がものすごく遅い!!!!!!!!!!!!!!!!

で、統合、

=>MirandaIM
これで、上記のメッセンジャーは1つになる

Tagged with:
12月 01

今日、合同説明会でビックサイトに行った人は多いと思いますが、
わたしは、国際フォーラムの方に行って来ました。

回った企業は
MS
Google
HP
の3社、

Googleは最初見る予定なかったんですけど、
HPの説明会が途中1時間ほど開いたのでその間に聞きにいきました。

いや、やっぱり、Googleは働きやすそうだなぁ。。。。。
1時間の説明中30分で説明を終わらし、後は質問タイムなんですが、
質問した方には、ボールペンとまた、その中でほしければTシャツを男女1名ずつ差し上げますということで。。。

勝ってしまった。wwwwww

明日、Google Tシャツ着ていきます。

Tagged with:
8月 26

関東地方の方に
NHKの18:00より首都圏ネットワークの中で放送される
布田のフクロウに出る可能性があります。

ちなみにこれが先週1週間AM4:00起きで観察していたフクロウで
布田神社にカメラマンが集まった原因です。

まぁ今年もきたなって感じですけど。

あと、Googleのストリートビューは改めてすごいと思った。
去年いったオーストラリアの歩いた道とかがまた再現できるなんて
なんか技術の進歩ってすごいな

Tagged with:
4月 03

ついにマイミクが100人になった
ちなみに総足跡が15000Hit以上

ブログのほうも7000人を超えてるし

Googleからみると
大抵が直帰かmixiからで

ほとんど日本からのアクセス

いやぁなんかうれしいっす

Tagged with:
3月 23

Qt=Quick Time と思った方挙手!!w

たしかにQtと略すことが多い
(iTunesと一緒にインストールされ、Windowsではあまり使われていないけど)

しかし、Qtと書いた場合は、キュートという新しいプログラミング言語と理解して欲しい。
こいつの特徴はWindows、Mac、Linuxで動くC++で書かれた、GUIアプリケーション
を作成するための言語。

Javaで似たようなことができるが、今回C++でできるようにしたのは初めてだと思う。
ちなみにこのQtは結構企業も注目していてて、

Adobe PhotoShopや
Skype
Google Earthなんかも
このQtで作られている。

今回、自分はこいつに手を出そうかと考えているが、
主にサウンド系かな、
しかしまぁ依存症はどうにかならんのかねぇ

Qt自体にはまだ、メディア関係を扱うことはできていない。
そう考えるとSkypeはどうしているのかすごく気になるが、、、

とりあえずQtが発表しているのは
QtからKDEベースのPhononに依存するとかいてあり、
このPhononはWindowsならDirectX,MacならQuickTime,LinuxならGStreamに
自動的に組み替えてくれるもの、

で、今回こいつも使うための環境づくりをしたのだが、、、
いや、まぁBeta版だからというので、
Windowsで動いているといえない。w

./configure -phononでたたいてみたが
plugin にphonon-backendができた形跡が無く
ソースからnmakeをたたく

しかしエラーが出る。

仕方の無いからコメントアウト。。。。

とりあえず動いているが、、動いているといえるのだろうか、、、、

デモのMusicPlayerを使ってみたが、、、なんか完成してないよな、、、、
だってタイマーが進まなかったり、ホバーで動かすと、。。。????みたいな現象

とりあえず、Qtは大学で個人的には飛躍するのではないかと考えているから
勉強しておいて損はないかも。。。。

もちろん独学だけど

Tagged with:
3月 16

まえのWeb2.0の講習で
Metaのキーワードの重複の危険性を教えてもらっていたが
気にせずに使っていた。

だが今日、検索していて改めて実感した。

とりあえずGoogleで
site:fedorax
ってやればわかる。

Tagged with:
1 / 212
preload preload preload