Useful Patches
Ir al canal en Telegram
Useful Patches for Reversing Android Apps and Games by @Its_me_MuhammadRizwan Main Channel @TDOhex For feedback @TDOhex_Discussion
Mostrar más1 593
Suscriptores
Sin datos24 horas
Sin datos7 días
Sin datos30 días
Carga de datos en curso...
Canales Similares
Nube de Etiquetas
Sin datos
¿Algún problema? Por favor, actualice la página o contacte a nuestro gerente de soporte.
Menciones Entrantes y Salientes
---
---
---
---
---
---
Atraer Suscriptores
julio '24
julio '24
+226
en 9 canales
junio '240
en 7 canales
Get PRO
mayo '240
en 0 canales
Get PRO
abril '240
en 0 canales
Get PRO
marzo '24
+4
en 3 canales
Get PRO
febrero '24
+169
en 7 canales
Get PRO
enero '24
+166
en 1 canales
Get PRO
diciembre '23
+147
en 4 canales
Get PRO
noviembre '230
en 1 canales
Get PRO
octubre '23
+10
en 1 canales
Get PRO
septiembre '23
+66
en 0 canales
Get PRO
agosto '23
+62
en 0 canales
Get PRO
julio '23
+67
en 0 canales
Get PRO
junio '23
+81
en 0 canales
Get PRO
mayo '23
+69
en 0 canales
Get PRO
abril '23
+103
en 0 canales
Get PRO
marzo '23
+48
en 0 canales
Get PRO
febrero '23
+511
en 0 canales
Publicaciones del Canal
How to Reach Place to Patch Trough revenuecat
━━━━━━━━━━━━━━━━━━━
Points:
1. Determining the subscription status of a user can be done using the
CustomerInfo (Also known an PurchaserInfo) and EntitlementInfo objects.
2. The EntitlementInfo object gives you access to all of the information about the status of a user's entitlements.
3. "pro" access will be granted if user has active entitlement.
4. CustomerInfo will be empty if no purchases have been made and no transactions have been synced.
━━━━━━━━━━━━━━━━━━━
Codes:
// Check if the specified entitlement is active
if (customerInfo.getEntitlements().get(<my_entitlement_identifier>).isActive()) {
// Grant user "pro" access
// We can reach the actual location through the code flow here, where we can apply our patch.
}
━━━━━━━━━━━━━━━━━━━
Documentations:
1. https://www.revenuecat.com/docs/making-purchases
2. https://www.revenuecat.com/docs/customer-info#checking-if-a-user-is-subscribed
3. https://www.revenuecat.com/docs/getting-started#%EF%B8%8F-check-subscription-status
4. https://www.revenuecat.com/docs/purchaserinfo#section-get-entitlement-information
━━━━━━━━━━━━━━━━━━━
Class
Lcom/revenuecat/purchases/CustomerInfo;
Or
Lcom/revenuecat/purchases/PurchaserInfo;
Method
getEntitlements()
Regex to Search:
invoke-virtual \{([pv]\d+)\}, Lcom/revenuecat/purchases/(CustomerInfo|PurchaserInfo);->getEntitlements\(\)Lcom/revenuecat/purchases/EntitlementInfos;([\w\W])*?move-result-object ([pv]\d+)
Note: Sometime it will be obfuscated. So, that time this keyword will help you.
Keyword: activeEntitlements: .
👉 For Practical Video on this Method
https://t.me/TDOhex/415
━━━━━━━━━━━━━━━━━━━
💥💥💥💥💥💥💥💥💥💥
✍ by @Its_me_MuhammadRizwan
♻️ Join @TDOhex
💗 Follow @Android_Patches
🐞 Feedback @TDOhex_Discussion
💥💥💥💥💥💥💥💥💥💥| 2 | Tool Name: LibPatcher
Version: 1.0
Language: python
Dependencies: radare2, r2pipe
Author: MuhammadRizwan
License: MIT
Description:
LibPatcher is a python-based tool that designed to simplify the process of patching ARM64 and ARM32 binaries.
👉 For Full Description
https://t.me/TDOhex/406
Usage:
1. Run the command:
python /yourPath/LibPatcher.py
2. Provide the correct executable path for the ARM binary.
For example:
/storage/emulated/0/radare2/libfoo.so
3. Enter the offsets for each data type in a valid format.
For example:
0x100 or 0x100,0x200
💥💥💥💥💥💥💥💥💥💥
✍ by @Its_me_MuhammadRizwan
♻️ Join @TDOhex
💗 Follow @Android_Patches
🐞 Feedback @TDOhex_Discussion
💥💥💥💥💥💥💥💥💥💥 | 555 |
| 3 | Short Description: LibPatcher is a Python script that utilizes r2pipe to perform patching operations on ARM aarch64 executable libraries. It modifies specified offsets in the binary to set values such as boolean true/false, integer zero/max, long zero/64-bit values, float zero and void with nop. This simple and easy tool aids in binary manipulation and reverse engineering tasks.
Note: Please ensure to carefully read the comments included in the script before making use of it or asking any questions.
Tutorial:
👉 How to Use LibPatcher
https://t.me/TDOhex/403
Notes:
👉 Useful Notes On Data types
With Patches of arm32/64
https://t.me/Android_Patches/18
💥💥💥💥💥💥💥💥💥💥
✍ by @Its_me_MuhammadRizwan
🤝 Support @TDOhex
♻️ Follow @Android_Patches
🐞 Feedback @TDOhex_Discussion
💗 Join us for more Info
💥💥💥💥💥💥💥💥💥💥 | 543 |
| 4 | Patch to Inject Fake Build Prop into Any App/Game
━━━━━━━━━━━━━━━━━━━
☛ For description of this patch
https://t.me/TDOhex/391
━━━━━━━━━━━━━━━━━━━
Build Property
Information about the current build, extracted from system properties
Documentation:
https://developer.android.com/reference/android/os/Build
━━━━━━━━━━━━━━━━━━━
❰ Manufacturer ❱
The manufacturer of the product/hardware.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->MANUFACTURER:Ljava/lang/String;
Replace:
const-string $1, "Xiaomi"
━━━━━━━━━━━━━━━━━━━
❰ Brand ❱
The consumer-visible brand with which the product/hardware will be associated, if any.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->BRAND:Ljava/lang/String;
Replace:
const-string $1, "Xiaomi"
━━━━━━━━━━━━━━━━━━━
❰ Model ❱
The end-user-visible name for the end product.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->MODEL:Ljava/lang/String;
Replace:
const-string $1, "Redmi K20 Pro"
━━━━━━━━━━━━━━━━━━━
❰ Product ❱
The name of the overall product.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->PRODUCT:Ljava/lang/String;
Replace:
const-string $1, "raphael"
━━━━━━━━━━━━━━━━━━━
❰ Device ❱
The name of the industrial design.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->DEVICE:Ljava/lang/String;
Replace:
const-string $1, "raphael"
━━━━━━━━━━━━━━━━━━━
❰ Board ❱
The name of the underlying board, like "goldfish".
Search:
sget-object ([pv]\d+), Landroid/os/Build;->BOARD:Ljava/lang/String;
Replace:
const-string $1, "raphael"
━━━━━━━━━━━━━━━━━━━
❰ Radio ❱
The radio firmware version number.
Search:
invoke-static \{\}, Landroid/os/Build;->getRadioVersion\(\)Ljava/lang/String;\n\n move-result-object ([pv]\d+)
Or
Search:
sget-object ([pv]\d+), Landroid/os/Build;->RADIO:Ljava/lang/String;
Replace:
const-string $1, "Unknown"
━━━━━━━━━━━━━━━━━━━
❰ Hardware ❱
The name of the hardware (from the kernel command line or /proc).
Search:
sget-object ([pv]\d+), Landroid/os/Build;->HARDWARE:Ljava/lang/String;
Replace:
const-string $1, "qcom"
━━━━━━━━━━━━━━━━━━━
❰ Bootloader ❱
The system bootloader version number.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->BOOTLOADER:Ljava/lang/String;
Replace:
const-string $1, "Unknown"
━━━━━━━━━━━━━━━━━━━
❰ Fingerprint ❱
A string that uniquely identifies this build. Do not attempt to parse this value.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->FINGERPRINT:Ljava/lang/String;
Replace:
const-string $1, "Xiaomi/raphael/raphael:11/RKQ1.200826.002/V12.5.4.0.RFKCNXM:user/release-keys"
━━━━━━━━━━━━━━━━━━━
❰ ID ❱
Either a changelist number, or a label like "M4-rc20".
Search:
sget-object ([pv]\d+), Landroid/os/Build;->ID:Ljava/lang/String;
Replace:
const-string $1, "RKQ1.200826.002"
━━━━━━━━━━━━━━━━━━━
❰ Serial ❱
A hardware serial number, if available. Alphanumeric only, case-insensitive. This field is always set to Build#UNKNOWN.
Search:
sget-object ([pv]\d+), Landroid/os/Build;->SERIAL:Ljava/lang/String;
Replace:
const-string $1, "Unknown"
━━━━━━━━━━━━━━━━━━━
💥💥💥💥💥💥💥💥💥💥💥
✍ by @Its_me_MuhammadRizwan
🤝 Sponsor @TDOhex
♻️ Follow @Android_Patches
🐞 Feedback @TDOhex_Discussion
💗 Join us for more Info
💥💥💥💥💥💥💥💥💥💥💥 | 445 |
| 5 | How to Fix Google Maps in Mod Apps
━━━━━━━━━━━━━━━━━━━━━━
☛ 1. Create a new Google Cloud project in the Cloud Console
● For creating new project:
https://console.cloud.google.com/projectcreate
━━━━━━━━━━━━━━━━━━━━━━
☛ 2. To use Google Maps Platform, you must enable the APIs or SDKs you plan to use with your project
● For enabling Maps SDK for Android:
https://console.cloud.google.com/apis/library/maps-android-backend.googleapis.com
● For enabling Geocoding API:
https://console.cloud.google.com/apis/library/geocoding-backend.googleapis.com
● For enabling Places API:
https://console.cloud.google.com/apis/library/places-backend.googleapis.com
━━━━━━━━━━━━━━━━━━━━━━
☛ 3. Go to the credentials page and create new api key
● For creating new api key:
A. Go to the Google Maps Platform > Credentials page.
https://console.cloud.google.com/apis/credentials
B. On the Credentials page, click Create credentials > API key.
The API key created dialog displays your newly created API key.
C. Click Close.
The new API key is listed on the Credentials page under API keys.
(Remember to restrict the API key before using it in production.)
━━━━━━━━━━━━━━━━━━━━━━
☛ 4. To restrict an API key:
A. Go to the Google Maps Platform > Credentials page.
https://console.cloud.google.com/project/_/google/maps-apis/credentials
B. Select the API key that you want to set a restriction on. The API key property page appears.
C. Under Key restrictions, set the following restrictions:
● Application restrictions:
-- Select Android apps.
● API restrictions:
-- Click Restrict key
-- Select Maps SDK for Android, Geocoding API, Place API from Select APIs dropdown
-- To finalize your changes, click Save
━━━━━━━━━━━━━━━━━━━━━━
☛ 5. Go to Manifest or Resources of the target mod and find key of
com.google.android.geo.API_KEY
OR
com.google.android.maps.v2.API_KEY
Then replace with your api key.
━━━━━━━━━━━━━━━━━━━━━━
👉 For Practical Tutorial
https://t.me/TDOhex/389
Documentations:
https://developers.google.com/maps/documentation/android-sdk/cloud-setup#enabling-apis
https://developers.google.com/maps/documentation/android-sdk/get-api-key#restrict_key
💥💥💥💥💥💥💥💥💥💥💥💥💥
✍ by @Its_me_MuhammadRizwan
🤝 Sponsor @TDOhex
♻️ Follow @Android_Patches
💗 Join us for more Info
💥💥💥💥💥💥💥💥💥💥💥💥💥 | 656 |
| 6 | Index:
👉 Useful Notes On Data types
With Patches of arm32/64
https://t.me/Android_Patches/18
👉 Notes on android.view setVisibility
https://t.me/Android_Patches/19
👉 1. High-level Patch for Disabling Ads from Android Apps and Games
https://t.me/Android_Patches/20
👉 2. Moderate-level Patch for Disabling Ads from Android Apps and Games
https://t.me/Android_Patches/21
👉 3. Low-level Patch for Disabling Ads from Android Apps and Games
https://t.me/Android_Patches/22
👉 Patch for Overriding SharedPreferences
https://t.me/Android_Patches/24 | 874 |
| 7 | Patch for Overriding SharedPreferences
━━━━━━━━━━━━━━━━━━━━━━
Usage:
👉 1. Copy snippet and paste into onCreate method of Launcher Activity
(It would be better if you create new method and paste snippet then call it in onCreate of Launcher Activity)
👉 2. Increase 4 digits in registers of that method in which you put this snippet
and increase 5 digits if you want to use snippet of long data
👉 For Video Tutorial
https://t.me/TDOhex/387
━━━━━━━━━━━━━━━━━━━━━━
👉 1. For Storing Boolean Data
const-string v0, "yourSPName" # Put the name of that SharedPreferences which you want to edit.
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object p0
invoke-interface {p0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object p0
const/4 v2, 0x1 # Boolean value, put the value as your requirement.
const-string v3, "isAppBought" # Boolean key, put your keyword that you find out.
invoke-interface {p0, v3, v2}, Landroid/content/SharedPreferences$Editor;->putBoolean(Ljava/lang/String;Z)Landroid/content/SharedPreferences$Editor;
invoke-interface {p0}, Landroid/content/SharedPreferences$Editor;->apply()V
━━━━━━━━━━━━━━━━━━━━━━
👉 For Storing Integer Data
const-string v0, "yourSPName" # Put the name of that SharedPreferences which you want to edit.
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object p0
invoke-interface {p0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object p0
const v2, 0x7fffffff # Integer value, put the value as your requirement.
const-string v3, "userDiamonds" # Integer key, put your keyword that you find out.
invoke-interface {p0, v3, v2}, Landroid/content/SharedPreferences$Editor;->putInt(Ljava/lang/String;I)Landroid/content/SharedPreferences$Editor;
invoke-interface {p0}, Landroid/content/SharedPreferences$Editor;->apply()V
━━━━━━━━━━━━━━━━━━━━━━
👉 For Storing String Data
const-string v0, "yourSPName" # Put the name of that SharedPreferences which you want to edit.
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object p0
invoke-interface {p0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object p0
const-string v2, "active" # String value, put the value as your requirement.
const-string v3, "subStatus" # String key, put your keyword that you find out.
invoke-interface {p0, v3, v2}, Landroid/content/SharedPreferences$Editor;->putString(Ljava/lang/String;Ljava/lang/String;)Landroid/content/SharedPreferences$Editor;
invoke-interface {p0}, Landroid/content/SharedPreferences$Editor;->apply()V
━━━━━━━━━━━━━━━━━━━━━━
👉 For Storing Long Data
const-string v0, "yourSPName" # Put the name of that SharedPreferences which you want to edit.
const/4 v1, 0x0
invoke-virtual {p0, v0, v1}, Landroid/content/Context;->getSharedPreferences(Ljava/lang/String;I)Landroid/content/SharedPreferences;
move-result-object p0
invoke-interface {p0}, Landroid/content/SharedPreferences;->edit()Landroid/content/SharedPreferences$Editor;
move-result-object p0
const-wide v3, 0x7fffffffffffffffL # Long value, put the value as your requirement.
const-string v2, "userCoins" # Long key, put your keyword that you find out.
invoke-interface {p0, v2, v3, v4}, Landroid/content/SharedPreferences$Editor;->putLong(Ljava/lang/String;J)Landroid/content/SharedPreferences$Editor;
invoke-interface {p0}, Landroid/content/SharedPreferences$Editor;->apply()V
━━━━━━━━━━━━━━━━━━━━━━
💥💥💥💥💥💥💥💥💥💥💥💥💥
✍ by @Its_me_MuhammadRizwan
🤝 Sponsor @TDOhex
♻️ Follow @Android_Patches
💗 Join us for more Info
💥💥💥💥💥💥💥💥💥💥💥💥💥 | 928 |
| 8 | 3. Low-level Patch for Disabling Ads from Android Apps and Games
☛ For description of this patch
https://t.me/TDOhex/383
━━━━━━━━━━━━━━━━━━━━━━
VoidSearch:
(invoke(?!.*(close|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>(.*(load|show).*)\(.*\)V)
VoidReplace: nop
━━━━━━━━━━━━━━━━━━━━━━
BooleanSearch:
(invoke(?!.*(close|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>(.*(load|show).*)\(.*\)Z\n\n\s{4})move-result\s([pv]\d+)
BooleanReplace: const/4 $6, 0x0
━━━━━━━━━━━━━━━━━━━━━━
StringSearch:
"(http.*|//.*)(61\.145\.124\.238|/2mdn\.net|-ads\.|\.5rocks\.io|\.ad\.|\.adadapted|\.admitad\.|\.admost\.|\.ads\.|\.aerserv\.|\.airpush\.|\.batmobil\.|\.chartboost\.|\.cloudmobi\.|\.conviva\.|\.dov-e\.com|\.fyber\.|\.mng-ads\|\.mydas\.|\.predic\.|\.talkingdata\.|\.tapdaq\.|\.tele\.fm|\.unity3d\.|\.unity\.|\.wapstart\.|\.xdrig\.|\.zapr\.|\/ad\.|\/ads|a4\.tl|accengage|ad4push|ad4screen|ad-mail|ad\..*_logging|ad\.api\.kaffnet\.|ad\.cauly\.co\.|adbuddiz|adc3-launch|adcolony|adfurikun|adincube|adinformation|adkmob|admax\.|admixer|admob|admost|ads\.mdotm\.|adsafeprotected|adservice|adsmogo|adsrvr|adswizz|adtag|adtech\.de|advert|adwhirl|adz\.wattpad\.|alimama\.|alta\.eqmob\.|amazon-.*ads|amazon\..*ads|amobee|analytics|anvato|appboy|appbrain|applovin|applvn|appmetrica|appnext|appodeal|appsdt|appsflyer|apsalar|avocarrot|axonix|banners-slb\.mobile\.yandex\.net|banners\.mobile\.yandex\.net|brightcove\.|burstly|cauly|cloudfront|cmcm\.|com\.google\.android\.gms\.ads\.identifier\.service\.START|comscore|contextual\.media\.net|crashlytics|crispwireless|criteo\.|dmtry\.|doubleclick|duapps|dummy|flurry|fwmrm|gad|getads|gimbal|glispa|google\.com\/dfp|googleAds|googleads|googleapis\..*\.ad-.*|googlesyndication|googletagmanager|greystripe|gstatic|heyzap|hyprmx|iasds01|inmobi|inneractive|instreamatic|integralads|jumptag|jwpcdn|jwpltx|jwpsrv|kochava|localytics|madnet|mapbox|mc\.yandex\.ru|media\.net|metrics\.|millennialmedia|mixpanel|mng-ads\.com|moat\.|moatads|mobclix|mobfox|mobpowertech|moodpresence|mopub|native_ads|nativex\.|nexage\.|ooyala|openx\.|pagead|pingstart|prebid|presage\.io|pubmatic|pubnative|rayjump|saspreview|scorecardresearch|smaato|smartadserver|sponsorpay|startappservice|startup\.mobile\.yandex\.net|statistics\.videofarm\.daum\.net|supersonicads|taboola|tapas|tapjoy|tapylitics|target\.my\.com|teads\.|umeng|unityads|vungle|zucks).*"
StringReplace: "127.0.0.1"
━━━━━━━━━━━━━━━━━━━━━━ | 2 352 |
| 9 | 2. Moderate-level Patch for Disabling Ads from Android Apps and Games
☛ For description of this patch
https://t.me/TDOhex/383
━━━━━━━━━━━━━━━━━━━━━━
VoidSearch:
(invoke(?!.*(close|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>((.*(Banner|initAd|Interstitial|load|Native|onAd|Rewarded|show|(fetch|refresh|render|request|video)Ad).*))\(.*\)V)
VoidReplace: nop
━━━━━━━━━━━━━━━━━━━━━━
BooleanSearch:
(invoke(?!.*(close|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>((.*(Banner|initAd|Interstitial|load|Native|(can|get|has|is|was)Ad|Rewarded|show|(fetch|refresh|render|request|video)Ad).*))\(.*\)Z\n\n\s{4})move-result\s([pv]\d+)
BooleanReplace: const/4 $9, 0x0
━━━━━━━━━━━━━━━━━━━━━━
StringSearch:
"(http.*|//.*)(61\.145\.124\.238|/2mdn\.net|-ads\.|\.5rocks\.io|\.ad\.|\.adadapted|\.admitad\.|\.admost\.|\.ads\.|\.aerserv\.|\.airpush\.|\.batmobil\.|\.chartboost\.|\.cloudmobi\.|\.conviva\.|\.dov-e\.com|\.fyber\.|\.mng-ads\|\.mydas\.|\.predic\.|\.talkingdata\.|\.tapdaq\.|\.tele\.fm|\.unity3d\.|\.unity\.|\.wapstart\.|\.xdrig\.|\.zapr\.|\/ad\.|\/ads|a4\.tl|accengage|ad4push|ad4screen|ad-mail|ad\..*_logging|ad\.api\.kaffnet\.|ad\.cauly\.co\.|adbuddiz|adc3-launch|adcolony|adfurikun|adincube|adinformation|adkmob|admax\.|admixer|admob|admost|ads\.mdotm\.|adsafeprotected|adservice|adsmogo|adsrvr|adswizz|adtag|adtech\.de|advert|adwhirl|adz\.wattpad\.|alimama\.|alta\.eqmob\.|amazon-.*ads|amazon\..*ads|amobee|analytics|anvato|appboy|appbrain|applovin|applvn|appmetrica|appnext|appodeal|appsdt|appsflyer|apsalar|avocarrot|axonix|banners-slb\.mobile\.yandex\.net|banners\.mobile\.yandex\.net|brightcove\.|burstly|cauly|cloudfront|cmcm\.|com\.google\.android\.gms\.ads\.identifier\.service\.START|comscore|contextual\.media\.net|crashlytics|crispwireless|criteo\.|dmtry\.|doubleclick|duapps|dummy|flurry|fwmrm|gad|getads|gimbal|glispa|google\.com\/dfp|googleAds|googleads|googleapis\..*\.ad-.*|googlesyndication|googletagmanager|greystripe|gstatic|heyzap|hyprmx|iasds01|inmobi|inneractive|instreamatic|integralads|jumptag|jwpcdn|jwpltx|jwpsrv|kochava|localytics|madnet|mapbox|mc\.yandex\.ru|media\.net|metrics\.|millennialmedia|mixpanel|mng-ads\.com|moat\.|moatads|mobclix|mobfox|mobpowertech|moodpresence|mopub|native_ads|nativex\.|nexage\.|ooyala|openx\.|pagead|pingstart|prebid|presage\.io|pubmatic|pubnative|rayjump|saspreview|scorecardresearch|smaato|smartadserver|sponsorpay|startappservice|startup\.mobile\.yandex\.net|statistics\.videofarm\.daum\.net|supersonicads|taboola|tapas|tapjoy|tapylitics|target\.my\.com|teads\.|umeng|unityads|vungle|zucks).*"
StringReplace: "127.0.0.1"
━━━━━━━━━━━━━━━━━━━━━━ | 2 390 |
| 10 | 1. High-level Patch for Disabling Ads from Android Apps and Games
☛ For description of this patch
https://t.me/TDOhex/383
━━━━━━━━━━━━━━━━━━━━━━
VoidSearch:
(invoke(?!.*(close|Deactiv|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop|Throw)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>(request.*|(.*(activat|Banner|build|Event|exec|header|html|initAd|initi|JavaScript|Interstitial|load|log|MetaData|metri|Native|onAd|propert|report|response|Rewarded|show|trac|url|(fetch|refresh|render|video)Ad).*)|.*Request)\(.*\)V)
VoidReplace: nop
━━━━━━━━━━━━━━━━━━━━━━
BooleanSearch:
(invoke(?!.*(close|Deactiv|Destroy|Dismiss|Disabl|error|player|remov|expir|fail|hide|skip|stop|Throw)).*/(adcolony|admob|ads|adsdk|aerserv|appbrain|applovin|appodeal|appodealx|appsflyer|bytedance/sdk/openadsdk|chartboost|flurry|fyber|hyprmx|inmobi|ironsource|mbrg|mbridge|mintegral|moat|mobfox|mobilefuse|mopub|my/target|ogury|Omid|onesignal|presage|smaato|smartadserver|snap/adkit|snap/appadskit|startapp|taboola|tapjoy|tappx|vungle)/.*>(request.*|(.*(activat|Banner|build|Event|exec|header|html|initAd|initi|JavaScript|Interstitial|load|log|MetaData|metri|Native|(can|get|is|has|was)Ad|propert|report|response|Rewarded|show|trac|url|(fetch|refresh|render|video)Ad).*)|.*Request)\(.*\)Z\n\n\s{4})move-result\s([pv]\d+)
BooleanReplace: const/4 $9, 0x0
━━━━━━━━━━━━━━━━━━━━━━
StringSearch:
"(http.*|//.*)(61\.145\.124\.238|/2mdn\.net|-ads\.|\.5rocks\.io|\.ad\.|\.adadapted|\.admitad\.|\.admost\.|\.ads\.|\.aerserv\.|\.airpush\.|\.batmobil\.|\.chartboost\.|\.cloudmobi\.|\.conviva\.|\.dov-e\.com|\.fyber\.|\.mng-ads\|\.mydas\.|\.predic\.|\.talkingdata\.|\.tapdaq\.|\.tele\.fm|\.unity3d\.|\.unity\.|\.wapstart\.|\.xdrig\.|\.zapr\.|\/ad\.|\/ads|a4\.tl|accengage|ad4push|ad4screen|ad-mail|ad\..*_logging|ad\.api\.kaffnet\.|ad\.cauly\.co\.|adbuddiz|adc3-launch|adcolony|adfurikun|adincube|adinformation|adkmob|admax\.|admixer|admob|admost|ads\.mdotm\.|adsafeprotected|adservice|adsmogo|adsrvr|adswizz|adtag|adtech\.de|advert|adwhirl|adz\.wattpad\.|alimama\.|alta\.eqmob\.|amazon-.*ads|amazon\..*ads|amobee|analytics|anvato|appboy|appbrain|applovin|applvn|appmetrica|appnext|appodeal|appsdt|appsflyer|apsalar|avocarrot|axonix|banners-slb\.mobile\.yandex\.net|banners\.mobile\.yandex\.net|brightcove\.|burstly|cauly|cloudfront|cmcm\.|com\.google\.android\.gms\.ads\.identifier\.service\.START|comscore|contextual\.media\.net|crashlytics|crispwireless|criteo\.|dmtry\.|doubleclick|duapps|dummy|flurry|fwmrm|gad|getads|gimbal|glispa|google\.com\/dfp|googleAds|googleads|googleapis\..*\.ad-.*|googlesyndication|googletagmanager|greystripe|gstatic|heyzap|hyprmx|iasds01|inmobi|inneractive|instreamatic|integralads|jumptag|jwpcdn|jwpltx|jwpsrv|kochava|localytics|madnet|mapbox|mc\.yandex\.ru|media\.net|metrics\.|millennialmedia|mixpanel|mng-ads\.com|moat\.|moatads|mobclix|mobfox|mobpowertech|moodpresence|mopub|native_ads|nativex\.|nexage\.|ooyala|openx\.|pagead|pingstart|prebid|presage\.io|pubmatic|pubnative|rayjump|saspreview|scorecardresearch|smaato|smartadserver|sponsorpay|startappservice|startup\.mobile\.yandex\.net|statistics\.videofarm\.daum\.net|supersonicads|taboola|tapas|tapjoy|tapylitics|target\.my\.com|teads\.|umeng|unityads|vungle|zucks).*"
StringReplace: "127.0.0.1"
━━━━━━━━━━━━━━━━━━━━━━ | 2 424 |
| 11 | Notes on android.view setVisibility
👉 Visible = The View is visible to the user
◉ XML attribute: android:visibility="visible"
◉ Java code: view.setVisibility(View.VISIBLE);
◉ Integer Type: 0x0
◉ Constant Value: 0
👉 Invisible = The View is hidden to the user, but still takes up space in the layout
◉ XML attribute: android:visibility="invisible"
◉ Java code: view.setVisibility(View.INVISIBLE);
◉ Integer Type: 0x4
◉ Constant Value: 1
👉 Gone = The View is completely hidden, and it does not take up space in the layout
◉ XML attribute: android:visibility="gone"
◉ Java code: view.setVisibility(View.GONE);
◉ Integer Type: 0x8
◉ Constant Value: 2
💥💥💥💥💥💥💥💥💥💥💥💥💥
✍ by @Its_me_MuhammadRizwan
🤝 Sponsor @TDOhex
♻️ Follow @Android_Patches
💗 Join us for more Info
💥💥💥💥💥💥💥💥💥💥💥💥💥 | 2 035 |
| 12 | Useful Notes On Data types
With Patches of arm32/64
These notes are made for those people who not much familiar with coding and for those lazy modders that don't dig in depth.
━━━━━━━━━━━━━━━━━━━━━━
Boolean = 8-bit, C bool
true or false
👉 arm32
mov r0, 1
bx lr
Patch = 0100A0E31EFF2FE1
mov r0, 0
bx lr
Patch = 0000A0E31EFF2FE1
👉 arm64
mov w0, 1
ret
Patch = 20008052C0035FD6
mov w0, 0
ret
Patch = 00008052C0035FD6
━━━━━━━━━━━━━━━━━━━━━━
Void = type with an empty set of values
👉 arm32
nop
bx lr
Patch = 00F020E31EFF2FE1
👉 arm64
nop
ret
Patch = 1F2003D5C0035FD6
━━━━━━━━━━━━━━━━━━━━━━
void* pointer = addresses to data or code.
A void* pointer can be converted into any other type of data pointer.
https://en.cppreference.com/w/cpp/language/pointer#Pointers_to_void
━━━━━━━━━━━━━━━━━━━━━━
HalfByte = 4-bit (Nibble)
Range = -8 to 7 (signed)
Hexadecimal = 0x7
Decimal = 7
Binary = 111
👉 arm32
mov r0, 7
Patch = 0700A0E3
👉 arm64
mov w0, 7
Patch = E0008052
━━━━━━━━━━━━━━━━━━━━━━
Byte = 8-bit, C char, Swift Int8
Range = -128 to 127 (signed)
Hexadecimal = 0x7f
Decimal = 127
Binary = 1111111
👉 arm32
mov r0, #127
bx lr
Patch = 7F00A0E31EFF2FE1
Or
movs r0, 0x7f
bx lr
Patch = 7F00B0E31EFF2FE1
👉 arm64
mov w0, 0x7f
ret
Patch = E00F8052C0035FD6
━━━━━━━━━━━━━━━━━━━━━━
Halfword = 16-bit, C short, Swift Int16
Range = -32,768 to 32,767 (signed)
Hexadecimal = 0x7fff
Decimal = 32767
Binary = 111111111111111
👉 arm32
mov r0, #32767
bx lr
Patch = FF0F07E31EFF2FE1
Or
movt r0, 0x7fff
bx lr
Patch = FF0F47E31EFF2FE1
👉 arm64
mov w0, 0x7fff
ret
Patch = E0FF8F52C0035FD6
━━━━━━━━━━━━━━━━━━━━━━
Word = 32-bit, C int, Swift Int32
Range = -2,147,483,648 to 2,147,483,647 (signed)
Hexadecimal = 0x7fffffff
Decimal = 2147483647
Binary = 1111111111111111111111111111111
Note: If parameter is larger than 16 bytes then it is passed by address.
For passing this value 0x7fffffff
👉 arm32
mvn r0, #2147483647
bx lr
Patch = 0201A0E31EFF2FE1
Or
movw r0, 0xffff
movt r0, 0x7fff
bx lr
Patch = FF0F0FE3FF0F47E31EFF2FE1
👉 arm64
mov w0, 0xffff
movk w0, 0x7fff, lsl 16
ret
Patch = E0FF9F52E0FFAF72C0035FD6
Or
mov w0, 0x7fffffff
ret
Patch = 0000B012C0035FD6
━━━━━━━━━━━━━━━━━━━━━━
Doubleword = 64-bit, C long, Swift Int
Range = -9,223,372,036,854,775,808 to 9,223,372,036,854,775,807 (signed)
Hexadecimal = 0x7fffffffffffffff
Decimal = 9223372036854775807
Binary = 111111111111111111111111111111111111111111111111111111111111111
Note: Remember, If parameter is larger than 16 bytes then it is passed by address.
For passing this value 0xffffffff
👉 arm32
mvn r1, #2147483648
bx lr
Patch = 0211E0E31EFF2FE1
Or
movw r0, 0xffff
movt r0, 0xffff
bx lr
Patch = FF0F0FE3FF0F4FE31EFF2FE1
👉 arm64
Note: Use "x" ragister for 64-bit values
For passing this value 0x7fffffffff
mov x0, 0xffff
movk x0, 0xffff, lsl 16
movk x0, 0x7f, lsl 32
ret
Patch = E0FF9FD2E0FFBFF2E00FC0F2C0035FD6
Or
orr x0, xzr, 0x7fffffffff
ret
Patch = E09B40B2C0035FD6
━━━━━━━━━━━━━━━━━━━━━━
Q. How to apply patches?
A. Follow the steps
1. Copy patche from snippets
2. Run any hex editor
3. Go to your offset
4. Paste your patche
Or
5. Enter this command if you are using radare2
wx CopyPastePatchHere @ 0xYourOffset
Example:
cd /sdacard
r2 -w mylib.so
wx 20008052C0035FD6 @ 0xa1234
💥💥💥💥💥💥💥💥💥💥💥💥💥
✍ by @Its_me_MuhammadRizwan
🤝 Sponsor @TDOhex
♻️ Follow @Android_Patches
💗 Join us for more Info
💥💥💥💥💥💥💥💥💥💥💥💥💥 | 1 892 |
