Skip to content

Commit 23d8a69

Browse files
committed
v1.01
A new obfuscation strategy added, SDK and all examples updated.
1 parent bc00d15 commit 23d8a69

File tree

6 files changed

+93
-70
lines changed

6 files changed

+93
-70
lines changed

Diff for: README.md

+72-63
Original file line numberDiff line numberDiff line change
@@ -102,7 +102,8 @@ class Ideone
102102
// rename_methods = false,
103103
// rename_variables = true,
104104
// shuffle_methods = true,
105-
// mix_code_flow = true
105+
// mix_code_flow = true,
106+
// ints_to_arrays = true
106107
// )
107108
public static void main(String[] args) {
108109

@@ -119,13 +120,13 @@ class Ideone
119120
```java
120121
////////////////////////////////////////////////////////////////////////////////
121122
//
122-
// An output from JObfuscator v1.0 - Bartosz Wójcik
123+
// An output from JObfuscator v1.01 - Bartosz Wójcik
123124
//
124125
// Website : https://www.pelock.com/products/jobfuscator
125-
// Version : v1.0
126-
// Params : /MixCodeFlow /RenMethods /RenVars /ShuffleMethods /CryptStr
126+
// Version : v1.01
127+
// Params : /MixCodeFlow /RenMethods /RenVars /ShuffleMethods /CryptStr /IntsToArray
127128
// New lines : Windows (CRLF - \r\n)
128-
// Date : 14.07.2021
129+
// Date : 28.07.2021
129130
//
130131
////////////////////////////////////////////////////////////////////////////////
131132

@@ -135,72 +136,73 @@ import java.io.*;
135136

136137
class Ideone {
137138

138-
public static double LV__TKUxvBBALYq_PoTojpU_(double[] numArray) {
139-
int var_2890 = 0;
140-
double PJYBTTRI = 0;
141-
int var_1846 = 0;
142-
double y_YQH_fvL_0_gw6UWKGKBw = 0, eMzlai = 0;
143-
var_2890 = 190507166;
144-
while (var_2890 != 513426540) {
145-
switch(var_2890) {
146-
case 618488464:
147-
for (double FVEGRM : numArray) {
148-
y_YQH_fvL_0_gw6UWKGKBw += FVEGRM;
149-
}
150-
var_2890 ^= 410092703;
151-
break;
152-
case 1017964047:
153-
PJYBTTRI = y_YQH_fvL_0_gw6UWKGKBw / var_1846;
154-
var_2890 ^= 536958471;
139+
public static double func_2837(double[] numArray) {
140+
int[] var_1503 = { 16773034, 161954010, 805149903, 0, 1398016587, 1322929540, 709627242, 2103650494, 70093929, 2 };
141+
int TWRCHOYPM_HAUIOXNTK = var_1503[3];
142+
double YMWMKMVWDG = 0;
143+
int iRrxjpzptTjjlcNcwbro = 0;
144+
double var_1127 = 0, WJSLVS_FVOLPTLOC_ROSDCT = 0;
145+
TWRCHOYPM_HAUIOXNTK = var_1503[2];
146+
while (TWRCHOYPM_HAUIOXNTK != var_1503[0]) {
147+
switch(TWRCHOYPM_HAUIOXNTK) {
148+
case 161954010:
149+
YMWMKMVWDG = var_1127 / iRrxjpzptTjjlcNcwbro;
150+
TWRCHOYPM_HAUIOXNTK -= -var_1503[5];
155151
break;
156-
case 481144840:
157-
for (double eNydxsfVevicyry : numArray) {
158-
eMzlai += Math.pow(eNydxsfVevicyry - PJYBTTRI, 2);
152+
case 1484883550:
153+
for (double var_1710 : numArray) {
154+
WJSLVS_FVOLPTLOC_ROSDCT += Math.pow(var_1710 - YMWMKMVWDG, var_1503[9]);
159155
}
160-
var_2890 ^= 646054028;
156+
TWRCHOYPM_HAUIOXNTK += -var_1503[8];
161157
break;
162-
case 976203908:
163-
var_2890 ^= 615904488;
158+
case 2103650494:
159+
iRrxjpzptTjjlcNcwbro = numArray.length;
160+
TWRCHOYPM_HAUIOXNTK += -var_1503[6];
164161
break;
165-
case 394538455:
166-
var_1846 = numArray.length;
167-
var_2890 += 223950009;
162+
case 1414789621:
163+
TWRCHOYPM_HAUIOXNTK -= var_1503[4];
168164
break;
169-
case 190507166:
170-
eMzlai = 0.0;
171-
var_2890 ^= 484361545;
165+
case 805149903:
166+
WJSLVS_FVOLPTLOC_ROSDCT = 0.0;
167+
TWRCHOYPM_HAUIOXNTK = var_1503[7];
168+
break;
169+
case 1394023252:
170+
for (double esCneZa9_592q_7_zU : numArray) {
171+
var_1127 += esCneZa9_592q_7_zU;
172+
}
173+
TWRCHOYPM_HAUIOXNTK = var_1503[1];
172174
break;
173175
}
174176
}
175-
return Math.sqrt(eMzlai / var_1846);
177+
return Math.sqrt(WJSLVS_FVOLPTLOC_ROSDCT / iRrxjpzptTjjlcNcwbro);
176178
}
177179

178180
public static void main(String[] args) {
179-
int ATERAER = 0;
180-
double[] hYbhjk = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
181-
double var_3119 = 0;
182-
ATERAER = 2011404002;
183-
while (ATERAER != 1465474782) {
184-
switch(ATERAER) {
185-
case 2011404002:
186-
double[] QHo2E0x_rPfV6_CM0_3F_yrSS = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
187-
ATERAER ^= 942522537;
181+
int[] var_790 = { 365752868, 851221905, 25, 65535, 0, 485469037, 795894447, 401516633 };
182+
int cW3xMWsn_C7UwiY6ExFuU__X = var_790[4];
183+
double var_1834 = 0;
184+
double[] g_hTqcygvfmuVgqnycpRtyciz = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
185+
cW3xMWsn_C7UwiY6ExFuU__X = var_790[7];
186+
while (cW3xMWsn_C7UwiY6ExFuU__X != var_790[5]) {
187+
switch(cW3xMWsn_C7UwiY6ExFuU__X) {
188+
case 949930742:
189+
var_1834 = func_2837(g_hTqcygvfmuVgqnycpRtyciz);
190+
cW3xMWsn_C7UwiY6ExFuU__X = var_790[1];
188191
break;
189-
case 888459970:
190-
String MNQRKEJ_FBJXXATJV_CYFYCMKMJ = "";
191-
int[] var_967 = { 0x10DA, 0x103B, 0x1028, 0x103D, 0x102B, 0x1028, 0x1039, 0x102B, 0x10EF, 0x10CB, 0x1034, 0x1005, 0x1030, 0x1028, 0x103B, 0x1030, 0x103E, 0x103D, 0x10EF, 0x10CC, 0x10EF, 0x10F4, 0x10FD, 0x10C5, 0x1035 };
192-
for (int M_xCztBqM_jYZQW0A_ = 0, z_wQCL5jGQZ_7XcHYZR_Rt_ej = 0; M_xCztBqM_jYZQW0A_ < 25; M_xCztBqM_jYZQW0A_++) {
193-
z_wQCL5jGQZ_7XcHYZR_Rt_ej = var_967[M_xCztBqM_jYZQW0A_];
194-
z_wQCL5jGQZ_7XcHYZR_Rt_ej ^= 0x6CA4;
195-
z_wQCL5jGQZ_7XcHYZR_Rt_ej -= 0x7C2B;
196-
MNQRKEJ_FBJXXATJV_CYFYCMKMJ += (char) (z_wQCL5jGQZ_7XcHYZR_Rt_ej & 0xFFFF);
197-
}
198-
System.out.format(MNQRKEJ_FBJXXATJV_CYFYCMKMJ, var_3119);
199-
ATERAER = 1465474782;
192+
case 401516633:
193+
double[] nFxybvzyibGbscguuDbtalok = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
194+
cW3xMWsn_C7UwiY6ExFuU__X ^= var_790[6];
200195
break;
201-
case 1338922571:
202-
var_3119 = LV__TKUxvBBALYq_PoTojpU_(hYbhjk);
203-
ATERAER ^= 2067432585;
196+
case 851221905:
197+
String var_2996 = "";
198+
int[] g_bXiluergf = { 0x0053, 0x0073, 0x005F, 0x006B, 0x0060, 0x005C, 0x006C, 0x005D, 0x0018, 0x003B, 0x005B, 0x006B, 0x005D, 0x0054, 0x0066, 0x005A, 0x005F, 0x005D, 0x000E, 0x002A, 0x000C, 0x0010, 0x0018, 0x001F, 0x004E };
199+
for (int mz4_C_ZS_vx2imtni61li_ = 0, bOY__H_s8XgO_P52NscyFre = 0; mz4_C_ZS_vx2imtni61li_ < var_790[2]; mz4_C_ZS_vx2imtni61li_++) {
200+
bOY__H_s8XgO_P52NscyFre = g_bXiluergf[mz4_C_ZS_vx2imtni61li_];
201+
bOY__H_s8XgO_P52NscyFre += mz4_C_ZS_vx2imtni61li_;
202+
var_2996 += (char) (bOY__H_s8XgO_P52NscyFre & var_790[3]);
203+
}
204+
System.out.format(var_2996, var_1834);
205+
cW3xMWsn_C7UwiY6ExFuU__X += -var_790[0];
204206
break;
205207
}
206208
}
@@ -256,7 +258,7 @@ Installation package is available at https://pypi.org/project/jobfuscator/
256258
#
257259
# In this example we will obfuscate sample source with default options.
258260
#
259-
# Version : v1.0
261+
# Version : v1.01
260262
# Language : Python
261263
# Author : Bartosz Wójcik
262264
# Web page : https://www.pelock.com
@@ -325,7 +327,8 @@ class Ideone
325327
// rename_methods = false,
326328
// rename_variables = true,
327329
// shuffle_methods = true,
328-
// mix_code_flow = true
330+
// mix_code_flow = true,
331+
// ints_to_arrays = true
329332
// )
330333
public static void main(String[] args) {
331334
@@ -382,7 +385,7 @@ else:
382385
#
383386
# In this example we will obfuscate sample source with custom options.
384387
#
385-
# Version : v1.0
388+
# Version : v1.01
386389
# Language : Python
387390
# Author : Bartosz Wójcik
388391
# Web page : https://www.pelock.com
@@ -441,6 +444,11 @@ myJObfuscator.renameMethods = True
441444
#
442445
myJObfuscator.cryptStrings = True
443446

447+
#
448+
# for each method, extract all possible integers from the code and store them in an array
449+
#
450+
myJObfuscator.intsToArrays = True
451+
444452
#
445453
# source code in Java format
446454
#
@@ -488,7 +496,8 @@ class Ideone
488496
// rename_methods = false,
489497
// rename_variables = true,
490498
// shuffle_methods = true,
491-
// mix_code_flow = true
499+
// mix_code_flow = true,
500+
// ints_to_arrays = true
492501
// )
493502
public static void main(String[] args) {
494503
@@ -539,7 +548,7 @@ else:
539548
#
540549
# In this example we will verify our activation key status.
541550
#
542-
# Version : v1.0
551+
# Version : v1.01
543552
# Language : Python
544553
# Author : Bartosz Wójcik
545554
# Web page : https://www.pelock.com

Diff for: examples/JObfuscatorExample.py

+8-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
# In this example we will obfuscate sample source with custom options.
88
#
9-
# Version : v1.0
9+
# Version : v1.01
1010
# Language : Python
1111
# Author : Bartosz Wójcik
1212
# Web page : https://www.pelock.com
@@ -70,6 +70,11 @@
7070
#
7171
myJObfuscator.cryptStrings = True
7272

73+
#
74+
# for each method, extract all possible integers from the code and store them in an array
75+
#
76+
myJObfuscator.intsToArrays = True
77+
7378
#
7479
# source code in Java format
7580
#
@@ -117,7 +122,8 @@ class Ideone
117122
// rename_methods = false,
118123
// rename_variables = true,
119124
// shuffle_methods = true,
120-
// mix_code_flow = true
125+
// mix_code_flow = true,
126+
// ints_to_arrays = true
121127
// )
122128
public static void main(String[] args) {
123129

Diff for: examples/JObfuscatorExampleIsDemo.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
# In this example we will verify our activation key status.
88
#
9-
# Version : v1.0
9+
# Version : v1.01
1010
# Language : Python
1111
# Author : Bartosz Wójcik
1212
# Web page : https://www.pelock.com

Diff for: examples/JObfuscatorExampleSimple.py

+3-2
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
#
77
# In this example we will obfuscate sample source with default options.
88
#
9-
# Version : v1.0
9+
# Version : v1.01
1010
# Language : Python
1111
# Author : Bartosz Wójcik
1212
# Web page : https://www.pelock.com
@@ -75,7 +75,8 @@ class Ideone
7575
// rename_methods = false,
7676
// rename_variables = true,
7777
// shuffle_methods = true,
78-
// mix_code_flow = true
78+
// mix_code_flow = true,
79+
// ints_to_arrays = true
7980
// )
8081
public static void main(String[] args) {
8182

Diff for: jobfuscator/jobfuscator.py

+8-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@
99
# JObfuscator provides advanced Java source code parsing based on AST trees,
1010
# multiple advanced obfuscation strategies are available.
1111
#
12-
# Version : JObfuscator v1.0
12+
# Version : JObfuscator v1.01
1313
# Python : Python v3
1414
# Dependencies : requests (https://pypi.python.org/pypi/requests/)
1515
# Author : Bartosz Wójcik ([email protected])
@@ -68,6 +68,11 @@ class JObfuscator(object):
6868
#
6969
cryptStrings = True
7070

71+
#
72+
# @var bool for each method, extract all possible integers from the code and store them in an array
73+
#
74+
intsToArrays = True
75+
7176
#
7277
# @var integer success
7378
#
@@ -181,6 +186,8 @@ def post_request(self, params_array):
181186
params_array["shuffle_methods"] = "1"
182187
if self.cryptStrings:
183188
params_array["crypt_strings"] = "1"
189+
if self.intsToArrays:
190+
params_array["ints_to_arrays"] = "1"
184191

185192
#
186193
# check if compression is enabled

Diff for: setup.py

+1-1
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
setuptools.setup(name='jobfuscator',
77

8-
version='1.0.0',
8+
version='1.0.1',
99

1010
description='JObfuscator is a source code obfuscator for the Java programming language. Obfuscate and protect your Java source code and algorithms from hacking, cracking, reverse engineering, decompilation, and technology theft. JObfuscator provides advanced Java source code parsing based on AST trees, multiple advanced obfuscation strategies are available.',
1111
long_description=long_description,

0 commit comments

Comments
 (0)