スクリプトの更新

ましゅラボ内検索 / 「スクリプトの更新」で検索した結果

検索 :
  • スクリプトの更新
    バイト列の取得 バイト列の検索 命令列の取得 命令列の検索 オンラインゲームでは新しい要素を追加するために定期的にアップデートパッチが行われます。 バージョンアップに伴い以前作成したスクリプトが利用できなくなることが多いです。 これは新たな機能、すなわち、プログラムが挿入されることによってアドレスが後ろにずれこむからです。 例えば、以下の画像を参照してみましょう。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (v2.PNG) パッチ前 パッチ後 パッチ前と後でこのコードが存在するアドレス自体はパッチ後は後方にずれ込んでいること(012E960Ch→0136D12Ch)が分かります。 このようにパッチが行われたとしても元のソースコードが改変されない限りはパッチ後でもずれこんだコードがそのまま...
  • メニュー
    ... APIフッキング スクリプトの更新 BypasslessHookの構築 アンチチート HackShield 翻訳物 Packet Hacking マルウェア解析 +環境構築 VMware +ツール IDA Pro +チートシート Win32 API ここを編集 更新履歴 取得中です。
  • スクリプトにホットキーを組み込む
    Win32APIを利用すればAAスクリプトに任意のホットキーを組み込むことができます。 今回利用するのは次のGetKeyState関数です。 参考 MSDN GetKeyState関数 MSDN 仮想キーコード一覧 (英語) 戻り値は、指定された仮想キーの状態を表します。各値は次のことを意味します。 最上位ビットが 1 のときはキーが押されていることを、0 のときはキーが押されていないことを示します。 最下位ビットが 1 のときはキーがトグル状態にあることを示します。最下位ビットが 0 のときはキーが OFF になっていて、トグルが解除されていることを示します。 AAスクリプトではこの関数を次のように呼び出すことができます: push 仮想キーコード call GetKeyState この関数を利用することであるキーを押した時にだけ...
  • Cheat Engine Lua 基礎
    LUAによるインタラクションはチートエンジンの2つの主要な方法によって行われます。1つ目はメモリビューワの"Tools- Lua Engine"(またはCTRL+L)からアクセスできるLua Engineウインドウを利用することで、2つ目はメインウインドウの"Table- Show Cheat Table Lua Script"(またはCTRL+ALT+L)からアクセスできるチートテーブルに関連付けられるLUAスクリプトを利用することです。また、他のスクリプトをロードして実行することも可能です。 Lua Engine Lua Engineウインドウを開くにはSHIFT+ALT+CTRL+Lを押してください。Lua Engineウインドウはスクリプトの全ての出力(print関数の呼び出し)を表示するだけでなく、コマンドを実行するための対話型スク...
  • スピードハック
    imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (speedhack.PNG)スピードハックはユーザのアプリケーションの速度を変更する機能です。 実行速度を上昇させることでアプリケーションの動作が高速になり時間の無駄を省くのに役立ちます。 ダウンロード速度を向上させたり他人がサーバに接続する経過時間を操作するなど物理的な事象を操作することは不可能であることに注意して下さい。 CEで使用されているスピードハックの仕組み speedhack.dllがターゲットプロセスにインジェクトされると、dllは自信をオリジナルファンクションのアドレスにエクスポートして、スピードハックのルーチンを初期化します。 フックと制御は内部ではCEサイドのオートアセンブラファンクションから行なわれています。 よって、オートアセンブラスクリ...
  • オートアセンブラ
    オートアセンブラはスクリプトを利用して任意のアドレスにアセンブリコードを記述することを可能にします。 スクリプトにはいくつかの特別なコマンドが用意されています。 値定義 db(Define Byte) バイト値を定義する dw(Define Word) ワード値を定義する dd(Define Doubleword) ダブルワード値を定義する dq(Define Quadword) クアッドワード値を定義する 使用例 DEFINE_BYTE  db 90 90 90 90 90 // 半角スペースで区切れば連続して定義できる DEFINE_WORD  dw FFFF DEFINE_DECIMAL  dd #10000 // #付きで10進数値を定義できる DEFINE_FLOAT  dd (float)0.01 // float値を定義できる DEFIN...
  • IDA Pro
     Interactive Disassembler Professional (IDA Pro)は,HexRays社によって配布されている非常に強力な逆アセンブラである.プログラム全体の逆アセンブルに加えて,関数の検索やスタック解析,ローカル変数の識別など多くの機能を備えている.また,IDA Proには大規模なコードシグネチャによる高速なライブラリの識別と認識技術(FLIRT)が含まれており,逆アセンブルされた関数,特にコンパイラによって追加されたライブラリコードの認識とラベル付けを行うことが可能である.IDA Proで最も優れている機能の1つが分析の進行状況を保存するものである.分析者はコメントやラベルデータ,関数名を追加して,IDA Proデータベースファイル(idbファイル)に作業を保存することで後にその作業に復帰することができる.また,プラグインやPythonスクリプトなどを利用し...
  • APIフッキング
    CEでAPIフックを行い敵キャラとの当たり判定の探索を行います。 矩形(くけい)どうしの当たり判定には、IntersectRectと言うWin32 APIが利用されることが多いです。 IntersectRectは引数で指定した矩形どうしが交わっているか否かを返します。 詳細:MSDN IntersectRect 関数 CEのメモリビューワで"Ctrl+G"を入力し"Goto Adresss"を開いて、目的のAPI名を入力するとメモリビューで参照することができます。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (APIHook_1.PNG) ターゲットプロセスにおいて当該APIのアドレスを検索しましょう。 今回、あるオンラインゲームに対して検索をかけた結...
  • ステップ9
    imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step9.PNG) Shared code (PW=31337157) このステップでは、異なるオブジェクトに対して同じコードが使用される場合の対処方法について説明します。 チュートリアルには簡単なゲームが埋め込んで有ります。 プレイヤーは4人で、2プレイヤーはあなたのチーム、もう2プレイヤーは敵チーム(COM)です。 あなたのタスクは、体力を書き込むコードを探して、体力値の固定をしないでこのゲームに勝つことです。 コードを改竄したら Restart game and autoplay を押して、あなたのコードが正しいかどうか確かめて下さい。 このチュートリアルでは構造体を理解・解析する力を養うことが目的となっています。 ゲームに勝つにはプレ...
  • チートテーブル
    チートテーブルはCEによって利用される.CT拡張子のファイルです。 このファイルにはあなたが配置しておいたアドレスや新しいアドレスを自動的に示すポインタベースのアドレスのリストを含めることができます。 また、ユーザーが簡単に有効/無効にすることができるオートアセンブラのスクリプトも含めることができます。 アドレスを追加するにはスキャンリストのアドレスをダブルクリックするか、アドレスとデータタイプを手動で入力します。 チートエンジンのメインウインドウの下部に"Add adress manually"ボタンがあるのでそれを利用しましょう。 チートテーブルを保存するには、CE左上にあるディスクアイコンをクリックしてください(またはCtrl + S) チートテーブルを読み込むには、CE左上にあるフォルダアイコンをクリックしてください(またはCtrl + ...
  • パケットキャプチャ
    たいていのオンラインゲームではサーバーと通信する上で暗号化されたパケットをやりとりしています。 暗号化されたパケットを解読することは難しいので暗号化される前のパケットを取得する必要があります。 送信するパケットについては暗号化を、受信するパケットについては復号化を行うルーチンがクライアント内に存在しているはずです。 これは、順序的には平文パケットに対して暗号化ルーチンを介した後で"Send"APIを呼び出し、"Recv"APIを呼び出した後で取得したパケットを復号化のルーチンを介して平文パケットにするような処理が存在するということです。 これらの処理を介してパケットを取得します。 Sendパケットを引数に取るルーチンを見つける ws2_32.dllの"send"APIのアドレスを調べます。 imageプラグインエ...
  • CRCBypass
    CRCとはCyclic Redundancy Checkの略で、日本語では巡回冗長検査となります。 巡回冗長検査(じゅんかいじょうちょうけんさ、英 Cyclic Redundancy Check, CRC)は、任意長のデータストリームを入力とし、例えば32ビット整数などの固定サイズの値を出力する関数の一種であり、連続する誤りを検出するための誤り検出符号の一種。CRC という用語は、その関数自体を指す場合とその出力値を指す場合がある。CRCは、データの転送や格納時にその一部が偶然変化したことを検出するチェックサムとして使うことができる。 巡回冗長検査 - Wikipediaより引用 多くのオンラインゲームにおいて、メモリの内容が改竄されたかどうかを検出する手法の1つにこのCRCが用いられています。 メモリが改竄されたかどうかを調べるため、CRCルーチンは当然メ...
  • Cheat Engine Lua デバッギング
    LUAスクリプトによるデバッガの制御を有効にするための機能が用意されています。 openProcess(name) - 実行中のプロセスを開く debugProcess() - プロセスのデバッグを開始する debug_setBreakpoint(address) - 指定したアドレスにブレークポイントを設置する。オプションのパラメータはsizeとtype。 debug_continueFromBreakpoint(method) - 実行を再開する, 指定できるメソッドは "co_run"、"co_stepinto"、"co_stepover"のいずれか ("co_runtill"がTContinueOption内で用意されているがmain.luaには示されていません。これはおそらく実行するためのアドレ...
  • BypasslessHookの構築
    BypasslessHookはCRCによるメモリ改竄チェックを迂回するための手法としてよく利用されます。 CRCによって改竄チェックできるのはメモリ上に展開されたプログラムの実行領域のみであり、それ以外のデータ領域(静的変数やヒープ)やスタック領域の改竄はチェックできません。 BypasslessHookでは実行領域の改竄を行わず、それ以外の領域の値を改竄することによってフックを行うことでCRCによる改竄検知を迂回しています。 BypasslessHookを構築するにはまず改竄するアドレス周辺にある関数ポインタコール・ジャンプ命令を見つけます。 例えば以下のような命令となります。 jmp eax jmp [********] call eax call [********] 基本的にはこのジャンプあるいはコール先を書き換えてヒープ...
  • ステップ2
    Exact Value スキャン (PW=090453) チュートリアルウィンドウ下部に Health xxx というテキストがあります。 Hit me をクリックするたびに、この体力値が減少していきます。 ステップ3へ進むためには、この値を1000に変更しなければなりません。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step2_1.PNG) 値を検索するには様々な方法がありますが、今回は最も簡単な Exact Value を利用します。 Scan Type が Exact Value に、 Value Type が 4 Bytes になっていることを確認します。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください...
  • ステップ1
    チュートリアル imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step1_1.PNG)現行最新バージョンであるCheat Engine 6.2に同梱されている Cheat Engine Tutorial v3 を用いてチートエンジンのチュートリアルを行います。 このチュートリアルでゲームチートの基礎について説明し、チートエンジンの操作に慣れることを目的とします。 プロセスアタッチ チートエンジンが起動してない場合は起動して下さい。 起動したら赤線で囲まれている Open Process のアイコンをクリックします。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step1_2.PNG) プロセスウィンドウのリストに、このチュー...
  • トップページ
    Hacking Is NoT a Crime! 主にゲームハッキング系の技術に関してまとめていきます。 チュートリアルやHow to 各種ツールの使い方 海外サイトの技術系記事の翻訳 管理人のメモ帳代わり。 Cracking is a Crime ( -- B I E N (2014-12-10 22 57 56) hacking is a art ;) -- 名無しさん (2014-12-14 19 25 50) いい加減なんか更新しよう明日あたり・・・ -- ましまろ (2015-03-08 01 26 27) Hacking Cracking Since 1928 OG CREW -- リレミト (2015-03-12 00 53 09) nproとかはどんな感じですか! -- abd (2015-03-30 19 02 ...
  • HackShield
    HackShieldはMMORPGの為に開発されたアンチハッキングツールキットのセットである.Combat Arms, メイプルストーリー, マビノギなど数多くのオンラインゲームで採用されている. HackShieldは韓国のセキュリティ・ソリューション・プロバイダであるアンラボ社(AhnLab,Inc.)によって開発され, 韓国では2001年から, アメリカでは2005年から, 日本では2006年から広く利用されるようになった. 製品 機能 HackShieldコンポーネント HackShieldの動作HSUpdate EHSvc EagleNT V3Pro32 HackShieldの導入 HackShieldの調査 Tip Tricksログを利用した機能の追跡 引用元文献 製品 AhnLab HackShield にはHackShield Basic For Onl...
  • 64bitOSでの利用
    imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (DBK32error.PNG)カーネルモジュールはCEを通常利用する上では不可欠ではありませんが、ハードウェアブレークポイントの使用したり、リング0でしかアクセスできないAPIをフックする時などに利用されます。 32bitOSにおいては、設定画面のExtraタブ内の項目にチェックを入れた際に自動でドライバ(dbk32.sys)が登録されていたはずです。 しかし、64bitOSでは未署名のドライバを登録することはできません。 これを迂回するには、ブート時にF8キーを押して未署名のドライバの登録を一時的に有効にするしかありません。 面倒くさいですがブート毎にこれを行う必要があります。 ちなみに、ドライバを登録するとDBVMを有効にすることが可能です。 ...
  • ステップ7
    Code Injection (PW=013370) コードインジェクションは、ターゲットプロセスに任意のコードを埋め込んで実行させるテクニックです。 このチュートリアルでは、通常 hit me ボタンをクリックするたびに体力が1ずつ減少していくところを、2ずつ上昇するようなコードを埋め込むことが目的となっています。 アドレスを絞りこんだら Find out what writes to this address 機能を利用して、そのアドレスに書き込んでいる命令を見つけましょう。 値を1ずつ減らしているコードが見つかるので、 Show disassembler ボタンでメモリビューに移動します。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step7_1.PNG) その命令を選択した状態...
  • Packet Hacking
    翻訳元について Source Packet Hacking Following Encryption I can not find a way to contact the author, so this translation is unauthorized... If there are any problems, I delete this page immediately. My Contact marshxmallow222[at]gmail.com パケットハッキング 本誌ではパケット解読とパケットのエミュレートを記しています。このシリーズでは私(g3nuin3)とhunterがWater Margin(水滸伝)をどのようにハックしてどのようにそのパケットの解読に取り組んだか記します。なお、本誌では送信パケットデータのハッシュ1のリバーシングのみ...
  • デバッグ
    CEはいくつかの基本的なデバッグオプションに加え、より高度なオプションも備えています。 機能 ブレーク、シングルステップ/ステップオーバー メモリアクセス探索/メモリ書き込み探索 ブレークポイントによるレジスタの操作 また、CEはカーネルサイドでデバッグするためのいくつかの機能も提供しています。 このためデバッガは通常の検出メソッドで検出されることはありません。 この機能はDBVMによって強化することも可能です。 カーネルデバッギングで働く機能は少数ですが、とても便利な機能になっています。 例 "Find out what Accesses/Find out what writes"や"Change register on breakpoint" ブレークポイント設定とトレース機能 F7キーで任意の命令に対してブレーク...
  • ステップ3
    Unknown initial value (PW=419482) 前のステップでは体力の値が明確でしたが、今回は下部にステータスバーが表示されているだけで開始時の値が分かりません。 この値が0から500の間であるということ、 hit me ボタンをクリックするたびに体力が減ることだけは分かっています。 また、体力がどれだけ減ったかはステータスバーの下に表示されます。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step3_1.PNG) 値の絞込みに様々な方法がありますが、今回は最も簡単な Unknown initial valueとdecreased value を用いた方法について説明します。 現在の体力値が分かっていないので、スキャンタイプを Unknown initial value に設定...
  • 右メニュー
    更新履歴 取得中です。 ここを編集
  • ステップ5
    Code finder (PW=888899) ゲームを再起動するか、またはゲームのプレイ中に値が格納されているアドレスが変わってしまうことがあります。 このような場合でもチートテーブルが働くようにする方法が2通りあります。 ステップ5では、その1つ、コードファインダ機能について説明します。 まず、今までのステップと同じ方法でアドレスを検索して下部のリストに追加します。 次に追加したアドレスを右クリックして Find out what writes to this address を選択します。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step5_1.PNG) 空のリストを持つウインドウがポップアップします。 チュートリアルの Change value ボタンをクリックするとこのリスト...
  • ステップ4
    浮動小数点数 (PW=890124) 前回のチュートリアルではバイトスキャンを行なっていましたが、ゲームによっては浮動小数点数で情報を扱う場合があります。 浮動小数点数は、小数点の後にいくつかの数を組み合わせ数値です。(例えば 5.12や11321.1) チュートリアル下部にはあなたの体力と弾数が表示されています。 体力はfloat値(単精度浮動小数点数)、弾数はdouble値(倍精度浮動小数点数)で格納されています。 Hit me をクリックするたびに体力がランダムに減少し、 Fire をクリックするたびに弾数が0.5ずつ減少します。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step4_1.PNG) 体力の値をExact Valueで検索するときにはバリュータイプをfloatに設定します...
  • Win32 API
    ファイル操作CreateFile ReadFile WriteFile DeleteFile MapViewOfFile ファイル実行WinExec CreateProcess system ShellExecute メモリ管理GetProcessHeap HeapAlloc HeapCreate HeapReAlloc HeapSize HeapFree HeapSetInformation ReadProcessMemory WriteProcessMemory スレッドGetCurrentThread GetCurrentThreadId SuspendThread ResumeThread GetThreadContext SetThreadContext CreateRemoteThread ディレクトリGetTempPath GetModuleFilename レジストリReg...
  • ステップ6
    Pointers (PW=098712) チュートリアル下部に2つのボタンがあります。 1つは値を変更するボタンで、もう1つは値と値を格納するアドレスを変更するボタンになっています。 imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step6_1.PNG) 2つ目のボタンを押したら値が5000以上になるようにすることで次のステップに進めるようになります。 これをするには値を格納しているアドレスを指すポインタを見つける必要があります。 ポインタを見つけるには以下の2つの方法があります。 メモリスキャンで見つける まず始めに、値の絞り込みを行います。 絞りこんだ値を格納しているアドレスをさらに検索します。 見つかったアドレスがポインタになります。 imageプラグインエラー ご指定のファイル...
  • 実行ファイルの読み込み
    IDA Proは実行ファイルを読み込むと,そのファイルのフォーマットとプロセッサアーキテクチャの認識を試みる.例えば,画像の例ではファイル(notepad.exe)がIntel x86アーキテクチャのPEフォーマットを有するものとして認識される.携帯端末のマルウェアに対する解析を実行する場合を除いて,頻繁にこのプロセッサの種類を変更する必要はないだろう(携帯端末のマルウェアは多くの場合,様々なプラットフォーム上に作成される). IDA Proにファイル(PEファイルなど)をロードすると,オペレーティングシステムローダによってロードされたかのように,プログラムがファイルをメモリ上にマップする.IDA Proはトップボックス内のBinary Fileオプションを選択することで,生のバイナリなどのファイルを逆アセンブルすることができる.マルウェアは時折シェルコードや追加データ,暗号化パラ...
  • ステップ8
    imageプラグインエラー ご指定のファイルが見つかりません。ファイル名を確認して、再度指定してください。 (step8.PNG) Multilevel pointers (PW=525927) このステップでは、マルチレベルのポインタの扱い方について説明します。 ステップ6では、単にレベル1のポインタで最初に見つかったアドレスがそのままベースアドレスになっていましたが、ステップ8では、レベル4のポインタを扱います。 これは体力値のアドレスを指すポインタを指すポインタを指すポインタを指すポインタを指すポインタであることを表します。 基本的にはステップ6と同じように進めていきます。 値にアクセスするアドレスを見つけて、そのアドレスからベースポインタとオフセットを辿って行きます。 まず、体力値を参照するポインタとそのオフセットを探します。 Find ou...
  • DBVM
    DBVMは、あなたのオペレーティングシステム上で動作し、命令セットを拡張してユーザモードアプリケーションがカーネルモードでアクセスすることを許容するハイパーバイザー(仮想マシン)です。 Windows32bitまたは64bitコンピューター、さらにはLinux上で読み込むことが可能です。 DBVMが有効であればシステムの中枢にアクセスするいくつかの便利なツールを提供してくれます。 (例えば、権限を昇格させたりIDTの編集なしで割り込みをフッキングするなど) CEはゲームの改竄とデバッグをより簡単に行うために、DBVMによって追加された命令を使用しています。特にVista 64bitではこれが顕著です。 あなたのオペレーティングシステム上でDBVMがブートされると、CEが自動的にDBVMが読み込まれたことを検知し追加機能を使用するようになります。 DBVMがマウ...
  • メモリスキャン
    メモリスキャンはCEにおける最も主要な機能の一つです。 この機能では、アプリケーションにより提供されているメモリを読み取ることが可能です。 CEのスキャンは利用可能であれば複数のプロセッサを用いて高速に行われます。 このスキャンでは異なる検索方法を用いて様々な方法でアドレスを検索することを可能にします。 検索を始める前にあなたが望むサーチタイプを定義する必要があります。 定義する必要があるもの バリュータイプ、スキャンオプション、スキャンレンジ、その他のオプション バリュータイプ Binary (2進数) Byte (0~255 or -128~127) 2 byte (0~65536 or -32768~32767) 4 byte (0~4294967295 or -2147483648~2147483647) 8 byte (0~1844674407370955...
  • @wiki全体から「スクリプトの更新」で調べる

更新順にページ一覧表示 | 作成順にページ一覧表示 | ページ名順にページ一覧表示 | wiki内検索