21:01 (yuushi_q0) では始めますか。 21:01 (MiD) よろしくおねがいします。 21:02 (Pude2k) おねがいします 21:02 (yuushi_q0) 皆さんよろしくお願いします。 21:02 (minke) よろしくおねがいします。 21:03 (yuushi_q0) ではまず、http://hp.vector.co.jp/authors/VA028184/#TOOLを開いてください 21:04 (yuushi_q0) ここを中心に各種ツールをダウンロードします。 21:05 (yuushi_q0) まずは、リバースエンジニアリングの一番上にあるOllyDbg をクリックしてください 21:06 (yuushi_q0) http://www.ollydbg.de/に飛んだでしょうか? 21:07 (MiD) はい。 21:07 (IPUSIRON) はい。この辺はどんどん進んで大丈夫ぽいです 21:07 (yuushi_q0) じゃあ進みます。 21:07 (yuushi_q0) downloadをクリックして下さい。 21:08 (yuushi_q0) サイトの下の方にあるDownload OllyDbg 1.10 (final version)をダウンロードして下さい。 21:08 *Pude2k quit (Connection reset by peer) 21:09 *Pude2k_ join #revengin (~Pude@i121-117-20-79.s04.a015.ap.plala.or.jp) 21:09 (Pude2k_) ごめんなさい 21:09 (Pude2k_) ブルースクリーンになっちゃいましたww 21:10 (yuushi_q0) それ、大丈夫ですか? 21:10 (Pude2k_) だいじょぶです。 21:11 (yuushi_q0) ダウンロードしたファイルを適当なところに解凍して下さい。 21:11 (Pude2k_) ダウンロードするファイルはOllyDbgですか? 21:12 (yuushi_q0) Download OllyDbg 1.10 (final version)というやつです。 21:13 (Pude2k_) 了解です。 21:13 (Pude2k_) ダウンロード日本語化終わりました。 21:13 (IPUSIRON) インストール済みです 21:13 (Pude2k_) 自分もインストールしてあったので。 21:14 (yuushi_q0) ほかの方日本語化の解説いりますか? 21:14 (MiD) すいません お願いしていいですか。 21:14 (minke) 私もお願いします。 21:14 (MiD) いまインストールまで終わりました。 21:15 (yuushi_q0) では最初に開いたサイト(でじたるとらべしあ)に戻って下さい。 21:15 (MiD) はい。 21:16 (yuushi_q0) 上から4番目のOllyDbg1.10用日本語化パッチ をDLして下さい。 21:17 (MiD) はい。 21:19 (yuushi_q0) 先ほどDLしたollydbg本体を解凍したフォルダにパッチを解凍して、パッチを実行して下さい。 21:20 (yuushi_q0) 正常終了しましたか? 21:20 (minke) はい。 21:20 (MiD) OKです 21:22 (yuushi_q0) さらにパッチの入ったlzhファイルにj10n140106.zipというzipファイルがあるので本体があるフォルダに解凍して下さい 21:23 (MiD) 解答しました。 21:24 (yuushi_q0) ではollydbg.exeを開いて下さい。 21:24 (yuushi_q0) たぶん日本語化されていると思います。 21:24 (MiD) おお 完璧です 21:24 (MiD) ありがとうございます。 21:25 (minke) できてますねー。 21:25 (IPUSIRON) 日本語化もできました 21:25 (yuushi_q0) オプション−>環境設定ー>フォントを開いて下さい。 21:25 (MiD) はい。 21:26 (yuushi_q0) 変更をクリックして、好きな設定にして下さい。 21:27 (yuushi_q0) 文字セットは日本語で 21:27 (MiD) はい。 21:27 *kirfth_ join #revengin (~kirfth@KD124208171022.ppp-bb.dion.ne.jp) 21:27 (Pude2k_) こんばんは 21:27 (kirfth_) こんばんは 21:27 (IPUSIRON) こんばんは 21:27 (MiD) こんばんわヽ(´ー`)ノ 21:27 (minke) こんばんは。 21:27 (yuushi_q0) こんばんは 21:28 *wahiko join #revengin (~wahiko@softbank219021026013.bbtec.net) 21:28 (wahiko) 遅れてごめんなさい 21:28 (Pude2k_) こんばんは 21:28 (MiD) こんばんわヽ(´ー`)ノ 21:28 (yuushi_q0) こんばんわ 21:28 (wahiko) チャンネル間違えてましたorz 21:29 (yuushi_q0) そういえば、VISTAを使っている人はいますか? 21:29 (IPUSIRON) 途中から来た人に今までのIRCログ送っておきますよ>yuushiさん 21:29 (yuushi_q0) ありがとうございます。 21:30 (IPUSIRON) 送り終わりました。 21:31 *wahiko quit ("Leaving...") 21:31 *wahiko join #revengin (~wahiko@softbank219021026013.bbtec.net) 21:31 *Pude_ join #revengin (~Pude@i121-117-20-79.s04.a015.ap.plala.or.jp) 21:31 *Pude2k_ quit ("See you...") 21:32 (IPUSIRON) 続きどうぞ 21:33 (yuushi_q0) ollydbgの設定は以上です。大丈夫でしょうか? 21:33 (Pude_) はい、大丈夫です。 21:33 (MiD) はい 完璧ですヽ(´ー`)ノ 21:33 (wahiko) こんばんわ 21:34 (minke) OKです。 21:34 (yuushi_q0) では、でじたる(ryのサイトに戻って下さい 21:35 (yuushi_q0) OllyDbg1.08日本語版ヘルプをDLして下さい 21:35 (yuushi_q0) ちょっと古いですが、日本語で読み安いです。 21:36 (yuushi_q0) 安いー>易い 21:36 (yuushi_q0) 次はスペシャルねこまんま57号 Ver1.10 をDLして下さい 21:38 (yuushi_q0) 続けてうさみみハリケーン Ver0.09 をDLお願いします。 21:38 *aquo join #revengin (^aquo@101CTKP.ctktv.ne.jp) 21:38 (yuushi_q0) ここまでよろしいでしょうか? 21:38 *aquo quit (EOF From client) 21:38 (Pude_) はい。 21:38 (IPUSIRON) 今DL中ですが、続けてもらってOKです 21:39 *aquo join #revengin (^aquo@101CTKP.ctktv.ne.jp) 21:39 *Pude2k join #revengin (~Pude@i121-117-20-79.s04.a015.ap.plala.or.jp) 21:40 (yuushi_q0) ではうさみみハリケーンから 21:41 (IPUSIRON) aquoさんにはログ送っておきました。 21:41 (yuushi_q0) 解凍してusamimi.chmを開いて見てください 21:41 (wahiko) はい 21:42 (yuushi_q0) 基礎用語解説を見てください。 21:43 (yuushi_q0) 2進数についての解説は必要ですか? 21:43 (Pude2k) 自分は無くても大丈夫だと思います。 21:44 (MiD) 僕は大丈夫です。 21:44 (wahiko) 2進数は知っています 21:44 (aquo) 大丈夫です 21:44 (kirfth_) 大丈夫です。 21:45 (minke) 大丈夫です。 21:45 (IPUSIRON) 大丈夫です 21:45 (yuushi_q0) thx 21:45 (aquo) IPUSIRONさん>>ありがとうございます 21:46 (yuushi_q0) 上から軽く読み流して解説してほしいところはありますか? 21:47 (Pude2k) いえ、ありません。 21:47 (MiD) 大丈夫です。 21:48 (wahiko) ログ見ました大丈夫です 21:48 (aquo) 大丈夫です 21:48 (MiD) すいません OllyDbgで遊んでたら OllyDbgのプロセスがとまって、しかも終了しないんですが。w 21:48 (MiD) これは再起動ですかね?w 21:49 (yuushi_q0) それしかないですね。 21:49 (MiD) ??(?´Д`?)?? 再起動してきます すいません すすめておいてください 21:49 *MiD quit ("ChatZilla 0.9.78.1 [Firefox 2.0.0.5/2007071317]") 21:49 (yuushi_q0) 次に進みます。 21:50 (yuushi_q0) http://www.intel.com/products/processor/manuals/index.htmを開いて下さい。 21:51 (yuushi_q0) すみません。こちらを開いて下さい。http://www.intel.com/jp/download/index.htm#ia32 21:53 (yuushi_q0) IA-32アーキテクテャーにある。I 21:53 *MiD_ join #revengin (~MiD@p2188-ipbf516fukuokachu.fukuoka.ocn.ne.jp) 21:53 (MiD_) ただいまですヽ(´ー`)ノ ご迷惑おかけしました。 21:53 (minke) おかえりなさいー 21:54 (yuushi_q0) IA-32 インテルR アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル、上中下をDLして下さい。 21:54 (Pude2k) おかえりなさい 21:54 (Pude2k) ダウンロードしました 21:55 (yuushi_q0) これを全部読めば、かなり知識がつきます。 21:56 (MiD_) 申し訳ありません。IA-32 インテルR アーキテクチャー・ソフトウェア・デベロッパーズ・マニュアル、上中下はどこにあるのでしょう 21:56 (minke) でしょうねぇw 21:56 (IPUSIRON) 中は2つあるんですよね? 21:57 (Pude2k) http://www.intel.com/jp/download/index.htm#ia32 21:57 (Pude2k) >MiDさん 21:57 (MiD_) ありがとうですヽ(´ー`)ノ>Pude2kさん 21:57 (wahiko) 中2つダウンロードしますね 21:57 (yuushi_q0) すみません。上・中・下は別々で全部で4ファイルです。 21:58 *aquo quit (Ping timeout) 21:59 (yuushi_q0) 皆さんDLできましたか? 21:59 (wahiko) はい 21:59 (IPUSIRON) はい 21:59 (kirfth_) はい。 21:59 (MiD_) はいヽ(´ー`)ノ 21:59 (minke) はい。 22:00 (Pude2k) はい 22:00 (yuushi_q0) 最後にhttp://www.vector.co.jp/soft/win95/util/se079072.htmlからStirlingをDLして下さい。 22:02 *aquo join #revengin (^aquo@101CTKP.ctktv.ne.jp) 22:02 (yuushi_q0) 終わったら、いよいよリバースエンジニアリングを開始します。よろしいですか。 22:02 (MiD_) わくわくヽ(´ー`)ノ 22:03 (wahiko) どうぞー 22:03 (IPUSIRON) OKです 22:03 (Pude2k) どうぞ 22:03 (kirfth_) どうぞ 22:03 (yuushi_q0) あっ、ollydbgの設定一つ忘れてました。すみません。 22:04 (yuushi_q0) ollydbgを開いて、オプションー>エクスプローラメニューに追加をクリック。 22:04 (Pude2k) 完了しました 22:05 (IPUSIRON) OKです 22:05 (kirfth_) 完了しました。 22:05 (MiD_) OKです 22:06 (minke) OKです。 22:06 (wahiko) はい 22:06 (yuushi_q0) 追加すると、実行ファイルを右クリックしたらollydbg追加されています。 22:07 (wahiko) 確認しました 22:07 (MiD_) 同じく確認しましたヽ(´ー`)ノ 22:07 (kirfth_) 確認しました。 22:07 (Pude2k) 確認しました 22:08 (minke) OKです。 22:08 (yuushi_q0) まずはメモ帳を開いて下さい。 22:09 (yuushi_q0) ollydbgを開いてファイルー>アタッチをクリック。 22:09 *aquo quit (Ping timeout) 22:10 (wahiko) 今動いているプロセスですか? 22:10 *aquo join #revengin (^aquo@101CTKP.ctktv.ne.jp) 22:10 (MiD_) ここで悪乗りしまくって がんがんクリックするとフリーズするから注意っ!!(体験者談 22:10 (wahiko) 気を付けます 22:10 (IPUSIRON) 一旦メモ帳を起動してから、アタッチという意味ですか? 22:11 (yuushi_q0) そうです。 22:11 (IPUSIRON) わかりました 22:12 (yuushi_q0) 皆さんアタッチできましたか? 22:12 (kirfth_) できました。 22:12 (MiD_) できました 22:12 (wahiko) はい 22:13 (IPUSIRON) OKです 22:13 (Pude2k) どうぞ 22:14 (yuushi_q0) このときメモ帳はフリーズ状態になります。 22:14 (MiD_) アタッチでメモ帳を選択するんでしょうか? 22:15 (yuushi_q0) そうです。 22:15 (MiD_) 了解です 22:15 (wahiko) しました 22:16 (MiD_) メモ帳フリーズ確認 22:16 (yuushi_q0) 左から二番目にある巻き戻しボタンのようなのを押してください 22:17 *aquo quit (Ping timeout) 22:17 (yuushi_q0) はいを押すといったんメモ帳を終了しメモ帳を再起動します。 22:17 (wahiko) 注意書きは飛ばしていいですか 22:17 *aquo join #revengin (^aquo@101CTKP.ctktv.ne.jp) 22:19 (yuushi_q0) さっきと同じことは解析ー>再スタートやctrl+F2でもできます。 22:19 (MiD_) メモ帳消えました。自動で再起動されないってことは手動でメモ帳 再起動かな。 22:19 (wahiko) 僕も消えました 22:19 (kirfth_) メモは新しく起動したらいいんですよね? それとも、一度メモ帳を保存して アタッチして、巻き戻しして、再び保存したのを起動? 22:19 (yuushi_q0) 大丈夫です。 22:20 (yuushi_q0) プログラムの開始前で実行を止めているのでウィンドウが出ないのです。 22:20 (wahiko) なるほど 22:20 (MiD_) おお! つまり内部では自動で再起動されてるのか ???? 22:21 (Pude2k) タスクマネージャーを見ると、確かにメモ帳はありますね^^ 22:21 (yuushi_q0) たぶんそうです。 22:21 (yuushi_q0) 左にある CPU −メインスレッド をスクロールしてみて下さい。 22:22 (yuushi_q0) 始めはわけが分からないと思います。 22:23 (yuushi_q0) でも後々分かるようになるので大丈夫です。 22:24 (minke) すみません、しばらくフリーズしてましたが、今追い付きました(--; 22:24 (minke) 構わず続けてくださいな。 22:25 (yuushi_q0) 右クリックから検索ー>ラベル名をクリック 22:26 (yuushi_q0) これが何だかわかりますか? 22:26 (MiD_) 関数名羅列?? 22:27 (yuushi_q0) 正解!! 22:27 (MiD_) ??ヽ(´ー`)ノ 22:27 (yuushi_q0) DLLを使って呼び出される関数の一覧です。 22:28 (wahiko) windowsファイルにあるDLLですね 22:28 (MiD_) つかわれてるアドレスまで表示してくれるのか。。。 脆弱っぽい関数知ってたら???だ。。。 22:29 (yuushi_q0) ただし、これが全てとは限りません。動的にDLLを呼び出す方法もあります。 22:30 (IPUSIRON) MiDさん 半角カナ使ってるのかな? 発言に???に入ってる… 22:30 (Pude2k) 自分も???になってます 22:30 (Pude2k) ???になって見えます。 22:30 (MiD_) あ、、、半角カナつかっちゃいましたw すいませんw 22:30 (yuushi_q0) 詳しいことは実際にその方法が使われた時に解説します。 22:30 (MiD_) はい 22:31 (yuushi_q0) レジスタとスタックについて解説必要ですか? 22:31 *wahiko quit (Connection reset by peer) 22:32 (MiD_) 概念的には理解してます。。。深い理解が必要ならお願いしたいです。 22:32 (minke) 一応わかってるつもりです。 22:33 (Pude2k) わかります。 22:33 (Pude2k) だいたいは。 22:33 (yuushi_q0) では簡単にEAX には関数の戻り値が入ります。 22:34 (yuushi_q0) 始めはこの程度で十分です。 22:34 *wahiko_ join #revengin (~wahiko@softbank219021026013.bbtec.net) 22:35 (MiD_) 了解です(アセンブリの教科書持っててよかった。。。 22:36 (yuushi_q0) メモ帳から始めるには辛いとおもうので簡単なcrackmeを解析します。 22:36 (wahiko_) はい 22:36 *aquo quit (Ping timeout) 22:36 (MiD_) はい 22:37 *aquo join #revengin (^aquo@101CTKP.ctktv.ne.jp) 22:37 (yuushi_q0) crackmeはeagle0wlさんの作ったものを利用します。eagle0wlさんに感謝!! 22:37 (MiD_) 多謝ヽ(´ー`)ノ 22:38 (yuushi_q0) http://www.mysys.org/eagle0wl/にアクセスしてcrackmeを開いて下さい。 22:38 (IPUSIRON) さっきアタッチしたままになってますが、一旦とめていいんですか? 22:38 (wahiko_) notpadeとめていいですか? 22:39 (yuushi_q0) 0llydbgは終了してください。 22:39 (yuushi_q0) 一緒にメモ帳も消えます。 22:40 (IPUSIRON) はい 22:40 (MiD_) ほんとだ。メモ帳プロセス消えた。 22:40 (Pude2k) はい 22:40 (wahiko_) はい 22:40 (minke) はい。 22:42 (yuushi_q0) ちょっと蛇足、普段終了できないような重要なプロセスもアタッチしてollydbgを終了すれば、なんと終了出来てしまいます。 22:42 (MiD_) な、なんと! 22:42 (yuushi_q0) 実際にはやらないように 22:42 (MiD_) 了解しましたヽ(´ー`)ノ 22:43 (wahiko_) crackme vol01でいいですか 22:43 (yuushi_q0) eagle0wl's crackme VOL.01と02をDLして下さい。 22:43 (wahiko_) はい、しました 22:44 (MiD_) しました。 22:44 (kirfth_) しました。 22:44 (IPUSIRON) OKです 22:45 (aquo) OKです 22:45 (Pude2k) OKです 22:45 (minke) OKです 22:45 (yuushi_q0) 1から順番にやっていきます。解凍してe0-crkme_vol01.nfoをメモ帳で開いて読んで下さい。 22:47 (yuushi_q0) 目的は対応したシリアルをだすことです。 22:48 (MiD_) 読み終えました。 22:48 (yuushi_q0) 実際に解析を始める前にメモの取り方について説明します。 22:48 (MiD_) はい。 22:49 (yuushi_q0) メモの取り方の例 22:49 (yuushi_q0) ファイル名: XXX.exe 22:49 (yuushi_q0) 目的: デバッガを使って、シリアルを解析する。 22:49 (yuushi_q0) このプログラムの動作 22:49 (yuushi_q0) 1. 起動時には見た目のアクションはなし。 22:49 (yuushi_q0) 2. コントロールの種類はボタンとエディット。 22:49 (yuushi_q0) 3. 各ボタンの操作 22:49 (yuushi_q0) @"?"を押すとダイアログボックスを表示 22:49 (yuushi_q0) A... 22:50 (yuushi_q0) 確認された文字列: 22:50 (yuushi_q0) "確認"を押したとき "シリアルが間違っています。" 22:50 (yuushi_q0) デバッギングのメモ 22:50 (yuushi_q0) 0x41000 - 0x41014 暗号化 22:50 (yuushi_q0) 0x4100 call 先 22:50 (yuushi_q0) . 22:50 (yuushi_q0) . 22:50 (yuushi_q0) . 22:50 (yuushi_q0) あっ! 読みにくくなった。すみません。 22:52 (MiD_) いえ、メモの雰囲気掴めました。 22:52 (yuushi_q0) ボタンを押したときの動作や文字列を必ず確認しましょう。慣れてくれば、必要なこととそうでないことが分かるようになります。 22:53 (Pude2k) はい。 22:53 (yuushi_q0) では実践へ。皆さん準備はいいですか? 22:53 (MiD_) はい。 22:53 (wahiko_) どうぞ 22:53 (Pude2k) どうぞ 22:54 (aquo) 大丈夫です 22:54 (minke) 準備OKです 22:54 (kirfth_) 大丈夫です。 22:54 (yuushi_q0) 解凍したフォルダからcrkme01.exeを右クリック->ollydbgで開く。 22:55 (Pude2k) OKです 22:55 (MiD_) OKです 22:55 (minke) 開きました。 22:55 (wahiko_) はい 22:56 (kirfth_) okです 22:56 (yuushi_q0) 画面左上の逆アセンブルリストの上で右クリックして「検索→ラベル一覧」を選択して下さい。 22:56 (yuushi_q0) すると、命令リストが表示されるので、その中からGetWindowTextAを選択して下さい。 22:56 (yuushi_q0) 文字を入力したりボタンを押したりして動作を確認します。 22:56 (yuushi_q0) 登録ボタンを押すとメッセージボックスが表示せれると思います。一応内容をメモって下さい。 22:57 (yuushi_q0) GetWindowTextA上で右クリック「全ての参照をブレークポイントにセット」を選択して下さい。 22:57 (yuushi_q0) すると、GetWindowTextA にブレークポイントがセットされるはずです。 22:58 (Pude2k) はい。4つセットされました。 22:58 (IPUSIRON) 登録ボタンはどこですか? 22:59 (yuushi_q0) ブレークポイントとは、ここにきたら処理を止めてくれというものです。 22:59 *aquo quit (Ping timeout) 22:59 (yuushi_q0) すみません。そこの文は無視してください。 22:59 (IPUSIRON) Ollyの中の話ではなく起動時の話だったんですね 23:00 (MiD_) ブレイクポイントがセットされたかどうかは 23:00 (wahiko_) getwindowtextAをcallしてあるところが赤くなったらOKですね 23:00 (MiD_) どうやって確認するのでしょう 23:00 (yuushi_q0) 赤くなります。 23:01 (minke) アドレスラベルが赤くなる、ということで良いでしょうか? 23:01 (yuushi_q0) OKです。現在の位置は黒い部分です。 23:02 (IPUSIRON) できました 23:02 (yuushi_q0) では逆アセンブラ画面(CPU )に戻って、F9を押します。 23:03 (yuushi_q0) すると、crackme#01 ウィンドウが現れるはずです。 23:03 (yuushi_q0) crackme#01 ウィンドウ上のパス入力欄に適当なパスワードを入れて登録ボタンを押します。 23:04 (yuushi_q0) OllyDbg に制御が移り、先ほど仕掛けたブレークポイントで止まります。 23:04 (MiD_) おお 23:04 (MiD_) とまった 23:05 (yuushi_q0) 問題GetWindowTextとは何をする関数でしょう? 23:06 (Pude2k) 文字列を取得するものですね 23:06 (MiD_) 入力されたテキストを返す関数? 23:06 *wahiko_ quit (Connection reset by peer) 23:07 (yuushi_q0) 正解です。GetWindowTextは指定されたウィンドウのテキストを取得して第1引数のBufferに記録します。 23:07 *wahiko_ join #revengin (~wahiko@softbank219021026013.bbtec.net) 23:07 (MiD_) ふむふむ 23:08 (yuushi_q0) 関数の呼び出しはスタックを使ってよびだすので 23:09 (yuushi_q0) すみません第2引数でした。 23:09 (yuushi_q0) 004011EA . 68 2C304000 PUSH CRKME01.0040302C ; |Buffer = CRKME01.0040302C 23:10 (minke) 後ろの引数から順にPUSHされるのですね。 23:11 (Pude2k) ごめんなさいw↑見直してみたらブレークポイントの数を4ってうってましたね。タイプミスで2の間違いです。 23:11 (Pude2k) はい。 23:12 (yuushi_q0) 後ろからではなく前からスタックに押し込まれます。 23:12 (Pude2k) 前からですか? 23:13 (minke) あら、前からでしたか。 23:13 (yuushi_q0) では2,3枚紙を用意してみて下さい。 23:14 (yuushi_q0) ペンで1、2、3とそれぞれの紙に書いて下さい。 23:14 (yuushi_q0) 準備できましたか? 23:14 (wahiko_) hai 23:14 (wahiko_) はい 23:15 (kirfth_) はい。 23:15 (Pude2k) はい。 23:15 (MiD_) はい 23:15 (yuushi_q0) 紙を全部持って下さい。 23:16 (yuushi_q0) 机の上に1と書かれた紙を置きます。 23:16 (yuushi_q0) この置くという動作がスタックにpush(積む)という動作です。 23:17 (yuushi_q0) 次に2と書かれた紙を置いてください。 23:18 (yuushi_q0) スタックというものはこの置いた紙を上から順に取り出します。 23:19 (yuushi_q0) つまり取り出すには2,1という順番で取り出します。 23:20 (yuushi_q0) 数が増えても同じことです。 23:21 (yuushi_q0) つまり最後にpushされたものが第1引数になります。 23:21 (yuushi_q0) こんな説明で分かりますでしょうか? 23:21 (Pude2k) つまり、 23:21 (Pude2k) やっぱり、後ろの引数から順にPUSHされるのですよね? 23:21 (Pude2k) 呼び出し規約 STDCALL なので。 23:22 (minke) ですよね。 23:22 (yuushi_q0) そうです。すみません、勘違いしていました。 23:23 (yuushi_q0) では続けます。Bufferの数値0040302Cをメモっておいて下さい。 23:23 (Pude2k) はい。 23:23 (yuushi_q0) ではここから、トレースをしていきます 23:24 (yuushi_q0) F7はcallの内部に潜り、 F8はcallの内部に潜りません。今回は、callの内部に潜らないため、F8を押してください。 23:24 (yuushi_q0) 00401258に止まります。 23:25 (yuushi_q0) callとは関数の呼び出すものだと考えてください。 23:25 (MiD_) 0040302Cがありません。。。。 23:27 (minke) これって、実行時の環境依存でしょうか? 23:27 (yuushi_q0) 004011EA . 68 2C304000 PUSH crkme01.0040302C ; |Buffer = crkme01.0040302C 23:27 (yuushi_q0) がありませんか? 23:28 (MiD_) それはあります 23:28 (yuushi_q0) そこにある数値のことです。 23:29 (MiD_) わかりましたっ すいませんでした 23:29 (minke) 私の質問も流して結構です。みんな一緒なのですね。 23:29 (yuushi_q0) 分かりにくい説明ですみません。続けます。 23:30 (yuushi_q0) 関数が羅列されたところにきます。ここは二箇所めブレークポイントです。 23:30 (yuushi_q0) 今度はAlt+F9をを押して下さい。 23:30 (yuushi_q0) 00411FAで止まります。 23:31 (yuushi_q0) OKですか? 23:31 (Pude2k) はい。 23:31 (minke) OKです 23:31 (kirfth_) okです 23:32 (MiD_) OKです 23:32 (yuushi_q0) 2つの文字列をプッシュした後、にcall命令でlstrcmpAを呼び出しています。 23:32 *wahiko_ quit (Connection reset by peer) 23:32 (yuushi_q0) lstrcmpAはC言語をやっていれば気づくかもしれませんがstrcmpと同じく文字列比較関数です。 23:32 (yuushi_q0) 第1引数と第2引数に格納さっれた文字列比較するものです。 23:33 (yuushi_q0) GetWindowTextのときとったメモとlstrcmpAの第1引数とメモに書かれた数字を比べてみて下さい。 23:33 (yuushi_q0) 一致していますね。つまり、GetWindowTextで取得したものと第2引数を比較しています。 23:34 (MiD_) ほんとだー 23:34 (yuushi_q0) ということは、答えは何でしょう? 23:35 (Pude2k) doomoですね。 23:35 (MiD_) doomoだー 23:36 (MiD_) ちゃんと文字データで表示されるんだなぁ。。。 23:36 (IPUSIRON) lstrcmpAの第1引数はどこで見れるんですか? 23:36 (IPUSIRON) 004011FF . 68 2C304000 PUSH crkme01.0040302C ; |String1 = "1111" 23:36 (IPUSIRON) ここですか? 23:37 (MiD_) みたいです。 23:38 (IPUSIRON) わかりました 23:40 (Pude2k) 続けてください。>yuushi_q0さん 23:41 (IPUSIRON) String2に自分が入力した文字列、String1に答えの文字列がセットされるんですね 23:41 (yuushi_q0) すみません。急用が入ったのでこれ以降のことは明日あたりにupしておきます。 23:41 (Pude2k) 了解です。 23:41 (MiD_) そうですか 残念です。 とても楽しかったです。 23:42 (IPUSIRON) 了解しました。お疲れ様でした 23:42 (yuushi_q0) 本当に申し訳ないです。 23:42 (kirfth_) わかりました。お疲れ様でした。 23:42 (minke) お疲れさまでした。 23:42 (Pude2k) お疲れ様でした。 23:42 (MiD_) また機会があれば参加させてください 23:42 (MiD_) お疲れさまでした 23:42 (yuushi_q0) お疲れ様でした。 23:42 *yuushi_q0 quit ("CHOCOA") 23:43 (MiD_) みなさんお疲れさまでしたw たのしかったですね 23:43 (Pude2k) ですね^^ 23:43 (minke) ですねー。