[IOSリバースエンジニアリング] dumpdecryptedシェル
frida-trace を簡単に試してみたところ、pid の動的ランタイムに対応するさまざまな関数を追跡できることがわかりました。しかし、完全な APP アプリケーションの場合、主要な実行関数を取得するにはどうすればよいでしょうか? ここでは、IPA を逆アセンブルしてコードを見つける必要があります。 . ロジック、そしてフリダダイナミクスと組み合わせて見てみましょう。
Aisi Assistant ダウンロード IPA
Apple ConfigurationIPA をダウンロード
これは、APPLE が公式に作成した IPA をキャッシュすることで行われます。Apple Mall をミラーリングする Aisi とは異なり、この方法の方が推奨されます。APPLEid にログインし、iCloud 履歴からアプリのダウンロード記録を見つけ、「追加」をクリックする
と
、まず ipa をキャッシュします。
~/Library/Group Containers/K36BKF7T3D.group.com.apple.configurator/Library/Caches/Assets/TemporaryItems/MobileApps
まずフォルダーから削除してから、「停止」をクリックします。
殻を打ち砕け
ダンプ復号化された
✘ ~/repos git clone https://github.com/stefanesser/dumpdecrypted.git
Cloning into 'dumpdecrypted'...
remote: Enumerating objects: 31, done.
remote: Total 31 (delta 0), reused 0 (delta 0), pack-reused 31
Receiving objects: 100% (31/31), 7.10 KiB | 1.77 MiB/s, done.
Resolving deltas: 100% (15/15), done.
~/repos cd dumpdecrypted
~/repos/dumpdecrypted master ls
Makefile README dumpdecrypted.c
~/repos/dumpdecrypted master mke
zsh: command not found: mke
✘ ~/repos/dumpdecrypted master make
`xcrun --sdk iphoneos --find gcc` -Os -Wimplicit -isysroot `xcrun --sdk iphoneos --show-sdk-path` -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/Frameworks -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/PrivateFrameworks -arch armv7 -arch armv7s -arch arm64 -c -o dumpdecrypted.o dumpdecrypted.c
`xcrun --sdk iphoneos --find gcc` -Os -Wimplicit -isysroot `xcrun --sdk iphoneos --show-sdk-path` -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/Frameworks -F`xcrun --sdk iphoneos --show-sdk-path`/System/Library/PrivateFrameworks -arch armv7 -arch armv7s -arch arm64 -dynamiclib -o dumpdecrypted.dylib dumpdecrypted.o
~/repos/dumpdecrypted master ls
Makefile README dumpdecrypted.c dumpdecrypted.dylib dumpdecrypted.o
~/repos/dumpdecrypted master
上記を完了すると、コンパイルされた製品 dumpdecrypted.dylib を取得したので、それを携帯電話に挿入します。
開いたsh
まず、Cydia で openssh をダウンロードする必要があります
次に、携帯電話の IP アドレスを見つけます (Wi-Fi を調べます)。
コンピューター接続 SSH
ssh [email protected]
ここでの openssh のデフォルトの root パスワードは ですalpine
。変更することをお勧めします。変更は次のとおりです。
iPhone:~ root# passwd
Changing password for root.
New password:
Retype new password:
iPhone:~ root#
scp を渡し、
アプリ アプリケーションの場所を検索し、
動的ライブラリに署名するだけです。
ldid -S dumpdecrypted.dylib
殻を破り、wechat を例に挙げてみましょう。
DYLD_INSERT_LIBRARIES=dumpdecrypted.dylib /var/containers/Bundle/Application/58F8F561-7406-479B-B90E-64C266218A4B/WKMainProject.app/WKMainProject
表示された場合は
、シェル処理が失敗したことを意味します。
それ以外の場合は、解凍された mach-0 ファイルが現在のフォルダーに生成されます: Generate: app name.decrypted
ファイルが暗号化されているかどうかは、次のコマンドで確認できます。
otool -l WeChat|grep cry