Android 10 iyo wixii ka dambeeya, app furtay /proc/net/tcp waxay helaa diidmo gelitaan halkii ay ka heli lahayd shaxda socket. Interface-ka VPN dan kama geliso: baakadaha wali way yimaadaan, sababtoo ah tunnel-ku waa go'aan marrin, ma aha oggolaansho fayl. Waxa isbeddelay waa jawaabta su'aal cidhiidhi ah: “app kee ayaa leh xiriirkan?” Beddelka waa ConnectivityManager.getConnectionOwnerUid, su'aasha la taageeray ee xiriir kasta, iyo doorashada u dhexeysa caadada hore iyo API-ga cusub waxay ku xiran tahay midka saddex shaqo ee aad dhab ahaan haysato: helista baakadaha, u-yeelista qulqulka, ama isku-darka isticmaalka.

Laba siyaabood oo looga jawaabo su'aasha milkiilaha

Kahor API 29, geedi socod mudnaan leh ama root wuxuu akhrin kari jiray shaxda socket-ka kernel-ka, isku-dhiggiisa afarta, oo ogaado UID-ga milkiilaha. Taasi waxay siisay liis dhamaystiran oo qalabka ah hal fayl. Laga bilaabo API 29 aragtida nidaamka faylka waa xaddidan, iyo waddada la taageeray waa su'aal xiriir kasta leh borotokoolka, ciwaanka gudaha iyo ciwaanka fog.

QuestionLegacy socket tablesgetConnectionOwnerUid
Who owns this flow?Scan and match the tupleAsk once per tuple
Device-wide inventory?Yes, when readableNo, one flow at a time
Historical usage?NoNo; that is NetworkStatsManager
Works without root?No on modern releasesYes, for authorized callers

Isbarbardhiggu ma aha “dugsi hore iyo mid cusub”. Waa saddex shaqo oo kala duwan oo horey hal fayl la akhriyi karo u fulin jiray, haddana saddex interface oo kala duwan oo leh saddex heshiis oo kala duwan ay fuliyaan.

Ciwaanka gudaha waa cirifka app-ka

Saxiixa habka wuxuu qaataa borotokool, ciwaanka socket gudaha iyo ciwaanka socket fog. “Gudaha” waxay ka dhigan tahay dhinaca app-ka ee xiriirka, ma aha cirifka si kadis ah u noqda isha baakadda marka aad baarto. Baakad ka timaadda server-ka fog oo ku noqonaysa app-ka waxay leedahay isha iyo goobta ay ka soo horjeedaan qeexitaankaas.

ConnectivityManager cm = getSystemService(ConnectivityManager.class);
int uid = cm.getConnectionOwnerUid(
    OsConstants.IPPROTO_TCP, appLocalAddress, appRemoteAddress);

Khaladkan jihada ah ayaa ah sababta ugu badan ee su'aal shaqeysa ay ku celiso jawaab qaldan, ama waxba. Diiwaangeli labada cirif kahor wicitaanka oo xaqiiji lammaanaha xiriirka app-ku dhab ahaan furay. Qoyska ciwaanku sidoo kale waa muhiim: ciwaanka IPv4 lagu khariidado iyo ciwaanka asalka ah ee IPv6 waa tuple kala duwan, sidoo kale qulqulka TCP iyo UDP ee isla dekedaha.

Oggolaansho iyo natiijooyin aan la garanayn waa qayb heshiiska

Su'aashu waxay ku xaddidan tahay wicitaanayaasha la oggolaaday, oo ay ku jirto app-ka VPN firfircoon ee isticmaalaha la xiriira. App kormeer oo aan xiriir la lahayn ma qaadan karo inuu tirin karo xiriirka profile kale, wicitaan aan la oggolaynna wuxuu tuuri karaa ka-reebitaan amni halkii uu ku celin lahaa khalad saaxiibtinimo leh. Labada natiijo si cad u maaree.

Milkiile maqan ma aha magac baakad. Qulqulka wuu xirmi karaa inta u dhaxaysa baakadda iyo su'aasha, tuple-ku wuu dhamaystirnaan karaa, ama wicitaanaha lama oggolaan karo inuu ogaado. Kaydinta jawaabta ugu horreysa ee guulaysata iyo dib u isticmaalkeeda dambe waxay xiriirka cusub u nisbeeyaa app hore, taas oo ka xun in la sheego wax aan la garanayn.

Marka u-yeelistu guuldareysto, taraafikadu wali waxay u baahan tahay go'aan: ka xir meesha siyaasadu u baahan tahay, fasax kaliya baaxad aad fahanto, ama muuji farqiqa. Dib-u-noqosho taas waxay ka tirsan tahay naqshadda, ma aha faallo.

Xisaabintu waa su'aal kale

NetworkStatsManager wuxuu ka warbixiyaa isticmaalka sida uu qabo xeerarkiisa gelitaan. Wuxuu kuu sheegi karaa inta UID uu wareejiyay muddo; ma sheegi karo milkiilaha baakad nool oo aan loo baahnayn. Awoodaha shabakadu waxay qeexaan sifooyinka shabakad, ma aha liis socket. Saddexda isku darka waxay soo saartaa dashboards u eg mid joogto ah oo aan ahayn.

Kiiska fudud ee go'aaminta apps-ka isticmaala tunnel-ka, liisaska la taageeray ee Android ee apps-ka la oggolaaday iyo kuwa mamnuucan waxay horey u muujinayaan siyaasadda iyada oo aan waxba la scraping gelin. U-yeelista qulqul kasta u kaydi kiisaska runtii u baahan, oo miisaaniyad u samee hirgelin la ilaaliyo oo si wadajir ah u maareeya jihada, oggolaanshaha iyo xaaladaha aan la garanayn.

Dooro qalabka shaqada, kadib tijaabi geesaha

Haddii shuruuddu tahay doorashada tunnel-ka, isticmaal liiska madal. Haddii u-yeelista toos ah, isticmaal su'aasha milkiilaha oo qaado tuple kasta oo aan jawaab lahelin inuu yahay mid aan la garanayn. Haddii waa wadarta taariikhiga, isticmaal stats API. Kadib tijaabi saddexda gees ee jebiya hirgelinta fudud: baakad jihada ka soo horjeeda, qulqul xirma kahor su'aasha, iyo wicitaane aan ahayn VPN firfircoon.

Midna kama mid ah kuwaas ma u baahna in SELinux la damiyo, telefoonka la root-gareeyo ama shaxda kernel-ka laga dhigo mid caalami ah loo akhriyi karo. Xaddidnaantu waa ujeeddada: madalku waxay u-yeelista u dhaqaajisay gadaal heshiis si jawaabtu u gaarto qaybta si sharci ah u baahan, iyo qof kale ma aha.

Maqaallo la xiriira