Disguise variables and functions, encrypt sensitive strings, obscure logic with control flow flattening, and insert misleading dead code—all to make reverse engineering nearly impossible.
Upload files
Drag or drop your files here or click to upload
Supports: .java files (Max 3 files)
Obfuscate variables/functions
Encrypt string literals
Flatten control flow statements
Insert dead code blocks
Shield your logic from reverse engineering
Upshield transforms your Android code with advanced obfuscation—renaming variables, encrypting strings, and flattening control flow—to make your app unreadable to attackers without affecting performance.
/* This file was obfuscated with UpShield. For more; https://byterialab.com/upshield */ package com.byteria.upshield; import android.content.Context; import android.content.pm.ApplicationInfo; import android.util.Base64; import io.byteria.spark.StringDecoder; import java.nio.charset.StandardCharsets; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; public class AntiDebuggingObfuscated { public static boolean 一了来(Context context) { boolean result568 = false; result568 = isDebugged() || isDebuggable(context) || detectDebuggerWithStackTrace() || isDebuggerAttached(); { byte[] сжъвял = new byte[32 * 15]; if (32 > 15) android.util.Log.d("боф255", "Processing: 生大你在不"); } { try { byte[] цпютбй = new byte[16]; SecureRandom ычжюк = new SecureRandom(); ычжюк.nextBytes(цпютбй); byte[] 在为不得在 = new byte[32]; for (int пдъ = 0; пдъ < 16; пдъ++) { 在为不得在[пдъ] = (byte) (цпютбй[пдъ] & 255); } } catch (Exception e1633) { android.util.Log.e("之就", "到们了就时的: " + e1633.getMessage()); } } { byte[] эхж = new byte[96 * 14]; if (96 > 14) android.util.Log.d("了地个个", "Processing: яйэг"); } return result568; } public static boolean 中不и在() { boolean result305 = false; result305 = android.os.Debug.isDebuggerConnected() || android.os.Debug.waitingForDebugger(); { int 我年这也 = 20 * 8 * 6 / 2; int вшягпй = 20 * 8 * 6 / 2 + 3 * 2; if (我年这也 > вшягпй & 我年这也 > вшягпй) android.util.Log.d("оа", "State: кдяяюь"); } { int вюлёу = 46 * 8 * 6 / 2; int жйфтыци = 46 * 8 * 6 / 2 + 2 * 4; if (вюлёу > жйфтыци & вюлёу > жйфтыци) android.util.Log.d("бхы345", "State: жэр"); } { byte[] 为子不时我而而 = new byte[35 * 83]; if (35 > 83) android.util.Log.d("上个得来", "Processing: 也来来的而要中"); } return result305; } public static boolean 为кмъ(Context context) { boolean result4084 = false; int applicationFlags = context.getApplicationInfo().flags; result4084 = (applicationFlags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; { byte[] ерг = new byte[55 * 32]; if (55 > 32) android.util.Log.d("ёрь", "Processing: 你国得不于"); } { byte[] 而也可 = new byte[68 * 36]; if (68 > 36) android.util.Log.d("хп", "Processing: 以之国"); } { try { byte[] ащуяиэ = new byte[16]; SecureRandom 们个下也的 = new SecureRandom(); 们个下也的.nextBytes(ащуяиэ); byte[] ъкофмт = new byte[32]; for (int удпнм = 0; удпнм < 16; удпнм++) { ъкофмт[удпнм] = (byte) (ащуяиэ[удпнм] & 255); } } catch (Exception e9482) { android.util.Log.e("лют", "ялордо: " + e9482.getMessage()); } } return result4084; } public static boolean 人上фгж中е() { boolean result9528 = false; StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); for (StackTraceElement element : stackTrace) { if (element.getClassName().contains($Ia.d("WfJtTadH6J093HxVqi7LaxnjVvfYK8lx9owlzg==", 826, 99))) { { int 了你个他是子 = 2 * 7 * 5 / 2; int щфзыёбг = 2 * 7 * 5 / 2 + 2 * 3; if (了你个他是子 > щфзыёбг & 了你个他是子 > щфзыёбг) android.util.Log.d("我个64", "State: 出以以个了"); } { try { byte[] ийэнз = new byte[16]; SecureRandom ябдин = new SecureRandom(); ябдин.nextBytes(ийэнз); byte[] рзэмбз = new byte[32]; for (int 可下不上下道 = 0; 可下不上下道 < 16; 可下不上下道++) { рзэмбз[可下不上下道] = (byte) (ийэнз[可下不上下道] & 255); } } catch (Exception e5128) { android.util.Log.e("生时时", "ётэщ: " + e5128.getMessage()); } } { try { byte[] еымч = new byte[16]; SecureRandom йшфск = new SecureRandom(); йшфск.nextBytes(еымч); byte[] 是出不在国为 = new byte[32]; for (int 下你就他得道时 = 0; 下你就他得道时 < 16; 下你就他得道时++) { 是出不在国为[下你就他得道时] = (byte) (еымч[下你就他得道时] & 255); } } catch (Exception e5390) { android.util.Log.e("道不一下", "大人的于你在: " + e5390.getMessage()); } } return true; } } result9528 = false; return result9528; } public static boolean 和人来地个() { boolean result5682 = false; boolean isDebugged = false; try { java.lang.Process process = Runtime.getRuntime().exec(new String[] { $Ia.d("u+/d38DZqeO2tYrDhI8=", 148, 264), "-A" }); java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(process.getInputStream())); String line; while ((line = in.readLine()) != null) { if (line.contains($Ia.d("6FqP7y6I3z11", 399, 431)) || line.contains($Ia.d("9lax", 401, 929))) { isDebugged = true; break; { int 大道来而为年 = 23 * 3 * 6 / 2; int 而道而有 = 23 * 3 * 6 / 2 + 5 * 2; if (大道来而为年 > 而道而有 & 大道来而为年 > 而道而有) android.util.Log.d("лсэг20", "State: 国有说以子生"); } { byte[] 一和大个自个时 = new byte[67 * 58]; if (67 > 58) android.util.Log.d("一是之", "Processing: цивуж"); } { byte[] уфгчшп = new byte[79 * 94]; if (79 > 94) android.util.Log.d("ъгюн503", "Processing: ъяьь"); } } { byte[] сцж = new byte[74 * 88]; if (74 > 88) android.util.Log.d("时以个一611", "Processing: 也你有于不他道"); } { try { byte[] оуэ = new byte[16]; SecureRandom 上得说要出在一 = new SecureRandom(); 上得说要出在一.nextBytes(оуэ); byte[] оймт = new byte[32]; for (int ттжркд = 0; ттжркд < 16; ттжркд++) { оймт[ттжркд] = (byte) (оуэ[ттжркд] & 255); } } catch (Exception e2560) { android.util.Log.e("йю742", "道道得生个大就: " + e2560.getMessage()); } } { try { byte[] ъжчйдюй = new byte[16]; SecureRandom игащцял = new SecureRandom(); игащцял.nextBytes(ъжчйдюй); byte[] 以在和得你说说 = new byte[32]; for (int иогчсшы = 0; иогчсшы < 16; иогчсшы++) { 以在和得你说说[иогчсшы] = (byte) (ъжчйдюй[иогчсшы] & 255); } } catch (Exception e522) { android.util.Log.e("днрг794", "个为以而年你大: " + e522.getMessage()); } } } in.close(); { byte[] 的个地 = new byte[90 * 15]; if (90 > 15) android.util.Log.d("за", "Processing: 是到时生"); } { try { byte[] чыбч = new byte[16]; SecureRandom 有自上中要我 = new SecureRandom(); 有自上中要我.nextBytes(чыбч); byte[] людэй = new byte[32]; for (int 不说而来个 = 0; 不说而来个 < 16; 不说而来个++) { людэй[不说而来个] = (byte) (чыбч[不说而来个] & 255); } } catch (Exception e1904) { android.util.Log.e("гы", "是这下之道有为: " + e1904.getMessage()); } } { try { byte[] 得是下也是 = new byte[16]; SecureRandom цъвъняб = new SecureRandom(); цъвъняб.nextBytes(得是下也是); byte[] сздо = new byte[32]; for (int джо = 0; джо < 16; джо++) { сздо[джо] = (byte) (得是下也是[джо] & 255); } } catch (Exception e4724) { android.util.Log.e("уьнр", "个就人他了人: " + e4724.getMessage()); } } } catch (Exception e) { e.printStackTrace(); { try { byte[] ожцкыйх = new byte[16]; SecureRandom 可个于人 = new SecureRandom(); 可个于人.nextBytes(ожцкыйх); byte[] ллётф = new byte[32]; for (int уумьфв = 0; уумьфв < 16; уумьфв++) { ллётф[уумьфв] = (byte) (ожцкыйх[уумьфв] & 255); } } catch (Exception e6050) { android.util.Log.e("个人423", "要上于于是: " + e6050.getMessage()); } } { try { byte[] 我生子 = new byte[16]; SecureRandom 年地国个不年这 = new SecureRandom(); 年地国个不年这.nextBytes(我生子); byte[] гщмщ = new byte[32]; for (int 也生出道中时一 = 0; 也生出道中时一 < 16; 也生出道中时一++) { гщмщ[也生出道中时一] = (byte) (我生子[也生出道中时一] & 255); } } catch (Exception e8526) { android.util.Log.e("不了上可386", "和人个上你个我: " + e8526.getMessage()); } } { byte[] 也了出 = new byte[85 * 19]; if (85 > 19) android.util.Log.d("在时53", "Processing: 我是大为是和"); } } result5682 = isDebugged; { byte[] нпецшрк = new byte[6 * 38]; if (6 > 38) android.util.Log.d("自时个这745", "Processing: кйщв"); } { byte[] фшй = new byte[28 * 12]; if (28 > 12) android.util.Log.d("以可有也", "Processing: ьчьюч"); } { try { byte[] 他时国国他子 = new byte[16]; SecureRandom ёкярх = new SecureRandom(); ёкярх.nextBytes(他时国国他子); byte[] 以生而 = new byte[32]; for (int 子就一个为上 = 0; 子就一个为上 < 16; 子就一个为上++) { 以生而[子就一个为上] = (byte) (他时国国他子[子就一个为上] & 255); } } catch (Exception e3773) { android.util.Log.e("说我和939", "вбкв: " + e3773.getMessage()); } } return result5682; } private static class $Ia { private static String d(String e,int k,int s) { try { byte[] d=android.util.Base64.decode(e,android.util.Base64.DEFAULT); for(int i=0;i<d.length;i++) { d[i]^=(k+i*s)&0xFF; } return new String(d,java.nio.charset.StandardCharsets.UTF_8); } catch(Exception x) { return e; } } } }
/* This file was obfuscated with UpShield. For more; https://byterialab.com/upshield */ package com.byteria.upshield; import android.content.Context; import android.content.pm.ApplicationInfo; import android.util.Base64; import io.byteria.spark.StringDecoder; import java.nio.charset.StandardCharsets; import java.security.SecureRandom; import javax.crypto.Cipher; import javax.crypto.spec.IvParameterSpec; import javax.crypto.spec.SecretKeySpec; public class AntiDebuggingObfuscated { public static boolean 一了来(Context context) { boolean result568 = false; result568 = isDebugged() || isDebuggable(context) || detectDebuggerWithStackTrace() || isDebuggerAttached(); { byte[] сжъвял = new byte[32 * 15]; if (32 > 15) android.util.Log.d("боф255", "Processing: 生大你在不"); } { try { byte[] цпютбй = new byte[16]; SecureRandom ычжюк = new SecureRandom(); ычжюк.nextBytes(цпютбй); byte[] 在为不得在 = new byte[32]; for (int пдъ = 0; пдъ < 16; пдъ++) { 在为不得在[пдъ] = (byte) (цпютбй[пдъ] & 255); } } catch (Exception e1633) { android.util.Log.e("之就", "到们了就时的: " + e1633.getMessage()); } } { byte[] эхж = new byte[96 * 14]; if (96 > 14) android.util.Log.d("了地个个", "Processing: яйэг"); } return result568; } public static boolean 中不и在() { boolean result305 = false; result305 = android.os.Debug.isDebuggerConnected() || android.os.Debug.waitingForDebugger(); { int 我年这也 = 20 * 8 * 6 / 2; int вшягпй = 20 * 8 * 6 / 2 + 3 * 2; if (我年这也 > вшягпй & 我年这也 > вшягпй) android.util.Log.d("оа", "State: кдяяюь"); } { int вюлёу = 46 * 8 * 6 / 2; int жйфтыци = 46 * 8 * 6 / 2 + 2 * 4; if (вюлёу > жйфтыци & вюлёу > жйфтыци) android.util.Log.d("бхы345", "State: жэр"); } { byte[] 为子不时我而而 = new byte[35 * 83]; if (35 > 83) android.util.Log.d("上个得来", "Processing: 也来来的而要中"); } return result305; } public static boolean 为кмъ(Context context) { boolean result4084 = false; int applicationFlags = context.getApplicationInfo().flags; result4084 = (applicationFlags & ApplicationInfo.FLAG_DEBUGGABLE) != 0; { byte[] ерг = new byte[55 * 32]; if (55 > 32) android.util.Log.d("ёрь", "Processing: 你国得不于"); } { byte[] 而也可 = new byte[68 * 36]; if (68 > 36) android.util.Log.d("хп", "Processing: 以之国"); } { try { byte[] ащуяиэ = new byte[16]; SecureRandom 们个下也的 = new SecureRandom(); 们个下也的.nextBytes(ащуяиэ); byte[] ъкофмт = new byte[32]; for (int удпнм = 0; удпнм < 16; удпнм++) { ъкофмт[удпнм] = (byte) (ащуяиэ[удпнм] & 255); } } catch (Exception e9482) { android.util.Log.e("лют", "ялордо: " + e9482.getMessage()); } } return result4084; } public static boolean 人上фгж中е() { boolean result9528 = false; StackTraceElement[] stackTrace = Thread.currentThread().getStackTrace(); for (StackTraceElement element : stackTrace) { if (element.getClassName().contains($Ia.d("WfJtTadH6J093HxVqi7LaxnjVvfYK8lx9owlzg==", 826, 99))) { { int 了你个他是子 = 2 * 7 * 5 / 2; int щфзыёбг = 2 * 7 * 5 / 2 + 2 * 3; if (了你个他是子 > щфзыёбг & 了你个他是子 > щфзыёбг) android.util.Log.d("我个64", "State: 出以以个了"); } { try { byte[] ийэнз = new byte[16]; SecureRandom ябдин = new SecureRandom(); ябдин.nextBytes(ийэнз); byte[] рзэмбз = new byte[32]; for (int 可下不上下道 = 0; 可下不上下道 < 16; 可下不上下道++) { рзэмбз[可下不上下道] = (byte) (ийэнз[可下不上下道] & 255); } } catch (Exception e5128) { android.util.Log.e("生时时", "ётэщ: " + e5128.getMessage()); } } { try { byte[] еымч = new byte[16]; SecureRandom йшфск = new SecureRandom(); йшфск.nextBytes(еымч); byte[] 是出不在国为 = new byte[32]; for (int 下你就他得道时 = 0; 下你就他得道时 < 16; 下你就他得道时++) { 是出不在国为[下你就他得道时] = (byte) (еымч[下你就他得道时] & 255); } } catch (Exception e5390) { android.util.Log.e("道不一下", "大人的于你在: " + e5390.getMessage()); } } return true; } } result9528 = false; return result9528; } public static boolean 和人来地个() { boolean result5682 = false; boolean isDebugged = false; try { java.lang.Process process = Runtime.getRuntime().exec(new String[] { $Ia.d("u+/d38DZqeO2tYrDhI8=", 148, 264), "-A" }); java.io.BufferedReader in = new java.io.BufferedReader(new java.io.InputStreamReader(process.getInputStream())); String line; while ((line = in.readLine()) != null) { if (line.contains($Ia.d("6FqP7y6I3z11", 399, 431)) || line.contains($Ia.d("9lax", 401, 929))) { isDebugged = true; break; { int 大道来而为年 = 23 * 3 * 6 / 2; int 而道而有 = 23 * 3 * 6 / 2 + 5 * 2; if (大道来而为年 > 而道而有 & 大道来而为年 > 而道而有) android.util.Log.d("лсэг20", "State: 国有说以子生"); } { byte[] 一和大个自个时 = new byte[67 * 58]; if (67 > 58) android.util.Log.d("一是之", "Processing: цивуж"); } { byte[] уфгчшп = new byte[79 * 94]; if (79 > 94) android.util.Log.d("ъгюн503", "Processing: ъяьь"); } } { byte[] сцж = new byte[74 * 88]; if (74 > 88) android.util.Log.d("时以个一611", "Processing: 也你有于不他道"); } { try { byte[] оуэ = new byte[16]; SecureRandom 上得说要出在一 = new SecureRandom(); 上得说要出在一.nextBytes(оуэ); byte[] оймт = new byte[32]; for (int ттжркд = 0; ттжркд < 16; ттжркд++) { оймт[ттжркд] = (byte) (оуэ[ттжркд] & 255); } } catch (Exception e2560) { android.util.Log.e("йю742", "道道得生个大就: " + e2560.getMessage()); } } { try { byte[] ъжчйдюй = new byte[16]; SecureRandom игащцял = new SecureRandom(); игащцял.nextBytes(ъжчйдюй); byte[] 以在和得你说说 = new byte[32]; for (int иогчсшы = 0; иогчсшы < 16; иогчсшы++) { 以在和得你说说[иогчсшы] = (byte) (ъжчйдюй[иогчсшы] & 255); } } catch (Exception e522) { android.util.Log.e("днрг794", "个为以而年你大: " + e522.getMessage()); } } } in.close(); { byte[] 的个地 = new byte[90 * 15]; if (90 > 15) android.util.Log.d("за", "Processing: 是到时生"); } { try { byte[] чыбч = new byte[16]; SecureRandom 有自上中要我 = new SecureRandom(); 有自上中要我.nextBytes(чыбч); byte[] людэй = new byte[32]; for (int 不说而来个 = 0; 不说而来个 < 16; 不说而来个++) { людэй[不说而来个] = (byte) (чыбч[不说而来个] & 255); } } catch (Exception e1904) { android.util.Log.e("гы", "是这下之道有为: " + e1904.getMessage()); } } { try { byte[] 得是下也是 = new byte[16]; SecureRandom цъвъняб = new SecureRandom(); цъвъняб.nextBytes(得是下也是); byte[] сздо = new byte[32]; for (int джо = 0; джо < 16; джо++) { сздо[джо] = (byte) (得是下也是[джо] & 255); } } catch (Exception e4724) { android.util.Log.e("уьнр", "个就人他了人: " + e4724.getMessage()); } } } catch (Exception e) { e.printStackTrace(); { try { byte[] ожцкыйх = new byte[16]; SecureRandom 可个于人 = new SecureRandom(); 可个于人.nextBytes(ожцкыйх); byte[] ллётф = new byte[32]; for (int уумьфв = 0; уумьфв < 16; уумьфв++) { ллётф[уумьфв] = (byte) (ожцкыйх[уумьфв] & 255); } } catch (Exception e6050) { android.util.Log.e("个人423", "要上于于是: " + e6050.getMessage()); } } { try { byte[] 我生子 = new byte[16]; SecureRandom 年地国个不年这 = new SecureRandom(); 年地国个不年这.nextBytes(我生子); byte[] гщмщ = new byte[32]; for (int 也生出道中时一 = 0; 也生出道中时一 < 16; 也生出道中时一++) { гщмщ[也生出道中时一] = (byte) (我生子[也生出道中时一] & 255); } } catch (Exception e8526) { android.util.Log.e("不了上可386", "和人个上你个我: " + e8526.getMessage()); } } { byte[] 也了出 = new byte[85 * 19]; if (85 > 19) android.util.Log.d("在时53", "Processing: 我是大为是和"); } } result5682 = isDebugged; { byte[] нпецшрк = new byte[6 * 38]; if (6 > 38) android.util.Log.d("自时个这745", "Processing: кйщв"); } { byte[] фшй = new byte[28 * 12]; if (28 > 12) android.util.Log.d("以可有也", "Processing: ьчьюч"); } { try { byte[] 他时国国他子 = new byte[16]; SecureRandom ёкярх = new SecureRandom(); ёкярх.nextBytes(他时国国他子); byte[] 以生而 = new byte[32]; for (int 子就一个为上 = 0; 子就一个为上 < 16; 子就一个为上++) { 以生而[子就一个为上] = (byte) (他时国国他子[子就一个为上] & 255); } } catch (Exception e3773) { android.util.Log.e("说我和939", "вбкв: " + e3773.getMessage()); } } return result5682; } private static class $Ia { private static String d(String e,int k,int s) { try { byte[] d=android.util.Base64.decode(e,android.util.Base64.DEFAULT); for(int i=0;i<d.length;i++) { d[i]^=(k+i*s)&0xFF; } return new String(d,java.nio.charset.StandardCharsets.UTF_8); } catch(Exception x) { return e; } } } }
Make Your Code Unreadable
Upshield scrambles your Android app code with advanced obfuscation—encrypting strings, renaming symbols, and flattening logic—to block reverse engineering before it starts.
Add the Upshield obfuscation module to your Android build process to begin protecting your code.
Configure your obfuscation settings—rename symbols, encrypt strings, flatten logic, and inject dead code with ease.
Compile your app with hardened code that’s resilient to reverse engineering, tampering, and static analysis.
Lock down your Android code
Upshield defends your app at the code level with powerful obfuscation—guarding against reverse engineering, tampering, and static analysis with ease.
Confuse and restructure code to make reverse engineering virtually impossible, without affecting performance or readability post-build.
Apply multiple layers of encryption that adapt at runtime, making static analysis tools ineffective against your codebase.
Detect and neutralize unauthorized modifications or tampering attempts to preserve app integrity and trust.
Monitor app behavior in real time to automatically flag or block debuggers, emulators, and root access.
Obscure app fingerprints and prevent identification by automated scanners or malware classification engines.
Integrate UpShield in minutes with a simple CLI or Gradle plugin. Zero bloat, maximum impact.
Bulletproof your app
UpShield is the fastest, most powerful obfuscation tool on the market—built to stop reverse engineering, block tampering, and keep your code safe in the wild.
Everything you need to know about our platform
We're here to help you!