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:
7月 05

今晩は、いままで携帯キャリアの定額プランに付いて調査していたので
その結果を報告したいと思う。

ただし、iPhoneなどのスマートフォンは対象外!!

普通に利用しているケータイユーザーを対象にしている。
ここで、定額プランに付いて説明すると。

Docomoなら パケホーダイダブル
auなら   ダブル定額ライトと ダブル定額スーパーライト
Softbankなら パケットし放題

で調査した。

まず、各キャリアの値下げ戦略の経緯を振り返ると

Softbankが学割+家族で基本料金が490円/月(通常980円)を出して来た。
その他 auとDocomoは基本料金 980円/月 のままだった。

その後 今度は490円のSoftbankに対抗してDocomoは、
パケホーダイダブルをなんと 1050円開始を 490円開始にした。

そして、8月からauも490円ではなく、1歩で遅れて 390円プランを開始する。
そこで登場するのが “ダブル定額スーパーライトプラン” である

ここで、ミソなのが
auは390円ようの新しい料金プランを作ったことで、
今までのを値下げをした訳ではないことだ。

よって、この恩恵を受ける人と、逆に損をしてしまう人が出てくるという
なんともまぁ●●な戦略ですね。
このauの定額プランの分かれ目の目安になるのが10000パケットです

1万パケット以下なら、”スーパーライト”
1万パケット以上なら、”ライト”

です。

個人的には、Docomoと同じくただ単なる値下げにしてほしかったのですが。。。。
ちなみにSoftbankは定額プランは今までと変わらず
12,500パケットまで1050円 => 52,500パケット 4410円です。
——————————————————
各キャリアの定額プラン
Docomo 12,500パケット490円  =>  52,500パケット4410円
au(ライト) 12,500パケット1050円 => 52,500パケット4410円
au(スーパー) 3,720パケット390円 => 42,000パケット4410円
SoftBank 12,500パケット1050円 => 52,500パケット4410円

Tagged with:
7月 04

最近iPhone 3GSが出たばかりですが、
次のiPhoneではお財布携帯が内蔵されるかもしれません。

その理由は、こちらの特許

画面のタッチセンサーの下にRF-IDのデバイスを埋め込むらしいです。
この他にも画面の特許は多数とられており、

実現さえすれば、PASUMOやSuica、Edyなどが使えるようになるかもしれません。

Tagged with:
7月 03

皆さんの洗脳ソングってなんですか?

たらこですか?

さかなさかなさかな〜?ですか?

多分、誰でも1度は音楽によって洗脳されたことがあると思うんだけど。
最近の俺の洗脳ソングは

Centorino Centorino Centori-no 僕は自由にできるーの Intel♪

パン、パン、パパパン、パパパパン、パンダ!♪
(from茶太)

が止まりません。
なので、これを止めるためにも、代わりになる洗脳ソングとかありますか?

Tagged with:
6月 29

ネタばれを極力防いだつもりでかいています。

いや〜良かった。

何といっても席がよかった。。www

今回、はじめて、、、、いや2回目か
座席予約システムのVITを利用した。

開始2時間前に予約して、TOHOシネマ府中の
M-7席(どこだよw)

とりあえず、2/3ぐらい後ろで、前が通路になっていて
座席の代わりにフェンスが前にある。

そしてM-7は中央の左端の席

さすがに、中央はもう埋まってたけど、左端だけ空いてたから
クレカで決済。

内容はネタばれになるから書かないけど。。。
1ことで言うならものすごくシナリオが変わっていた。

序では、シーンの追加と、セル=>3Dだったけど、

アニメの内容からかなり差し替えがあった。
あと、新キャラがでます。

しかし、何とも残念なことにパンフレットが売り切れだった。。。。

大学の帰りに途中下車した映画館でパンフだけかわなきゃな。。。。

Tagged with:
6月 29

破 を見て来る破

6月 27

金欠でとほほなぐらいお財布が寒いfedoraxです。

いや、ついに1.5TBのHDDを購入しました。

TV録画用のPCにSeagate1TBと WD500GBを積んでいるんだけど、、、

WDが故障(ブルースクリーンで0x000000F4)となり、
毎回起動時にCHKDSKが走るんですよ。。。。

もう夏だし、電気代の見直しをかねて、
CeleronDのTV録画からAtomPCへの移行をしようかと

今年の夏もPCにとって危険な年だなぁ。。。。

Tagged with:
6月 25

面白い記事を見つけたので
皆さんのご存知のスーパーファミコン

そして、

中身は

元ネタ:

Tagged with:
6月 23

rpm -ivh http://ftp.freshrpms.net/pub/freshrpms/fedora/linux/9/rpmfusion-free-release-9-12.noarch.rpm

Tagged with:
6月 20

先ほどの気持ち悪い日記を書いてる時に
もちろん、あの不安定な状態でOpenGLを走らせていたら。。。。。

モニタリングしていたVNCが突然消え。。。Alertが。。。。

同時に、、Teratarmまで逝きあがった。。。。

pingを投げるも帰ってこない。。。

すぐにサブルートから復元をするも、、、、

物理的に電源が落ちたみたいで。。。。。。

回復の兆しが、、、、、、、、、、、、、、、、、、

ない。

Tagged with:
preload preload preload