WindowsCE実行可能ファイルによって実装されたCRC/チェックサムアルゴリズムをリバースエンジニアリングする必要があります。独自のプロトコルであるため、CRC/チェックサムアルゴリズムについては何も述べていません。ただし、正しい/計算されたチェックサムを報告するコンソールインターフェイスがあり、メッセージプロトコルが正しい場合は、ランダムビットを使用して独自のメッセージを作成できます。
私はそれを観察しました、
メッセージの1ビットを変更すると、チェックサムバイトが完全に変更されます。
アルゴリズムは、さまざまなメッセージデータ位置にいくつかの単一の1ビットメッセージを送り、残りのビットはゼロであり、コンソールが異なるチェックサムを報告したため、位置に依存しているようです。単純な加法チェックサムの場合、チェックサムは同じになります。
一般的なXOR、LRC、加法チェックサムアルゴリズム、一般的なCRC多項式(Standerd、CCITT、X-modem)を適用し、[CRCリバースエンジニアリングエッセイ] [2]を実行しましたが、メッセージタイプが固定されているため、残念ながら多項式の推定を通過できません。単一の1ビットメッセージを作成できません。
私の質問:
アルゴリズムがチェックサムであるか多項式ベースのCRCであるかを判断するために、メッセージに対してテストできるCRC /チェックサムアルゴリズムのプロパティはありますか?
プログラムの逆アセンブルで見られるエラーメッセージを対応するアセンブリ命令と関連付ける方法はありますか?
コンソールに正しいチェックサムが報告された瞬間に、逆アセンブリコードをデバッグ/特定する方法は何ですか?メモリダンプか何か?