<?xml version="1.0" encoding="utf-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
<channel>
<title>baddamonのブログ</title>
<link>https://ameblo.jp/ghostonlinehack/</link>
<atom:link href="https://rssblog.ameba.jp/ghostonlinehack/rss20.xml" rel="self" type="application/rss+xml" />
<atom:link rel="hub" href="http://pubsubhubbub.appspot.com" />
<description>ブログの説明を入力します。</description>
<language>ja</language>
<item>
<title>一点</title>
<description>
<![CDATA[ 一点をUP！<br>使い方はF３しかおしちゃだめだよｗ<br><br>http://www.megaupload.com/?d=BBHYEOUI
]]>
</description>
<link>https://ameblo.jp/ghostonlinehack/entry-10717752243.html</link>
<pubDate>Thu, 25 Nov 2010 14:42:26 +0900</pubDate>
</item>
<item>
<title>Defence max やり方</title>
<description>
<![CDATA[ 1.cheat-engine5.6.1を起動！<br><br>2.プロセスを選択(gameかghost online)<br><br>3.まず、自分の防御力を確認し、検索にかける(4byte)<br><br>4.次に、自分の防御力を変えて、また検索ににかける(4byte)<br>このときに、firstじゃなくnextで検索にかける<br><br>5.これを繰り返して、残った値が防御力だ<br><br>-ここに俺の探したコードを乗せておく-<br><br>アドレス<br>033F6D0E 値は32767でmax<br>でも、時々、6万以上や9万以上で表示されるときがあるから、そのときは、少しづつ、値を変えるんだ！<br>とにかく32767がステータスに表示されたら、それ以上はあげるな！<br>バグるからな( ；´Д｀)<br><br>Hexで確認するときは-<br>防御力　<br>元の値XX XX⇒FF 7Fに変更
]]>
</description>
<link>https://ameblo.jp/ghostonlinehack/entry-10715420734.html</link>
<pubDate>Tue, 23 Nov 2010 04:04:23 +0900</pubDate>
</item>
<item>
<title>逆アセンブリの知識をつけよう</title>
<description>
<![CDATA[ 今回紹介するツールこの世界では有名な「OllyDbg」です。<br>プラグインも多く存在していて、おそらくこれを超える逆アセンブラツールはないでしょう。<br>使用には専門的な知識を有します。<br><br><br><div align="left"><a href="http://stat.ameba.jp/user_images/20101122/18/ghostonlinehack/6e/c8/j/o0315007010874658291.jpg"><img src="https://stat.ameba.jp/user_images/20101122/18/ghostonlinehack/6e/c8/j/o0315007010874658291.jpg" alt="photo:01" width="300" height="66" border="0"></a></div><br clear="all"><br><br>逆アセンブラ兼デバッガ:OllyDbg<br>http://home.t-online.de/home/Ollydbg/<br>OllyDbgの日本語解説と日本語化パッチ<br>http://gamereverserz.cjb.net/<br><br><br><br><br>ここでは解析にあたり最低限必要な情報を記しておく。問題ないとは思うがざっと目を通しておけ。<br><br>もし分からんようなら自分で調べろ、質問はするなよ？いいな。<br><br><br>≡用語≡<br><br>ミジンコ<br>まぎれもなくお前らのことだ。といっても俺もミジンコだからよろしくな('A`)<br><br><br>API(Application Program Interface、略してAPI)<br>API は Windows の様々な機能を提供するパッケージだ。これを用いることで簡単に色々な機能を持つプログラムが作れるようになる。<br>解析にとっては、このAPIがキモになる。また、API を用いたプログラムの形として SDK や MFC がある。<br>噛み砕いて説明すると、SDK は WIN32 API をそのままの形でガリガリ使いまわす方法だ。<br>これに対して MFS は SDK、もとい WIN32 API の細かい設定などを簡略化して WIN32 API を使えるようにしたプログラミングの型だ。<br>もし、プログラミングをかじろうとしてるのならまずは SDK を進める、MFC のほうが機能的に上かもしれないが<br>理解する、という意味では SDK のむき出しの WIN32 API を扱ったほうがいいと思うからだ。<br>無論、ウィンドウやメッセージの概念を理解し、ある程度プログラムを組めるのであれば MFS で全然かまわないと思うがな。<br><br><br>アセンブリ・アセンブラ・アセンブル・・・<br>色々な呼び方があるがミジンコゼミではソースコードを CPU が理解できる形にするものをアセンブラ、アセンブルと呼ぶ。<br>その行為自体もアセンブラ、アセンブルという言葉で表現する。<br>アセンブラの代表的なものだと MASM や NASM が有名だ。<br>また、mov や jmp、call などの命令を含め人が理解できる表示形式になっているものをアセンブリ言語、ニーモニックと呼ぶ。<br><br><br>パック・アンパック<br>ファイルの圧縮や解凍があるだろ、あれを実行ファイルにやることがパックだ。<br>なんだそんなことかよ…。とか思うなよ、パックのすごいところは圧縮されたままの状態で実行できるってことだ。<br>有名どころだと UPX や AS-Protect とかだな。<br>パックされている実行ファイルを解析する場合にはまずアンパックという作業が必要となる。いわば解凍だ。<br>なぜアンパックする必要があるかというと、パックされたファイルは内部的に自分自身の解凍ルーチンのようなものを保持している。<br>つまり実行プログラムのコード以外にも余計なものが入っており、そのままだと正しい情報が見れないわけだな。<br>ミジンコゼミではアンパックの方法には触れないが、パックされているネトゲのプログラムもあるから頭の片隅にでもいれておけ。<br>ちなみにプログラムがパックされているかどうかは PEiD で確認しろ。<br><br><br>アドレス<br>プログラム内で使われるデータはメモリ上に保存されている。<br>メモリ上といっても範囲が広いのでメモリ上のどこにデータがあるのか？を示すのがアドレスだ。<br><br><br>スタック<br>プログラムが使うデータを一時的に格納する場所がスタックだ。といったところで少々わかりづらいな…。<br>よし、紙切れ一枚一枚に「あ」「い」「う」「え」「お」と書いてみろ。つまり５つのデータ(紙切れ)が出来たわけだな。<br>次になんでもいいから箱を用意しろ。箱にはスタックと書いておけ。<br>そしてスタック(箱)の中にデータを書いた順番どおりにいれてみろ、データは一つ一つ重ねて入れるのがポイントだ。<br>これにより箱の一番したには「あ」があり、次に「い」、一番上には「お」がある。このようにデータを収める構造をスタックという。<br>スタックの原則としてデータを取り出すときに一番下にある「あ」をいきなり取り出すことは出来ない。<br>一番上にある「お」から順番に取り出さなきゃいかん。<br><br><br>≡命令文≡<br>アセンブリ言語で使う命令文だ。<br>Ollydbg などのデバッガにプログラムを食わせるとこの形式で表示される。最低でもこれくらいは意味がわかるようにしておけ。<br>それとな、初めて見るやつには多く感じるかもしれないが心配するな。こんなの覚えようとしなくても勝手に頭に入ってくるもんだ。<br><br>MOV：mov [dest] [src]<br>データの移動(厳密にはコピー)を行う<br><br>例１：数値２を eax にコピーする。<br><br>　　　mov eax, 2　　; eax へ 2をコピー。<br><br>例２：変数 t1 に文字列 title が入っている場合。<br>　　　eax に変数 t1 のアドレスをコピーする。<br>　　　<br>　　　t1: db 'title',0　; 変数t1 には文字列titleを定義<br>　　　.<br>　　　.　　　<br>　　　mov eax, t1<br>　　　<br>例３：変数 t1 に文字列 title が入っている場合。<br>　　　eax に変数 t1 が示す値(title)をコピーする。<br>　　　<br>　　　t1: db 'title',0　; 変数t1 に文字列titleを定義<br>　　　.<br>　　　.　　　<br>　　　mov eax, [t1]<br>　　　<br><br>ADD：add レジスタ１, レジスタ２ or 数値<br>指定した値で加算する。演算結果はレジスタ１で指定したレジスタになる。<br><br>例１：eax と edx を足し、結果を eax に保存する。<br>　　　mov eax, 4<br>　　　mov ebx, 1<br>　　　add eax, ebx<br><br>SUB：add レジスタ１, レジスタ２ or 数値<br>指定した値で減算する。演算結果はレジスタ１で指定したレジスタになる。<br><br>例１：eax から edx を減算し、結果を eax に保存する。<br><br>　　　mov eax, 4<br>　　　mov ebx, 1<br>　　　sub eax, ebx<br><br>MUL：add レジスタ１, レジスタ２ or 数値<br>指定した値で乗算する。演算結果はレジスタ１で指定したレジスタになる。<br><br>例１：eax と edx で乗算し、結果を eax に保存する。<br><br>　　　mov eax, 7<br>　　　mov ebx, 2<br>　　　mul ebx<br>　　　<br>DIV：add レジスタ１, レジスタ２ or 数値<br>指定した値で除算する。演算結果はレジスタ１で指定したレジスタになる。余りは edx レジスタに保存される。<br><br>例１：eax と edx で乗算し、結果を eax に保存する。余りは edx に保存される。<br>　　　<br>　　　mov eax, 7<br>　　　mov ebx, 2<br>　　　mov edx, 0<br>　　　div ebx<br><br>CMP：cmp 比較対照１, 比較対照２<br>比較対照１と比較対照２の値が等しいかどうかを判定する。等しい場合はＺフラグが１に、等しくない場合は０(ゼロ)になる。<br><br>例１：eax と ebx の値を比較する。<br><br>　　　mov eax, 5<br>　　　mov ebx, 5<br>　　　cmp eax, ebx　⇒ 等しいのでZフラグは１に変わる。<br><br>　　　<br>JMP：jmp [あて先アドレス]<br>指定したアドレスへ処理をジャンプさせる。ジャンプした先の処理が終わってもジャンプ元の処理には戻らない。<br><br>例１：プログラム内のアドレス 401000 の処理へジャンプする。<br><br>　　　push 1<br>　　　push 2<br>　　　JMP 402000 ⇒ 次の処理 push 10 は飛ばされ、アドレス402000 の push 40 以降の処理を行う。<br>　　　push 10<br>　　　.<br>　　　.<br>　　　push 40<br><br>JE：JE [あて先アドレス]<br>Zフラグが１の場合、指定したあて先アドレスへJMPする。<br><br>例１：eax がゼロの場合、アドレス402000の処理へ飛ぶ。<br><br>　　　mov eax, 0<br>　　　cmp eax, 0<br>　　　je 402000<br><br>JNE：JNE [あて先アドレス]<br>Zフラグがゼロではない場合、指定したアドレスへJMPする。<br><br>例１：eax が1の場合、アドレス402000の処理へ飛ぶ。<br><br>　　　mov eax, 1<br>　　　cmp eax, 0<br>　　　jne 402000<br><br>CALL：call [処理]<br>指定した処理（ＡＰＩや関数）を呼び出す。CALLはJMPと違って、処理終了後に呼び出し元の処理に戻ってくる。<br><br>例１：MessageBox API を呼び出す。<br><br>　　　push 0<br>　　　push "title"<br>　　　push "text"<br>　　　push 0<br>　　　call MessageBox ⇒ 処理終了後は次の処理 push 10 を行う。<br>　　　push 10<br><br><br>INC：inc レジスタ<br>指定したレジスタの値に１を加算する。<br><br>例１：eax の値を5から6へ。<br><br>　　　mov eax, 5<br>　　　inc eax<br><br>DEC：dec レジスタ<br>指定したレジスタの値から１を減算する。<br><br>例１：eax の値を5から4へ。<br><br>　　　mov eax, 5<br>　　　inc eax<br><br><br>PUSH：push レジスタ or 数値<br>指定した値をスタックへいれる。<br><br>例１：スタックへ 10 を格納。<br><br>　　　push 10<br><br>POP：pop レジスタ<br>スタックから値を取り出す。<br><br>例1：スタックから eax へ 10 を取り出す。<br><br>　　　pop eax<br><br><br>AND、OR、XOR：and、 or、 xor、 レジスタ or 数値, レジスタ or 数値<br>それぞれ論理積(and)、論理和(or)、排他的論理和(xor)をとる。<br><br>今日はここまで( ´Д`)y━･~~ <br><br>てか、うつの大変( ；´Д｀)<br><br>目の前でやって見せたほうが...<br><br><br><br><br><br><br>
]]>
</description>
<link>https://ameblo.jp/ghostonlinehack/entry-10714909193.html</link>
<pubDate>Mon, 22 Nov 2010 10:01:27 +0900</pubDate>
</item>
</channel>
</rss>
