Hello guys i am trying to make work skinchanger but skin is not changing.. game is forceupdating but weapon is still default.
Code:
#include "skinchanger.h"
#include "memory.h"
CSkinChanger* skinchanger = new CSkinChanger();
CSkinChanger::CSkinChanger()
{
}
CSkinChanger::~CSkinChanger()
{
current_weapon = NULL;
}
void CSkinChanger::changeName(char* name)
{
WriteProcessMemory(mem->hProcess, (PBYTE*)(current_weapon + 0x2FF4), name, sizeof(char*)* 5, 0);
}
void CSkinChanger::doSmth()
{
mem->WriteMem<int>(current_weapon + 0x01E8, 0);//m_iItemIDHigh
mem->WriteMem<int>(current_weapon + 0x01EC, -1);//m_iItemIDLow
mem->WriteMem<int>(current_weapon + 0x4D68, 0);//m_OriginalOwnerXuidLow
mem->WriteMem<int>(current_weapon + 0x4D6C, 0);//m_OriginalOwnerXuidHigh
}
void CSkinChanger::setSkin(int id)
{
mem->WriteMem<int>(current_weapon + 0x4D70, id);//m_nFallbackPaintKit
}
void CSkinChanger::setStatTrak(int count)
{
mem->WriteMem<int>(current_weapon + 0x4D7C, count);//m_nFallbackStatTrak
}
void CSkinChanger::setSeed(int seed)
{
mem->WriteMem<int>(current_weapon + 0x4D74, seed);//m_nFallbackSeed
}
void CSkinChanger::setWear(float wear)
{
mem->WriteMem<float>(current_weapon + 0x4D78, wear);//m_flFallbackWear
}
Code:
#include "memory.h"
CMemory* mem = new CMemory();
CMemory::CMemory()
{
}
CMemory::~CMemory()
{
CloseHandle(hProcess);
}
void CMemory::Process(char* ProcessName)
{
HANDLE hPID = CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, NULL);
PROCESSENTRY32 ProcEntry;
ProcEntry.dwSize = sizeof(ProcEntry);
do
if (!strcmp(ProcEntry.szExeFile, ProcessName))
{
PID = ProcEntry.th32ProcessID;
CloseHandle(hPID);
hProcess = OpenProcess(PROCESS_ALL_ACCESS, FALSE, PID);
return;
}
while (Process32Next(hPID, &ProcEntry));
system("pause");
exit(0);
}
bool CMemory::DataCompare(BYTE* data, BYTE* sign, char* mask)
{
for(; *mask; mask++, sign++, data++)
{
if(*mask == 'x' && *data != *sign)
{
return false;
}
}
return true;
}
DWORD CMemory::FindSignature(DWORD base, DWORD size, BYTE* sign, char* mask)
{
MEMORY_BASIC_INFORMATION mbi = {0};
DWORD offset = 0;
while(offset < size)
{
VirtualQueryEx(hProcess, (LPCVOID)(base + offset), &mbi, sizeof(MEMORY_BASIC_INFORMATION));
if(mbi.State != MEM_FREE)
{
BYTE* buffer = new BYTE[mbi.RegionSize];
ReadProcessMemory(hProcess, mbi.BaseAddress, buffer, mbi.RegionSize, NULL);
for(int i = 0; i < mbi.RegionSize; i++)
{
if(DataCompare(buffer + i, sign, mask))
{
delete[] buffer;
return (DWORD)mbi.BaseAddress + i;
}
}
delete[] buffer;
}
offset += mbi.RegionSize;
}
return 0;
}
DWORD CMemory::Module(char* ModuleName)
{
HANDLE hModule = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, PID);
MODULEENTRY32 mEntry;
mEntry.dwSize = sizeof(mEntry);
do
if (!strcmp(mEntry.szModule, ModuleName))
{
CloseHandle(hModule);
return (DWORD)mEntry.modBaseAddr;
}
while (Module32Next(hModule, &mEntry));
return 0;
}
DWORD CMemory::ModuleSize(char* ModuleName)
{
HANDLE hModule = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, PID);
MODULEENTRY32 mEntry;
mEntry.dwSize = sizeof(mEntry);
do
if (!strcmp(mEntry.szModule, ModuleName))
{
CloseHandle(hModule);
return (DWORD)mEntry.modBaseSize;
}
while (Module32Next(hModule, &mEntry));
return 0;
}
Code:
void skins()
{
skinchanger->current_weapon = local_player->getCurrentWeapon();
float wear = 0.00001f;
if(GetAsyncKeyState(VK_RMENU) && local_player->getCurrentWeapon() != tempWeap)
{
mem->WriteMem<int>(skinchanger->current_weapon + 0x1530, 0);//m_OriginalOwnerXuidLow
mem->WriteMem<int>(skinchanger->current_weapon + 0x1534, 0);//m_OriginalOwnerXuidHigh
skinchanger->setWear(0.000001f);
mem->WriteMem<int>(skinchanger->current_weapon + 0x15A0, 326);
mem->WriteMem<int>(skinchanger->current_weapon + 0x15A4, 327);
mem->WriteMem<int>(skinchanger->current_weapon + 0x1370, -1);//itemlowid
mem->WriteMem<int>(skinchanger->current_weapon + 0x135C, 3);//m_iEntityQuality -> 0x01D4
skinchanger->setSkin(38);
mem->WriteMem<int>(skinchanger->current_weapon + 0x1358, 507);//itemdefindex
tempWeap = local_player->getCurrentWeapon();
engine->forceUpdate(local_player->getEnginePointer());
//*(PINT)((DWORD)pWeapon + 0x15A0) = Config::KnifeInfo.iViewIndex;
//*(PINT)((DWORD)pWeapon + 0x15A4) = Config::KnifeInfo.iWorldIndex;
//*(PINT)((DWORD)pWeapon + Offsets::m_AttributeManager + Offsets::m_Item + Offsets::m_iItemIDHigh) = -1;
//*(PINT)((DWORD)pWeapon + Offsets::m_AttributeManager + Offsets::m_Item + 0x1D4) = 3;
//pWeapon->Setkit(38);
//*(PINT)((DWORD)pWeapon + 0x1148 + 0x40 + 0x1D0) = Config::KnifeInfo.iWeaponID;
}
if(GetAsyncKeyState(cvars->skin1_key) && local_player->getCurrentWeapon() != tempWeap)
{
//skin->changeName(loc->getCurrentWeapon(), "#LEAKED");
skinchanger->doSmth();
skinchanger->setSkin(cvars->skin1);
tempWeap = local_player->getCurrentWeapon();
engine->forceUpdate(local_player->getEnginePointer());
}
if(GetAsyncKeyState(cvars->skin2_key) && local_player->getCurrentWeapon() != tempWeap)
{
skinchanger->doSmth();
skinchanger->setSkin(cvars->skin2);
skinchanger->setStatTrak(1488);
skinchanger->setWear(wear);
tempWeap = local_player->getCurrentWeapon();
engine->forceUpdate(local_player->getEnginePointer());
}
if(GetAsyncKeyState(cvars->skin3_key) && local_player->getCurrentWeapon() != tempWeap)
{
skinchanger->doSmth();
skinchanger->setSkin(cvars->skin3);
skinchanger->setStatTrak(1488);
skinchanger->setWear(wear);
tempWeap = local_player->getCurrentWeapon();
engine->forceUpdate(local_player->getEnginePointer());
}
if(GetAsyncKeyState(cvars->skin4_key) && local_player->getCurrentWeapon() != tempWeap)
{
skinchanger->doSmth();
skinchanger->setSkin(cvars->skin4);
skinchanger->setStatTrak(1488);
skinchanger->setWear(wear);
tempWeap = local_player->getCurrentWeapon();
engine->forceUpdate(local_player->getEnginePointer());
}
if(GetAsyncKeyState(cvars->skin5_key) && local_player->getCurrentWeapon() != tempWeap)
{
skinchanger->doSmth();
skinchanger->setSkin(cvars->skin5);
skinchanger->setStatTrak(1488);
skinchanger->setWear(wear);
tempWeap = local_player->getCurrentWeapon();
engine->forceUpdate(local_player->getEnginePointer());
}
if(GetAsyncKeyState(cvars->skin6_key) && local_player->getCurrentWeapon() != tempWeap)
{
skinchanger->doSmth();
skinchanger->setSkin(cvars->skin6);
skinchanger->setStatTrak(1488);
skinchanger->setWear(wear);
tempWeap = local_player->getCurrentWeapon();
engine->forceUpdate(local_player->getEnginePointer());
}
if(GetAsyncKeyState(VK_NUMPAD9) && local_player->getCurrentWeapon() != tempWeap) //good for snipers
{
skinchanger->doSmth();
mem->WriteMem<int>(local_player->getCurrentWeapon() + m_nModelIndex, 500);
mem->WriteMem<int>(local_player->getCurrentWeapon() + m_iViewModelIndex, 320);
mem->WriteMem<int>(local_player->getCurrentWeapon() + m_iWorldModelIndex, 321);
mem->WriteMem<int>(local_player->getCurrentWeapon() + m_iItemDefinitionIndex, 500);
tempWeap = local_player->getCurrentWeapon();
engine->forceUpdate(local_player->getEnginePointer());
}
Sleep(1);
}
void main()
{
mem->Process(XOR("csgo.exe"));
ClientDLL = mem->Module(XOR("client.dll"));
EngineDLL = mem->Module(XOR("engine.dll"));
ClientDLL_Size = mem->ModuleSize(XOR("client.dll"));
EngineDLL_Size = mem->ModuleSize(XOR("engine.dll"));
HWND newhwnd = FindWindowA(NULL, "Counter-Strike: Global Offensive");
if(newhwnd != NULL)
GetWindowRect(newhwnd, &rc);
cvars->load();
srand(time(NULL));
do
{
local_player->getPlayer();
skins();
} while(true);
system(XOR("pause"));
}
Code:
DWORD LocPlayer = 0xA6D444;
DWORD EntList = 0x4A5B8F4;
DWORD attackAddr = 0x2EC7930;
DWORD jumpAddr = 0x4AF0464;
DWORD m_dwGlowObject = 0x00000000;
DWORD m_dwClientState = 0x6062B4;
DWORD m_dwViewAngles = 0x4D0C;
DWORD m_iCrossHairID = 0xC554;
DWORD bSendPackets = 0xF1797;
DWORD m_dwViewMatrix = 0x4A4D504;
//selfupdate
DWORD m_fFlags = 0x100;//
DWORD m_bSpotted = 0x935;//
DWORD m_hActiveWeapon = 0x4AF8;//
DWORD m_iTeamNum = 0xF0;//
DWORD m_iHealth = 0xFC;//
DWORD m_vecOrigin = 0x134;//
DWORD m_vecVelocity = 0x110;//
DWORD m_vecPunch = 0x2FF8;//
DWORD m_iClip1 = 0x31D4;////
DWORD m_dwBoneMatrix = 0x267C;//
DWORD m_lifeState = 0x25B;//
DWORD m_vecViewOffset = 0x104;//
DWORD m_iShotsFired = 0xA280;////
DWORD m_bDormant = 0xE9;//
DWORD m_flFlashMaxAlpha = 0xA2C4;////
DWORD m_iGlowIndex = 0xA2E0;////
DWORD m_flNextPrimaryAttack = 0x4DD8;////
DWORD m_bIsScoped = 0x548C;////
DWORD m_iFOV = 0x4DD8;////
//weapon
DWORD m_nModelIndex = 0x254;//
DWORD m_iItemDefinitionIndex = 0x01D0;////
DWORD m_iViewModelIndex = 0x4DE0;////
DWORD m_iWorldModelIndex = 0x4DE4;////
DWORD m_iWorldDroppedModelIndex = 0x4DE8;////