идея и предыстория В общем, недавно наткнулся на софт, который ищет забытые чеки по ТГК и ТГ чатам (называется ловец чеков). И пришла идея, а что если сделать код, который будет не просто искать забытые чеки, а пытаться угадать эти самые забытые чеки и, что самое важное, перехватить недавно созданные. Я начал писать код, были варианты через заход в сессию или же через просто API телеграмма. Но остановился по итогу на варианте, где чеки через стороннее приложение активируются, а именно - автокликер, с заданным сценарием. Плюсы этого метода в том, что аккаунт не уходит в бан (конечно, лучше использовать не основной). Я оставлял работать свой код на несколько дней и все было нормально. Недостатки. К сожаления, из-за того что сам тг медленно обрабатывает запросы, пришлось сделать достаточно большие интервалы времени, от чего шанс, чтоб угадать недавно созданный чек падает. Если не считать этого промежутка, а взять отдельный взятый чек и отдельно взятый чек, который и нужно угадать, то шанс угадывания - 0,0000000000000000012 (всего символов 62, а мест куда их вставить - 10) мало оч, но если у вас есть идеи, как улучшить, то мб и будет полезно сам код предварительная подготовка (pip) win + r --> cmd pip install aiogram pip install pyautogui Code pip install aiogram pip install pyautogui Еще необходимо будет получить тг аккаунт; (я взял со своего же шопа) !не реклама Теперь, создаем 3 файла с расширением .py и закидываем их в одну папку. Даем им названия act .py ; bot .py ; main .py соответственно (без пробела до точки) В файле с названием bot .py пишем код: bot .py создание бота и генерация чеков import random from aiogram import Bot, Dispatcher, types from aiogram.filters import Command def make_bot(): # Создание бота bot = Bot(token="Ваш токен") #из @BotFather dp = Dispatcher() # При команде старт @dp.message(Command("start")) async def start_command(message: types.Message): await message.answer("Привет! Чтобы начать работу, введи количество попыток создания чеков.") # Генератор чеков async def gen_checks(n): alp = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' return ['t.me/send?start=CQ' + ''.join(random.choice(alp) for _ in range(10)) for _ in range(n)] # Отправка чеков в бота @dp.message() async def send_checks(message: types.Message): if not message.text.isdigit(): return await message.answer('Пожалуйста, введи число, а не текст.') attempts = int(message.text) checks = await gen_checks(attempts) results_message = "\n".join(checks) await message.answer(results_message) # Запуск бота async def start_polling(): await dp.start_polling(bot) return bot, dp, start_polling Python import random from aiogram import Bot, Dispatcher, types from aiogram.filters import Command def make_bot(): # Создание бота bot = Bot(token="Ваш токен") #из @BotFather dp = Dispatcher() # При команде старт @dp.message(Command("start")) async def start_command(message: types.Message): await message.answer("Привет! Чтобы начать работу, введи количество попыток создания чеков.") # Генератор чеков async def gen_checks(n): alp = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789' return ['t.me/send?start=CQ' + ''.join(random.choice(alp) for _ in range(10)) for _ in range(n)] # Отправка чеков в бота @dp.message() async def send_checks(message: types.Message): if not message.text.isdigit(): return await message.answer('Пожалуйста, введи число, а не текст.') attempts = int(message.text) checks = await gen_checks(attempts) results_message = "\n".join(checks) await message.answer(results_message) # Запуск бота async def start_polling(): await dp.start_polling(bot) return bot, dp, start_polling Я изучил создание чеков криптобота и там есть некоторый шаблон. Начинается он всегда с 't. me/send?start=CQ', а далее идет 10 рандом символов из 62. (полный алгоритм создание чеков я не смог выяснить, поэтому пришел к выводу, что скорее всего это рандом) Далее, в файле с названием act .py пишем код: act .py активатор чеков через автокликер import pyautogui import asyncio '''активация чеков''' async def act_checks(): activ_click = int(input('Введи кол-во активаций кликера: ')) if activ_click > 50: m = activ_click // 50 await asyncio.sleep(2) pyautogui.click(x=655, y=1018) #нажатие на кнопку ввода сообщения в тг await asyncio.sleep(1) pyautogui.write('/start', interval=0.1) pyautogui.press('enter') while m != 0: m -= 1 activ_click = 50 while activ_click != 0: await asyncio.sleep(1) activ_click -= 1 pyautogui.write('1', interval=0.1) pyautogui.press('enter') await asyncio.sleep(1) pyautogui.click(x = 683, y = 859) #активация чека await asyncio.sleep(1) pyautogui.click(x = 267, y = 109) #возврат в меню бота await asyncio.sleep(5) else: await asyncio.sleep(2) pyautogui.click(x=655, y=1018) #нажатие на кнопку ввода сообщения в тг await asyncio.sleep(1) pyautogui.write('/start', interval=0.1) pyautogui.press('enter') while activ_click != 0: await asyncio.sleep(1) activ_click -= 1 pyautogui.write('1', interval=0.1) pyautogui.press('enter') await asyncio.sleep(1) pyautogui.click(x = 683, y = 859)#активация чека await asyncio.sleep(1) pyautogui.click(x = 267, y = 109)#возврат в меню бота Python import pyautogui import asyncio '''активация чеков''' async def act_checks(): activ_click = int(input('Введи кол-во активаций кликера: ')) if activ_click > 50: m = activ_click // 50 await asyncio.sleep(2) pyautogui.click(x=655, y=1018) #нажатие на кнопку ввода сообщения в тг await asyncio.sleep(1) pyautogui.write('/start', interval=0.1) pyautogui.press('enter') while m != 0: m -= 1 activ_click = 50 while activ_click != 0: await asyncio.sleep(1) activ_click -= 1 pyautogui.write('1', interval=0.1) pyautogui.press('enter') await asyncio.sleep(1) pyautogui.click(x = 683, y = 859) #активация чека await asyncio.sleep(1) pyautogui.click(x = 267, y = 109) #возврат в меню бота await asyncio.sleep(5) else: await asyncio.sleep(2) pyautogui.click(x=655, y=1018) #нажатие на кнопку ввода сообщения в тг await asyncio.sleep(1) pyautogui.write('/start', interval=0.1) pyautogui.press('enter') while activ_click != 0: await asyncio.sleep(1) activ_click -= 1 pyautogui.write('1', interval=0.1) pyautogui.press('enter') await asyncio.sleep(1) pyautogui.click(x = 683, y = 859)#активация чека await asyncio.sleep(1) pyautogui.click(x = 267, y = 109)#возврат в меню бота Код нажимает грубо говоря через сторонний софт, поэтому и нет бана аккаунта. С проблемой задержки самого тг вроде бы помогли интервалы нажатий. Там если очень много запросов, то криптобот жестко лагает, поэтому пришлось сделать разделение. Если большше 50 запросов, то они разделяются по 50 штук, и между такими циклами будет задержка по 20 сек, чтоб криптобот отдохнул. Для поиска координат можно использовать простой код, который через 3 секунды после запуска будет писать какие корды координаты import pyautogui import time # Даем время, чтобы переключиться на нужное окно или место на экране time.sleep(3) #получаем текущие координаты курсора мыши x, y = pyautogui.position() print(f"Координаты курсора: x = {x}, y = {y}") Python import pyautogui import time # Даем время, чтобы переключиться на нужное окно или место на экране time.sleep(3) #получаем текущие координаты курсора мыши x, y = pyautogui.position() print(f"Координаты курсора: x = {x}, y = {y}") в файле main .py пишем: main.py главная функция для запуска софта import asyncio from bot import make_bot from act import act_checks async def main(): bot, dp, start_polling = make_bot() #запуск бота bot_task = asyncio.create_task(start_polling()) #запуск активатора чеков while True: await act_checks() await asyncio.sleep(1) if name == "main": asyncio.run(main()) Python import asyncio from bot import make_bot from act import act_checks async def main(): bot, dp, start_polling = make_bot() #запуск бота bot_task = asyncio.create_task(start_polling()) #запуск активатора чеков while True: await act_checks() await asyncio.sleep(1) if name == "main": asyncio.run(main()) Вот и все, остается только запустить код main.py и надеяться на успех. Всем удачи!!! доп Если вы выясните полный алгоритм или выясните как можно за короткий промежуток времени активировать большее кол-во чеков, то шансы значительно возрастут, тк в моем коде достаточно большие интервалы времени, от чего шанс перехвата падает. Был бы рад услышать какие-либо идеи по поводу этого софта или каких-либо прочих. Если у вас есть что то интересное, то вот мой аккаунт Программировать я начал не так давно, да и на лолзе я еще новокек, так что не судите строго (в некоторых местах в статье я поставил лишние пробелы, тк лолз форматирует это в ссылку)
Cartier, ух, можно же еще на одном компе несколько акков отрабатывать, миллионы тысяч денег уже в кармане