私は逆アセンブルに比較的慣れていますが(読む:愚かな初心者)、このビットは私を困惑させました:私はzlibで圧縮されたセーブファイルのセットとそれらをロードするゲームを持っています。それらの構造は既知であり、ロードされると、メモリ内の構造体は対応する保存ファイルと同一になります。問題は、ゲームがどうにかして静的ポインターを残さない、スクリプト専用ではない言語で書かれていることです。まったく。数十人が試しましたが、同じマシンでマイナーな変更を加えると、一見静的なポインター パスが壊れてしまいました。簡単な解決策は、プロセスのメモリでファイルの内容を検索することですが、これは非常に力ずくの解決策であり、教育目的では避けたいと思います。
質問:
- OllyDBG を使用しようとしています。私はそれが苦手ですが、実際に機能する簡単なコードケーブを作成することができました。仕事に適したツールを使用していますか、それとも愚かな初心者ですか? 最新のリバーサーのキットにはどのようなツールが含まれていますか?
- 関連するメモとして、メモリ検索にチート エンジン (またはそのいとこである MHS) を使用する必要があります。これは少し直感に反するようです。OllyDBG は、値を検索して結果を絞り込む方法を本当に提供していませんか、それとも何か不足していますか?
- WINAPI にブレークポイントを設定するにはどうすればよいですか? 一体、WINAPI はアセンブリ レベルでどのように見えるのでしょうか? これは私がまともな情報を見つけることができなかったものであり、Googleには十分すぎるほどの情報があると確信していますが、正しい言葉を入力できないようです.
- 上記を拡張すると、動的ブレークポイントをどのように設定しますか? 頻繁に呼び出される特定の関数に興味があるが、その時点での EAX が特定の値に等しい場合にのみ、その条件で Olly (または他の何か) を中断するにはどうすればよいでしょうか?
- 逆アセンブルに関する一般的な本/提案/リソース、または物事を壊すことを目的とした低レベルのプログラミング。
免責事項: 問題のゲームはフリーウェアであり、シングル プレイヤーであり、作成者はこれを否定しません。何よりも機能を拡張することを目的としたプロジェクトです。また、最初の投稿ですが、あまり手探りしていないことを願っています。:(