Подведи собственные итоги года совместно с YOUGAME и забери ценные призы! Перейти

Софт Лоадер на питоне

  • Автор темы Автор темы hkon
  • Дата начала Дата начала
Пользователь
Пользователь
Статус
Оффлайн
Регистрация
17 Мар 2021
Сообщения
414
Реакции
102
модифицировал лоадер с этой темы
- добавил гуй
- переделал 2 iq защиту от httpdebugger а, теперь 3 iq))
- добавил чек на подмену
- добавил отправку хвида по вебхуку

Python:
Expand Collapse Copy
from ctypes import (WinError, byref, c_int, c_long, c_ulong,create_string_buffer, windll)
import psutil
import time
import getpass
from socket import gethostname
import os
import requests
import urllib
import dearpygui.dearpygui as dpg
import pastebinOmatic as pom
from discord_webhook import DiscordWebhook, DiscordEmbed
from uuid import getnode
import subprocess

####setings####
webhook_url = '' #your discord webhok url for sending hwids
dll_url = '' #github url to the cheat dll
hwids_url = '' #pastebin link to hwid !!NOT RAW!!
pastebin_username = '' #pastebin username
###############

class Injector:
    PROC_ALL_ACCESS = (0x000F0000 | 0x00100000 | 0x00000FFF)
    MEM_CREATE = 0x00001000 | 0x00002000
    MEM_RELEASE = 0x8000
    PAGE_EXECUTE_READWRITE = 0x40

    def __init__(self):
        self.kernel32 = windll.kernel32
        self.user32 = windll.user32
        self.pid = c_ulong()
        self.handle = None

    def create_process(self, path):
        return subprocess.Popen([path]).pid

    def load_from_pid(self, pid):
        self.unload()
        self.pid = c_ulong(pid)
        self.handle = self.kernel32.OpenProcess(self.PROC_ALL_ACCESS, 0, pid)
        if not self.handle:
            raise WinError()

    def unload(self):
        if self.handle:
            self.kernel32.CloseHandle(self.handle)
            if not self.handle:
                raise WinError()
        self.handle = None

    def alloc_remote(self, buffer, size):
        alloc = self.kernel32.VirtualAllocEx(self.handle, None, c_int(size),
                                             self.MEM_CREATE, self.PAGE_EXECUTE_READWRITE)
        if not alloc:
            raise WinError()
        self.write_memory(alloc, buffer)
        return alloc

    def free_remote(self, addr, size):
        if not self.kernel32.VirtualFreeEx(self.handle, addr, c_int(0), self.MEM_RELEASE):
            raise WinError()

    def get_address_from_module(self, module, function):
        module_addr = self.kernel32.GetModuleHandleA(module.encode("ascii"))
        if not module_addr:
            raise WinError()
        function_addr = self.kernel32.GetProcAddress(module_addr, function.encode("ascii"))
        if not module_addr:
            raise WinError()
        return function_addr

    def create_remote_thread(self, function_addr, args):
        dll_addr = c_long(0)
        args_addr = self.alloc_remote(args, len(args))
        thread = self.kernel32.CreateRemoteThread(self.handle, None, None, c_long(function_addr),
                                                  c_long(args_addr), None, None)
        if not thread:
            raise WinError()
        if self.kernel32.WaitForSingleObject(thread, 0xFFFFFFFF) == 0xFFFFFFFF:
            raise WinError()
        if not self.kernel32.GetExitCodeThread(thread, byref(dll_addr)):
            raise WinError()
        self.free_remote(args_addr, len(args))
        return dll_addr.value

    def read_memory(self, addr, size):
        buffer = create_string_buffer(size)
        if not self.kernel32.ReadProcessMemory(self.handle, c_long(addr), buffer, size, None):
            raise WinError()
        return buffer

    def write_memory(self, addr, string):
        size = len(string)
        if not self.kernel32.WriteProcessMemory(self.handle, addr, string, size, None):
            raise WinError()

    def load_library(self, buffer):
        function_addr = self.get_address_from_module("kernel32.dll", "LoadLibraryA")
        dll_addr = self.create_remote_thread(function_addr, buffer)
        return dll_addr

    def inject_dll(self, path):
        return self.load_library(path.encode("ascii"))

    def call_from_injected(self, path, dll_addr, function, args):
        function_offset = self.get_offset_of_exported_function(path.encode("ascii"), function)
        self.create_remote_thread(dll_addr + function_offset, args)

    def get_offset_of_exported_function(self, module, function):
        base_addr = self.kernel32.LoadLibraryA(module)
        if not base_addr:
            raise WinError()
        function_addr = self.kernel32.GetProcAddress(base_addr, function.encode("ascii"))
        if not function_addr:
            raise WinError()
        if not self.kernel32.FreeLibrary(base_addr):
            raise WinError()
        return function_addr - base_addr



