Değişken ve fonksiyon adlarını gizleyin, hassas string'leri şifreleyin, control flow yapısını düzleştirin ve dead code ekleyin. Böylece reverse engineering girişimlerini ciddi ölçüde zorlaştırın.
Dosya yükleyin
Dosyaları buraya sürükleyip bırakın veya yüklemek için tıklayın
Desteklenen format: .java (Maksimum 3 dosya)
Değişken ve fonksiyon adlarını gizler
String sabitlerini şifreler
Control flow ifadelerini düzleştirir
Kullanılmayan kod blokları ekler
İş mantığınızı reverse engineering'e karşı koruyun
Upshield, Android kodunuzu gelişmiş obfuscation teknikleriyle dönüştürür. Değişken adlarını gizler, string'leri şifreler ve control flow yapısını düzleştirir. Bunu performansı etkilemeden yapar.
/*
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;
}
}
}
}
Kodunuzu okunamaz hale getirin
Upshield, Android uygulama kodunuzu gelişmiş obfuscation ile dönüştürür. String'leri şifreler, sembolleri yeniden adlandırır ve control flow yapısını düzleştirir.
Kod korumasını başlatmak için Upshield obfuscation modülünü Android build sürecinize ekleyin.
Sembol yeniden adlandırma, string şifreleme, logic düzleştirme ve dead code ekleme ayarlarını yapılandırın.
Uygulamanızı reverse engineering, tampering ve static analysis girişimlerine karşı daha dayanıklı hale getirilmiş kodla derleyin.

Android kodunuzu kilitleyin
Upshield, kod seviyesinde güçlü obfuscation ile koruma sağlar. Reverse engineering, tampering ve static analysis girişimlerini etkisiz hale getirmeye yardımcı olur.
Kodu performansı etkilemeden yeniden yapılandırır ve reverse engineering'i çok daha zor hale getirir.
Runtime sırasında uyarlanan çok katmanlı şifreleme uygular ve static analysis araçlarının etkisini azaltır.
Yetkisiz değişiklik ve tampering girişimlerini tespit ederek uygulama bütünlüğünü korur.
Uygulama davranışını gerçek zamanlı izler; debugger, emulator ve root erişimini otomatik olarak tespit edip engeller.
Uygulama parmak izlerini gizleyerek otomatik tarama ve sınıflandırma motorlarının tespitini zorlaştırır.
UpShield'i basit bir CLI veya Gradle eklentisiyle dakikalar içinde entegre edin. Minimum efor, yüksek etki.
Uygulamanızı daha dayanıklı hale getirin
UpShield, reverse engineering'i durdurmak, tampering girişimlerini engellemek ve kodunuzu sahada güvende tutmak için geliştirilen güçlü bir obfuscation çözümüdür.
Platform hakkında bilmeniz gerekenler
Size yardımcı olmak için buradayız!