From fc7a391258c686dc3db534fe6f2dd69f24b05764 Mon Sep 17 00:00:00 2001 From: ALittlePatate <48603993+ALittlePatate@users.noreply.github.com> Date: Thu, 1 Apr 2021 12:12:13 +0200 Subject: [PATCH] Add files via upload --- utils/skinchanger.py | 162 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 162 insertions(+) create mode 100644 utils/skinchanger.py diff --git a/utils/skinchanger.py b/utils/skinchanger.py new file mode 100644 index 0000000..5d55d41 --- /dev/null +++ b/utils/skinchanger.py @@ -0,0 +1,162 @@ +import time +import ctypes, sys, os +import pymem +import requests +import keyboard +from Offsets import * +from configparser import ConfigParser +sys.path.insert(1, "classes/") +from skin_id_dumper import main as skin_dump + +class skinchanger_func() : + + def __init__(self): + try : + pm = pymem.Pymem("csgo.exe") + except : + MessageBox = ctypes.windll.user32.MessageBoxW + MessageBox(None, 'Could not find the csgo.exe process !', 'Error', 16) + return + + client = pymem.process.module_from_name(pm.process_handle, "client.dll").lpBaseOfDll + engine = pymem.process.module_from_name(pm.process_handle, "engine.dll").lpBaseOfDll + + engine_state = pm.read_int( engine + dwClientState ) + + skin_dict, skin_list = skin_dump() #using skin_dict only + + weapons_id = { + "AK47": 7, + "AUG": 262152, + "FAMAS": 10, + "Galil_AR": 13, + "M4A1S": 60, + "M4A4": 16, + "SG_553": 39, + "AWP": 9, + "SSG_08": 40, + "G3SG1": 11, + "SCAR20": 38, + "MAC10": 17, + "MP7": 33, + "MP9": 34, + "PPBizon": 36, + "P90": 19, + "UMP45": 24, + "MP5SD": 23, + "MAG7": 27, + "Nova": 35, + "SawedOff": 262173, + "XM1014": 25, + "Negev": 28, + "M249": 14, + "USPS": 61, + "Desert_Eagle": 1, + "Glock18": 4, + "FiveSeven": 3, + "P250": 36, + "Tec9": 30, + "P2000": 32, + "R8_Revolver": 64, + "CZ75Auto": 63, + "Dual_Berettas": 2 + } + + self.config_p = ConfigParser() + while True: + self.config_last = config.read_last(self) + + self.config_p.read('configs/'+self.config_last) + active_weapons = config.active_weapons(self) + print(active_weapons) + for weapon, skin in active_weapons.items() : + fallbackpaint = int(skin_dict[skin]) + seed = int(self.config_p.get('SKINCHANGER', weapon+"_se")) + stattrack_v = int(self.config_p.get('SKINCHANGER', weapon+"_stv")) + float_v = float(self.config_p.get('SKINCHANGER', weapon+"_f")) + stattrack_y = self.config_p.get('SKINCHANGER', weapon+"_st") + + for k in range(0,1000) : + local_player = pm.read_int( client + dwLocalPlayer ) + for i in range(0, 8): + my_weapons = pm.read_int( local_player + m_hMyWeapons + (i - 1) * 0x4 ) & 0xFFF + weapon_address = pm.read_int( client + dwEntityList + (my_weapons - 1) * 0x10 ) + if weapon_address: + weapon_id_2 = pm.read_short(weapon_address + m_iItemDefinitionIndex) + if weapon_id_2 == weapons_id[weapon] : + weapon_owner = pm.read_int(weapon_address + m_OriginalOwnerXuidLow) + pm.write_int( weapon_address + m_iItemIDHigh, -1 ) + pm.write_int( weapon_address + m_nFallbackPaintKit, fallbackpaint ) + pm.write_int( weapon_address + m_iAccountID, weapon_owner ) + + if stattrack_y == "True" : + pm.write_int( weapon_address + m_nFallbackStatTrak, stattrack_v ) + + pm.write_int( weapon_address + m_nFallbackSeed, seed ) + pm.write_float( weapon_address + m_flFallbackWear, float_v) + + if keyboard.is_pressed( "f6" ): + pm.write_int( engine_state + 0x174, -1 ) + +class config() : + def read_last(self) : + while True : #If there is an error because we are writing the last config at the same time + try : + with open("configs/last/last.txt", "r") as f : + for line in f : + last = line + + return last + except : + pass + + def read_active_weapons(self) : + + all_weapons = { + "AK47": self.config_p.get('SKINCHANGER', 'AK47'), + "AUG": self.config_p.get('SKINCHANGER', 'AUG'), + "AWP": self.config_p.get('SKINCHANGER', 'AWP'), + "CZ75Auto": self.config_p.get('SKINCHANGER', 'CZ75Auto'), + "Desert_Eagle": self.config_p.get('SKINCHANGER', 'Desert_Eagle'), + "Dual_Berettas": self.config_p.get('SKINCHANGER', 'Dual_Berettas'), + "FAMAS": self.config_p.get('SKINCHANGER', 'FAMAS'), + "FiveSeven": self.config_p.get('SKINCHANGER', 'FiveSeven'), + "G3SG1": self.config_p.get('SKINCHANGER', 'G3SG1'), + "Galil_AR": self.config_p.get('SKINCHANGER', 'Galil_AR'), + "Glock18": self.config_p.get('SKINCHANGER', 'Glock18'), + "M249": self.config_p.get('SKINCHANGER', 'M249'), + "M4A1S": self.config_p.get('SKINCHANGER', 'M4A1S'), + "M4A4": self.config_p.get('SKINCHANGER', 'M4A4'), + "MAC10": self.config_p.get('SKINCHANGER', 'MAC10'), + "MAG7": self.config_p.get('SKINCHANGER', 'MAG7'), + "MP5SD": self.config_p.get('SKINCHANGER', 'MP5SD'), + "MP7": self.config_p.get('SKINCHANGER', 'MP7'), + "MP9": self.config_p.get('SKINCHANGER', 'MP9'), + "Negev": self.config_p.get('SKINCHANGER', 'Negev'), + "Nova": self.config_p.get('SKINCHANGER', 'Nova'), + "P2000": self.config_p.get('SKINCHANGER', 'P2000'), + "P250": self.config_p.get('SKINCHANGER', 'P250'), + "P90": self.config_p.get('SKINCHANGER', 'P90'), + "PPBizon": self.config_p.get('SKINCHANGER', 'PPBizon'), + "R8_Revolver": self.config_p.get('SKINCHANGER', 'R8_Revolver'), + "SCAR20": self.config_p.get('SKINCHANGER', 'SCAR20'), + "SG_553": self.config_p.get('SKINCHANGER', 'SG_553'), + "SSG_08": self.config_p.get('SKINCHANGER', 'SSG_08'), + "SawedOff": self.config_p.get('SKINCHANGER', 'SawedOff'), + "Tec9": self.config_p.get('SKINCHANGER', 'Tec9'), + "UMP45": self.config_p.get('SKINCHANGER', 'UMP45'), + "USPS": self.config_p.get('SKINCHANGER', 'USPS'), + "XM1014": self.config_p.get('SKINCHANGER', 'XM1014'), + } + + return all_weapons + + def active_weapons(self) : + all_weapons = config.read_active_weapons(self) + + active_weapons = {} + for weapon, value in all_weapons.items(): + if value != "0" : + active_weapons[weapon] = value + + return active_weapons \ No newline at end of file