Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import os
- import psutil
- from time import sleep
- def clientdlledit_1():
- bytesdefc = b'\x83\xec\x38\x48\x85\xd2\x74\x1c\x4d\x85\xc0\x74\x17\x4d\x8b\xc8\x48\x8d\x0d' # оригинал
- bytesrepc = b'\x8b\x0d\xe1\xdc\xdd\x01\x49\x8b\xd0\x48\x8b\x01\x48\xff\xa0\x30\x01\x00\x00' # на что заменяем
- clientdll = r"E://SteamLibrary//steamapps//common//dota 2 beta//game//dota//bin//win64//client.dll" # наш клиент.длл
- modclient = 0 # с помощью переменной проверяем, нужно ли нам изменять файл или нет
- with open(clientdll,'rb') as f:
- s = f.read() # содержимое файла
- f.close()
- if bytesdefc not in s:
- modclient = 1 # файл уже был изменен, расходимся
- if modclient == 0: # файл еще не был изменен
- s = s.replace(bytesdefc,bytesrepc) # заменяем в содержимом нужные нам значения
- with open(clientdll, 'wb') as file:
- file.write(s) # записываем новое содержимое
- file.close()
- def enginedlledit_1():
- bytesdefe1 = b'\x00\xe9\x59\x01\x00\x00\xba\x00\x40\x00\x00\xff\x50\x18\x84\xc0\x74\x76\xe8' # первая пачка оригинальных значений
- bytesrepe1 = b'\x00\xe9\x59\x01\x00\x00\xba\x00\x40\x00\x00\xff\x50\x18\x84\xc0\xeb\x76\xe8' # первая пачка желаемых значений
- bytesdefe2 = b'\x48\x8b\x07\xba\x00\x20\x00\x00\x48\x8b\xcf\xff\x50\x18\x84\xc0\x74\x54\x48' # вторая пачка оригинальных значений
- bytesrepe2 = b'\x48\x8b\x07\xba\x00\x20\x00\x00\x48\x8b\xcf\xff\x50\x18\x84\xc0\xeb\x54\x48' # вторая пачка желаемых значений
- enginedll = r"E://SteamLibrary//steamapps//common//dota 2 beta//game//bin//win64//engine2.dll" # наш енджин.длл
- mode1 = 0 # проверяем, нужно ли заменять первую пачку
- mode2 = 0 # проверям, нужно ли заменять вторую пачку
- with open(enginedll,'rb') as fe:
- se = fe.read() # содержимое файла
- fe.close()
- if bytesdefe1 not in se:
- mode1 = 1 # первая пачка уже модифицирована, проверяем вторую
- if bytesdefe2 not in se:
- mode2 = 1 # вторая пачка уже модифицирована, расходимся
- if mode1 == 0:
- se = se.replace(bytesdefe1,bytesrepe1) # заменяем значения
- with open(enginedll, 'wb') as file:
- file.write(se) # записываем новое содержимое в наш файл
- file.close()
- if mode2 == 0:
- se = se.replace(bytesdefe2,bytesrepe2) # заменяем значения
- with open(enginedll, 'wb') as file:
- file.write(se) # записываем новое содержимое в наш файл
- file.close()
- def clientdlledit_2():
- bytesdefc = b'\x83\xec\x38\x48\x85\xd2\x74\x1c\x4d\x85\xc0\x74\x17\x4d\x8b\xc8\x48\x8d\x0d' # на что заменяем
- bytesrepc = b'\x8b\x0d\xe1\xdc\xdd\x01\x49\x8b\xd0\x48\x8b\x01\x48\xff\xa0\x30\x01\x00\x00' # оригинал
- clientdll = r"E://SteamLibrary//steamapps//common//dota 2 beta//game//dota//bin//win64//client.dll" # наш клиент.длл
- modclient = 0 # с помощью переменной проверяем, нужно ли нам изменять файл или нет
- with open(clientdll,'rb') as f:
- s = f.read() # содержимое файла
- f.close()
- if bytesrepc not in s:
- modclient = 1 # файл уже был изменен, расходимся
- if modclient == 0: # файл еще не был изменен
- s = s.replace(bytesrepc,bytesdefc) # заменяем в содержимом нужные нам значения
- with open(clientdll, 'wb') as file:
- file.write(s) # записываем новое содержимое
- file.close()
- def enginedlledit_2():
- bytesdefe1 = b'\x00\xe9\x59\x01\x00\x00\xba\x00\x40\x00\x00\xff\x50\x18\x84\xc0\x74\x76\xe8' # первая пачка желаемых значений
- bytesrepe1 = b'\x00\xe9\x59\x01\x00\x00\xba\x00\x40\x00\x00\xff\x50\x18\x84\xc0\xeb\x76\xe8' # первая пачка оригинальных значений
- bytesdefe2 = b'\x48\x8b\x07\xba\x00\x20\x00\x00\x48\x8b\xcf\xff\x50\x18\x84\xc0\x74\x54\x48' # вторая пачка желаемых значений
- bytesrepe2 = b'\x48\x8b\x07\xba\x00\x20\x00\x00\x48\x8b\xcf\xff\x50\x18\x84\xc0\xeb\x54\x48' # вторая пачка оригинальных значений
- enginedll = r"E://SteamLibrary//steamapps//common//dota 2 beta//game//bin//win64//engine2.dll" # наш енджин.длл
- mode1 = 0 # проверяем, нужно ли заменять первую пачку
- mode2 = 0 # проверям, нужно ли заменять вторую пачку
- with open(enginedll,'rb') as fe:
- se = fe.read() # содержимое файла
- fe.close()
- if bytesrepe1 not in se:
- mode1 = 1 # первая пачка уже модифицирована, проверяем вторую
- if bytesrepe2 not in se:
- mode2 = 1 # вторая пачка уже модифицирована, расходимся
- if mode1 == 0:
- se = se.replace(bytesrepe1,bytesdefe1) # заменяем значения
- with open(enginedll, 'wb') as file:
- file.write(se) # записываем новое содержимое в наш файл
- file.close()
- if mode2 == 0:
- se = se.replace(bytesrepe2,bytesdefe2) # заменяем значения
- with open(enginedll, 'wb') as file:
- file.write(se) # записываем новое содержимое в наш файл
- file.close()
- def backtodefaultvalues():
- check_1 = 0 # с помощью переменной проверяем процесс доты на запуск
- check_2 = 0 # с помощью переменной проверяем нужно ли нам изменять файл и закрывать программу
- while check_1 < 1: # проверка включина дота или нет
- if "dota2.exe" in (p.name() for p in psutil.process_iter()):
- sleep(1)
- check_1 = 0 # дота запущенна ждём
- else:
- check_1 = 1 # дота не запущенна переходим ко второй части
- while check_2 < 1: # перезапись значений(на дефолтные) если дота закрыта
- if check_1 == 0:
- sleep(1)
- check_2 = 1 # дота запущенна ждём
- elif check_1 == 1:
- clientdlledit_2() # включаем функцию
- enginedlledit_2() # включаем функцию
- check_2 = 0
- break
- def startdota2():
- os.startfile(r'E:/SteamLibrary/steamapps/common/dota 2 beta/game/bin/win64/dota2.exe')
- clientdlledit_1() # включаем функцию
- enginedlledit_1() # включаем функцию
- startdota2() # включаем функцию
- sleep(10) # 10 секунд сна
- backtodefaultvalues() # включаем функцию
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement