Corellium 上の Android 7.1.2 デバイスの周囲に少し自動化が組み込まれており、市場の (ほとんどの) パッカーを打ち破ることに慣れています。
このメソッドは、Android 7.1.12 のart::DexFile::OpenMemory
メソッドを対象としていますが、Corellium デバイスを利用して、常時オンで常に解凍可能なデバイスを提供します。この現在のデモでは 1 つのデバイスのみを使用しましたが、すべての「タスク」がnsqd
によって処理されるため、これは基本的にフロントエンドまで透過的にスケールアップできます。
backend
Corellium サーバーへの VPN トンネルを設定します。これは障害時に自動再起動し、Docker ネットワークへのリバース プロキシを開きます。これは、デバイスと透過的に通信するためにそれを使用するunpacker-worker
によって利用されます。
backend/vpn-profile.ovpn
Corellium デバイスの OpenVPN プロファイルに置き換えます。.env
ファイルに次のように記入します。 INSTANCE_ID=7cc6ca2a-6622-479b-aa4b-8394aa9d9475-instance-for-unpacker
CORELLIUM_URL=testinstance.corellium.com
CORELLIUM_USERNAME=unpackeruser
CORELLIUM_PASSWORD=unpackerpassword
GIN_MODE=debug
SERVE_PORT=3000
ADB_PROXY=5555
次に、 docker-compose build
に続けてdocker-compose up
使用するだけです。
apk でバックエンド API をヒットすると、解凍するためにバイナリがキューに入れられます。 curl 0.0.0.0:3000/unpack/SHA1_OF_APK --data-binary @/path/to/apk
1 ~ 2 分後に、資産のステータスを再度確認してください。 curl 0.0.0.0:3000/unpack/SHA1_OF_APK/status
興味のあるアセットが見つかったら、それをダウンロードします。 curl 0.0.0.0:3000/unpack/SHA1_OF_APK/SHA1_OF_ASSET
このプレゼンテーションとコードは、教育と研究のみを目的としています。ご自由にお使いください。ただし、ご自身の行動についてはすべて責任を負ってください。このツールは、マルウェアの逆転と分析を支援するために特別に作成されたものであるため、注意してください。これらは外部の一般向けに強化されていないため、じっくり考えずにこのようなサービスを公共のインターネットに公開するのはおそらく賢明なアイデアではありません。
Copyright 2020 Tim 'diff' Strazzere <[email protected]>
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.