Kuidas Androidi arendajad saavad oma rakendusi IAP-häkkerite eest kaitsta



Proovige Meie Instrumenti Probleemide Kõrvaldamiseks

See juhend on mõeldud Androidi rakenduste arendajatele, kes teenivad sissetulekut Interneti-rakendustest ja soovivad end häkkerite abil kaitsta häkkerite ja petlike ostude eest. Seal on mitu tuntud IAP-i häkkimistööriista, mida ma siin ei loetle, kuid põhimõtteliselt saadavad need tööriistad teie rakendusse valed ostukviitungid, et kasutaja saaks tasuta IAP-sid nautida. See võib olla kõike, alates igakuistest tellimustest kuni mängusiseste märgideni.





Ehkki nende häkkimistööriistade uusi versioone avaldatakse alati ja hoolsus nende uusimate värskenduste ja meetodite teadvustamisel on väga oluline, saate oma rakenduste IAP-de varastamise eest kaitsta mõned asjad. Eelkõige peate lubama mitu serveripoolse IAP-i kinnitamise meetodit, mida ma üksikasjalikult kirjeldan allpool.



See juhend pole mõeldud algajatele, vaid kogenud rakenduste arendajatele, kes saavad aru selles juhendis toodud erinevatest keeltest.

Kasutage selleks spetsiaalselt Git Repo pistikprogrammi:

PiracyChecker

Lisage hoidla oma projekti build.gradle :



hoidlad {

maven {

URL „https://jitpack.io”

}

}

Ja lisage teek oma moodulisse build.gradle :

sõltuvused {

koosta ‘com.github.javiersantos: PiracyChecker: 1.1’

}

Soovitused

  • Lubage oma tootmisväljaannetes alati ProGuard.
  • Kehtiva litsentsi võimalikult kiireks kontrollimiseks peaks teie onCreate-meetodi hulka kuuluma PiracyChecker.
  • Kui litsents ei kehti, on soovitatav kuvada dialoogi asemel uus tegevus. Nii veendute, et rakenduse põhitegevus on lõpetatud. Vaadake Kuva kuvab dialoogi või uue tegevuse '.

Google Play litsentsimise kinnitamine (LVL)

Google Play pakub litsentsimisteenust, mis võimaldab teil rakendada Google Plays avaldatud rakenduste litsentsimispõhimõtteid. Google Play litsentsimise abil saab teie rakendus Google Playlt päringu teha, et saada praeguse kasutaja litsentsistaatus.

Kõik Google Play kaudu avaldatud rakendused saavad kasutada Google Play litsentsimisteenust. Spetsiaalset kontot ega registreerimist pole vaja.

uus PiracyChecker (see)

.enableGooglePlayLicensing („BASE_64_LICENSE_KEY”)

...

.start ();

BASE64 litsentsivõtme hankimiseks peate oma rakenduse üles laadima Google Play arendajakonsool . Seejärel pääsete juurde oma rakendusele -> Teenused ja API-d.

Google Play litsentsimise kasutamisel peaksite teenuse mitme eksemplari vältimiseks kutsuma .destroy () oma tegevuse meetodil onDestroy ().

Rakenduse allkirjastamise sertifikaadi (allkirja) kinnitamine

Enne rakenduse installimist kasutaja seadmetesse peavad arendajad rakendustele alati alla kirjutama oma privaatvõtme / sertifikaadiga (sisalduvad .keystore-failis). Allkirjastamissertifikaat peab kogu rakenduse eluea jooksul püsima ja selle kehtivusaeg on tavaliselt 25 aastat.

Rakenduse allkiri on katki, kui .apk-faili mingil viisil muudetakse - allkirjastamata rakendusi ei saa tavaliselt installida. Võime ette kujutada, et ründaja eemaldab litsentsikontrollikoodi, et lubada rakenduse täielikud funktsioonid näiteks maksmata. Ohtlikum näide oleks .apk-i muutmine tundlike kasutajaandmete kogumiseks seadusliku rakenduse pahavara lisamiseks. Muudetud .apk installimiseks peab ründaja sellest loobuma.

uus PiracyChecker (see)

