Greining á innihaldi og uppbyggingu APK-skráa
Android-forritapakki (APK) er í raun þjappað skjalasafn sem inniheldur alla þá þætti sem nauðsynlegir eru til að keyra forrit á Android-stýrikerfinu. Þegar APK-skrá er skoðuð með greiningartólinu er farið yfir innri uppbyggingu hennar án þess að keyra kóðann sjálfan. Tólið les mikilvægar skrár eins og AndroidManifest.xml, sem geymir grunnstillingar forritsins, ásamt því að greina DEX-skrár (þar sem keyrslukóði forritsins liggur), auðlindir og eignaskrár.
Ólíkt útgáfusniðum eins og Android App Bundle (.aab), sem er ætlað til dreifingar í gegnum Google Play en ekki til beinnar uppsetningar, eða skiptum pökkum eins og XAPK sem innihalda mörg APK-söfn, þá er stök APK-skrá fullbúið snið til uppsetningar á tækjum. Með því að framkvæma kyrrstæða greiningu (static analysis) á þessari skrá áður en hún er ræst eða sett upp, er hægt að bera kennsl á eiginleika forritsins og bera þá saman við opinberar upplýsingar frá útgefanda.
Tæknilegar kröfur og takmarkanir við greiningu
Tólið vinnur með stakar skrár og fylgir ströngum reglum um stærð og snið til að tryggja örugga vinnslu í vafra:
- Stærðarmörk: Hámarksstærð skráar sem hægt er að greina er 500 MB. Ef reynt er að hlaða inn stærri skrá birtast villuboðin:
"Þessi skrá er stærri en 500 MB — stærri en vafraflipa er óhætt að skoða.". - Fjöldi skráa: Aðeins er hægt að greina eina skrá í einu. Ef mörgum skrám er sleppt inn í einu vinnur tólið aðeins úr þeirri fyrstu og sýnir athugasemdina:
"Ein skrá í einu — skoðar þá fyrstu.". - Óstudd snið:
- Ef reynt er að hlaða inn XAPK-skrá birtast villuboðin:
"Þetta er XAPK-skiptipakki — ílát með nokkrum APK-skrám. Dragðu grunnt APK út og skoðaðu þá skrá í staðinn.". - Ef hlaðið er inn.aab-skrá birtast skilaboðin:
"Þetta er Android App Bundle (.aab) — útgáfusnið, ekki uppsetningarhæf APK. Skoðaðu byggðu APK-skrána í staðinn.". - Ef skráin er ekki á APK-sniði eða vantar nauðsynlegar innri skrár birtist villan:
"Þetta lítur ekki út fyrir að vera APK: engin lesanleg AndroidManifest.xml fannst innra með.".
- Ef reynt er að hlaða inn XAPK-skrá birtast villuboðin:
- Skemmdar eða ólesanlegar skrár: Ef skráin er óheil eða skemmd sýnir tólið skilaboðin:
"Pakkinn lítur út fyrir að vera skemmdur eða styttur, svo ekki tókst að lesa innihald hans.". Ef almenn villa kemur upp við lestur birtist:"Ekki tókst að lesa skrána. Veldu hana aftur.". Ef greiningin sjálf klikkar af öðrum ástæðum birtist:"Skoðun mistókst. Prófaðu aðra skrá.".
Útgáfustýring og samhæfni Android SDK
Í hlutanum Kröfur sýnir tólið hvernig forritið er hannað til að ræsa sig og hegða sér á mismunandi útgáfum af Android-stýrikerfinu. Þessar upplýsingar skilgreina samhæfni og öryggisstillingar forritsins:
| Heiti í viðmóti | Lýsing og snið gagna |
|---|---|
Lágmarks Android |
Lægsta útgáfa stýrikerfisins sem forritið getur keyrt á. Sýnt sem Android ‹version› (API ‹level›) eða API ‹level›. |
Miðað við Android |
Sú útgáfa sem forritið var hannað og prófað fyrir. Sýnt sem Android ‹version› (API ‹level›) eða API ‹level›. |
hámarks SDK ‹n› |
Hámarksútgáfa SDK sem forritið styður, ef hún er tilgreind í pakkanum. |
Þessar útgáfur stýra því hvaða öryggisreglum kerfið fylgir þegar forritið keyrir á tækinu.
Heimildir og flokkun á áhættusömum aðgerðum
Í hlutanum Heimildir birtist listi yfir allar þær heimildir sem forritið biður stýrikerfið um. Til að auðvelda greiningu eru heimildirnar flokkaðar og raðaðar eftir mikilvægi:
- Forgangsröðun: Heimildir sem flokkaðar eru sem hættulegar af Android-stýrikerfinu (þær sem veita aðgang að einkagögnum notandans) eru sjálfkrafa settar efst á listann.
- Sérstök merking: Við hliðina á þessum áhættusömu heimildum birtist áberandi merkið
Hættulegt. Þetta á við um heimildir sem veita aðgang að viðkvæmum upplýsingum eins og staðsetningu, tengiliðum, myndavél eða geymslu tækisins.
Íhlutir forritsins og takmarkanir á birtingu
Íhlutir forritsins eru sýndir í hlutanum Íhlutir. Þeir skiptast í fjóra meginflokka, og sýnir tólið hvort þeir séu aðgengilegir öðrum forritum á tækinu með merkinu flutt út:
- Athafnir (Activities): Skjáirnir og viðmótshlutarnir sem notandinn á samskipti við. Sýna merkið
flutt útþar sem það á við. - Þjónustur (Services): Bakgrunnsferli sem keyra án þess að sýna viðmót. Sýna merkið
flutt útþar sem það á við. - Móttakarar (Receivers): Íhlutir sem hlusta á og bregðast við kerfisskilaboðum. Sýna merkið
flutt útþar sem það á við. - Veitur (Providers): Íhlutir sem deila gögnum á milli forrita. Sýna merkið
flutt út, auðkenni veitu (authority), eðaEngin.
Til að koma í veg fyrir að viðmótið verði of hlaðið sýnir tólið að hámarki 100 færslur í hverjum flokki. Ef íhlutirnir eru fleiri er afganginum safnað saman undir merkið +‹count› í viðbót.
Vinnslukóði, auðlindir og skráarhashed
Tólið dregur út upplýsingar um vélbúnaðarstuðning og innri skrár forritsins:
- Vinnslukóði: Sýnir studdar örgjörvagerðir (ABI) og fjölda innbyggðra safna (native libraries).
- Auðlindir (
Auðlindir): Sýnir tölfræði yfir innihald pakkans, þar á meðalSkjáþéttleiki,Auðlindaskrár,Eignaskrár,Kóðaskrár (.dex)og heildarfjöldannSkrár í pakka. - Skráarhashed (
Skráarhashed): Sýnir MD5, SHA-1 og SHA-256 gildi fyrir sjálfa APK-skrána. Þessi gildi nýtast til að staðfesta að skráin sé nákvæmlega sú sama og framleiðandinn gaf út.
Undirskriftir og staðfesting á útgefanda
Í hlutanum Undirskriftir er hægt að skoða upplýsingar um stafrænar undirskriftir forritsins. Tólið les X.509 skírteini úr v1 PKCS#7 blokkum og APK Signing Blocks (v2, v3 og v3.1). Fyrir hvern undirritara (Undirritandi ‹n›) eru eftirfarandi upplýsingar sýndar:
EfniogGefið út af.Raðnúmer.Gildir fráogGildir til.UndirskriftaralgrímogLykilalgrím.- MD5, SHA-1 og SHA-256 fingraför skírteinisins.
Ef enginn þekktur undirskriftarblokkur finnst í skránni birtast skilaboðin: "Engin þekkt undirskrift fannst — pakkurinn gæti verið undirskriftarlaus eða endurpakkaður.". Tólið dregur þessi gögn eingöngu út til birtingar; það framkvæmir ekki dulmálsfræðilega sannprófun á undirskriftunum, staðfestir ekki traustkeðju skírteinisins og sannreynir ekki raunverulegt auðkenni útgefandans.
Öryggi og staðbundin vinnsla í vafra
Öll vinnsla, lestur á skrám, útreikningur á tætingargildum og greining á innihaldi fer fram staðbundið í tæki notandans. Tólið notar staðbundinn Worker í vafranum til að vinna úr gögnunum. Engum skrám eða gögnum er hlaðið upp á ytri netþjóna, og APK-skráin er aldrei sett upp eða keyrð á tækinu. Þetta tryggir fyllsta öryggi og trúnað við greininguna.
Algengar spurningar
Hvað get ég lært af APK án þess að setja hana upp?
Ganska mikið: pakkanafn og útgáfu appsins, hvaða Android-útgáfur það þarfnast, allar heimildir sem það biður um, skjái og bakgrunnsíhluti sem það tilgreinir, örgjörvagerðir fyrir innbyggðan kóða og skírteinin sem það var undirritað með.
Getur þetta tól sagt mér hvort APK sé spilliforrit?
Nei — og vertu tortrygginn gagnvart öllum tólum sem lofa dómum út frá skyndiskönnun. Það sem þú færð hér eru staðreyndir: heimildir, íhlutir, undirritaðir og kjötskrár. Berðu þær saman við það sem verktakinn birtir og lítum á óvæntar heimildir eða annað undirskriftarskírteini en hið opinbera sem ástæðu til að hætta við.
Hvaða skrár eru studdar?
Stakar APK-skrár að stærð 500 MB. Skiptar pakkningar (XAPK, APKM) og Android App Bundles (.aab) eru ílát eða útgáfusnið en ekki stakur uppsetningarpakki, svo þeim er hafnað með skýrri skilaboðum í stað ruglingslegrar skýrslu.
Hvað segja undirskriftarupplýsingarnar mér?
Öll Android-forrit eru undirrituð og skírteinið auðkennir hvernig gaf út. Þú sérð hvaða undirskriftarkerfi pakkinn notar (v1, v2, v3) og efni hvers undirritara, gildistíma og MD5-, SHA-1- og SHA-256-fingraför. Tvær APK-skrár með samsvarandi fingraför komu frá sama útgefanda — hvort þú treystir þeim útgefanda er samt undir þér komið.
Hvað þýðir „Hættulegt“ merkið á heimild?
Þetta er flokkun Android sjálfs: hættulegar heimildir geta náð í einkagögn — staðsetningu, tengiliði, myndavél, hljóðnema, geymslu — þannig að kerfið spyr notandann áður en það veitir þær. Merkið er ekki ákæra; landkortapp sem biður um staðsetningu er eðlilegt. Það merkir einfaldlega heimildirnar sem þarf að lesa tvisvar.