def protect():
    # superior debug check
    for proc in psutil.process_iter():
        name = proc.name()
        if 'dbg' or 'debugger' or 'debug' in name:
            return True
        else:
            return False

hwid = getnode() #geting hwid (mac adres)

user = getpass.getuser()
hostname = gethostname()
userhome = os.path.expanduser('~')

path_process = "C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo.exe"
path_dll = "/Users/" + os.path.split(userhome)[-1] + "/Videos/OneDriveUPD.dll"

def getdll():
    urllib.request.urlretrieve(dll_url, '/Users/' + os.path.split(userhome)[-1] + '/Videos/OneDriveUPD.dll') #very nice location to store the dll, I know
    return

def inject():
    if protect() == False:
        if pom.parce(hwids_url).get_author() == pastebin_username.upper():
            if hwid in pom.parce(hwids_url).get_content():
                dpg.set_value(statustext, 'injecting...')
                getdll()
                injector = Injector()
                pid = injector.create_process(path_process)
                time.sleep(1)
                injector.load_from_pid(pid)
                time.sleep(1)
                dll_addr = injector.inject_dll(path_dll)
                dpg.set_value(statustext, 'injected!')
                return
            else:
                dpg.set_value(statustext, 'invalid hwid')
                return
        else:
            dpg.set_value(statustext, 'superior podmena with httpdebugger)))))')
            time.sleep(3)
            raise SystemExit
    else:
        dpg.set_value(statustext, 'debug me harder UwU')
        time.sleep(3)
        raise SystemExit

def send_hwid():
    webhook = DiscordWebhook(url=webhook_url)
    embed = DiscordEmbed(title=user + 'sended hwid to you', description=hwid)
    webhook.add_embed(embed)
    webhook.execute()
    dpg.set_value(item=statustext, value='hwid sended')
    return

def gui():
    with dpg.window(label='cringe') as loader_window:
        global send_hwid, injectt, statustext
        dpg.add_text('ULTRA CHIT')
        send_hwidb = dpg.add_button(label='send hwid')
        injectt = dpg.add_button(label='inject')
        statustext = dpg.add_text('')
        dpg.add_clicked_handler(send_hwidb, user_data=send_hwidb, callback=send_hwid)

    vp = dpg.create_viewport(title='cringe', width=200, height=200)
    dpg.setup_dearpygui(viewport=vp)
    dpg.show_viewport(vp)
    dpg.set_primary_window(window=loader_window, value=True)
    dpg.start_dearpygui()

gui()


не пишите типо "лучше бы на плюсах сделал" - делал по рофлу
 
Там хотя бы mitmproxy используется?? Если нет, то все равно 0iq.. Хотя и его на изи обойти..
В питоне по дефолту используется собственное хранилище сертификатов. Не выйдет использование http debugger'а без предварительной распаковки файла и изменения доверенных издаталей.
 
А так, я думаю, не стоит пояснять, почему данный лоадер все еще имеет ужасную защиту. Достаточно немного поколдовать над .pyc файлом и кряк готов.
 
А так, я думаю, не стоит пояснять, почему данный лоадер все еще имеет ужасную защиту. Достаточно немного поколдовать над .pyc файлом и кряк готов.
Я и сам знаю как это крякнуть, а именно просто создать файл pastebinOmatic.py и в def get_content() убрать весь код и поставить return getnode() :roflanEbalo:
 
В питоне по дефолту используется собственное хранилище сертификатов. Не выйдет использование http debugger'а без предварительной распаковки файла и изменения доверенных издаталей.
Открою секрет, но Python автоматически тебе распаковывает все файлы в папку %temp%)))
 
Открою секрет, но Python автоматически тебе распаковывает все файлы в папку %temp%)))
Каво, может на старых версиях это так, но если на новых это правда то крякалось бы всё за секунду
 