.enableSigningCertificate (“478yYkKAQF + KST8y4ATKvHkYibo =”) // TOOTE versiooni APK originaalallkiri

...

.start ();

OLE ETTEVAATLIK!! Teie rakenduse allkirja saab hankida meetodi PiracyCheckerUtils abil. Veenduge, et olete oma APK allkirjastanud oma PRODUCTION-i võtmepoodi (mitte DEBUG-i kasutades) ja installinud versiooni, mida kavatsete levitada. Seejärel kopeerige selle meetodiga tagastatud allkiri konsoolile ja kleepige .enableSigningCertificate („YOUR_APK_SIGNATURE”)

// See meetod printib teie rakenduse allkirja konsooli

Log.e („SIGNATURE”, PiracyCheckerUtils.getAPKSignature (see));

Kontrollige installijat

Kui kavatsete rakendust levitada ainult kindlas poes, blokeerib see tehnika rakenduse installimise mis tahes muu poe abil.

Toetatud kauplused: Google Play, Amazon App Store ja Samsung Galaxy Apps.

uus PiracyChecker (see)

.enableInstallerId (InstallerID.GOOGLE_PLAY)

.enableInstallerId (InstallerID.AMAZON_APP_STORE)

.enableInstallerId (InstallerID.GALAXY_APPS)

...

.start ();

OLE ETTEVAATLIK!! See on tõepoolest piirav tehnika, kuna see blokeerib teie rakenduse installimise teise turu abil või .apk otse seadmesse installimise. Enamikul juhtudel ei ole see soovitatav.

Kontrollige piraatrakenduste kasutamist

Kui soovite kontrollida, kas kasutajal on piraatrakendused installitud, saate seda koodi kasutada.

See kontrollib: Lucky Patcher, Uret Patcher, Freedom ja CreeHack.

uus PiracyChecker (see)

.enableUnauthorizedAppsCheck ()

...

.start ();

Rakenduse saate blokeerida ka siis, kui see piraadirakendus on desinstallitud. See hoiab ära rakenduse lappimise ja seejärel piraatrakenduse desinstallimise, et oma rakendust edasi kasutada. Teek salvestab SharedPreference väärtuse, et teada saada, kui piraatrakendus on tuvastatud.

Selleks on kaks võimalust:

Määrake SharedPreferences ja eelistuse nimi, kuhu soovite tulemuse salvestada.

uus PiracyChecker (see)

.enableUnauthorizedAppsCheck ()

.blockIfUnauthorizedAppUninstalled (eelistused, „app_unauthorized”) // Muutke „app_unauthorized” oma väärtusega

...

.start ();

Määrake nimi SharedPreferences ja eelistuse nimi, kuhu soovite tulemuse salvestada.

uus PiracyChecker (see)

.enableUnauthorizedAppsCheck ()

.blockIfUnauthorizedAppUninstalled („litsentsi_reeglid”, „rakenduse_autoriseerimata”) // Muutke „litsentsi_preferentsid” ja „rakenduse_autoriseerimata” oma väärtusega

...

.start ();

Kontrollige kolmanda osapoole poe rakenduste kasutamist

Kui soovite kontrollida, kas kasutajal on installitud kolmanda osapoole poodirakendusi, saate seda koodi kasutada.

See kontrollib: Aptoide, BlackMart, Mobogenie, 1Mobile, GetApk, GetJar, SlideMe ja ACMarket.

uus PiracyChecker (see)

.enableStoresCheck ()

...

.start ();

Kontrollige, kas rakendus on silumise järk

Kui teie rakendus töötab emulaatoris väljaspool arendusprotsessi, annab see märku, et keegi teine ​​peale teie proovib rakendust analüüsida.

uus PiracyChecker (see)

.enableDebugCheck ()

...

.start ();

Kontrollige, kas rakendust käitatakse emulaatoris

Väljaspool arendustegevust on ebatõenäoline, et teie rakendus peaks töötama emulaatoris, ja siluda lubavate rakenduste väljaandmine on keelatud, kuna see võimaldab ühendatud arvutitel rakendusele juurde pääseda ja siluda rakenduse Android Debug Bridge kaudu.

