前の IDAPRO または HOOK を使用すると、XXTEA 復号化キーを取得できます。SIGN の場合は、元のファイルを直接開くことができます:
これにより、SIGN 値を確認できます。バイズ。したがって、xxtea 復号化ツールを使用して (GitHub でソース コードを取得してコンパイルすることによって)
index.luac を例として見てみましょう。 Index.luac 復号化の前後の変更:
xxtea によって復号化された lua スクリプトはまだ平文ではないことがわかります。以前、cocos2d フレームワークのソース コードとマスター APK のデコード結果に基づいて xxtea 暗号化が使用されていると判断し、アプリの Lua スクリプトにも署名値があり、これも xxtea 暗号化方式であることを確認しましたが、復号化した結果ははまだプレーンテキストではないため、復号化が完了していない可能性があります。確認するには、idapro に戻る必要があります。
IDAPRO で libgame.so を開き、エクスポート ウィンドウで Byds を検索し、byds_d 関数を見つけてダブルクリックします。
# 直接 F5 キーを押すとエディターが表示されます。コード:これには特別なことは何もありません。フレームワークのソース コードのコードと同等です。復号化が完了していない場合は、この関数の上位レベルを再度呼び出して復号化プロセスを続行する必要があります。この関数呼び出しを追跡するために外部参照をジャンプしましょう: 1 つは取得されたテーブルですが、これは間違いなく当てはまりません。最初の関数:
は単なるラッパー関数です。追跡を続けましょう:
ダブルクリックして入力します:
この関数の名前は、ソース コード内の xxtea_decrypt の呼び出しと同じであることがわかり、この関数も最初の侵害に含まれていました。これで、スクリプトが byds_d によって復号化された後、再び解凍されたことがはっきりとわかります。基本的にはクリアになっているはずです。lua スクリプトは圧縮および暗号化されているはずなので、復元したい場合は、最初に復号化する必要がありますxxtea を使用して復号化します。 GitHub で zlib を解凍するスクリプトを見つけることができます。これを使用して、復号化されたテキストを解凍することができます。
# 平文になっていることがわかります。
以上がidaPro がアプリ復号化 lua スクリプトを分析する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。