したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

プログラミングについて話すスレ

1名無しさん:2004/03/15(月) 12:11
なんでも

2升屋な名無しさん:2004/03/21(日) 21:26
図書館で「COM/DCOM 実践プログラミング」を借りてきました。
全然読んでないけど。COMのフックも全然取り掛かってません。
「WinSock2.0 プログラミング」も借りてきました。
これも全然読んでません。WSARecvとWSAOverlappedResultだけ
わかってればいいやw

3升屋な名無しさん:2004/03/22(月) 10:38
おいらも、WSARecv,WSASendとWSAOverlappedResultだけしか読んでませんw
COMの方はアドレス固定式ってのが気に食わないけどフックできちゃったんで、
もうどうでもいいって感じw

自分でCOM使うことは、周りが全部COMにならない限り無いだろうな〜

4升屋な名無しさん:2004/03/25(木) 21:51
たしかに、
DirectXとか使ってプログラミングするならCOMは使わざるを得ないけど、
そうでないなら自分でCOMを作る事はまずないでしょうね。DLLで十分だし。
そのうちCOMは消えるそうです。聞きかじりですが、.NETとかいうわけの
わからんものに取って代わられるそうです。

5升屋な名無しさん:2004/04/04(日) 20:06
「WinSock2.0 プログラミング」他の箇所も読んだら、
結構(・∀・)イイ!感じだったのでつい買ってしまいました。
5800円なり。winsockレベルでプログラム書いて見たく
なってしまった。

6升屋な名無しさん:2004/04/04(日) 23:08
おいらは、まんどくさいんでコンポーネントで出来る事は全部やってもらいまつw

7升屋な名無しさん:2004/04/08(木) 02:03
寝マクロ中に異常があったら携帯鳴らしてくれる機能
いいですね。

8升屋な名無しさん:2004/04/08(木) 21:59
コンポーネント使えば直ぐに出来るよ

