WAARSCHUWING! Verwijder geen sprongen of maak ze onvoorwaardelijk! De Optimizer crasht en uw patch werkt niet op ART! Gebruik voorwaardelijke sprongen om dit te voorkomen. Als er bijvoorbeeld moet worden gesprongen, vervangt u de sprong door deif-eq v0,v0 (bytes: 32 00 ?? ??)
. Als het niet nodig is om op een bepaalde plaats te springen, kunt u een sprong invoegen zoalsif-ne v0,v0 (bytes: 33 00 ?? ??)
; ook voel je vrij om je eigen equivalent te gebruiken.
Het patchbestand moet dezelfde naam hebben als de doel-APK (dit is hoofdlettergevoelig).
Als het bestand een aangepaste patch is voor de applicatie die al bestaat, kunt u eenvoudigweg aan het begin van de bestandsnaam van een willekeurige tekst toevoegen en deze opslaan als in de buurt van de bestaande.
Als u eenmaal een reeks programma's op een enkele firma wilt schrijven, dan kunt u de aangepaste naam van de aangepaste patch gebruiken _%25ALL%25
, bijvoorbeeld de naam van de patch voor alle stemmen SVOX
ziet er zo uit: com.svox.classic.langpack_%25ALL%25.txt
. Op de _%25ALL%25
wordt vervangen door het deel van de naam van het pakket, dat varieert afhankelijk van de toepassing van het bedrijf.
Gebruik geen speciale tekens/opmaak in het patchbestand (alleen spaties). Als u een patch voor meerdere programma's van één bedrijf moet maken en aan het begin een prefix moet toevoegen, kunt u gebruiken%25ALL%25_
en _%25ALL%25
. (Voorbeeldnaam:chelpus.%25ALL%25_com.android._%25ALL%25.txt
). U kunt aangepaste inhoud voor de patch gebruiken %25PACKAGE_NAME%25
voor pad naar bestanden, dit %25PACKAGE_NAME%25
vervang de pakketnaam van doeltoepassingen.
Gebruik IDA Pro 6.1 om naar patronen van bytes te zoeken. Het kan dalvik-cache, odex, bibliotheken en classes.dex openen.
Als u dalvik-cache of odex wilt patchen, vergeet dan niet dat de bytes aan gegevens in verschillende firmwareversies kunnen verschillen. En onthoud dat niet alle classes.dex in de bytes samenvallen met dalvik-cache en odex. In dit voorbeeld kunt u zien of u classes.dex en het odex-bestand opent in IDA Pro.
In Lucky Patcher versie 6.5.4+ is de mogelijkheid om lpzip-bestanden aan te maken toegevoegd. Het is een zip-archief dat apk-bestanden en aangepaste patches kan bevatten. Apk zal worden geïnstalleerd. Aangepaste patches worden automatisch geïmporteerd in Lucky Patcher. (Voorbeeld:installSomeAppsWithPatch.lpzip)
[BEGIN]
<patchopmerkingen die zichtbaar zijn voor de pre-patch van de gebruiker>
Patch voor XYZ Pro 5.0.5
[PACKAGE]
<vult classes.dex uit en past alle patches van [CLASSES] hierop toe. En genereert, gebaseerd op de gewijzigde classes.dex, odex-file.>
[CLASSES]
<patroon zoeken/vervangen voor classes.dex (zie hieronder)>
{"search":"63 R00 R01 R02 38 00 04 00 12 10 0F 00"}
{"group":"1"}
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{"replaced":"12 00 6A W00 W01 W02 00 00 12 S0 0F 00 "}
[LIB]
<patroon zoeken/vervangen voor named native libraries (zie hieronder)>
{"name":"libtitanium.so"}
{"Apk_build":604+}
{"original":"00 ** 50 e2"}
{"replaced":"00 00 50 e1"}
[LIB]
<patroon zoeken/vervangen voor alle native bibliotheken>
{"name":"*"}
{"original":"00 ** 50 e2"}
{"replaced":"00 00 50 e1"}
[OTHER FILES]
<patroon zoeken/vervangen voor andere benoemde andere bestanden in /data/data/Package_Target_APK/ (zie hieronder)>
{"Name":"/files/shell.dex"}
{"original":"0F 00 00 00 1A 00 00 00 0F 00 00 00 59 00 00 00 2F"}
{"replaced":"0F 00 00 00 0F 00 00 00 0F 00 00 00 59 00 00 00 2F"}
[OTHER FILES]
<patroon zoeken/invoegen voor andere benoemde andere bestanden in /mnt/sdcard/(if /mnt/sdcard/ pad niet gevonden, Lucky Patcher doorzoek andere varianten op sdcard)>
{"Name":"/mnt/sdcard/Android/package-name/files/lives.xml"}
{"original":"63 68 65 6C 70 61"}
{"replaced":"63 68 65 6c 70 61 61 61"}
[FILE_IN_APK]
<patroon zoeken/vervangen voor bestand uit apk-bestand (deze patch werkt alleen voor rebuild apk met deze aangepaste patch)>
{"Name":"activa/bin/Data/Managed/O7SharpCompress.dll"}
{"original":"0F 00 00 00 1A 00 00 00 0F 00 00 00 59 00 00 00 2F"}
{"replaced":"0F 00 00 00 0F 00 00 00 0F 00 00 00 59 00 00 00 2F"}
[ADD-BOOT]
<voegt automatisch de huidige gebruikerspatch toe aan BootList. Moet worden gebruikt in de patchbibliotheek (of in de patch [CLASSES] zonder [ODEX] of zonder [PACKAGE])>
[END]
<patch opmerkingen die zichtbaar zijn voor de gebruiker na de patch>
Gefeliciteerd, de applicatie is gekraakt!
"zoeken"
- Met zoeken kunt u naar een patroon zoeken en bytes op specifieke posities opslaan.
{"search":"63 R00 R01 R02 38 00 04 00 12 10 0F 00"}
In dit voorbeeld vormen de bytes in groen uw patroonmasker, terwijl bytes in het geel met het label R00->R02 worden opgeslagen.
Opgeslagen bytes moeten in volgorde R00, R01, R02, R03...
Opgeslagen bytes kunnen niet worden herhaald.
"group"
- markeert patronen van de groep (groepsnummer kan 1 of hoger zijn). U vraagt mogelijk 'Wat betekent dit?'. Nou, wat het betekent is dat als er tenminste één patroon uit de groep is geslaagd, er een succesvol gepatched bericht wordt getoond. Dit is handig als u een universele patch probeert uit te voeren voor meerdere versies van een bepaalde toepassing (patch bijvoorbeeld alle versies van Google Play om automatische updates uit te schakelen).
"Apk_build"
- pas dit patroon alleen toe voor apk met build=apk_build. U kunt een patroon toepassen voor build>=apk_build (Voorbeeld: {"apk_build":"206+"}) of u kunt build03,54->04...) of 1 (hex-getal omzetten in: 43->13, 04->14...) respectievelijk of stel in, SQ zet hex 34->44, 51->11 om...
Er is bijvoorbeeld een variabele: const/4v?,0x00
. Het vraagteken laat dat zienvar\
Het aantal is onbekend (het is bijvoorbeeld gewijzigd in de nieuwere versie), maar u weet zeker dat deze var gelijk is aan 0 en u wilt dit instellen op 1. In dit geval ziet het patroon er als volgt uit:
{"origineel":"12 ??" ?? ?? ?? "}
{"replaced":"12 S1 ?? ?? ?? ??"}
En omgekeerd, om de variabele in te stellen op 0:
{"original":"12 ??" ?? ?? ?? "}
{"replaced":"12 S0 ?? ?? ?? ??"}
"Replace_from_file"
- dit zal volgen op "Original"
statement, dit is wat de offset zal overschrijven met bytes uit het bestand (bestand moet in de buurt van een aangepaste patch worden opgeslagen).
{"Replace_from_file":"array.bin"}
Dit wordt gedaan om te voorkomen dat er zeer lange sjablonen worden geschreven om te vervangen.
"Insert"
- Als u de gegevenslengte wilt invoegen, is deze groter of kleiner dan de lengte van het originele patroon.
(Voorbeeld) bestand voordat de patch bevat:"chelpa einde"
{"original":"63 68 65 6C 70 61"}
{"insert":"63 68 65 6c 70 61 61"}
bestand na patch bevat:"chelpaa end"
[LIB-ARMEABI],[LIB-ARMEABI-V7A],[LIB-ARM64-V8A],[LIB-MIPS] of [LIB-X86] - voor bibliotheken van /lib/armeabi/, /lib/armeabi-v7a/, /lib/arm64-v8a/, /lib/mips/, /lib/x86 /
.
[ODEX-PATCH]- Gebruik voor de patch is al gemaakt odex. Een toepassing is bijvoorbeeld gepatcht met de automatische modus door middel van het verwijderen van licentieverificatie, maar u moet extra wijzigingen aanbrengen met behulp van een aangepaste patch. Als we een eenvoudige [PACKAGE] - [CLASSES], [ODEX] of [CLASSES] - [ODEX] gebruiken, wordt het odex-bestand zonder wijziging gemaakt en alleen dan gepatcht.
Voorbeeld:
[BEGIN]
[ODEX-PATCH]
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{"replaced":"12 00 6A ?? ?? 00 00 12 00 0F 00"}
[END]
Hartelijk gefeliciteerd! ODEX aangepast!
[CLASSES] zonder [PACKAGE]- Patches dalvik-cache-applicaties. Vergeet niet dat het systeem regelmatig dalvik-cache-applicaties update en alle wijzigingen zullen verdwijnen. Daarom moeten we [ADD-BOOT] toevoegen. De patch voor dalvik-cache is verouderd, omdat deze onbetrouwbaar is. Maar het is nodig voor de ROM Toolbox, omdat het niet goed werkt met odex-bestanden.
Voorbeeld:
[BEGIN]
[CLASSES]
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{"replaced":"12 00 6A ?? ?? 00 00 12 00 0F 00"}
[ADD-BOOT]
[END]
Hartelijk gefeliciteerd!
[ODEX]- Kopieer dalvik-cache in /data/app/ en hernoem naar odex-file, dan worden alle patches toegepast op dit odex-bestand. Controlesommen van de odex zullen verkeerd zijn en kunnen geen inspectie passeren, in tegenstelling tot het gemaakte odex-bestand [PACKAGE] - [CLASSES].
Voorbeeld:
[BEGIN]
[ODEX]
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{replaced":"12 00 6A ?? ?? 00 00 12 00 0F 00"}
[END]
Hartelijk gefeliciteerd!
[CLASSES] - [ODEX]- Patches dalvik-cache en kopieer vervolgens dalvik-cache in /data/app/ en hernoem naar odex-file. Controlesommen van de odex en van de dalvik-cache zullen fout zijn en kunnen de inspectie niet passeren, in tegenstelling tot het gemaakte odex-bestand [PACKAGE] - [CLASSES].
Voorbeeld:
[BEGIN]
[CLASSES]
{"original":"63 ?? ?? ?? 38 00 04 00 12 10 0F 00"}
{"replaced":"12 00 6A ?? ?? 00 00 12 00 0F 00"}
[ODEX]
[EINDE]
Hartelijk gefeliciteerd!
[COMPONENT] - Schakel componenten van applicaties in of uit.
Voorbeeld:
[BEGIN]
[COMPONENT]
{"Disable":"com.superApp.adsActivity"}
{"Enable":"com.superApp.fullVersion.Provider"}
{"Disable":"com.android.vending.CHECK_LICENSE"}
[EINDE]
Hartelijk gefeliciteerd!
[SQLITE] - Soms moet de doeltoepassing iets in de database veranderen en dan zal helpen:
Voorbeeld:
[BEGIN]
Trial Reset
[SQLITE]
{"database":"/data/data/com.package.megaapp/databases/settings.db"}
{"execute":"DELETE FROM table_settings WHERE name = 'SETTING__LIC'"}
{"execute":"UPDATE table_settings SET UsedDays=0 WHERE name='Trial_set'"}
[EINDE]
Hartelijk gefeliciteerd! Uw proefperiode is opnieuw ingesteld!
database - pad naar database op apparaat, of u kunt alleen de databasenaam gebruiken voor het zelfzoekbestand van Lucky Patcher.
execute - SQLite-query.
[SET_PERMISSIONS] - Analoge linux-opdracht "chmod permissions file_name" voor bestanden in gegevensmap van toepassing:
Voorbeeld:
[BEGIN]
Trial Reset
[SET_PERMISSIONS]
{"file_name":"/files/stats"}
{"permissions":"777"}
[OTHER FILES]
{"name":"/files/stats"}
{"original":"4D 4D 46 31"}
{"replaced":"00 4D 46 30"}
[SET_PERMISSIONS]
{"file_name":"/files/stats"}
{"permissions":"444"}
[EINDE]
Hartelijk gefeliciteerd! Uw proefperiode is opnieuw ingesteld!
[COPY_FILE] - Kopieer het bestand van Lucky Patcher naar pad met nieuwe bestandsnaam:
Voorbeeld:
[BEGIN]
Kopieer bestand met geld
[COPY_FILE]
{file_name":"money_for_game.bin"}
{"Naar":"/data/data/game_package/files/settings.xml"}
[END]
Hartelijk gefeliciteerd! Uw bestand wordt gekopieerd en het geld wordt nu gewijzigd!
[SHARED-PREFERENCES] - Gedeelde voorkeuren xml-bestandseditor (variabelen invoegen of verwijderen):
Voorbeeld:
[BEGIN]
Stel meer geld in
[GEDEELDE VOORKEUREN]
{"file_name":"hillclimbprefs.xml"}
{"Insert":"int"}
{"Pref_name":"coins"}
{"value":"550000"}
{"Insert":"string"}
{"Pref_name":"license_status"}
{"value":"licentie"}
{"Insert":"lang"}
{"Pref_name":"time_for_license_verify"}
{"value":"365000"}
{"Delete":"boolean"}
{"Pref_name":"zonder vergunning"}
{"file_name":"hillclimbprefs_config.xml"}
{"Insert":"float"}
{"Pref_name":"result_table"}
{"value":"123,4"}
[END]
Hartelijk gefeliciteerd! Uw bestand wordt gekopieerd en het geld wordt nu gewijzigd!
<br/