시장에 나와 있는 대부분의 패커를 물리치는 데 사용되는 Corellium의 Android 7.1.2 장치 주변에 약간의 자동화가 연결되었습니다.
이 메서드는 Android 7.1.12용 art::DexFile::OpenMemory
메서드를 대상으로 하며 Corellium 장치를 활용하여 포장 풀기를 위해 항상 켜져 있고 항상 준비된 장치를 제공합니다. 현재 데모에서는 하나의 장치만 사용했지만 모든 "작업"이 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.