Открою секрет, но Python автоматически тебе распаковывает все файлы в папку %temp%)))
Открою тебе секрет, там тебе не выдадут код при распаковке...
Каво, может на старых версиях это так, но если на новых это правда то крякалось бы всё за секунду
Причем тут питон вообще...
Это pyinstaller делает SFX архив, который каждый ребенок в 2к17 умел собирать (кто понял по чему, тот красава(.
 
ну и нахуя? Даже отбитый кодер на высоко-уровневом языке лучше выучит Си,который работает на уровне Асемблера и не будт ебать мозги.Правдо такой лоадер изи будет крякнуть программистом в блокноте на Ассемблере.Во мем будет,такие люди даже букв не знатья.Защита от 100iq
??
 
1. Спасибо, что не забыл про кредиты)
2. По-моему мой инжектор не работает, можем вместе его переписать
 
Открою тебе секрет, там тебе не выдадут код при распаковке...
А кому нужен этот сранный говнокод, если можно добавить свой сертификат в CA и отслеживать трафик?
 
А кому нужен этот сранный говнокод, если можно добавить свой сертификат в CA и отслеживать трафик?
Дадут тебе исходники оффлайн бота, и будешь сидеть ждать трафик :da::da:
 
модифицировал лоадер с этой темы
- добавил гуй
- переделал 2 iq защиту от httpdebugger а, теперь 3 iq))
- добавил чек на подмену
- добавил отправку хвида по вебхуку

Python:
Expand Collapse Copy
from ctypes import (WinError, byref, c_int, c_long, c_ulong,create_string_buffer, windll)
import psutil
import time
import getpass
from socket import gethostname
import os
import requests
import urllib
import dearpygui.dearpygui as dpg
import pastebinOmatic as pom
from discord_webhook import DiscordWebhook, DiscordEmbed
from uuid import getnode
import subprocess

####setings####
webhook_url = '' #your discord webhok url for sending hwids
dll_url = '' #github url to the cheat dll
hwids_url = '' #pastebin link to hwid !!NOT RAW!!
pastebin_username = '' #pastebin username
###############

class Injector:
    PROC_ALL_ACCESS = (0x000F0000 | 0x00100000 | 0x00000FFF)
    MEM_CREATE = 0x00001000 | 0x00002000
    MEM_RELEASE = 0x8000
    PAGE_EXECUTE_READWRITE = 0x40

    def __init__(self):
        self.kernel32 = windll.kernel32
        self.user32 = windll.user32
        self.pid = c_ulong()
        self.handle = None

    def create_process(self, path):
        return subprocess.Popen([path]).pid

    def load_from_pid(self, pid):
        self.unload()
        self.pid = c_ulong(pid)
        self.handle = self.kernel32.OpenProcess(self.PROC_ALL_ACCESS, 0, pid)
        if not self.handle:
            raise WinError()

    def unload(self):
        if self.handle:
            self.kernel32.CloseHandle(self.handle)
            if not self.handle:
                raise WinError()
        self.handle = None

    def alloc_remote(self, buffer, size):
        alloc = self.kernel32.VirtualAllocEx(self.handle, None, c_int(size),
                                             self.MEM_CREATE, self.PAGE_EXECUTE_READWRITE)
        if not alloc:
            raise WinError()
        self.write_memory(alloc, buffer)
        return alloc

    def free_remote(self, addr, size):
        if not self.kernel32.VirtualFreeEx(self.handle, addr, c_int(0), self.MEM_RELEASE):
            raise WinError()

    def get_address_from_module(self, module, function):
        module_addr = self.kernel32.GetModuleHandleA(module.encode("ascii"))
        if not module_addr:
            raise WinError()
        function_addr = self.kernel32.GetProcAddress(module_addr, function.encode("ascii"))
        if not module_addr:
            raise WinError()
        return function_addr

    def create_remote_thread(self, function_addr, args):
        dll_addr = c_long(0)
        args_addr = self.alloc_remote(args, len(args))
        thread = self.kernel32.CreateRemoteThread(self.handle, None, None, c_long(function_addr),
                                                  c_long(args_addr), None, None)
        if not thread:
            raise WinError()
        if self.kernel32.WaitForSingleObject(thread, 0xFFFFFFFF) == 0xFFFFFFFF:
            raise WinError()
        if not self.kernel32.GetExitCodeThread(thread, byref(dll_addr)):
            raise WinError()
        self.free_remote(args_addr, len(args))
        return dll_addr.value

    def read_memory(self, addr, size):
        buffer = create_string_buffer(size)
        if not self.kernel32.ReadProcessMemory(self.handle, c_long(addr), buffer, size, None):
            raise WinError()
        return buffer

    def write_memory(self, addr, string):
        size = len(string)
        if not self.kernel32.WriteProcessMemory(self.handle, addr, string, size, None):
            raise WinError()

    def load_library(self, buffer):
        function_addr = self.get_address_from_module("kernel32.dll", "LoadLibraryA")
        dll_addr = self.create_remote_thread(function_addr, buffer)
        return dll_addr

    def inject_dll(self, path):
        return self.load_library(path.encode("ascii"))

    def call_from_injected(self, path, dll_addr, function, args):
        function_offset = self.get_offset_of_exported_function(path.encode("ascii"), function)
        self.create_remote_thread(dll_addr + function_offset, args)

    def get_offset_of_exported_function(self, module, function):
        base_addr = self.kernel32.LoadLibraryA(module)
        if not base_addr:
            raise WinError()
        function_addr = self.kernel32.GetProcAddress(base_addr, function.encode("ascii"))
        if not function_addr:
            raise WinError()
        if not self.kernel32.FreeLibrary(base_addr):
            raise WinError()
        return function_addr - base_addr



