(このノートは最後まで無料で読めます。投げ銭方式です) 今回はメモリマップの見方のお話です。 まずは第零話の「ブレイクポイント」の章と同じく、main()関数のところにブレイクポイントを設置して実行します。EIPがmain()関数の最初の命令の行を指します。 そこで[View]メニューから[Memory Map]を選択。 別のウィンドウにメモリマップが表示されます。 これは何かというと。このプログラムに与えられた仮想アドレス空間です。 例えば1行目が何を表しているのかというと、「00010000」(Address)というアドレスから00010000分(Size)は「Heap」(Contains)であり、読み取りと書き込みの権限(Access)がある。という感じです。RWはReadableとWritableの略。 仮想アドレス空間については詳しく説明しようとするとハマるので簡単に言いますと、
第 2 回 時間制限の回避 前 回、OllyDbg を 使うことで Message BoxA関数を呼び出す箇所(00402998)を特 定しました。次は、このエラーメッセージを表 示するに至る「過程」を調べます。 1192年の5月15日にしか起動しないという ことは、このcrackme.exeを実行したその日 が 1192年の 5月15日であるかどうかをプロ グラムの中で判断しているわけです。その判 断フローをプログラミング的に記述するならば 以下になります。 1. 現在日時を取得 2. 取得した年と1192を比較 3. 取得した月と5を比較 4. 取得した日と15を比較 5. 2∼4のいずれかが異なればエラー そしてこの判断フローが、Message BoxA 関 数 が 呼 び 出 さ れ て い る 箇 所 ( 00402998)より前に必ず存在するは ずです。 もし2∼ 4の
はじめに 最初に断っておきますが、私はKrackerではありませんし、またリバースエンジニアリングについてさほど詳しいわけでもありません。そんな人が「リバースエンジニアリング」などと銘打って文章を書くこと自体がそもそもおかしいですが、今回は、私がリバースエンジニアリングについていろいろと調べた結果をテキストとしてまとめてみようということでこの文章を書き上げました。よって、この文章は私がここ1ヶ月くらいで学んだ過程を書き綴っています。ただ、まとめたといっても、デバッガの使い方といった初歩の部分から書いているわけではないので、少なくともアセンブリ言語を理解していることが前提となります。また場合によっては、WindowsやDLLの仕組み、そして暗号アルゴリズムに関してもある程度の知識が必要かもしれません。 実験を行った私の環境はWinXP、コンパイラはVC++.NET、デバッガはOllyDbgで
※初めての方はまず「OllyDbgを使ってx86アセンブラとデバッガの基礎の基礎を学ぼう」と第零話「まずは動かしてみる 〜ブレイクポイントとステップ実行〜」をご一読ください。 第零話では「ステップ実行」をやってみました。この「ステップ実行」には、いくつかの種類があります。ステップイン・ステップオーバー・ステップアウトです。
VBすらまともに触れませんが、なんとなくやってみたら出来たので、手順を自分なりにまとめてみました。 [スキル] VB6.0で、HelloWorldを出力できる程度 アセンブラ?そういうのは、追いかけながら何となく。 [使用したアプリ] OllyDbg 300MByteくらいのテキストを開けるテキストエディタ [参考にしたサイト] アセンブラ入門 http://www5c.biglobe.ne.jp/~ecb/assembler/assembler00.html WindowsのAPIについて http://msdn.microsoft.com/ja-jp/library/cc429820.aspx 知らなくても、調べる所は必要です。 [ターゲットとしたアプリ] とりあえず、Crackme.exe(つか、自作) [これをする上で知っておきたい用語]というか、やってるうちに下に書いた程度の事は
Blog Top Mijinko Semi Top Mijinko seminar. Produced By SP Now the Mijinko it is possible to stand up!!('A`) 多重起動1(FindWindow1) 今日からしばらくは多重起動についての授業だ。 ミジンコゼミで教える 多重起動 は最近の 多重起動 の基本とされている FindWindow、EnumWindow、CreateMutex についてだ。 しかし実際には、多重起動 のチェックをする方法は俺が知っている限りでも10近くある。 今回紹介しないもの以外の方法ついては是非とも自分で考えてみてくれ。 早速だが、MSDN で今回の題材となる FindWindow とは何か調べてみようか。 -- MSDN より抜粋 -- 指定されたクラス名とウィンドウ名を持つトップレベルウィンドウ (親を持た
Blog Top Mijinko Semi Top Mijinko seminar. Produced By SP Now the Mijinko it is possible to stand up!!('A`) 三日目の今日は簡単な演習を行うが、ここでの目的は Ollydbg の使い方に慣れることだ。 使い方を知っているみじんこはさっさと 多重起動1へ行って来い。 さて、残ったみじんこたちよ、演習に使うプログラムはこれだ ダウンロードが完了したら Ollydbg で開いてみろ。「ファイル」⇒「開く」そのままだ。 開いたら F9 を押して処理を進めるんだ。First という文字が表示されるポップアップが出てきただろう。次は「ok」を押せ。 プログラムは終了したか?そしたら再読み込みをさせるんだ。再読み込みは Ctrl+ F2 だ! いいか、今操作した ファイル(プログラム)を開き F9
今回紹介するツールこの世界では有名な「OllyDbg」です。 プラグインも多く存在していて、おそらくこれを超える逆アセンブラツールはないでしょう。 使用には専門的な知識を有します。 逆アセンブラ兼デバッガ:OllyDbg http://home.t-online.de/home/Ollydbg/ OllyDbgの日本語解説と日本語化パッチ http://gamereverserz.cjb.net/ ここでは解析にあたり最低限必要な情報を記しておく。問題ないとは思うがざっと目を通しておけ。 もし分からんようなら自分で調べろ、質問はするなよ?いいな。 ≡用語≡ ミジンコ まぎれもなくお前らのことだ。といっても俺もミジンコだからよろしくな('A`) API(Application Program Interface、略してAPI) API は Windows の様々な機能を提供するパッケージだ。
はじめに デバッガの使い方が全然わからなかったので、Hack.lu CTF 2013のRoboAuthという問題で練習しました。 この問題は、パスワードを探すというとてもシンプル内容なので練習にはちょうどいいかなと思います。 問題の概要 問題文は以下の通り RoboAuth (Category: Reversing) Author(s): cutz Oh boy, those crazy robots can't catch a break! Now they're even stealing our liquid gold from one of our beer tents! And on top of that they lock it behind some authentication system. Quick! Access it before they consume al
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く