誰もが次のアセンブリ コードにいくつかの洞察を提供できますか:
詳しくは:
ブートローダーは、実際には、Xor 復号化を使用して解読する小さな 16 ビット ブートローダーであり、より大きなものであり、セクター 3 から 34 にある Linux ブートローダーです (1 セクターは、そのディスクでは 512 バイトです)。
全体が、組み込み Linux で実行される exec の保護システムです。
保護が削除されたバージョンには、Linux ブートローダーが既に解読されているため (IDA を使用して元に戻すことができました)、保護のないバージョンでは xor キーをゼロでのみ作成する必要があると想定しています。
保護が削除されたバージョンのオフセット 0x800 から 0x8FF を見ると、ゼロで埋められていないため、これをキーにすることはできません。そうしないと、このバージョンをロードできず、プレーン データを xor してゴミしかロードしません。
セクター 3->34 は元のバージョンでは暗号化されており、私たちのバージョンでは暗号化されていません (保護が削除されています) が、MBR コード (小さなプリブートローダー) は両方のバージョンで同一です。
では、MBR のアセンブリ コードに、xor キーの場所をわずかに変更する細部があるのではないでしょうか?
これは単に、アセンブリ コード ローダーをよりよく理解するために行っている演習であり、これを実行するのは非常に困難であることがわかりました。これまでにご意見をお寄せいただきありがとうございます。