def protect():
    # superior debug check
    for proc in psutil.process_iter():
        name = proc.name()
        if 'dbg' or 'debugger' or 'debug' in name:
            return True
        else:
            return False

hwid = getnode() #geting hwid (mac adres)

user = getpass.getuser()
hostname = gethostname()
userhome = os.path.expanduser('~')

path_process = "C:\Program Files (x86)\Steam\steamapps\common\Counter-Strike Global Offensive\csgo.exe"
path_dll = "/Users/" + os.path.split(userhome)[-1] + "/Videos/OneDriveUPD.dll"

def getdll():
    urllib.request.urlretrieve(dll_url, '/Users/' + os.path.split(userhome)[-1] + '/Videos/OneDriveUPD.dll') #very nice location to store the dll, I know
    return

def inject():
    if protect() == False:
        if pom.parce(hwids_url).get_author() == pastebin_username.upper():
            if hwid in pom.parce(hwids_url).get_content():
                dpg.set_value(statustext, 'injecting...')
                getdll()
                injector = Injector()
                pid = injector.create_process(path_process)
                time.sleep(1)
                injector.load_from_pid(pid)
                time.sleep(1)
                dll_addr = injector.inject_dll(path_dll)
                dpg.set_value(statustext, 'injected!')
                return
            else:
                dpg.set_value(statustext, 'invalid hwid')
                return
        else:
            dpg.set_value(statustext, 'superior podmena with httpdebugger)))))')
            time.sleep(3)
            raise SystemExit
    else:
        dpg.set_value(statustext, 'debug me harder UwU')
        time.sleep(3)
        raise SystemExit

def send_hwid():
    webhook = DiscordWebhook(url=webhook_url)
    embed = DiscordEmbed(title=user + 'sended hwid to you', description=hwid)
    webhook.add_embed(embed)
    webhook.execute()
    dpg.set_value(item=statustext, value='hwid sended')
    return

def gui():
    with dpg.window(label='cringe') as loader_window:
        global send_hwid, injectt, statustext
        dpg.add_text('ULTRA CHIT')
        send_hwidb = dpg.add_button(label='send hwid')
        injectt = dpg.add_button(label='inject')
        statustext = dpg.add_text('')
        dpg.add_clicked_handler(send_hwidb, user_data=send_hwidb, callback=send_hwid)

    vp = dpg.create_viewport(title='cringe', width=200, height=200)
    dpg.setup_dearpygui(viewport=vp)
    dpg.show_viewport(vp)
    dpg.set_primary_window(window=loader_window, value=True)
    dpg.start_dearpygui()

gui()


не пишите типо "лучше бы на плюсах сделал" - делал по рофлу
бля пж сделай лодер без протекшн хуйайди
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
мусор не юзабельный
 
Назад
Сверху Снизу