После обновления стим до версии 3.0 старый способ умер, поэтому сейчас покажу вам новый способ, который работает. ВАЖНО!!! на телефоне должны быть рут права, иначе ничего работать не будет! Шаг 1: Ставим питон Для начала нужно установить питон, если вдруг у кого-то нет вот ссылка скачиваете и устанавливаете Чё за змей? Питоны (лат. Pythonidae) — семейство неядовитых змей... Python – это высокоуровневый язык программирования, который был разработан в конце 1980-х годов. Его разработчик, Гвидо ван Россум, вложил в основу языка простоту и читабельность кода, что позволяет использовать Python для быстрой и эффективной разработки. ВАЖНО!!! здесь ОБЯЗАТЕЛЬНО ставим галочку После этого можно приступить ко 2 шагу Шаг 2: Ставим фриду на комп Для того чтобы всё заработало нужно установить тулкит Frida устанавливается он очень просто Чё за фрида? Frida - это набор инструментов динамического инструментирования для разработчиков, специалистов по обратному проектированию и исследователей безопасности. Открываем терминал и вводим эти команды: pip install frida pip install frida-tools Code pip install frida pip install frida-tools Если всё получилось, и не появилось никаких ошибок можно переходить к 3 шагу Шаг 3: Пихаем сервер фриды в мобилу (эмулятор) Теперь нужно установить frida-server на телефон или эмулятор Для этого заходим сюда и скачиваем frida-server-android-***, то что я отметил звёздочками это архитектура процессора телефона, узнать её можно загуглив характеристики телефона или посмотреть через AIDA64 Как посмотреть архитектуру через AIDA64 Скачиваем AIDA64 из плей маркета запускаем и открываем пункт который нельзя называть После этого смотрим на "Наборы инструкций" там и будет указана архитектура процессора После того как скачали нужный файл распаковываем его, для удобства стираем лишнее и оставляем просто "frida-server" Далее для того чтобы закинуть этот файл на телефон и запустить понадобится ADB. Установка ADB Заходим сюда скачиваем драйвер и устанавливаем его. После этого на телефоне нужно включить отладку по USB Открываем настройки и заходим в пункт "Для разработчиков", если у вас его нет, заходим в "О телефоне" и несколько раз нажимаем на "Номер сборки". Куда нажимать После этого появится уведомление "Вы стали разработчиком" и появится нужный нам пункт в настройках. Находим эти две настройки и включаем их Что включать После этого подключаем телефон к компьютеру и разрешаем отладку. Открываем в папке с frida-server терминал и вводим эти команды: adb root adb push frida-server /data/local/tmp/ adb shell "chmod +x /data/local/tmp/frida-server" adb shell "/data/local/tmp/frida-server &" Code adb root adb push frida-server /data/local/tmp/ adb shell "chmod +x /data/local/tmp/frida-server" adb shell "/data/local/tmp/frida-server &" Если при выполнении первой команды у вас ошибка вводите эти: adb push frida-server /data/local/tmp/ adb shell "su -c chmod +x /data/local/tmp/frida-server" adb shell "su -c /data/local/tmp/frida-server &" Code adb push frida-server /data/local/tmp/ adb shell "su -c chmod +x /data/local/tmp/frida-server" adb shell "su -c /data/local/tmp/frida-server &" Теперь мы переместили frida-server на телефон и запустили его. ВАЖНО!!! Терминал после этого не закрываем!!! Если всё получилось переходим к шагу 4 Шаг 4: Хукаем данные Steam Guard Создаём в этой же папке файл с расширением .py и вписываем туда этот код: Код import json import frida import sys package = "com.valvesoftware.android.steam.community" cmd = """ 'use strict;' if (Java.available) { Java.perform(function() { //Cipher stuff const Cipher = Java.use('javax.crypto.Cipher'); Cipher.doFinal.overload('[B').implementation = function (input) { var result = this.doFinal.overload('[B').call(this, input); send(result); } } )} """ def parse_hook(cmd_): print('[*] Parsing hook...') script = session.create_script(cmd_) script.on('message', on_message) script.load() def on_message(message, _): try: if message: if message['type'] == 'send': result = "".join(chr(i) for i in message['payload']) print(json.dumps(json.loads(result), indent=2, ensure_ascii=False)) except Exception as e: print(e) if __name__ == '__main__': try: print('[*] Spawning ' + package) pid = frida.get_usb_device().spawn(package) session = frida.get_usb_device().attach(pid) parse_hook(cmd) frida.get_usb_device().resume(pid) print('') sys.stdin.read() except KeyboardInterrupt: sys.exit(0) except Exception as e: print(e) Python import json import frida import sys package = "com.valvesoftware.android.steam.community" cmd = """ 'use strict;' if (Java.available) { Java.perform(function() { //Cipher stuff const Cipher = Java.use('javax.crypto.Cipher'); Cipher.doFinal.overload('[B').implementation = function (input) { var result = this.doFinal.overload('[B').call(this, input); send(result); } } )} """ def parse_hook(cmd_): print('[*] Parsing hook...') script = session.create_script(cmd_) script.on('message', on_message) script.load() def on_message(message, _): try: if message: if message['type'] == 'send': result = "".join(chr(i) for i in message['payload']) print(json.dumps(json.loads(result), indent=2, ensure_ascii=False)) except Exception as e: print(e) if __name__ == '__main__': try: print('[*] Spawning ' + package) pid = frida.get_usb_device().spawn(package) session = frida.get_usb_device().attach(pid) parse_hook(cmd) frida.get_usb_device().resume(pid) print('') sys.stdin.read() except KeyboardInterrupt: sys.exit(0) except Exception as e: print(e) Он перехватывает, расшифровывает и выводит нужные нам данные для создания мафайлов Открываем ещё одно окно с терминалом и запускаем файл python *имя файла*.py Code python *имя файла*.py После этого заходим в стим и в терминале должен быть вывод данных необходимых для создания мафайла Чё должно быть? Если всё успешно вывелось переходим к шагу 5 Шаг 5: Форматируем выхлоп Копируем вывод из терминала, создаём файл с расширением .maFile и вставляем вывод в него Теперь убираем некоторые строки: Что убирать { // стираем "accounts": { // стираем "12345678987654321": // стираем { "shared_secret": "xxx", "identity_secret": "xxx", и т.д } } //стираем } // стираем Code { // стираем "accounts": { // стираем "12345678987654321": // стираем { "shared_secret": "xxx", "identity_secret": "xxx", и т.д } } //стираем } // стираем Должно получится так { "shared_secret": "xxx", "identity_secret": "xxx", и т.д } Code { "shared_secret": "xxx", "identity_secret": "xxx", и т.д } ВАЖНО!!! если у вас несколько аккаунтов, для каждого нужно создавать отдельный файл Как разделить по файлам { "accounts": { "12345678987654321": // это 1 файл { "shared_secret": "xxx", "identity_secret": "xxx", и т.д }, "98765432123456789": // это 2 файл { "shared_secret": "xxx", "identity_secret": "xxx", и т.д } } } Code { "accounts": { "12345678987654321": // это 1 файл { "shared_secret": "xxx", "identity_secret": "xxx", и т.д }, "98765432123456789": // это 2 файл { "shared_secret": "xxx", "identity_secret": "xxx", и т.д } } } После этого мафайл уже можно импортировать, для этого переходим к шагу 6 Шаг 6: Импортируем получившийся MaFile Я использую ASF, поэтому буду показывать на его примере, в SDA всё также отлично работает Добавляем новый аккаунт Добавить нового бота Вводим имя, логин и пароль Остальные настройки можно не трогать Листаем вниз и нажимаем "Создать" Импортируем MaFile Нажимаем на замочек 2FA Нажимаем на "Импортировать аутентификатор Выбираем созданный файл Теперь когда мы снова нажмём на замочек мы увидим код гуарда и кнопки для подтверждений PROFIT!!! радуемся жизни! На этом всё, надеюсь моя статья кому-то помогла, если нашли недочёты - пишите, я обязательно исправлю
Долго ебался с тем что не находило эмулятор, хотя фрида запущена, поэтому у тех кто постоянно пишет device not found в скрипте просто киньте скрипт в цикл while True, и вуапля, через пару секунд все найдет. Жалко конечно что девайс айди не вытаскивает, но тоже неплохо.
а если например аккаунт украден и у меня есть только логин и пароль, по сути я могу такую хрень сделать но все равно получить мафаил хоть и гуард стоит на другом совсем телефоне например в другой стране