9升屋な名無しさん:2004/04/08(木) 23:44
それが、うちの開発環境にはメールコンポーネントついてないのよ。
(´・ω・`)。ソケットコンポーネントはあるのだけど。
だから、SMTPのプロトコル調べてちまちまと作らないといけないので、
ちとまんど臭いのですorz

10升屋な名無しさん:2004/04/09(金) 12:03
ラグンジャーのDLサイト教えてーーーーー

11升屋な名無しさん:2004/04/09(金) 17:24
ttp://www.ne.jp/asahi/mars/phoebe/
検索でLagngerで出るけど。

12升屋な名無しさん:2004/04/16(金) 20:10
エタカはさすがにもういいや。
次はリネやろうかな。
でも、リネの升ツール作るのまんどくさそうなんだよね。
それともWPEみたいなツール作ろうかな。
もちろん、WinSock2.0対応でWSARecv完璧対応のやつ。
でも、需要はありそうだけど、これもまたまんどくさそうだなorz

13升屋な名無しさん:2004/04/17(土) 01:14
最近のゲームは暗号が標準装備みたいになって来たんで
WPE風のツールでは力不足になるんじゃないかな
個別に暗号対応できるように、susieのプラグインのような機能があれば
大丈夫だと思うけど

14升屋な名無しさん:2004/04/17(土) 14:51
ですね。今までやったネトゲの中で、暗号が
掛ってなかったのは巨商伝とコルムかな。
リネの暗号が一番コワヒ。そこまでやるのかと。

今思いついたんだけど、いろんなネトゲのパケ
の暗号解読出来る人募集して升軍団作りたいなw

15さむらい鼠:2004/05/03(月) 11:43
OS間の差異を吸収するのってものすごく、まんどくさいのね(-_-;)
XPでは動くのに98だとめっちゃくちゃ変な動作するんだよね。
困ったもんです。

16升屋な名無しさん:2004/05/11(火) 18:23
Winnyの作者がタイーホされちゃったね。びっくり。あんなプログラム書けるなん
て天才だと思う。東大の助手だったんだと。残念ですねぃ。
タイーホの理由がこれまたわけわからんかった。著作権違反幇助罪?無理やりな
法律解釈を適用した感じ。そんなのあんのかと。でも、仕方ないんでしょう
ね。

17升屋な名無しさん:2004/05/14(金) 23:15
OS間の壁を着々と克服してますな。すごいです。
おいらのDLLのWin2000限定もなおしてくだたいw

18升屋な名無しさん:2004/05/16(日) 06:21
>>17
こんど、DLLをCからパスカルに移植してみようかな。
ほとんど、やる気ないけどw
でも、パスカルだと遅そうな気がするんだよね。そ
んなことないですかね。移植できたら、ソース送り
ますねw

19さむらい鼠:2004/06/09(水) 20:42
童話王国の解析してるんだけど、カーバノレさんにどんどん
遅れとってるよぉ。デバッガ使いこなすのって難しいな。
なんでカーバルさんはあんなに仕事が早いのだろうか?ア
センブラ見てパッとやってることがわかっちゃうのかな。

でも、童話つまんないw 何か他のゲーム探そうかなorz

20升屋な名無しさん:2004/06/09(水) 22:16
ターゲットのAPIを探したら、その前後のループの先頭とかにブレークポイントを
置いて、どこでそのデータが作られてるのか場所を突き止めてます。
「API発見」→「APIのデータを書き換えてるCall場所発見」→
「コール先のMOV命令発見」ってパターンです。
「暗号 ⇔ 平文」を一文字ずつ書き換えてるMOV命令が見つかれば、その前後をノートに
メモリ、レジスタがどう変わるのか1行ずつ書き出しながらやってます。
頭の中だけでは4,5行読んだら最初の行の内容を忘れますw

あとね、有利なのはシーケンサで使ってた応用命令は、ほとんどアセンブラなので
命令名を見ればだいたい、その命令は何をする命令なのか?ってのは判ります。

21さむらい鼠:2004/06/11(金) 19:22
// レシーブしたパケットをデコードする。
// numOfTable : 何枚目のテーブルを使うか。
// key : デコード用の暗号キー
// buff1 : パケットのバッファー
// buff2 : パケットのバッファー
// len : バッファーのサイズ

BYTE* pTable;//デコード用テーブル先頭へのポインタ

char DecodeRecvPacket(int numOfTable, DWORD key, DWORD* buff1, DWORD* buff2, int len)
{
int a;//暗号キーの処理結果を格納する変数
int b;//for文のカウンタ
int c;//バファ退避用


for(b = 0; b < len; b++){
//暗号キーの下位1バイトをビット操作
if ((a = key & 0x0ff & 0x80000007) < 0){
a--;
a |= 0xfffffff8;
a++;
}

//バッファを書き換える
(BYTE)buff1[b] = (BYTE)(pTable + numOfTable * 256 + (BYTE)buff1[b]);

if( key & 0xff & (1 << a) != 0 ) {
c = (BYTE)buff1[b];
//バファを書き換える
(BYTE)buff2[b] = (BYTE)((BYTE)buff1[b] ^ (key & Oxff));
//暗号キーの下位1バイトを書き換える
key = key & (BYTE)c;
continue;
} else {
if ((a = key & 0xff & 0x80000003) < 0){
a--;
a = a | 0xfffffff8;
a++;
}
}

if (key & 0x0ff & (1 << a) != 0 ) {
c = (BYTE)buff1[b];
//バファを書き換える
(BYTE)buff2[b] = (BYTE)buff1[b] - (key & 0xff);
//暗号キーの下位1バイトを書き換える
key = key & (BYTE)c;
continue;
} else {
c = (BYTE)buff1[b];
//バッファを書き換える
(BYTE)buff2[b] = (BYTE)((BYTE)buff[b] + key & 0x0ff);
key = key & (BYTE)c;
}
}

return key;
}

22さむらい鼠:2004/06/11(金) 19:23
うわ。コピペしたらインデント狂ったw

23さむらい鼠:2004/06/11(金) 19:38
関数の戻り値型はcharじゃなくて,intでしたね。
なんか他にもいっぱい間違いありそう。
どなたか添削よろしこw

暇だったので丸1日かけて解析してみました。
ゼエゼエハァハァ。
やっとアセンブラに少し眼が慣れて来た感じ。

次は、この関数を呼び出すプロシージャを解析して、
その後は、Sendのエンコード方式を解析しないといけ
ない…。なんか1週間は掛りそうw ムリポ…。
カーバノレさんは、これを全部1日で解析しちゃうんですね。

24升屋な名無しさん:2004/06/11(金) 23:15
Cは良くわかんないけど、そんな感じだったぽ。
解析には2、3日くらい掛かってます。初めに大体の感じをつかんで
面倒くさそうなんで放置して、しばらくしてから悔しくなって詳しく
解析しましたw

片側でデコードパターンをつかむと、反対のSend側は比較的サクサク
出来ると思いますよ。

あと、おいらの解析は、トライアンドエラーの繰り返しってのもあり
ます。Delphiで適当にデコード回路組んでやってみてダメだったら
修正の繰り返し。この作業中は深く検証せず、思いつきでもチャレンジ
してたりしますw
で、うまくいったときには完成! ってなってますw

25さむらい鼠:2004/06/13(日) 09:58
Recv側の暗号キーはパケごとに、鯖から送られてくる
んですね。なんか不思議な仕様。
レシーブしたパケの1バイト目がキー。そのキーを
10で割った余りが、何枚目のデコードテーブルを使う
のかを決定する数値。テーブルの内容は、005F9180か
らの.rdataセクションに書いてあるのでそのまま使え
そうですね。

いまは、Send側をやってます。かなりアセンブラに眼
が慣れてきたポルヌ(^o^)

26さむらい鼠:2004/06/13(日) 14:22
var
pTable: PChar; //テーブルへのポインタ

//Sendパケをエンコードする関数。
//num:何枚目のテーブルを使うかを指定する。
//key:暗号キー
//buff1:バッファ
//buff2:バッファ
//len:バッファの長さ
function EncodeSendPacket(num :Integer; key :Char; var buff1 :PChar;
            var buff2 :PChar; len :Integer):Char;
var
  i :Integer;
  tmp :Integer;
begin
  for i := 0 to len - 1 do
  begin
    tmp := ord(key) and 7;
    if (ord(key) and (1 shl tmp)) <> 0 then begin
      buff2[i] := Char(ord(buff1[i]) xor ord(key));
      key := buff2[i];
      buff2[i] := pTable[num * 256 + ord(buff2[i])];
      continue;
    end;

    tmp := ord(key) and 3;
    if (ord(key) and (1 shl tmp)) <> 0 then begin
      buff2[i] := Char(ord(buff1[i]) + ord(key));
      key := buff2[i];
      buff2[i] := pTable[num * 256 + ord(buff2[i])];
      continue;
    end;

    buff2[i] := Char(ord(buff1[i]) - ord(key));
    key := buff2[i];
    buff2[i] := pTable[num * 256 + ord(buff2[i])];
  end;
  result := key;
end;

27さむらい鼠:2004/06/13(日) 14:43
sendの場合は1バイトずつ上の関数が呼ばれる。

パケットの1バイト目と2バイト目が特別な意
味を持っていて、3バイト目からがデータ本体
ぽ。この関数を呼び出す側の処理を解析しない
と1バイト目と2バイト目の意味がわからない。
予想では、1バイト目がキー、2バイト目がテ
ーブルナンバーを導き出すキー。

28升屋な名無しさん:2004/06/13(日) 19:59
なぬ!
パケの1、2バイト目にそんな秘密があったとは!
まったく気付いてませんですたw

29升屋な名無しさん:2004/06/15(火) 01:27
なんか、違うような気がするぽ

30さむらい鼠:2004/06/15(火) 16:39
orz

31さむらい鼠:2004/06/15(火) 17:56
デバッガーでアセンブラ見て解析してるばかり
でなく実際のパケを見ないと、解析も捗らない
ということがいまさらながら、よくわかって来た
今日この頃。
パケ横取りソフトを作ってみようかな。面倒だな〜。

ところで、1バイト目、2バイト目の意味はともかく、
3バイト目からデータ本体が始まるっていうのは間違
ってるでしょうか?

32升屋な名無しさん:2004/06/15(火) 22:37
わかった!
その部分はゲーム前のログイン情報の部分だよ。
ゲームが始まってからは、そのデコードコールは使われなくなり
その下のコール文でデコードが実行されます。

>3バイト目からデータ本体が始まる
そこがまた落し穴なんですよw
その部分がおいらの6月8日の日記ですw

33さむらい鼠:2004/06/16(水) 17:50
>わかった!
>その部分はゲーム前のログイン情報の部分だよ。

おっしゃる通りでしたw

34升屋な名無しさん:2004/06/18(金) 20:44
おいらのDLLがXPに対応できますた!
いりますか?

35さむらい鼠:2004/06/18(金) 21:17
>>34
おめでと〜。関数のordinal値はdumpbinで調べたの?
よかったら、鶴欲しいです^^

ちなみに私のツールはやっとデコード前のパケを表示
できるようになったばかり。暗号処理はそのうちでき
るようにするつもりだけど、今度はその処理はDelphi
で書こうと思ってます。

36升屋な名無しさん:2004/06/18(金) 22:19
メール発射しますた

37さむらい鼠:2004/06/19(土) 12:56
>>36
うちの環境でも動いたー!すげっ
DLLのソースに少し目を通したけど、sendや
recvもそうだけど、特に興味深いのはGetMe
moryDataでしたねw
あと、DLL初期化後1秒後に、GET_MESSAGEの
フックを掛けるところとか。

ありがとうございました。
COMのフックの仕方を私もいずれはよく研究
してみたいと思いますた。

38さむらい鼠:2004/06/19(土) 13:07
あと、キャラが画面上で勝手に動きまわるのも、
見ていて面白かった。

39升屋な名無しさん:2004/08/02(月) 17:35
最近1ヶ月ほどプログラミングまったくしてないです。
1ヶ月でも遠ざかってると細かい文法なんかどんどん
忘れちゃうんだよね〜。
とりあえず、デルファイの起動方法はまだ忘れてませ
んがw なんか適当なソフトでも作ってリハビリしな
いとあかんわ。

40升屋な名無しさん:2004/08/27(金) 21:30
「ぬるぽ」って↓だって知ってた?

public class 「NullPointerException」
extends 「RuntimeException」

オブジェクトが必要な場合に、アプリケーションが null を使おうとすると
スローされます。たとえば、以下のような場合があります。

null オブジェクトのインスタンスメソッドの呼び出し
null オブジェクトのフィールドに対するアクセスまたは変更
null の長さを配列であるかのように取得
null のスロットを配列であるかのようにアクセスまたは修正
null を Throwable 値であるかのようにスロー

null オブジェクトの不正な使用を示す場合は、このクラスのインスタンスを
アプリケーション側でスローするようにしてください。

41升屋な名無しさん:2004/08/28(土) 06:24
∧_∧
(,, ・∀・) | | ガッ
と    ) | |
Y /ノ 人
/ )    <  >_∧∩
_/し' //. V`Д´)/ ←>>311
(_フ彡        /

42升屋な名無しさん:2004/09/01(水) 19:35
>>43782892374390489023849023840849023849023842903482903482904890238490124892384902148921849284923849238490123489023489023849023481293482948928423948129489234893572348653482563489512389712384723856123728934792384712389472874823478234701742307485634785612389472341234123423141241242

43123456:2005/02/12(土) 20:32:03
かなりショボーンな質問で申し訳ないのですがもし周知の方おられましたら
返事いただければと思います。
エタカクライアントそのものでメモリを除いてみるとアドレスが稀に
(ゾーン移動をした後)などに変更してしまっているようなのですが
これを追っかけるのはどの変をいじればよろしいのでしょうか?

今魔杖の残り残段数を調べてそれをまんま表示させるというものを
作っているのですが起動する度にメモリアドレスが変わっているようなので
どのような対処をすればよいのかよろしければご教授願います。

44升屋な名無しさん:2005/02/14(月) 11:40:13
そのアドレスを指しているポインタを見つけてみては?

45123456:2005/02/14(月) 16:01:39
そですか〜〜。マジアリガトウございます。色々試して見ますよ。

46123456:2005/02/19(土) 20:18:47
とりあえず技術的にアセンブリ見てもよく分からなかったので
傾向からメモリアドレスを毎回探す方式をとって完成しました。
これやってて思ったことはやっぱCOMプログラミングも作れたほうが
ある程度今解析されてますし便利ですね。

47升屋な名無しさん:2007/10/27(土) 06:20:16
衣服を透かして女性の裸体を盗撮する透視カメラというものが市販(無線雑誌ラジオライフなどに広告掲載)されており、それを改造したもので「家やマンションの中の様子を建物の塀や壁を透かしてくっきりと盗撮」する盗撮器を所持!!
警察無線の傍受も行っている北朝鮮国籍の要注意人物!
通報情報
名前 杞山 岳史(キヤマ タケシ)
本籍 大阪府東大阪市太平寺2丁目3番4号

住所 大阪府東大阪市柏田東10-9

通報先
大阪府警 公安課
0669454744
大阪府警 メールで通報・犯罪者を逮捕しよう!
gazo110@abeam.ocn.ne.jp警視庁 公安課
0335814321
東北公安調査局
0222564161
中部公安調査局
0529514531
中国公安調査局
0822285141
四国公安調査局
0878226666
九州公安調査局
0927211845

犯罪者逮捕協力者ヘの警察表彰の審査基準をみたしており、通報しておくと杞山岳史が逮捕された後で犯罪者逮捕協力者として警察から表彰が送られる案件です。

検索キーワード 「北朝鮮」「杞山岳史」「北朝鮮 盗撮」など。

48升屋な名無しさん:2008/04/22(火) 12:50:13
今、某MMOの画像データ引っこ抜きたくて解析してるんだ。
PACKを分割するところまではデータ見てモロ分りなんだが
圧縮タイプがわからなくて、逆アセ見てるけど関数がDLLに格納されてて酷くマンドクセ
もっとスキル上げたいぜ・・・。

49升屋な名無しさん:2010/07/10(土) 02:43:40
毎日更新! おもしろ動画サイト
http://dougadedouka.blog133.fc2.com/

50バーバリー 斜めがけバッグ:2012/11/15(木) 19:21:58
カッコいい!興味をそそりますね(^m^)
バーバリー 斜めがけバッグ http://www.burberryofficialoutlets.com/バーバリー-バッグ-レディース-斜めがけバッグ-c-24_30_26.html

51コーチ 財布 アウトレット:2014/06/28(土) 06:01:19
An important thing to deliver after purifying a not easy lenses often take aperture outside your eye area and include the idea during your hand.
コーチ 財布 アウトレット http://www.highervisionwellness.com/

52プラダ バッグ 新作 2014:2014/07/10(木) 11:01:33
as a general rule really should happen to be licensed they will certainly absolutely not go beyond the guidelines established in status licensing statement.
プラダ バッグ 新作 2014 http://www.buffaloinnandsuites.com/


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板