ANDROID SKETCHWARE MASTER
رفتن به کانال در Telegram
Help us - @Android_Master_helper To Admin @Android_Master_admin WhatsApp - +919832397477 Channel link https://t.me/ANDROID_SKETCHWARE_MASTER Discussion https://t.me/+1dKNx71tVMxlMDVl
نمایش بیشتر6 465
مشترکین
+224 ساعت
-177 روز
-8030 روز
آرشیو پست ها
pthread_create(&threads[active_threads++], NULL, scan_replace_thread, data); if (active_threads >= MAX_THREADS) { for (int i = 0; i < active_threads; i++) pthread_join(threads[i], NULL); active_threads = 0; } } for (int i = 0; i < active_threads; i++) pthread_join(threads[i], NULL); fclose(maps); close(mem_fd); } int main() { log_message("[*] Memory patcher started."); pid_t pid = find_pid_of(PACKAGE_NAME); if (pid == -1) { log_message("[-] Target process not found: %s", PACKAGE_NAME); return 1; } log_message("[*] Scanning memory of PID: %d", pid); scan_memory(pid); log_message("[*] Memory scan complete"); log_message("[*] Patch completed!"); return 0; }
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <unistd.h> #include <fcntl.h> #include <sys/mman.h> #include <dirent.h> #include <pthread.h> #include <ctype.h> #include <errno.h> #define PACKAGE_NAME "com.dts.freefireth" #define BLOCK_SIZE 1048576 // 1 MB #define MAX_THREADS 12 unsigned char SEARCH_VALUE[] = { 0x73, 0x6C, 0x20, 0x35, 0x00, 0x00, 0x80, 0x3F }; unsigned char REPLACE_VALUE[] = { 0x73, 0x6C, 0x20, 0x35, 0x9A, 0x19, 0x7A, 0x43 }; typedef struct { int mem_fd; unsigned long start, end; } ThreadData; // Log function with variable arguments void log_message(const char *format, ...) { va_list args; FILE *logfile = fopen("/data/local/tmp/patch_log.txt", "a"); if (logfile) { va_start(args, format); vfprintf(logfile, format, args); va_end(args); fprintf(logfile, "\n"); // Add a newline at the end of each log message fclose(logfile); } else { perror("[-] Failed to open log file"); } } pid_t find_pid_of(const char *process_name) { DIR *dir = opendir("/proc"); if (!dir) return -1; struct dirent *entry; while ((entry = readdir(dir)) != NULL) { if (!isdigit(entry->d_name[0])) continue; char cmdline_path[256]; snprintf(cmdline_path, sizeof(cmdline_path), "/proc/%s/cmdline", entry->d_name); FILE *cmdline = fopen(cmdline_path, "r"); if (!cmdline) continue; char cmdline_data[256]; fread(cmdline_data, sizeof(cmdline_data), 1, cmdline); fclose(cmdline); if (strstr(cmdline_data, process_name)) { closedir(dir); return atoi(entry->d_name); } } closedir(dir); return -1; } void *scan_replace_thread(void *arg) { ThreadData *data = (ThreadData *)arg; unsigned char *buffer = (unsigned char *)malloc(BLOCK_SIZE); if (!buffer) { log_message("[-] Memory allocation failed in scan_replace_thread"); pthread_exit(NULL); } for (unsigned long addr = data->start; addr < data->end; addr += BLOCK_SIZE) { void *mapped_memory = mmap(NULL, BLOCK_SIZE, PROT_READ | PROT_WRITE, MAP_SHARED, data->mem_fd, addr); if (mapped_memory == MAP_FAILED) { log_message("[-] Failed to mmap memory chunk at address 0x%lx", addr); continue; } memcpy(buffer, mapped_memory, BLOCK_SIZE); for (size_t i = 0; i < BLOCK_SIZE - sizeof(SEARCH_VALUE); i++) { if (memcmp(buffer + i, SEARCH_VALUE, sizeof(SEARCH_VALUE)) == 0) { memcpy(mapped_memory + i, REPLACE_VALUE, sizeof(REPLACE_VALUE)); char log_msg[256]; snprintf(log_msg, sizeof(log_msg), "[+] Patched at: 0x%lx", addr + i); log_message(log_msg); } } munmap(mapped_memory, BLOCK_SIZE); } free(buffer); free(data); pthread_exit(NULL); } void scan_memory(pid_t pid) { char maps_path[64], mem_path[64]; snprintf(maps_path, sizeof(maps_path), "/proc/%d/maps", pid); snprintf(mem_path, sizeof(mem_path), "/proc/%d/mem", pid); FILE *maps = fopen(maps_path, "r"); if (!maps) { log_message("[-] Failed to open maps for PID %d", pid); return; } int mem_fd = open(mem_path, O_RDWR); if (mem_fd < 0) { log_message("[-] Failed to open mem for PID %d", pid); fclose(maps); return; } char line[512]; pthread_t threads[MAX_THREADS]; int active_threads = 0; while (fgets(line, sizeof(line), maps)) { if (!strstr(line, "rw")) continue; if (strstr(line, "[vsyscall]") || strstr(line, "[vdso]")) continue; unsigned long start, end; if (sscanf(line, "%lx-%lx", &start, &end) != 2) continue; ThreadData *data = malloc(sizeof(ThreadData)); if (!data) { log_message("[-] Memory allocation failed for ThreadData"); continue; } data->mem_fd = mem_fd; data->start = start; data->end = end;
Shizuku 13.5.1
Type - block local library
Error handling
Better performance
ভিডিও দেওয়াটা মুশকিল হয়ে পড়ছে কেননা আপনারা সম্পূর্ণ বা সঠিকভাবে ভিডিও দিচ্ছেন না।
It is becoming difficult to provide videos because you are not providing videos completely or correctly.
Support our channel
🙏 Share ❤️ Subscribe 👇 LIKE
https://youtu.be/M1Py-I-Ej1A
🙏 Share ❤️ Subscribe 👇 LIKE
Fire base database in India has been closed for a few days
There is no need to be afraid of this, the work is underway. It will be fixed automatically.
