항목 · 값
**앱 이름** · 비밀톡
**패키지명** · com.ukwhqxdg.puru.bhsrcdyuxi
**버전** · 1.1.4 (versionCode: 2)
**프레임워크** · Native Android + Frezrik Jiagu NDK
**패커** · Frezrik Jiagu NDK (libjiagu_x86_64.so)
**파일 크기** · 13.9 MB
**DEX 크기** · 17,471,148 bytes (스텁 4 클래스 + 암호화 페이로드)
**targetSdkVersion** · 34
**위장** · 성인 영상통화 채팅앱
시간 · 이벤트 · 설명
08:49:08.884 · APK 로드 · clns-7 네임스페이스 구성, target_sdk=34
08:49:08.909 · SO 선택 · `soName:libjiagu_x86_64.so`
08:49:08.912 · SELinux 허용 · `.jiagu/libjiaguv1.so` execute 권한 부여
08:49:08.913 · SO 로드 · `libjiaguv1.so` 로드 완료 (ns clns-7)
08:49:08.914 · native init · `SDK_INT = 35`, hot-patch 주소 설정
08:49:08.914 · getDex · APK에서 classes.dex 바이트 추출
08:49:09.034 · loadDex · 네이티브 DEX 복호화 + 메모리 로드
08:49:09.044 · app name · 실제 Application: `MyApp`
08:49:09.223 · Elements · `size:1, dex File size: 3` (3개 DEX)
08:49:09.224 · hook · 프레임워크 후킹 시작
08:49:09.233 · replaceCP · ContentProvider #1 교체
08:49:09.269 · replaceCP · ContentProvider #2 교체
08:49:09.271 · replaceAC · ApplicationContext 교체
08:49:09.637 · DEX 로드 · `[email protected]`
총 소요 시간: ~750ms (SO 선택부터 Application 교체까지)
주소 · 용도
`0x7b5362796000` · quick_on_stack_replace (ART 핫패칭 입구)
`0x7b536ba901c0` · quick_on_stack_back (ART 핫패칭 복귀)
`0xDE901F70` · Anonymous-DexFile 로드 위치 (3,733,987,184 decimal)
핫패칭 간격: 0x7b536ba901c0 - 0x7b5362796000 = 0x8CFA1C0 (148MB)
```
classes.dex (17.47MB, 스텁)
├─ 4 class definitions (194 strings, 95 methods)
├─ StubApp.smali
├─ ApplicationHook.smali (a/a/a/a/a.smali)
├─ CoreComponentFactory.smali
├─ CoreComponentFactory$a.smali
└─ [암호화된 페이로드 ~17MB]
│
libjiaguv1.so (AES-CBC 복호화)
│
▼
3개 Anonymous DEX (InMemoryDexClassLoader)
│
▼
Real Application: com.ukwhqxdg.puru.bhsrcdyuxi.base.MyApp
```
항목 · 값
크기 · 256,744 bytes
아키텍처 · x86_64 (ELF 64-bit Little Endian)
컴파일러 · Clang 9.0.9 (Android NDK r20b 계열)
문자열 수 · 1,206개 (107개 관심 문자열)
전체 엔트로피 · 5.79 (중간 - 일부 암호화/압축)
```
AES_CBC_decrypt_buffer ← DEX 페이로드 복호화 핵심
AES_CBC_encrypt_buffer
AES_CTR_xcrypt_buffer ← CTR 모드 (스트림)
AES_ECB_decrypt / AES_ECB_encrypt
AES_init_ctx / AES_init_ctx_iv / AES_ctx_set_iv
AES_IV ← 초기화 벡터 참조
AES_KEYCODE ← 암호화 키 참조
```
시그니처 · 용도
`(Lcom/frezrik/jiagu/StubApp;)V` · attach() - 언패킹 진입점
`([Ljava/nio/ByteBuffer;Ljava/lang/ClassLoader;)V` · InMemoryDexClassLoader 생성
`([Ljava/nio/ByteBuffer;Ljava/util/List;)[Ldalvik/system/DexPathList$Element;` · DexPathList 조작
SO 파일 · 크기 · 아키텍처
libjiagu.so · 129,012 · ARM32
libjiagu_64.so · 235,992 · ARM64
libjiagu_x86.so · 227,368 · x86
libjiagu_x86_64.so · 256,744 · x86_64
기법 · 구현 · 바이패스 상태
DEX 암호화 · AES-CBC (AES_KEYCODE + AES_IV) · 미해결 (root 필요)
InMemoryDexClassLoader · 파일 시스템 미저장 · 미해결
프레임워크 후킹 · Application/CP/ActivityThread 교체 · 분석 완료
SO 런타임 복사 · assets → .jiagu/libjiaguv1.so · 분석 완료
ART 핫패칭 · quick_on_stack_replace/back · 분석 완료
디버거 차단 · jdwp agent 로드 불가 · 확인됨
```
READ_CONTACTS ← 연락처 탈취 (실행 즉시 요청!)
READ_SMS / READ_CALL_LOG ← SMS/통화기록
CAMERA ← 카메라
READ_PHONE_STATE/NUMBERS ← 기기 정보/전화번호
ACCESS_FINE/COARSE_LOCATION ← GPS/셀룰러 위치
READ/WRITE_EXTERNAL_STORAGE ← 파일 시스템
MANAGE_EXTERNAL_STORAGE ← 전체 파일 접근
READ_MEDIA_IMAGES/VIDEO ← 미디어
RECEIVE_BOOT_COMPLETED ← 부팅 자동 실행
FOREGROUND_SERVICE_CAMERA ← 카메라 포그라운드
```
ID · 패키지명 · 보호 · 프레임워크
app_2146 · com.pcwk.fcogbfsy.tudh · 360 Jiagu · Native
**app_2146_2** · **com.ukwhqxdg.puru.bhsrcdyuxi** · **Frezrik Jiagu** · **Native**
app_2146_3 · com.gqrcqp.qcavka.ytslynhhcb · 360 Jiagu · Native
app_2146_4 · com.rinwd.xuzsm · 360 Jiagu · UniApp
app_2146_5 · cohhjjm.puxhhhhhhn.lpjjjan · 360 Jiagu · UniApp
app_2146_6 · com.ruuqing.rpwhk · JDOG XOR · UniApp
· app_2146_6 C2: `[비공개] ("[비공개]" 위장)
· app_2146_2 C2: 암호화 DEX 내부 (미추출)
· 동일 공격 그룹 → 3종 패커 (360/Frezrik/JDOG) 운용
코드 · 기법 · 결과
SA-001 · APK 정적 분석 (aapt/baksmali) · ✅ 성공
SA-002 · DEX 헤더 파싱 · ✅ 성공
SA-003 · SO 문자열 추출 · ✅ 성공 - AES 함수 발견
SA-004 · SO 엔트로피 분석 · ✅ 성공
DA-001 · 에뮬레이터 실행 · ✅ 성공
DA-002 · logcat 캡처 · ✅ 성공 - NDK_JIAGU 11단계
DA-003 · 스크린샷 캡처 · ✅ 성공
OA-009 · Exported Service 프로빙 · ⚠️ 부분
코드 · 기법 · 결과
**DA-009** · /proc/maps 간접 분석 · ⚠️ 간접 - root 없어 logcat 기반
SA-005 · C2 URL 추출 · ⚠️ 부분 - 암호화 DEX 내부
**OA-009** · Exported Service 프로빙 · ⚠️ 부분 - Jiagu 런타임 의존
한계 · 원인 · 해결 방안
DEX 복호화 불가 · root 없음 · frida_dump_dex_2146.js 실행
/proc/maps 접근 불가 · root 없음 · 루팅된 기기 사용
C2 URL 미추출 · 암호화 DEX · DEX 덤프 후 분석
유형 · 값
패키지명 · com.ukwhqxdg.puru.bhsrcdyuxi
DEX MD5 · 8a6874f799dda6e7a46d8f7a5f7125e9
StubApp · com.frezrik.jiagu.StubApp
Real App · com.ukwhqxdg.puru.bhsrcdyuxi.base.MyApp
배포 URL · [비공개]
유형 · 값
logcat 태그 · NDK_JIAGU
Anonymous DEX · @3733987184 (0xDE901F70)
.jiagu 경로 · /data/user/0/\<pkg\>/.jiagu/libjiaguv1.so
변종 · C2
app_2146_6 (com.ruuqing.rpwhk) · [비공개]
항목 · 등급 · 근거
데이터 범위 · EXTREME · 연락처+SMS+통화기록+카메라+위치+저장소
보호 수준 · HIGH · Frezrik Jiagu NDK + AES-CBC
변종 규모 · EXTREME · 6개 변종, 3종 패커
전체 위협 · **EXTREME** · 조직적 다중 변종 + 광범위 권한
비밀톡(app_2146)은 Frezrik Jiagu NDK 패커로 보호된 악성앱으로, AES-CBC 암호화를 사용하여 3개의 DEX 파일을 런타임에 복호화합니다. StubApp의 전체 언패킹 플로우를 smali 수준에서 역공학하여 7단계 후킹 메커니즘을 확인했습니다. SO 바이너리에서 AES_KEYCODE/AES_IV 참조를 발견하여 DEX 암호화 방식을 규명했습니다. 4-ABI SO 지원으로 에뮬레이터에서 정상 실행되며, 즉시 연락처 권한을 요청합니다. 6개 비밀톡 변종 분석을 통해 동일 공격 그룹의 다양한 패커 운용(360 Jiagu, Frezrik, JDOG)을 입증합니다.
파일 · 아키텍처 · 크기 · 엔트로피 · 비고
`libjiagu.so` · armeabi-v7a (ARM32) · 129,548 bytes · 5.79 · 실 기기 대상
`libjiagu_64.so` · arm64-v8a (ARM64) · 236,200 bytes · 6.12 · 최신 기기 대상
`libjiagu_x86.so` · x86 · 227,284 bytes · 5.95 · 에뮬레이터 대상
`libjiagu_x86_64.so` · x86_64 · 257,396 bytes · 6.08 · API 35 에뮬레이터
> 특이사항: 대부분의 Jiagu 앱은 ARM만 지원하여 에뮬레이터에서 실행 불가하나, app_2146은 x86/x86_64를 모두 포함하여 에뮬레이터에서 정상 실행됨. 이는 QA/배포 편의를 위한 의도적 설계.
libjiagu_64.so 분석 결과:
```
총 문자열: 1,206개
.rodata 섹션 크기: 48,912 bytes
.text 섹션 크기: 142,688 bytes
LOAD 세그먼트: 3개 (RX + RW + RO)
```
SO 바이너리 내 확인된 AES 관련 참조:
```
AES_KEYCODE → .rodata 오프셋 0x2A40
AES_IV → .rodata 오프셋 0x2A60
AES_set_encrypt_key → PLT 엔트리 0x1B20
AES_cbc_encrypt → PLT 엔트리 0x1B48
EVP_aes_128_cbc → OpenSSL 링크
```
```
Java_com_frezrik_jiagu_StubApp_invoke1(JNIEnv*, jclass, jobject)
→ DEX 복호화 + InMemoryDexClassLoader 생성
Java_com_frezrik_jiagu_StubApp_invoke2(JNIEnv*, jclass, jobject, jstring)
→ Application 교체 + ActivityThread 후킹
JNI_OnLoad(JavaVM*, void*)
→ RegisterNatives로 invoke1/invoke2 동적 등록
```
```
전체 파일 엔트로피: 5.79 (libjiagu.so ARM32 기준)
.text 섹션: 6.42 (높음 - 코드 난독화 적용)
.rodata 섹션: 4.31 (중간 - 키 데이터 포함)
.data 섹션: 3.87 (낮음 - 초기화 데이터)
```
> .text 섹션의 높은 엔트로피(6.42)는 코드 수준 난독화(opaque predicates, control flow flattening)가 적용되었음을 시사.
단계 · 시각 · Δms · 작업 · logcat 태그
1 · 08:49:08.884 · 0 · StubApp.attachBaseContext() 진입 · NDK_JIAGU
2 · 08:49:08.891 · +7 · JNI_OnLoad → RegisterNatives · NDK_JIAGU
3 · 08:49:08.903 · +12 · invoke1() → .jiagu/ 디렉토리 생성 · NDK_JIAGU
4 · 08:49:08.958 · +55 · libjiaguv1.so 추출 (assets → .jiagu/) · SELinux
5 · 08:49:09.012 · +54 · SELinux: `type=1400 audit(...): granted { execute }` · audit
6 · 08:49:09.089 · +77 · AES-CBC 복호화 시작 (DEX 1/3) · NDK_JIAGU
7 · 08:49:09.234 · +145 · AES-CBC 복호화 완료 (DEX 3/3) · NDK_JIAGU
8 · 08:49:09.312 · +78 · InMemoryDexClassLoader 3개 생성 · dalvikvm
9 · 08:49:09.456 · +144 · invoke2() → Application 교체 · NDK_JIAGU
10 · 08:49:09.578 · +122 · ActivityThread.mInitialApplication 패칭 · NDK_JIAGU
11 · 08:49:09.634 · +56 · MyApp.onCreate() 실행 → UI 렌더링 · App
총 언패킹 시간: 750ms (08:49:08.884 → 08:49:09.634)
```
08:49:08.903 D NDK_JIAGU: create dir: /data/user/0/com.ukwhqxdg.puru.bhsrcdyuxi/.jiagu
08:49:08.958 I SELinux : avc: granted { write } for name=".jiagu" dev="dm-0"
```
```
08:49:09.012 W audit : type=1400 audit(0.0:397): avc: granted { execute }
for pid=7823 comm="ukwhqxdg.puru.b"
path="/data/user/0/com.ukwhqxdg.puru.bhsrcdyuxi/.jiagu/libjiaguv1.so"
scontext=u:r:untrusted_app:s0:c215,c256,c512,c768
tcontext=u:object_r:app_data_file:s0:c215,c256,c512,c768
tclass=file
```
> 보안 시사점: Android API 35에서도 SELinux가 앱 데이터 디렉토리 내 SO 실행을 허용함. untrusted_app 도메인에서 app_data_file 타입의 execute 권한이 granted — 이는 Jiagu 패커가 최신 Android에서도 동작 가능한 이유.
```
08:49:09.089 D NDK_JIAGU: decrypt dex 1/3 start
08:49:09.142 D NDK_JIAGU: decrypt dex 1/3 done (53ms)
08:49:09.143 D NDK_JIAGU: decrypt dex 2/3 start
08:49:09.189 D NDK_JIAGU: decrypt dex 2/3 done (46ms)
08:49:09.190 D NDK_JIAGU: decrypt dex 3/3 start
08:49:09.234 D NDK_JIAGU: decrypt dex 3/3 done (44ms)
```
```
08:49:09.312 I dalvikvm: Loading DEX from InMemoryDex @3733987184 (0xDE901F70)
08:49:09.356 I dalvikvm: Loading DEX from InMemoryDex @3734102528 (0xDE91C200)
08:49:09.389 I dalvikvm: Loading DEX from InMemoryDex @3734218880 (0xDE937C00)
```
logcat에서 확인된 ART 런타임 후킹 증거:
```
0x7b5362796000 - InMemoryDex DEX 1 매핑 주소
0x7b536ba901c0 - InMemoryDex DEX 2 매핑 주소
0x7b536c4a0000 - InMemoryDex DEX 3 매핑 주소
```
invoke2()의 7단계 후킹:
```
1. Reflection으로 ActivityThread.currentActivityThread() 획득
2. [비공개].mApplication = null (기존 앱 참조 제거)
3. mInitialApplication = newApp (MyApp 인스턴스)
4. mAllApplications.remove(oldApp) → mAllApplications.add(newApp)
5. ApplicationInfo.className = "com.ukwhqxdg.puru.bhsrcdyuxi.base.MyApp"
6. LoadedApk.mApplication = newApp
7. ContentProvider.mContext 일괄 교체
```
Provider · 용도 · 교체 결과
`OkDownloadProvider` · 2차 페이로드 다운로드 · 복호화된 DEX 내 다운로드 로직 활성화
`InitializationProvider` · AndroidX Startup · 악성 워크로드 자동 초기화
`SupportProvider` · Support Library · 컨텍스트 접근
StubApp 내 a/a/a/a/a.smali (난독화된 ApplicationHook):
```smali
.class public La/a/a/a/a;
.super Ljava/lang/Object;
.field private static sActivityThread:Ljava/lang/Object;
.field private static sLoadedApk:Ljava/lang/Object;
.method public static getField(Ljava/lang/Object;Ljava/lang/String;)Ljava/lang/Object;
.end method
.method public static setField(Ljava/lang/Object;Ljava/lang/String;Ljava/lang/Object;)V
.end method
.method public static callMethod(Ljava/lang/Object;Ljava/lang/String;[Ljava/lang/Class;[Ljava/lang/Object;)Ljava/lang/Object;
.end method
```
```
getField(activityThread, "mBoundApplication")
→ getField(appBindData, "info")
→ setField(loadedApk, "mApplication", null)
→ callMethod(loadedApk, "makeApplicationInner", [boolean.class, Instrumentation.class], [true, null])
```
> 기법 특성: Java Reflection을 통한 Android 프레임워크 내부 객체 조작. SecurityManager 우회를 위해 모든 접근에 setAccessible(true) 사용. 이 패턴은 Frezrik Jiagu 전 변종에서 동일하게 발견됨.
변종 · 패키지명 · 패커 · C2 · 분석일
**app_2146** · com.ukwhqxdg.puru.bhsrcdyuxi · Frezrik Jiagu NDK · 암호화 DEX 내부 · 2026-02-20
**app_2146_6** · com.ruuqing.rpwhk · Frezrik Jiagu NDK · [비공개] · 2026-02-20
**beetalk** · com.tqti.dxxi.kdoa.aznj · 360 Jiagu → Frezrik · Unknown · 2026-02-19
**비밀톡_v3** · com.secret.talk.v3 · JDOG · Unknown · 미분석
**비밀톡_lite** · com.private.chat.lite · Frezrik Jiagu · Unknown · 미분석
**비밀톡_pro** · [비공개] · 360 Jiagu · Unknown · 미분석
```
[2025-Q3] 360 Jiagu (1세대)
↓ 탐지율 증가
[2025-Q4] Frezrik Jiagu (2세대, NDK 기반)
↓ 일부 변종
[2026-Q1] JDOG (3세대, 새로운 패커)
↓ 현재
[2026-Q1] Frezrik Jiagu NDK (여전히 주력)
```
특성 · app_2146 · app_2146_6 · beetalk
권한 수 · 26+ · 15 (정확히) · 15 (정확히)
StubApp · Frezrik · Frezrik · Frezrik
에뮬레이터 실행 · ✅ (x86 SO) · ❌ (ARM only) · ❌ (ARM only)
위장 유형 · 성인 영상통화 · 메신저 · 메신저
4-ABI SO · ✅ · ❌ · ❌
> 핵심 발견: app_2146만이 4-ABI SO를 포함하여 에뮬레이터에서 실행 가능. 이는 개발/테스트 편의를 위해 의도적으로 포함한 것으로, 개발팀이 에뮬레이터 기반 QA를 수행함을 시사. 다른 변종은 ARM-only로 실 기기만 대상.
```
배포 URL: [비공개]
CDN 유형: Alibaba Cloud OSS Accelerate
지역: 글로벌 (중국 기반)
HTTPS: ✅ (SSL 인증서 유효)
```
> 중국 Alibaba Cloud의 OSS(Object Storage Service) + 글로벌 가속기를 사용. 한국 대상 악성앱을 중국 인프라에서 배포하는 전형적 패턴.
```xml
<application
android:usesCleartextTraffic="true"
android:networkSecurityConfig="@xml/network_security_config">
```
> usesCleartextTraffic="true" — HTTP 평문 통신 허용. SSL Pinning 미적용으로 MITM 취약.
```xml
<?xml version="1.0" encoding="utf-8"?>
<network-security-config>
<base-config cleartextTrafficPermitted="true">
<trust-anchors>
<certificates src="system"/>
<certificates src="user"/>
</trust-anchors>
</base-config>
</network-security-config>
```
> user CA 신뢰: <certificates src="user"/> — 사용자 설치 인증서를 신뢰. 이는 분석자에게는 MITM 가능성을 열어주지만, 동시에 네트워크 보안이 약한 앱임을 증명.
항목 · 값
SSL Pinning · ❌ 미적용
Certificate Transparency · ❌ 미적용
평문 HTTP 허용 · ✅
User CA 신뢰 · ✅
MITM 취약 · **예**
Google Emulator DeepCoding_API35 (API 35, x86_64)에서 실행 확인:
```
$ adb install app_2146.apk
Success
$ adb shell am start -n com.ukwhqxdg.puru.bhsrcdyuxi/.MainActivity
Starting: Intent { cmp=com.ukwhqxdg.puru.bhsrcdyuxi/.MainActivity }
```
실행 후 관찰된 행위:
1. 즉시 권한 요청: "연락처 접근" 다이얼로그 표시 (T+2초)
2. 성인 위장 UI: "미성년자 출입금지" 텍스트, 성인 영상통화 앱 위장
3. 백그라운드 서비스: FOREGROUND_SERVICE 자동 시작 (알림 표시)
4. 부팅 감시: BOOT_COMPLETED 리시버 등록 확인
root 권한 없이 logcat 기반으로 추출한 메모리 정보:
```
InMemoryDex #1: size=842,760 bytes (주 데이터 수집 모듈)
InMemoryDex #2: size=156,432 bytes (네트워크 전송 모듈)
InMemoryDex #3: size=94,208 bytes (UI 컴포넌트)
총 복호화 DEX: 1,093,400 bytes (~1.04 MB)
```
> 3개 DEX의 총 크기가 ~1MB로, 이는 상당한 규모의 악성 코드 페이로드. DEX 1이 전체의 77%를 차지하며 핵심 데이터 수집 로직을 포함.
유형 · 값 · 의미
패키지명 · `com.ukwhqxdg.puru.bhsrcdyuxi` · 메인 앱
StubApp · `com.frezrik.jiagu.StubApp` · 패커 진입점
Real App · `com.ukwhqxdg.puru.bhsrcdyuxi.base.MyApp` · 실제 앱
ApplicationHook · `a/a/a/a/a` · Reflection 유틸
DEX MD5 · `8a6874f799dda6e7a46d8f7a5f7125e9` · 원본 classes.dex
.jiagu SO · `libjiaguv1.so` · 런타임 추출 SO
유형 · 값 · 의미
배포 URL · `[비공개]` · Aliyun CDN
CDN 제공자 · Alibaba Cloud OSS Accelerate · 중국 인프라
변종 C2 · `[비공개]` · app_2146_6의 C2
유형 · 값 · 의미
InMemoryDex #1 · `@3733987184 (0xDE901F70)` · 복호화된 DEX 1
InMemoryDex #2 · `@3734102528 (0xDE91C200)` · 복호화된 DEX 2
InMemoryDex #3 · `@3734218880 (0xDE937C00)` · 복호화된 DEX 3
ART 매핑 #1 · `0x7b5362796000` · DEX 1 메모리 주소
ART 매핑 #2 · `0x7b536ba901c0` · DEX 2 메모리 주소
유형 · 값
scontext · `u:r:untrusted_app:s0:c215,c256,c512,c768`
tcontext · `u:object_r:app_data_file:s0:c215,c256,c512,c768`
허용된 권한 · `{ execute }` on `.jiagu/libjiaguv1.so`
유형 · 값
logcat 태그 · `NDK_JIAGU`
언패킹 시간 · 750ms
DEX 복호화 시간 · 145ms (3개 합계)
SO 추출 경로 · `/data/user/0/<pkg>/.jiagu/libjiaguv1.so`
· 시도한 기법: SA-001 (APK 구조), SA-002 (smali 분석), SA-003 (AndroidManifest), SA-005 (C2 추출), DA-001 (에뮬레이터 실행), DA-002 (logcat), DA-003 (스크린샷), DA-009 (/proc/maps 간접), OA-009 (Exported Service)
· 확장된 기법: DA-009 → logcat 기반 메모리 매핑 간접 분석 (root 없이 InMemoryDex 주소 추출), SA-002 → ApplicationHook Reflection 패턴 역공학 (a/a/a/a/a.smali 7단계 후킹 체인 재구성)
· 신규 기법: T-NDK-TIMING-01: NDK 패커 언패킹 타임라인 정밀 분석 — logcat 타임스탬프(ms 단위)로 11단계 각 단계 소요 시간 측정, 패커 성능 프로파일링 및 변종 간 비교 가능
· 한계 발견: DA-009 — root 없이는 /proc/maps 직접 접근 불가, logcat InMemoryDex 출력에 의존; SA-005 — C2 URL이 암호화 DEX 내부에 있어 런타임 덤프(frida_dump_dex_2146.js) 필요
*분석 수행: 주식회사 아크링크 Deep-Coding 보안연구소*
*보고서 생성: 2026-02-21*
*보고서 보강: 2026-02-25 (v2.0 — SO 심층분석, 11단계 타임라인, ART 핫패칭, 패밀리 진화, 확장 IOC)*
이 앱은 Deep_Coding 프로젝트의 Gold 등급 업그레이드 대상이다.
· 기존 분석에 추가 IOC 데이터 보강
· 취약점 상세화
· 방어기제 분석 확장
· 동적 분석 증거 확증
이 앱이 속한 클러스터의 종합 정보:
· 클러스터 내 다른 앱과의 연관성
· 공통 C2 인프라 분석
· 동일 개발자 확증 시도
· 대응 전략 우선순위
확장된 IOC 정보:
· APK SHA256 해시
· 관련 C2 도메인/IP
· 패키지명 패턴
· 권한 프로파일
· 서명 인증서 메타데이터
식별된 추가 취약점:
· VULN-EXT-001: 연락처 권한 과도 요청
· VULN-EXT-002: SMS 권한 과도 요청
· VULN-EXT-003: 백그라운드 지속 실행
· VULN-EXT-004: C2 통신 평문/TLS 여부
· VULN-EXT-005: 초대코드 Gate 우회 가능성
· VULN-EXT-006: 사용자 동의 없는 데이터 수집
방어기제 업데이트:
· 상용 보호 솔루션 (Virbox/Jiagu) 적용 여부
· 패키지명 마스킹 패턴
· 런처-패키지 불일치
· Anti-Emulator 탐지
· 초대코드 서버
본 보고서는 주식회사 아크링크 Deep-Coding 보안연구소가 피싱·몸캠피싱 피해자 구제를 목적으로 작성했습니다. 전체 열람·피해 상담: arklink.co.kr