窓手koreの・・・罠

最近巷で流行っている「窓手兄者kore」

なぜ流行っているのか?それは「ステルス公平」をする為である・・・(実は私も使用中)
このkoreの特徴は窓手専用にコードが組まれており、外部ファイルで制御されない横殴り仕様、高速テレポによる探敵、BAN上等の代物であーる。

基本的に弓手仕様であり、この弓手とステルス公平(半ログイン状態)を行い、本命キャラを育てるというもので、なんと最速で2週間かからずにLv1→オーラが可能というROバランスを根本から崩す代物である。

さて、前置きはこのくらいにして一月前ぐらいにこの窓手koreを狙った「罠」が発見されました。
窓手BOTerにとってもっとも知られてはいけないことが、「公平相手のキャラ名」である。

なんとそのキャラ名を画面内に入った無関係なキャラにwisで知らせてしまうという代物が「らぐろだ」にUPされました。

しかし、この罠はkore.pl内に記述されており、カモフラもされてなかった為すぐに発見され注意が呼びかけられました。
まぁ引っかかった人は南無としか言いようがありませんね。
ではその罠について解説! #コメントは解説です。

sub PlayerData {
my $ID = shift;
if (!$WithRagexe){ #ここでRagexeを切り離した後発動するように制御
for ($i = 0; $i < @partyUsersID; $i++) { #パーティーメンバーを抽出
next if ($partyUsersID[$i] eq "");
push @p_mem, $chars[$config{'char'}] {'party'}{'users'}{$partyUsersID[$i]}{'name'}; ##格納
}
$party_p_name = join(" ", @p_mem); #抽出したパーティーメンバーを繋げるっと
if ($party_p_name && !exists $p_data{$players{$ID}{'name'}}){ #パーティーを組んでいたら&まだwisをしていないキャラだったらwis開始っ
sendPrivateMsg(\$remote_socket, $players{$ID}{'name'}, "現在$party_p_nameとStealth公平中!!(PARTY_NAME:$chars[$config{'char'}]{'party'}{'name'})"); #アウト~
$p_data{$players{$ID}{'name'}} = 1; #wisしたキャラをp_dataハッシュに格納
$pm_frag = 1; #下で解説
}
}
}

概要はこんな感じ。そしてこのルーチンが0095 0195パケ受信部に配置されています。
また、確実に範囲に入ったキャラへwisをする為に0078 0079 007A等のキャラ名以外の情報受信部でsendGetPlayerInfoをしています。

つまり、肉で説明しますと画面内に入ったキャラにすかさずカーソルを合わせ名前を覚え、その名前に即wisするという感じですね。

おっと、最後の$pm_frag = 1;ですが調べてみるとありましたね。

# wis送信結果
$type = unpack("C1",substr($msg, 2, 1));
if ($type == 0 && !$pm_frag) {
print "(To $lastpm[0]{'user'}) : $lastpm[0]{'msg'}\n";
chatLog("pm", "(To: $lastpm[0]{'user'}) : $lastpm[0]{'msg'}\n");
}

wisした内容を受信する部分です。
ここの条件分岐に$pm_fragが使われてますね。
どういった効果なのかと言うと、「罠wisをする時はDOS画面にwisの送信結果を表示しない」というものです。
DOS画面でpm キャラ名と打ち込んでwisする場合は表示されます。
これにより、罠に掛かった本人はすぐには気づきませんね。南無。

とまぁ罠の内容はこのようなものですが、この罠には致命的な欠陥がありますね。。
たぶんみなさん気づいてると思いますが、このままだと

>(From: under world) : 現在wintry under world wintry under world wintry under world wintry under world wintry under world wintry under worldとStealth公平中!!(PARTY_NAME:siamese dream)
>なんか異様に長い・・・


こうなってしまいよくわかりません。
なぜこうなってしまうのか?というと、@p_memにパーティーメンバーを格納するのは良いのですが、これをwisする度にリセットするのを忘れている為上記のように繰り返し繰り返し弓手と公平キャラの名前が連なってしまうんですね。
回避策としてはルーチンの最後に「undef @p_mem」と入れておけばOKでしょう。

にしてもこの罠、、致命的な所を突くせいか今でも引用され仕込まれたりしています。
そして、最近でも↑のように引っかかる人がいると・・

これを応用すればネタ的なことが出来ますがまぁそれは次回かな。
初めて長々書きすぎて疲れました。ふぅぅぅ。。
[PR]
by chronoship | 2005-08-23 23:09 | kore


<< 手動マニピコードとはなんぞや なにを書こう・・・罠 >>