問題タブ [ollydbg]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
reverse-engineering - 関数への引数はスタックまたはレジスタで渡されますか?
私は現在、アセンブリで作成したプログラムを分析しており、アセンブリ内でコードを移動することを考えていました。引数を1つ取るプロシージャがありますが、それがスタックに渡されるのかレジスタに渡されるのかわかりません。
IDA Proでプログラムを開くと、手順の最初の行は次のようになります。
宣言の上にカーソルを置くと、次のようにも表示されます。
スタック変数を指すと思いますか?
ただし、OllyDbgで同じプログラムを開くと、スタックのこの場所に大きな値があり、渡された可能性のあるパラメーターと矛盾するため、レジスターで渡されたと思います。
誰かが私を正しい方向に向けることができますか?
reverse-engineering - ボタンの押下を偽装するようにプログラムを変更する
私は、(ソース コードなしで) 与えられた MFC アプリケーションを持っています。このアプリケーションは、[更新] ボタンのあるウィンドウを開き、クリックすると非常に長い更新を実行します。
ウィンドウが作成されたとき (または DoModal などの他の場所) にメッセージがプログラムに送信され、ボタンが押されたと認識されるようにプログラムを変更したいと思います。
私はしばらくの間、Ida Pro と OllyDbg でこれをいじっていましたが、役に立ちませんでした。おそらくPumpMessageを使用することを検討しましたが、これは成功しませんでした。
何かアドバイス?
assembly - 初心者の逆アセンブリクエリが作成されます
私は逆アセンブルに比較的慣れていますが(読む:愚かな初心者)、このビットは私を困惑させました:私はzlibで圧縮されたセーブファイルのセットとそれらをロードするゲームを持っています。それらの構造は既知であり、ロードされると、メモリ内の構造体は対応する保存ファイルと同一になります。問題は、ゲームがどうにかして静的ポインターを残さない、スクリプト専用ではない言語で書かれていることです。まったく。数十人が試しましたが、同じマシンでマイナーな変更を加えると、一見静的なポインター パスが壊れてしまいました。簡単な解決策は、プロセスのメモリでファイルの内容を検索することですが、これは非常に力ずくの解決策であり、教育目的では避けたいと思います。
質問:
- OllyDBG を使用しようとしています。私はそれが苦手ですが、実際に機能する簡単なコードケーブを作成することができました。仕事に適したツールを使用していますか、それとも愚かな初心者ですか? 最新のリバーサーのキットにはどのようなツールが含まれていますか?
- 関連するメモとして、メモリ検索にチート エンジン (またはそのいとこである MHS) を使用する必要があります。これは少し直感に反するようです。OllyDBG は、値を検索して結果を絞り込む方法を本当に提供していませんか、それとも何か不足していますか?
- WINAPI にブレークポイントを設定するにはどうすればよいですか? 一体、WINAPI はアセンブリ レベルでどのように見えるのでしょうか? これは私がまともな情報を見つけることができなかったものであり、Googleには十分すぎるほどの情報があると確信していますが、正しい言葉を入力できないようです.
- 上記を拡張すると、動的ブレークポイントをどのように設定しますか? 頻繁に呼び出される特定の関数に興味があるが、その時点での EAX が特定の値に等しい場合にのみ、その条件で Olly (または他の何か) を中断するにはどうすればよいでしょうか?
- 逆アセンブルに関する一般的な本/提案/リソース、または物事を壊すことを目的とした低レベルのプログラミング。
免責事項: 問題のゲームはフリーウェアであり、シングル プレイヤーであり、作成者はこれを否定しません。何よりも機能を拡張することを目的としたプロジェクトです。また、最初の投稿ですが、あまり手探りしていないことを願っています。:(
c - Linux 用のアプリケーションを Windows でデバッグするためのヒントはありますか?
オープンソース アプリケーションで見つけたバグの原因を見つけようとしています。
Windows マシンでビルドを実行することはできましたが、逆アセンブルで問題のある場所を見つけるのに苦労しています。
私は 3 つの異なるデバッガー (WinDbg、OllyDbg、および VisualStudio) を試しましたが、それぞれでほとんど同じ情報が得られます。
では、ソース コードを入手したとして、ライブ アプリケーションをデバッグするにはどうすればよいでしょうか? アプリケーションが C で書かれている場合、データ構造を調べるにはどうすればよいですか?
上記のデバッガーのいずれかで、gcc のデバッグ シンボルの読み込みがサポートされていますか?
何か間違ったことをしているように感じます。最適化されたアセンブリでこのアプリをデバッグしたくありません...
perl - ollydbgを自動化できるPerlモジュールはありますか?
有名なollydbgデバッガーを自動化できるCPANモジュールはありますか?はいの場合、誰かがそのようなモジュールとそれに関するいくつかのチュートリアル/ドキュメント/例を提供できますか?
debugging - Ollydbg の状態
レジスタの 1 つに特定の文字列が含まれている場合、Ollydbg を一時停止する必要があります。それを達成する方法はありますか?
decompiler - x86 PE バイナリを C に逆コンパイルしますか?
x86 PE バイナリの C コードを生成する方法があるかどうか知りたいです。これは本当に必要ありません。クローズドソースのソフトウェアがどのように機能しているかを知りたいだけです。
私の常識からすると、そのプロセスは次のようになると思います。
- x86 バイナリをアセンブリに変換します。これは、OllyDbg のような逆アセンブラーで行うことができます。
- このアセンブリを C に変換します。私はそのためのツールを知りません。それは実際に私の質問です。
よろしくお願いします。ありがとうございました。
PS: これが合法でない場合 (私はクラッカーではなく、クラッキングの目的はありませんが)、この質問を削除してください。
analysis - トロイの木馬のデバッグと分析
OllyDbg のようなものを使用して、トロイの木馬のような特徴を持つ可能性のあるプログラムを調べることに興味があります。
これを安全に行う方法についての良いチュートリアルを知っている人はいますか?
基本的に、このプログラムはビデオ ゲームの「ボット」ですが、バック ドアがあるか、収集した情報 (パスワードなど) をリモート サーバーにアップロードする可能性があると思われます。
接続しようとしている URL や IP を見つけたり、接続を阻止したりしたいので、これはプログラムの典型的な「クラッキング」よりも少し具体的だと思います。私は主に、それが行っている可能性のあるネットワークベースのことを探し出し、それらを防止するか、それが成功したと思わせることに興味があります。
また、暗号化されたネットワーク トラフィックを詮索する方法にも興味があります。プログラムがネットワーク経由で送信するものを暗号化するために使用する暗号化キーとアルゴリズムを特定するにはどうすればよいですか? (ゲームサーバーとの通信をエミュレートするサードパーティクライアントの作成に興味があり、使用されているキーを発見する方法を知らなければそれを行うことができないため、私は尋ねます)
c - 最も簡単なプログラムの逆アセンブルの説明 (x86)
次のコード
次のコマンドを使用してコンパイル:
gcc バージョン 4.4.1 (TDM-1 mingw32)
OllyDbg は次の出力を生成しました。
ここで何が起こっているのか説明できますか? これまでの分析:
このすべての意味は何ですか?
pointers - アセンブリのいくつかの行を解読するのに役立ちます
ollydbg で次の数行のアセンブリを見つけました。
誰かステップスルーして、ここで何が起きているのか教えてくれませんか?