보고서 버전: v1.0
분석 일자: 2026-03-04
분석가: ArkLink Corp. 보안연구팀 ([비공개] 대표)
보고서 분류: ML-Level Quantum Nano Analysis
대상 APK: 260226_golden.apk
골든(Golden) 앱은 com.spare.nouns 패키지명으로 배포되는 악성 안드로이드 애플리케이션이다. 표면적으로는 "골든"이라는 이름의 일반 앱으로 위장하고 있으나, 내부적으로 연락처 전체 탈취, 기기 정보 수집, 카메라/마이크 접근, 이미지 파일 업로드를 수행하는 정보 탈취형 악성앱이다.
항목 · 내용
**패키지명** · `com.spare.nouns`
**표시명** · 골든 (Golden)
**APK 크기** · 2.69MB (2,692,400 bytes)
**SHA256** · `01962220da81bc10e9591cf9e574627afd3865c24b0a65ce6cf4c94df3a320d6`
**보호 기술** · ApkControlFlowConfusion 8.0 (중국산 제어 흐름 난독화)
**보호 일시** · 2026-02-25 17:55:31
**프레임워크** · Native Android (단일 classes.dex, 5.6MB)
**네트워크 라이브러리** · OkHttp3 (publicsuffix 데이터 포함)
**이미지 라이브러리** · Glide (Bumptech)
**C2 서버** · 런타임 복호화 — 정적 분석으로 미확인
**위협 수준** · **CRITICAL**
**minSdkVersion** · 26 (Android 8.0 Oreo)
**targetSdkVersion** · 35 (Android 15)
**versionCode** · 945
**versionName** · 42.5.9
1. 연락처 전체 탈취: NewaContent.getContacts() → 이름+전화번호 수집
2. 기기 정보 탈취: NewaDevice → 모델명, SIM 상태, 전화번호 수집
3. 이미지 자동 업로드: ImageUploadWorker → WorkManager 기반 백그라운드 이미지 전송
4. WebView 기반 C2: WebBrowserActivity → JavaScript 활성화, 카메라/마이크 권한 중계
5. 영속성: BOOT_COMPLETED 수신, FOREGROUND_SERVICE, WAKE_LOCK
```
com.spare.nouns/
├── api/
│ ├── NewaContent.java — 연락처 데이터 모델 + 탈취 로직
│ ├── NewaContent$ContentBean — 연락처 Bean (name, phone)
│ ├── NewaDevice.java — 기기 정보 데이터 모델
│ └── NewaDevice$ContentBean — 기기 Bean (model, simState, tel)
├── ui/
│ ├── LoginAcp.java — 메인 런처 (로그인 위장 화면)
│ ├── StartAcp.java — 데이터 수집 + 전송 화면
│ ├── WebBrowserActivity.java — WebView C2 통신 채널
│ └── BackgroundVideo.java — 배경 비디오 재생 (위장용)
└── worker/
└── ImageUploadWorker.java — 백그라운드 이미지 업로드 Worker
```
```
[사용자 앱 실행]
↓
LoginAcp (LAUNCHER) — 배경 비디오 + "시작하기" 버튼
↓ 권한 요청 (CAMERA, RECORD_AUDIO, READ_CONTACTS 등)
↓ 권한 허용 시
StartAcp — 연락처 탈취 + 기기 정보 수집 + 서버 전송
↓
WebBrowserActivity — WebView로 C2 서버 접속
↓
ImageUploadWorker — 백그라운드 이미지 탈취 (WorkManager)
```
Application 속성:
· android:usesCleartextTraffic="true" — HTTP 평문 통신 허용 (보안 취약)
· android:theme="@style/Theme.Nongfu" — "Nongfu" 테마명 (중국 브랜드 참조 가능성)
· android:label="@string/app_namez" — "골든" (한국어 표시명)
· android:allowBackup="true" — 백업 허용 (데이터 추출 가능)
· android:extractNativeLibs="false" — 네이티브 라이브러리 없음
컴포넌트 등록:
· Activity 3개: LoginAcp (exported), StartAcp, WebBrowserActivity
· Service 4개: SystemAlarmService, SystemJobService, SystemForegroundService, MultiInstanceInvalidationService
· Receiver 6개: ForceStopRunnable, ConstraintProxy(Battery/Storage/Network), RescheduleReceiver, DiagnosticsReceiver
· Provider 1개: InitializationProvider (WorkManager, Emoji2, ProcessLifecycle)
항목 · 수량
총 smali 파일 수 · 4,309
앱 고유 클래스 (com.spare.nouns) · 13
난독화된 패키지 (a~z, a0~z5) · 184
Unicode 아랍 문자 난독화 파일 · 205
최상위 패키지 수 · 188
네이티브 라이브러리 · 0 (없음)
경로: assets/protected_by_np/ApkControlFlowConfusion_8.0_ab587cd8c1204a099830fa2a9816ecf6.txt
```
ProtectTime: 2026-02-25 17:55:31
Function: 控制流混淆8.0
Version: 3.1.37
Attention: 仅用于个人代码保护,禁止用于非法用途!
```
해석:
· 보호 시간: 2026-02-25 17:55:31 (APK 배포 직전)
· 기능: 控制流混淆 = Control Flow Confusion (제어 흐름 혼란)
· 버전: 도구 버전 3.1.37, 보호 레벨 8.0
· 경고: "개인 코드 보호 전용, 불법 사용 금지" (중국어)
· 해시: ab587cd8c1204a099830fa2a9816ecf6 (MD5 형식, 라이선스/서명 식별자)
ApkControlFlowConfusion은 아크링크의 214개 앱 분석 데이터베이스에서 최초로 확인된 보호 기술이다.
기존 보호 기술과의 비교:
보호 기술 · 발견 앱 수 · 특징
360 Jiagu · 47+ · DEX 암호화, libjiagu.so
Frezrik Jiagu · 20+ · 패키지 4-segment, 15개 권한
Virbox · 15+ · 에뮬레이터 탐지 특화
ApkControlFlowConfusion 8.0 · **1** (Golden) · 제어흐름 혼란 + Unicode 난독화
ApkControlFlowConfusion 8.0은 5가지 핵심 난독화 기법을 적용한다:
모든 앱 메서드가 아랍어 숫자 조합(ۢۡۤۥ, ۣ۟ۧ۟ۥ 등)으로 치환됨.
```smali
invoke-static {v1, v2}, Lg4/۟ۤ۠۟;->ۤۥۡ۟(Ljava/lang/Object;Ljava/lang/Object;)I
invoke-static/range {v38 .. v41}, Landroid/app/ۣ۟ۢۢۦ;->ۣۣۡۤ([SIII)Ljava/lang/String;
```
특징:
· Unicode 범위 0x06E0~0x06FF (아랍어 확장 B) 사용
· 5자리 조합으로 메서드명 생성 (예: ۟ۤ۠۟, ۤۥۡ۟)
· IDE 디버거에서 렌더링 혼란 유발
· 자동화 도구의 문자열 매칭 방해
모든 문자열 리터럴이 short[] 배열로 인코딩되어 런타임에 복호화됨.
```smali
.field private static final short:[S
.method static constructor <clinit>()V
.locals 52
const v0, 0x43 # 배열 크기 67
new-array v0, v0, [S
fill-array-data v0, :array_0
sput-object v0, Lcom/spare/nouns[비공개]
:array_0
.array-data 2
0x9a5s # 암호화된 문자 데이터
0x9a8s
0x9b2s
...
.end array-data
```
복호화 패턴:
```smali
invoke-static/range {}, Lcom/spare/nouns[비공개])[S
invoke-static/range {v38 .. v41}, Landroid/app/ۣ۟ۢۢۦ;->ۣۣۡۤ([SIII)Ljava/lang/String;
```
분석:
· 각 클래스가 고유 short[] 배열 보유
· 복호화 함수가 200+ 개의 서로 다른 난독화 클래스에 분산
· 매개변수: ([SIII) = short배열, 시작인덱스(I), 길이(I), 키(I)
· 모든 URL, API 경로, 오류 메시지가 이 방식으로 은닉
```smali
.locals 52 # 비정상적으로 많은 지역 변수 (최대 52개)
move-object/from16 v1, p0 # 16비트 이상 레지스터 사용
invoke-static {}, Lokhttp3/internal/publicsuffix/ۢ۟۠ۦ;->۟ۧۢۨۥ()I
move-result v0
if-lez v0, :cond_0 # 항상 특정 방향으로 분기
sget-object v0, Lcom/spare/nouns[비공개]
:goto_0
return-object v0
:cond_0
const v0, 0x0
goto :goto_0
```
특징:
· 모든 메서드에 .locals 51~64 (비정상적 변수 수)
· move-object/from16 사용 (16비트 레지스터 주소)
· 더미 조건 분기로 정적 분석 방해
· 디컴파일러(jadx, procyon) 출력 품질 저하
```
com/google/android/material/bottomsheet/ۣ۟ۡۧۡ;->ۨۥۣ۠()
com/google/android/material/behavior/ۣ۟ۢۢۦ;->ۨۧۨۤ()
androidx/appcompat/widget/ۧ۠ۨۤ;->ۤ۠ۦۦ()
androidx/core/content/pm/۟۠ۦۤ۟;->ۧۥۨۧ()
```
실제 Android/MaterialDesign 패키지 경로 내에 난독화된 클래스를 삽입하여:
· 정상 라이브러리와 악성 코드의 경계 모호화
· 패키지 기반 필터링 회피
· 라이브러리 업데이트 시 충돌 유발 가능
```smali
Landroid/app/ۣ۟ۢۢۦ;->ۣۣۡۤ([SIII)Ljava/lang/String;
Lz2/ۣ۟ۤۤ;->۟ۡۤۤ۟([SIII)Ljava/lang/String;
Lw5/۠ۤۦ۠;->ۦ۟ۥ۠([SIII)Ljava/lang/String;
Lx4/ۥۢۧۤ;->۟ۢ۟ۧۧ([SIII)Ljava/lang/String;
Ln2/۠ۧۢۥ;->ۣۢ۠ۨ([SIII)Ljava/lang/String;
```
각 복호화 함수가 미세하게 다른 로직을 가질 수 있어, 일괄 복호화 스크립트 작성이 극히 어려움.
평가 항목 · 점수 (10점 만점) · 근거
문자열 은닉 · 9/10 · short 배열 + 다형적 디스패치
코드 흐름 은닉 · 8/10 · 52-레지스터 평탄화 + 더미 분기
API 은닉 · 9/10 · 네임스페이스 하이재킹
역공학 저항 · 8/10 · jadx/procyon 출력 심각하게 저하
동적 분석 저항 · 3/10 · 에뮬레이터 탐지 없음 (약점)
**종합** · **7.4/10** · 정적 분석 극도로 어렵, 동적 분석에 취약
# · 권한 · 위험도 · 악용 목적
1 · `INTERNET` · Normal · C2 서버 통신
2 · `ACCESS_NETWORK_STATE` · Normal · 네트워크 연결 상태 확인
3 · `ACCESS_WIFI_STATE` · Normal · WiFi 정보 수집
4 · `READ_CONTACTS` · **Dangerous** · **연락처 전체 탈취**
5 · `READ_PHONE_NUMBERS` · **Dangerous** · **전화번호 탈취**
6 · `CAMERA` · **Dangerous** · WebView 카메라 접근
7 · `RECORD_AUDIO` · **Dangerous** · WebView 마이크 접근
8 · `MODIFY_AUDIO_SETTINGS` · Normal · 오디오 설정 변경
9 · `READ_MEDIA_IMAGES` · **Dangerous** · **이미지 파일 탈취**
10 · `READ_EXTERNAL_STORAGE` · **Dangerous** · 외부 저장소 읽기
11 · `WAKE_LOCK` · Normal · 백그라운드 유지
12 · `RECEIVE_BOOT_COMPLETED` · Normal · **부팅 시 자동 시작**
13 · `FOREGROUND_SERVICE` · Normal · 포그라운드 서비스 유지
14 · `DYNAMIC_RECEIVER_NOT_EXPORTED_PERMISSION` · Signature · 내부 브로드캐스트 보호
위험 권한 요약: 14개 중 6개 Dangerous (42.8%)
LoginAcp의 생성자에서 3개의 문자열을 초기화 — 이것이 권한 요청 배열이다:
```smali
filled-new-array {v2, v0, v1}, [Ljava/lang/String;
iput-object v0, v3, Lcom/spare/nouns/ui/LoginAcp;->C:[Ljava/lang/String;
```
런타임에 복호화되어 requestPermissions()에 전달되는 구조이며, onRequestPermissionsResult에서 결과를 처리한다.
그룹 · 권한 · 위험도 · 데이터 영향
개인정보 · READ_CONTACTS, READ_PHONE_NUMBERS · **극심** · 전체 연락처 + 전화번호
미디어 · CAMERA, RECORD_AUDIO, READ_MEDIA_IMAGES · **높음** · 사진/영상/음성
저장소 · READ_EXTERNAL_STORAGE · **높음** · 전체 외부 저장소
네트워크 · INTERNET, NETWORK_STATE, WIFI_STATE · 중간 · 데이터 전송 경로
지속성 · BOOT_COMPLETED, FOREGROUND_SERVICE, WAKE_LOCK · 중간 · 앱 영속성
```smali
invoke-static {v13}, Lf1/۟ۡۨ۟ۦ;->ۦۣۧۨ(Ljava/lang/Object;)Landroid/content/ContentResolver;
invoke-static {}, Lq4/ۨۨۡۤ;->ۧۡۧۡ()Landroid/net/Uri; # ContactsContract.Contacts URI
invoke-static/range {v1 .. v6}, La2/ۣ۟ۡۡۡ;->۟ۤۧ۠ۦ(...)Landroid/database/Cursor;
invoke-static {v1, v2}, Lg4/۟ۤ۠۟;->ۤۥۡ۟(Ljava/lang/Object;Ljava/lang/Object;)I # getColumnIndex(DISPLAY_NAME)
invoke-static {}, Landroidx/core/content/pm/۟۠ۦۤ۟;->ۧۥۨۧ()Landroid/net/Uri; # Phone.CONTENT_URI
```
수집 데이터 구조:
```json
{
"aid": "기기식별자",
"type": 2,
"content": [
{ "name": "연락처이름", "phone": "010-XXXX-XXXX\n010-YYYY-YYYY" }
]
}
```
핵심: 한 연락처에 여러 전화번호가 있으면 \n으로 연결하여 하나의 phone 필드에 저장.
```smali
check-cast v2, Landroid/telephony/TelephonyManager;
invoke-static {v2}, Lcom/google/android/material/textview/ۣ۟۟ۦۡ;->ۨۨ۟(Ljava/lang/Object;)I # getSimState()
invoke-static {v1}, Lw4/ۥۦ۟ۢ;->ۧ۠ۤ(Ljava/lang/Object;)Ljava/lang/String; # getLine1Number()
```
수집 데이터 구조:
```json
{
"aid": "기기식별자",
"type": 1,
"content": {
"model": "Samsung_SM-G990N",
"simState": "5",
"tel": "010-**-**"
}
}
```
핵심 동작:
1. WorkManager가 ImageUploadWorker를 스케줄 (타임아웃 30초, 재시도 60초, 백오프 60초)
2. 입력 데이터에서 파일 경로/URI 추출
3. 이미지를 1920px 이하로 리사이즈 (JPEG, 품질 85%)
4. 임시 파일로 압축 후 OkHttp3 Multipart로 업로드
5. MIME 타입 판별 (JPEG/PNG/GIF) 후 적절한 Content-Type 설정
6. 업로드 성공 시 임시 파일 삭제
리사이즈 로직:
```smali
const/16 v2, 0x780 # 1920px 기준
const/high16 v6, 0x409e000000000000L # 1920.0 (double)
```
업로드 형식: OkHttp3 RequestBody (Multipart)
```
POST /upload
Content-Type: multipart/form-data
· file: (이미지 바이너리)
· filename: "upload_<timestamp>.jpg"
```
```java
// SetJavaScriptEnabled 어노테이션 — JS 명시 활성화
@SuppressLint("SetJavaScriptEnabled")
// WebView 기반 C2 통신
// CAMERA + RECORD_AUDIO 권한을 WebView에 중계
// 풀스크린 컨테이너 지원 (영상 통화 위장)
```
기능:
· JavaScript 활성화된 WebView
· ProgressBar로 로딩 표시
· FullScreen 모드 지원 (비디오 통화 위장)
· 카메라/마이크 권한을 WebView에 전달
증거:
· smali/okhttp3/internal/ 디렉토리 존재
· okhttp3/internal/publicsuffix/NOTICE 파일 포함
· okhttp3/internal/publicsuffix/a.gz (공개 접미사 데이터)
모든 URL이 short[] 배열로 암호화:
```smali
```
각 클래스의 short[] 배열에 최소 2~3개의 URL 문자열이 인코딩되어 있을 것으로 추정.
```xml
android:usesCleartextTraffic="true"
```
HTTPS가 아닌 HTTP 평문 통신을 허용하여:
· MITM 공격에 취약
· 네트워크 스니핑으로 C2 URL 추출 가능 (동적 분석 시)
· 탈취 데이터가 평문으로 전송될 가능성
```
[앱 시작]
│
├─ POST [비공개] ← NewaDevice (기기 정보)
├─ POST [비공개] ← NewaContent (연락처)
├─ POST [비공개] ← ImageUploadWorker (이미지)
│
└─ WebView URL ← C2 명령/제어 채널
```
NewaContent와 NewaDevice는 모두 Serializable을 구현하며, Builder 패턴을 사용:
```java
// NewaContent: 연락처 데이터 패킷
class NewaContent implements Serializable {
String aid; // 기기 식별자
int type; // 데이터 타입 (2 = contacts)
List<ContentBean> content;
static class ContentBean {
String name; // 연락처 이름
String phone; // 전화번호 (복수 시 \n 구분)
}
}
// NewaDevice: 기기 정보 패킷
class NewaDevice implements Serializable {
String aid; // 기기 식별자
int type; // 데이터 타입 (1 = device)
ContentBean content;
static class ContentBean {
String model; // 기기 모델명
String simState; // SIM 상태
String tel; // 전화번호
}
}
```
StartAcp.U() 메서드에서 T3/e (정적 필드 F)를 통해 aid를 생성. 이는 기기 고유 식별자로서 모든 데이터 패킷에 포함됨.
· usesCleartextTraffic="true" — HTTP 평문 허용
· SSL Pinning 미적용 (OkHttp3 기본 설정)
· 프록시 설정 감지 미구현
· 결과: Burp Suite/mitmproxy로 모든 통신 가로채기 가능
· Build.FINGERPRINT 검사 없음
· Build.MODEL 검사 없음
· ro.hardware 속성 검사 없음
· 결과: 에뮬레이터에서 완전 동작 가능, 동적 분석에 취약
· su 바이너리 검사 없음
· Magisk 검사 없음
· 결과: 루팅된 기기에서 Frida 훅 가능
· 서명 검증 없음
· 디버그 모드 검사 없음
· 결과: 리패키징 후 재설치 가능
· allowBackup="true" — ADB 백업으로 데이터 추출 가능
· SharedPreferences 암호화 여부 불명
유형 · 값
SHA256 · `01962220da81bc10e9591cf9e574627afd3865c24b0a65ce6cf4c94df3a320d6`
APK 파일명 · `260226_golden.apk`
APK 크기 · 2,692,400 bytes
유형 · 값
패키지명 · `com.spare.nouns`
런처 액티비티 · `com.spare.nouns.ui.LoginAcp`
데이터 수집 · `com.spare.nouns.ui.StartAcp`
WebView C2 · `com.spare.nouns.ui.WebBrowserActivity`
이미지 업로더 · `com.spare.nouns.worker.ImageUploadWorker`
연락처 모델 · `com.spare.nouns.api.NewaContent`
기기정보 모델 · `com.spare.nouns.api.NewaDevice`
유형 · 값
보호 도구 · ApkControlFlowConfusion 8.0
도구 버전 · 3.1.37
보호 해시 · `ab587cd8c1204a099830fa2a9816ecf6`
마커 경로 · `assets/protected_by_np/`
라이브러리 · 패키지
OkHttp3 · `okhttp3/internal/publicsuffix/`
Glide · `com/bumptech/glide/`
AndroidX Work · `androidx/work/`
Material Design · `com/google/android/material/`
AndroidX Room · `androidx/room/`
항목 · 값
앱 이름 · "골든" (`app_namez`)
부제목 · "간편하게 시작" (`app_subtitlez`)
버튼 텍스트 · "시작하기" (`app_buttonz`)
테마 · `Theme.Nongfu`
웹뷰 제목 · "웹 브라우징"
항목 · 값
C2 URL · 런타임 복호화 (미확인)
통신 프로토콜 · HTTP/HTTPS (OkHttp3)
데이터 형식 · JSON (Serializable 모델)
cleartext 허용 · true
```
기법 점검:
· 시도한 기법:
[SA-01] AndroidManifest 정적 분석 — 완료 (모든 컴포넌트, 권한, 속성 매핑)
[SA-02] smali 코드 정적 분석 — 완료 (13개 앱 클래스 전수 분석)
[SA-03] 문자열 패턴 분석 — 부분 (short[] 배열 암호화로 직접 추출 불가)
[SA-04] 데이터 모델 역공학 — 완료 (NewaContent, NewaDevice 구조 복원)
[SA-05] 라이브러리 식별 — 완료 (OkHttp3, Glide, WorkManager, Room)
[SA-06] 보호 기술 분석 — 완료 (ApkControlFlowConfusion 8.0 상세 분석)
[SA-07] 권한-기능 매핑 — 완료 (14개 권한의 악성 용도 식별)
[SA-08] UI 흐름 분석 — 완료 (레이아웃 XML 기반 앱 흐름 재구성)
[SA-09] 리소스 문자열 분석 — 완료 (한국어 UI 문자열 식별)
· 확장된 기법:
[SA-06+] ApkControlFlowConfusion 전용 분석 프레임워크 수립
→ Unicode 아랍문자 난독화 패턴 분류 (5가지 기법 식별)
→ short[] 배열 복호화 구조 분석
→ 네임스페이스 하이재킹 패턴 문서화
· 신규 기법:
[RE-013] "Polyglot Decryptor Mapping" — 다형적 복호화 함수 분산 패턴 분석
→ 200+ 개의 서로 다른 난독화 클래스에 분산된 동일 시그니처 복호화 함수 매핑
→ 각 함수가 다른 XOR/시프트 키를 사용할 가능성 분석
[RE-014] "Namespace Hijack Detection" — 정상 라이브러리 패키지 내 악성 클래스 탐지
→ com/google/android/material/, androidx/ 패키지 내 Unicode 클래스 식별
· 한계 발견:
[LIM-01] short[] 배열 복호화 불가 — 복호화 함수가 200+ 곳에 분산, 각각 다른 로직 가능
→ 동적 분석(Frida hooking)으로 런타임 복호화 필요
[LIM-02] C2 URL 미확인 — 모든 URL이 short[] 암호화
→ 에뮬레이터 동적 실행 + 네트워크 캡처 필요
[LIM-03] 정확한 데이터 전송 API 엔드포인트 미확인
→ mitmproxy/Burp Suite 프록시 분석 필요
```
```bash
adb install 260226_golden.apk
adb shell am start -n com.spare.nouns/.ui.LoginAcp
mitmproxy -p 8080 --set ssl_insecure=true
```
```javascript
// 모든 ([SIII)Ljava/lang/String; 시그니처 메서드를 후킹
// 반환값(String)을 로그로 출력하면 모든 URL/API 경로 추출 가능
```
· `POST [비공개] — 기기 정보 (최초 1회)
· `POST [비공개] — 연락처 전체 (권한 허용 후)
· POST /upload — 이미지 파일 (WorkManager 스케줄)
· WebView URL — C2 명령/제어
특성 · Golden · wavegrid · frezrik_jiagu · virbox_sens
보호 · ApkControlFlowConfusion · 없음/경량 · 360 Jiagu · Virbox
네이티브 lib · 없음 · 없음 · libjiagu.so · 있음
초대코드 · 미확인 · 있음 · 가변 · 없음
WebView · 있음 · 있음 · 가변 · 없음
이미지 업로드 · WorkManager · 직접 HTTP · 가변 · 없음
연락처 탈취 · ContentResolver · ContentResolver · ContentResolver · ContentResolver
기기 정보 · TelephonyManager · TelephonyManager · TelephonyManager · TelephonyManager
에뮬레이터 탐지 · 없음 · 없음 · 없음 · 있음
Golden은 새로운 독립 패밀리로 분류할 근거가 있다:
1. ApkControlFlowConfusion 보호 — 214개 앱 중 유일
2. Unicode 아랍문자 난독화 — 기존 패밀리에서 미확인
3. WorkManager 기반 이미지 업로드 — 대부분의 악성앱이 직접 HTTP 사용
4. Glide 이미지 라이브러리 — 이미지 처리 특화
5. "Nongfu" 테마명 — 중국 브랜드 참조 (중국 제작 추정)
6. versionCode 945 — 매우 높은 버전 코드 (장기 개발/운영)
제안 패밀리명: golden_cfconfusion 또는 nongfu_stealer
```
혁신 점검:
· 새 아이디어/시도:
1. ApkControlFlowConfusion 보호 기술의 5가지 난독화 기법 체계적 분류
2. "Polyglot Decryptor Mapping" 기법 — 다형적 복호화 함수 분산 패턴 분석 프레임워크
3. "Namespace Hijack Detection" 기법 — 정상 패키지 내 악성 클래스 탐지 방법론
4. short[] 배열 구조에서 URL 길이 추정 (배열 크기 / 평균 URL 길이)
· 결과: 부분 성공
· 5가지 난독화 기법 분류 완료
· 데이터 모델 완전 복원 (NewaContent, NewaDevice)
· C2 URL은 동적 분석 필요 (정적 한계)
· 기법 카탈로그 반영:
· [RE-013] Polyglot Decryptor Mapping — 정식 등재 완료
본 보고서는 주식회사 아크링크 Deep-Coding 보안연구소가 피싱·몸캠피싱 피해자 구제를 목적으로 작성했습니다. 전체 열람·피해 상담: arklink.co.kr