boolean deep = vale;

uus PiracyChecker (see)

.enableEmulatorCheck (sügav)

...

.start ();

Märge: sügav boolean koos sunniga teeki tegema täiendavaid kontrolle tuvastamaks, kas seade on emulaator või mitte. See võib viia imelike krahhideni, nii et olge selle kasutamisel tark.

Salvestage litsentsikontrolli tulemus jaotisesse SharedPreferences

Litsentsikontrolli tulemuse salvestamine on kasulik litsentsi oleku kontrollimiseks .start () mitu korda helistamata.

Selleks on kaks võimalust:

Määrake SharedPreferences ja eelistuse nimi, kuhu soovite tulemuse salvestada.

uus PiracyChecker (see)

.saveResultToSharedPreferences (eelistused, “valid_license”) // Muutke “valid_license” oma väärtusega

...

.start ();

Määrake nimi SharedPreferences ja eelistuse nimi, kuhu soovite tulemuse salvestada.

uus PiracyChecker (see)

.saveResultToSharedPreferences ('litsentsi_reeglid', 'kehtiv_litsents') // Muutke 'litsentsi_preferentsid' ja 'kehtiv-litsents' oma väärtusega

...

.start ();

Kohandused

Kuva kuvab dialoogi või uue tegevuse

Kui litsents ei kehti, on soovitatav kuvada dialoogi asemel uus tegevus. Nii veendute, et rakenduse põhitegevus on lõpetatud.

Vaikimisi kuvatakse tühistamatu dialoog.

uus PiracyChecker (see)

.display (Display.ACTIVITY)

...

.start ();

Vaikimisi kasutab kuvatav tegevus teegi värve. Kohandatud põhi- ja esmase tumeda värvi rakendamiseks ning selle määramiseks, kas tegevus peaks näitama tavalist või heledat olekuriba, kasutage järgmist.

.withActivityColors (R.color.colorPrimary, R.color.colorPrimaryDark, withLightStatusBar)

Selle tegevuse sisu jaoks saate määratleda ka kohandatud paigutuse xml, kasutades:

.withActivityLayout (R.layout.my_custom_layout)

Kohandatud tagasihelistuste kasutamine

Tagasihelistamise lisamine ehitajale võimaldab teil kohandada, mis juhtub, kui litsents on kontrollitud, ja hallata litsentsi kontrollimise vigu, kui kasutajal pole lubatud rakendust kasutada. Pidage meeles, et selle meetodi kasutamisel peate olema teadlik rakenduse volitamata kasutajate blokeerimisest .

Vaikimisi kuvab teek tühistamatu dialoogi, kui kasutajal pole lubatud rakendust kasutada, muidu ei juhtu midagi.

Kasutage ehitajat ja lisage järgmine:

.callback (uus PiracyCheckerCallback () {

@Üle

public void allow () {

// Tehke midagi, kui kasutajal on lubatud rakendust kasutada

}

@Üle

public void dontAllow (@NonNull PiracyCheckerError tõrge, @Nullable PirateApp rakendus) {

// Võite teha midagi konkreetset, kui kasutajal pole lubatud rakendust kasutada

// Või haldage viga parameetri „error” abil ise (kontrollige vigu saidil {@link PiracyCheckerError}).

// Lisaks, kui lubasite piraadirakenduste ja / või kolmandate osapoolte poodide kontrollimise, parameeter „rakendus”

// on seadmes tuvastatud rakendus. Rakendus võib olla null ja kui see on null, tähendab see, et ühtegi piraadirakendust ega poodi ei leitud,

// või keelasite nende rakenduste kontrollimise.

// See võimaldab teil anda kasutajatele teada võimalikest põhjustest, miks litsents on kehtetu.

}

@Üle

public void onError (@NonNull PiracyCheckerError tõrge) {

// Seda meetodit pole vaja rakendada / alistada, kuid…

// Võite litsentsi kontrollimisel tõrke ilmnemisel midagi konkreetset teha,

// Või haldage viga parameetri „error” abil ise (kontrollige vigu saidil {@link PiracyCheckerError}).

}

})

6 minutit loetud