olur teşekkür ederim iyi günler@gaspbtw ne zaman hile yapsam bıçak konusu dert olmuştu kaynaklar sınırlı araştırıp yeniden öğrenmem gerektiği için uzun bir konu olur githubda sayısız knife - skinchanger hilesi bulabilirsin kodları araştırarak bulabilirsin
teşekkür ederimelinize saglik guzel icerik
Güzel konu eline sağlık.Merhaba değerli TürkHackTeam üyeleri
Ben Kuara
CSGO Oyununda biliyorsunuz ki hileyi herkes yapıyor ve oyunun tadı tuzu kalmaadığı zamanlar oluyor.
Öyle bir hile olsun ki başkasına oyunu zehir etmeden kendim zevk alayım dediğiniz bu hileyi yani Skin-Changer yapımını öğreteceğim.
Skin-Changer oyunda ki istediğimiz skini kullanmamızda yardımcı olan bir hiledir, yalnızca bizde gözükür öbür oyun arkadaşlarını görmez.
Oyuna renk katmak amaçlı ve para harcamadan istediğimiz skinleri nasıl kullanırız anlatmaya başlayım.
Konuda C++ Kullanacağız, Konu uzun olacağı için "Visual Studio" nasıl kurulur vb ufak şeylere deyinmek istemedim.
! Visual Studio Code kullanmıyoruz
! Visual Studio indirdikten sonra "c++" seçin ve indirmeye bırakın.
-- Şimdi offsets düzeltmemiz gerekiyor
1-Hazedumper Source: GitHub - frk1/hazedumper-rs: Source code of the hazedumper written in Rust
2-Hazedumper Config: GitHub - frk1/hazedumper: up to date csgo offsets and hazedumper config
1- Linke girip sağ tarafta bulunan "Version 2.4.4" kısmına basıyoruz, Windows.zip seçin.
Şimdi masaüstüne "hazedumper" adında klasör oluşturun.
İndirdiğimiz rar içine girin .exe uzantılı program bulacaksınız açtığımız klasöre aktarın.
2- Linke girin ve "config.json" adlı dosyanın içine girin.
"RAW" yazan butona basıyoruz ve kodlar boş bir sayfaya gelecek.
Açtığımız klasöre giriyoruz ve "config.json" adlı metin dosyası oluşturuyoruz.
"RAW" diyerek aldığımız kodları kopyalayıp "notepad++" uygulaması ile "config.json" metin dosyamıza yapıştırıp kaydediyoruz.
!! Notepad++ kullanmayı unutmayın
--CSGO Giriyoruz Alt-Tab attıktan sonra dosyamızdan .exe çalıştırıyoruz yüklendikten sonra dosyalara csgo adlı dosyalar gelecek.
! Oyunu tam ekran pencereliye alın .exe başlattığınızda oyun arayüzünde olmanız geerekiyor
-- Linkleri öğrenelim
3 - Offsets: hazedumper/csgo.hpp at master · frk1/hazedumper.
4 - Item Definitions: mp_items_prohibited - Valve Developer Community
5 - Skin IDs: CS:GO Skin ID List | Total CS:GO
Program açıldıktan sonra "Create a new project" diyoruz
"skinchanger" yazarak devam ediyoruz
Debug x64 kısmını resimdeki gibi değiştirin
"skinchanger" sağ tıklayıp Özellikler diyoruz
"C++ Dil Standardı" kısmını "ISO C++ Standart" yapıyoruz
Gelişmiş kısmından "Karakter Kümesi" diyoruz ve "Çok Baytlı Karakter Kümesi Kullan" diyoruz.,
"Kaynak Dosyaları" sağ tıklayın ekle diyim ve "main.cpp" yazarak enterlayın.
"Üst Bilgi Dosyaları" sağ tıklayın ekle diyin ve "memory.h" yazın enterlayın
"memory.h" verdiğim kodları yapıştırın
C++:#pragma once #define WIN32_LEAN_AND_MEAN #include <Windows.h> #include <TlHelp32.h> #include <cstdint> #include <string_view> class Memory { private: std::uintptr_t processId = 0; void* processHandle = nullptr; public: // Constructor that finds the process id // and opens a handle Memory(const std::string_view processName) noexcept { ::PROCESSENTRY32 entry = { }; entry.dwSize = sizeof(::PROCESSENTRY32); const auto snapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); while (::Process32Next(snapShot, &entry)) { if (!processName.compare(entry.szExeFile)) { processId = entry.th32ProcessID; processHandle = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId); break; } } // Free handle if (snapShot) ::CloseHandle(snapShot); } // Destructor that frees the opened handle ~Memory() { if (processHandle) ::CloseHandle(processHandle); } // Returns the base address of a module by name const std::uintptr_t GetModuleAddress(const std::string_view moduleName) const noexcept { ::MODULEENTRY32 entry = { }; entry.dwSize = sizeof(::MODULEENTRY32); const auto snapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, processId); std::uintptr_t result = 0; while (::Module32Next(snapShot, &entry)) { if (!moduleName.compare(entry.szModule)) { result = reinterpret_cast<std::uintptr_t>(entry.modBaseAddr); break; } } if (snapShot) ::CloseHandle(snapShot); return result; } // Read process memory template <typename T> constexpr const T Read(const std::uintptr_t& address) const noexcept { T value = { }; ::ReadProcessMemory(processHandle, reinterpret_cast<const void*>(address), &value, sizeof(T), NULL); return value; } // Write process memory template <typename T> constexpr void Write(const std::uintptr_t& address, const T& value) const noexcept { ::WriteProcessMemory(processHandle, reinterpret_cast<void*>(address), &value, sizeof(T), NULL); } };
main.cpp beraber kodlayacağız.
Hazırsanız başlayalım artık
C++:#include "memory.h" #include <thread> #include <array> int main() { } int main() { return 0; }
{} Arasına şimdi güncel offset yerleştireceğiz bunları verdiğim linklerden 3. olana giriyoruz.
Şimdi size kelimeleri vericem o kelimeleri teker teker "ctrl+f" yaparak aratacaksınız ve en güncel offset bulacaksınız
KELİMELER
// Hizmetler
dwLocalPlayer
dwEntityList
dwClientState
// Player
m_mHyWWeapons
// Temel
m_flFallbackWear
m_nFallbackPaintKit
m_mFallbackSeed
m_nFallbackStatTrak
m_iItemDefinitionIndex
m_iItemIDHigh
m_iEntityQuality
m_iAccountID
m_OriginalOwnerXuidLow
Örnek 1.sonuç bizlere " constexpr ::std:trdiff_t dwLocalPlayer = 0xDE997C; " bunu vericeck kopyalayıp yapıştırıyoruz tamamını.
C++:#include "memory.h" int main() { // Hizmetler constexpr ::std:trdiff_t dwLocalPlayer = 0xDE997C; constexpr ::std:trdiff_t dwEntityList = 0x4DFEF0C; constexpr ::std:trdiff_t dwClientState = 0x59F19C; // Player constexpr ::std:trdiff_t m_hMyWeapons = 0x2E08; // Temel constexpr ::std:trdiff_t m_flFallbackWear = 0x31E0; constexpr ::std:trdiff_t m_nFallbackPaintKit = 0x31D8; constexpr ::std:trdiff_t m_nFallbackSeed = 0x31DC; constexpr ::std:trdiff_t m_nFallbackStatTrak = 0x31E4; constexpr ::std:trdiff_t m_iItemDefinitionIndex = 0x2FBA; constexpr ::std:trdiff_t m_iItemIDHigh = 0x2FD0; constexpr ::std:trdiff_t m_iEntityQuality = 0x2FBC; constexpr ::std:trdiff_t m_iAccountID = 0x2FD8; constexpr ::std:trdiff_t m_OriginalOwnerXuidLow = 0x31D0; } int main() { return 0; }
Şimdi case silah ıd olarak geçer bunları verdiğim linklerden öğrenebilirsiniz
return skin ıd olarak geçer attığım linkleri araştırarak istediğiniz skinleri bulabilir ıdsını alabilirsiniz
C++:// Silah - Skin constexpr const int GetWeaponPaint(const short& itemDefinition) { switch (itemDefinition) { case 1: return 711; // 1 ıd = deagle case 4: return 38; // 4 ıd = glock case 61: return 653; // 61 ıd = usp case 7: return 490; // 7ıd = ak case 9: return 344; // 9 ıd = awp } }
C++:int main() { const auto memory = Memory{ "csgo.exe" }; // Modül Adresleri const auto client = memory.GetModuleAddress("client.dll"); const auto engine = memory.GetModuleAddress("engine.dll"); // Hack Loop while (true) { std::this_thread::sleep_for(std::chrono::milliseconds(2)); const auto& localPlayer = memory.Read<std::uintptr_t>(client + offset::dwLocalPlayer); const auto& weapons = memory.Read<std::array<unsigned long, 8>>(localPlayer + offset::m_hMyWeapons); // Oyuncu Silah for (const auto& handle : weapons) { const auto& weapon = memory.Read<std::uintptr_t>((client + offset::dwEntityList + (handle & 0xFFF) * 0x10) - 0x10); // Silah Geçerliliği if (!weapon) continue; // Cilt Uygulama if (const auto paint = GetWeaponPaint(memory.Read<short>(weapon + offset::m_iItemDefinitionIndex))) { const bool shouldUpdate = memory.Read<std::int32_t>(weapon + offset::m_nFallbackPaintKit) != paint; // Silah Yedek Değerleri memory.Write<std::int32_t>(weapon + offset::m_iItemIDHigh, -1); memory.Write<std::int32_t>(weapon + offset::m_nFallbackPaintKit, paint); memory.Write<float>(weapon + offset::m_flFallbackWear, 0.1f); if (shouldUpdate) memory.Write<std::int32_t>(memory.Read<std::uintptr_t>(engine + offset::dwClientState) + 0x174, -1); } } } return 0;
-- Kaydediyoruz kısayol olarak Ctrl+S kullanabilirsiniz.
-- Build > Build Solution diyoruz Türkçe ise Derle > Çözümü Derle diyoruz ve kodlar çalışıyor kaydettiğimiz dosyalara .exe olarak gelecek.
--CSGO Açıyoruz ayarlardan tam ekran pencereliye alın ve kütüphaneden aim eğitim sunucularına girin.
--CSGO Çalışırken dosyalardan .exe uzantılı dosyamızı çalıştırıyoruz ve seçtiğmiz silahlara skinler geliyor.
C++:#include "memory.h" #include <thread> #include <array> namespace offset { // Hizmetler constexpr ::std::ptrdiff_t dwLocalPlayer = 0xDE997C; constexpr ::std::ptrdiff_t dwEntityList = 0x4DFEF0C; constexpr ::std::ptrdiff_t dwClientState = 0x59F19C; // Player constexpr ::std::ptrdiff_t m_hMyWeapons = 0x2E08; // Temel constexpr ::std::ptrdiff_t m_flFallbackWear = 0x31E0; constexpr ::std::ptrdiff_t m_nFallbackPaintKit = 0x31D8; constexpr ::std::ptrdiff_t m_nFallbackSeed = 0x31DC; constexpr ::std::ptrdiff_t m_nFallbackStatTrak = 0x31E4; constexpr ::std::ptrdiff_t m_iItemDefinitionIndex = 0x2FBA; constexpr ::std::ptrdiff_t m_iItemIDHigh = 0x2FD0; constexpr ::std::ptrdiff_t m_iEntityQuality = 0x2FBC; constexpr ::std::ptrdiff_t m_iAccountID = 0x2FD8; constexpr ::std::ptrdiff_t m_OriginalOwnerXuidLow = 0x31D0; } // Silah - Skin constexpr const int GetWeaponPaint(const short& itemDefinition) { switch (itemDefinition) { case 1: return 231; // Deagle ID = 1 case 4: return 38; // Glock ID = 4 case 61: return 653; // Usp ID = 61 case 7: return 255; // Ak ID = 7 case 9: return 662; // Awp ID = 9 default: return 0; } } int main() { const auto memory = Memory{ " csgo.exe" }; // Modül Adresleri const auto client = memory.GetModuleAddress("client.dll"); const auto engine = memory.GetModuleAddress("engine.dll"); // Hack Loop while (true) { std::this_thread::sleep_for(std::chrono::milliseconds(2)); const auto& localPlayer = memory.Read<std::uintptr_t>(client + offset::dwLocalPlayer); const auto& weapons = memory.Read<std::array<unsigned long, 8>>(localPlayer + offset::m_hMyWeapons); // Oyuncu Silah for (const auto& handle : weapons) { const auto& weapon = memory.Read<std::uintptr_t>((client + offset::dwEntityList + (handle & 0xFFF) * 0x10) - 0x10); // Silah Geçerliliği if (!weapon) continue; // Cilt Uygulama if (const auto paint = GetWeaponPaint(memory.Read<short>(weapon + offset::m_iItemDefinitionIndex))) { const bool shouldUpdate = memory.Read<std::int32_t>(weapon + offset::m_nFallbackPaintKit) != paint; // Silah Yedek Değerleri memory.Write<std::int32_t>(weapon + offset::m_iItemIDHigh, -1); memory.Write<std::int32_t>(weapon + offset::m_nFallbackPaintKit, paint); memory.Write<float>(weapon + offset::m_flFallbackWear, 0.1f); //memory.Write<std::int32_t>(weapon + offset::m_nFallbackSeed, 0); //memory.Write<std::int32_t>(weapon + offset::m_nFallbackStatIrak, 1337); //memory.Write<std::int32_t>(weapon + offset::m_iAccountID, memory.Read<std::int32_t>(weapon + offset::m_OriginalOwnerXuidLow)); if (shouldUpdate) memory.Write<std::int32_t>(memory.Read<std::uintptr_t>(engine + offset::dwClientState) + 0x174, -1); } } } return 0; }
Kalite Koktu Buralar ama malesef bilgisayarim kasiyor csgodaMerhaba değerli TürkHackTeam üyeleri
Ben Kuara
CSGO Oyununda biliyorsunuz ki hileyi herkes yapıyor ve oyunun tadı tuzu kalmaadığı zamanlar oluyor.
Öyle bir hile olsun ki başkasına oyunu zehir etmeden kendim zevk alayım dediğiniz bu hileyi yani Skin-Changer yapımını öğreteceğim.
Skin-Changer oyunda ki istediğimiz skini kullanmamızda yardımcı olan bir hiledir, yalnızca bizde gözükür öbür oyun arkadaşlarını görmez.
Oyuna renk katmak amaçlı ve para harcamadan istediğimiz skinleri nasıl kullanırız anlatmaya başlayım.
Konuda C++ Kullanacağız, Konu uzun olacağı için "Visual Studio" nasıl kurulur vb ufak şeylere deyinmek istemedim.
! Visual Studio Code kullanmıyoruz
! Visual Studio indirdikten sonra "c++" seçin ve indirmeye bırakın.
-- Şimdi offsets düzeltmemiz gerekiyor
1-Hazedumper Source: GitHub - frk1/hazedumper-rs: Source code of the hazedumper written in Rust
2-Hazedumper Config: GitHub - frk1/hazedumper: up to date csgo offsets and hazedumper config
1- Linke girip sağ tarafta bulunan "Version 2.4.4" kısmına basıyoruz, Windows.zip seçin.
Şimdi masaüstüne "hazedumper" adında klasör oluşturun.
İndirdiğimiz rar içine girin .exe uzantılı program bulacaksınız açtığımız klasöre aktarın.
2- Linke girin ve "config.json" adlı dosyanın içine girin.
"RAW" yazan butona basıyoruz ve kodlar boş bir sayfaya gelecek.
Açtığımız klasöre giriyoruz ve "config.json" adlı metin dosyası oluşturuyoruz.
"RAW" diyerek aldığımız kodları kopyalayıp "notepad++" uygulaması ile "config.json" metin dosyamıza yapıştırıp kaydediyoruz.
!! Notepad++ kullanmayı unutmayın
--CSGO Giriyoruz Alt-Tab attıktan sonra dosyamızdan .exe çalıştırıyoruz yüklendikten sonra dosyalara csgo adlı dosyalar gelecek.
! Oyunu tam ekran pencereliye alın .exe başlattığınızda oyun arayüzünde olmanız geerekiyor
-- Linkleri öğrenelim
3 - Offsets: hazedumper/csgo.hpp at master · frk1/hazedumper.
4 - Item Definitions: mp_items_prohibited - Valve Developer Community
5 - Skin IDs: CS:GO Skin ID List | Total CS:GO
Program açıldıktan sonra "Create a new project" diyoruz
"skinchanger" yazarak devam ediyoruz
Debug x64 kısmını resimdeki gibi değiştirin
"skinchanger" sağ tıklayıp Özellikler diyoruz
"C++ Dil Standardı" kısmını "ISO C++ Standart" yapıyoruz
Gelişmiş kısmından "Karakter Kümesi" diyoruz ve "Çok Baytlı Karakter Kümesi Kullan" diyoruz.,
"Kaynak Dosyaları" sağ tıklayın ekle diyim ve "main.cpp" yazarak enterlayın.
"Üst Bilgi Dosyaları" sağ tıklayın ekle diyin ve "memory.h" yazın enterlayın
"memory.h" verdiğim kodları yapıştırın
C++:#pragma once #define WIN32_LEAN_AND_MEAN #include <Windows.h> #include <TlHelp32.h> #include <cstdint> #include <string_view> class Memory { private: std::uintptr_t processId = 0; void* processHandle = nullptr; public: // Constructor that finds the process id // and opens a handle Memory(const std::string_view processName) noexcept { ::PROCESSENTRY32 entry = { }; entry.dwSize = sizeof(::PROCESSENTRY32); const auto snapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); while (::Process32Next(snapShot, &entry)) { if (!processName.compare(entry.szExeFile)) { processId = entry.th32ProcessID; processHandle = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId); break; } } // Free handle if (snapShot) ::CloseHandle(snapShot); } // Destructor that frees the opened handle ~Memory() { if (processHandle) ::CloseHandle(processHandle); } // Returns the base address of a module by name const std::uintptr_t GetModuleAddress(const std::string_view moduleName) const noexcept { ::MODULEENTRY32 entry = { }; entry.dwSize = sizeof(::MODULEENTRY32); const auto snapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, processId); std::uintptr_t result = 0; while (::Module32Next(snapShot, &entry)) { if (!moduleName.compare(entry.szModule)) { result = reinterpret_cast<std::uintptr_t>(entry.modBaseAddr); break; } } if (snapShot) ::CloseHandle(snapShot); return result; } // Read process memory template <typename T> constexpr const T Read(const std::uintptr_t& address) const noexcept { T value = { }; ::ReadProcessMemory(processHandle, reinterpret_cast<const void*>(address), &value, sizeof(T), NULL); return value; } // Write process memory template <typename T> constexpr void Write(const std::uintptr_t& address, const T& value) const noexcept { ::WriteProcessMemory(processHandle, reinterpret_cast<void*>(address), &value, sizeof(T), NULL); } };
main.cpp beraber kodlayacağız.
Hazırsanız başlayalım artık
C++:#include "memory.h" #include <thread> #include <array> int main() { } int main() { return 0; }
{} Arasına şimdi güncel offset yerleştireceğiz bunları verdiğim linklerden 3. olana giriyoruz.
Şimdi size kelimeleri vericem o kelimeleri teker teker "ctrl+f" yaparak aratacaksınız ve en güncel offset bulacaksınız
KELİMELER
// Hizmetler
dwLocalPlayer
dwEntityList
dwClientState
// Player
m_mHyWWeapons
// Temel
m_flFallbackWear
m_nFallbackPaintKit
m_mFallbackSeed
m_nFallbackStatTrak
m_iItemDefinitionIndex
m_iItemIDHigh
m_iEntityQuality
m_iAccountID
m_OriginalOwnerXuidLow
Örnek 1.sonuç bizlere " constexpr ::std:trdiff_t dwLocalPlayer = 0xDE997C; " bunu vericeck kopyalayıp yapıştırıyoruz tamamını.
C++:#include "memory.h" int main() { // Hizmetler constexpr ::std:trdiff_t dwLocalPlayer = 0xDE997C; constexpr ::std:trdiff_t dwEntityList = 0x4DFEF0C; constexpr ::std:trdiff_t dwClientState = 0x59F19C; // Player constexpr ::std:trdiff_t m_hMyWeapons = 0x2E08; // Temel constexpr ::std:trdiff_t m_flFallbackWear = 0x31E0; constexpr ::std:trdiff_t m_nFallbackPaintKit = 0x31D8; constexpr ::std:trdiff_t m_nFallbackSeed = 0x31DC; constexpr ::std:trdiff_t m_nFallbackStatTrak = 0x31E4; constexpr ::std:trdiff_t m_iItemDefinitionIndex = 0x2FBA; constexpr ::std:trdiff_t m_iItemIDHigh = 0x2FD0; constexpr ::std:trdiff_t m_iEntityQuality = 0x2FBC; constexpr ::std:trdiff_t m_iAccountID = 0x2FD8; constexpr ::std:trdiff_t m_OriginalOwnerXuidLow = 0x31D0; } int main() { return 0; }
Şimdi case silah ıd olarak geçer bunları verdiğim linklerden öğrenebilirsiniz
return skin ıd olarak geçer attığım linkleri araştırarak istediğiniz skinleri bulabilir ıdsını alabilirsiniz
C++:// Silah - Skin constexpr const int GetWeaponPaint(const short& itemDefinition) { switch (itemDefinition) { case 1: return 711; // 1 ıd = deagle case 4: return 38; // 4 ıd = glock case 61: return 653; // 61 ıd = usp case 7: return 490; // 7ıd = ak case 9: return 344; // 9 ıd = awp } }
C++:int main() { const auto memory = Memory{ "csgo.exe" }; // Modül Adresleri const auto client = memory.GetModuleAddress("client.dll"); const auto engine = memory.GetModuleAddress("engine.dll"); // Hack Loop while (true) { std::this_thread::sleep_for(std::chrono::milliseconds(2)); const auto& localPlayer = memory.Read<std::uintptr_t>(client + offset::dwLocalPlayer); const auto& weapons = memory.Read<std::array<unsigned long, 8>>(localPlayer + offset::m_hMyWeapons); // Oyuncu Silah for (const auto& handle : weapons) { const auto& weapon = memory.Read<std::uintptr_t>((client + offset::dwEntityList + (handle & 0xFFF) * 0x10) - 0x10); // Silah Geçerliliği if (!weapon) continue; // Cilt Uygulama if (const auto paint = GetWeaponPaint(memory.Read<short>(weapon + offset::m_iItemDefinitionIndex))) { const bool shouldUpdate = memory.Read<std::int32_t>(weapon + offset::m_nFallbackPaintKit) != paint; // Silah Yedek Değerleri memory.Write<std::int32_t>(weapon + offset::m_iItemIDHigh, -1); memory.Write<std::int32_t>(weapon + offset::m_nFallbackPaintKit, paint); memory.Write<float>(weapon + offset::m_flFallbackWear, 0.1f); if (shouldUpdate) memory.Write<std::int32_t>(memory.Read<std::uintptr_t>(engine + offset::dwClientState) + 0x174, -1); } } } return 0;
-- Kaydediyoruz kısayol olarak Ctrl+S kullanabilirsiniz.
-- Build > Build Solution diyoruz Türkçe ise Derle > Çözümü Derle diyoruz ve kodlar çalışıyor kaydettiğimiz dosyalara .exe olarak gelecek.
--CSGO Açıyoruz ayarlardan tam ekran pencereliye alın ve kütüphaneden aim eğitim sunucularına girin.
--CSGO Çalışırken dosyalardan .exe uzantılı dosyamızı çalıştırıyoruz ve seçtiğmiz silahlara skinler geliyor.
C++:#include "memory.h" #include <thread> #include <array> namespace offset { // Hizmetler constexpr ::std::ptrdiff_t dwLocalPlayer = 0xDE997C; constexpr ::std::ptrdiff_t dwEntityList = 0x4DFEF0C; constexpr ::std::ptrdiff_t dwClientState = 0x59F19C; // Player constexpr ::std::ptrdiff_t m_hMyWeapons = 0x2E08; // Temel constexpr ::std::ptrdiff_t m_flFallbackWear = 0x31E0; constexpr ::std::ptrdiff_t m_nFallbackPaintKit = 0x31D8; constexpr ::std::ptrdiff_t m_nFallbackSeed = 0x31DC; constexpr ::std::ptrdiff_t m_nFallbackStatTrak = 0x31E4; constexpr ::std::ptrdiff_t m_iItemDefinitionIndex = 0x2FBA; constexpr ::std::ptrdiff_t m_iItemIDHigh = 0x2FD0; constexpr ::std::ptrdiff_t m_iEntityQuality = 0x2FBC; constexpr ::std::ptrdiff_t m_iAccountID = 0x2FD8; constexpr ::std::ptrdiff_t m_OriginalOwnerXuidLow = 0x31D0; } // Silah - Skin constexpr const int GetWeaponPaint(const short& itemDefinition) { switch (itemDefinition) { case 1: return 231; // Deagle ID = 1 case 4: return 38; // Glock ID = 4 case 61: return 653; // Usp ID = 61 case 7: return 255; // Ak ID = 7 case 9: return 662; // Awp ID = 9 default: return 0; } } int main() { const auto memory = Memory{ " csgo.exe" }; // Modül Adresleri const auto client = memory.GetModuleAddress("client.dll"); const auto engine = memory.GetModuleAddress("engine.dll"); // Hack Loop while (true) { std::this_thread::sleep_for(std::chrono::milliseconds(2)); const auto& localPlayer = memory.Read<std::uintptr_t>(client + offset::dwLocalPlayer); const auto& weapons = memory.Read<std::array<unsigned long, 8>>(localPlayer + offset::m_hMyWeapons); // Oyuncu Silah for (const auto& handle : weapons) { const auto& weapon = memory.Read<std::uintptr_t>((client + offset::dwEntityList + (handle & 0xFFF) * 0x10) - 0x10); // Silah Geçerliliği if (!weapon) continue; // Cilt Uygulama if (const auto paint = GetWeaponPaint(memory.Read<short>(weapon + offset::m_iItemDefinitionIndex))) { const bool shouldUpdate = memory.Read<std::int32_t>(weapon + offset::m_nFallbackPaintKit) != paint; // Silah Yedek Değerleri memory.Write<std::int32_t>(weapon + offset::m_iItemIDHigh, -1); memory.Write<std::int32_t>(weapon + offset::m_nFallbackPaintKit, paint); memory.Write<float>(weapon + offset::m_flFallbackWear, 0.1f); //memory.Write<std::int32_t>(weapon + offset::m_nFallbackSeed, 0); //memory.Write<std::int32_t>(weapon + offset::m_nFallbackStatIrak, 1337); //memory.Write<std::int32_t>(weapon + offset::m_iAccountID, memory.Read<std::int32_t>(weapon + offset::m_OriginalOwnerXuidLow)); if (shouldUpdate) memory.Write<std::int32_t>(memory.Read<std::uintptr_t>(engine + offset::dwClientState) + 0x174, -1); } } } return 0; }
elinize sağlık hocamMerhaba değerli TürkHackTeam üyeleri
Ben Kuara
CSGO Oyununda biliyorsunuz ki hileyi herkes yapıyor ve oyunun tadı tuzu kalmaadığı zamanlar oluyor.
Öyle bir hile olsun ki başkasına oyunu zehir etmeden kendim zevk alayım dediğiniz bu hileyi yani Skin-Changer yapımını öğreteceğim.
Skin-Changer oyunda ki istediğimiz skini kullanmamızda yardımcı olan bir hiledir, yalnızca bizde gözükür öbür oyun arkadaşlarını görmez.
Oyuna renk katmak amaçlı ve para harcamadan istediğimiz skinleri nasıl kullanırız anlatmaya başlayım.
Konuda C++ Kullanacağız, Konu uzun olacağı için "Visual Studio" nasıl kurulur vb ufak şeylere deyinmek istemedim.
! Visual Studio Code kullanmıyoruz
! Visual Studio indirdikten sonra "c++" seçin ve indirmeye bırakın.
-- Şimdi offsets düzeltmemiz gerekiyor
1-Hazedumper Source: GitHub - frk1/hazedumper-rs: Source code of the hazedumper written in Rust
2-Hazedumper Config: GitHub - frk1/hazedumper: up to date csgo offsets and hazedumper config
1- Linke girip sağ tarafta bulunan "Version 2.4.4" kısmına basıyoruz, Windows.zip seçin.
Şimdi masaüstüne "hazedumper" adında klasör oluşturun.
İndirdiğimiz rar içine girin .exe uzantılı program bulacaksınız açtığımız klasöre aktarın.
2- Linke girin ve "config.json" adlı dosyanın içine girin.
"RAW" yazan butona basıyoruz ve kodlar boş bir sayfaya gelecek.
Açtığımız klasöre giriyoruz ve "config.json" adlı metin dosyası oluşturuyoruz.
"RAW" diyerek aldığımız kodları kopyalayıp "notepad++" uygulaması ile "config.json" metin dosyamıza yapıştırıp kaydediyoruz.
!! Notepad++ kullanmayı unutmayın
--CSGO Giriyoruz Alt-Tab attıktan sonra dosyamızdan .exe çalıştırıyoruz yüklendikten sonra dosyalara csgo adlı dosyalar gelecek.
! Oyunu tam ekran pencereliye alın .exe başlattığınızda oyun arayüzünde olmanız geerekiyor
-- Linkleri öğrenelim
3 - Offsets: hazedumper/csgo.hpp at master · frk1/hazedumper.
4 - Item Definitions: mp_items_prohibited - Valve Developer Community
5 - Skin IDs: CS:GO Skin ID List | Total CS:GO
Program açıldıktan sonra "Create a new project" diyoruz
"skinchanger" yazarak devam ediyoruz
Debug x64 kısmını resimdeki gibi değiştirin
"skinchanger" sağ tıklayıp Özellikler diyoruz
"C++ Dil Standardı" kısmını "ISO C++ Standart" yapıyoruz
Gelişmiş kısmından "Karakter Kümesi" diyoruz ve "Çok Baytlı Karakter Kümesi Kullan" diyoruz.,
"Kaynak Dosyaları" sağ tıklayın ekle diyim ve "main.cpp" yazarak enterlayın.
"Üst Bilgi Dosyaları" sağ tıklayın ekle diyin ve "memory.h" yazın enterlayın
"memory.h" verdiğim kodları yapıştırın
C++:#pragma once #define WIN32_LEAN_AND_MEAN #include <Windows.h> #include <TlHelp32.h> #include <cstdint> #include <string_view> class Memory { private: std::uintptr_t processId = 0; void* processHandle = nullptr; public: // Constructor that finds the process id // and opens a handle Memory(const std::string_view processName) noexcept { ::PROCESSENTRY32 entry = { }; entry.dwSize = sizeof(::PROCESSENTRY32); const auto snapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS, 0); while (::Process32Next(snapShot, &entry)) { if (!processName.compare(entry.szExeFile)) { processId = entry.th32ProcessID; processHandle = ::OpenProcess(PROCESS_ALL_ACCESS, FALSE, processId); break; } } // Free handle if (snapShot) ::CloseHandle(snapShot); } // Destructor that frees the opened handle ~Memory() { if (processHandle) ::CloseHandle(processHandle); } // Returns the base address of a module by name const std::uintptr_t GetModuleAddress(const std::string_view moduleName) const noexcept { ::MODULEENTRY32 entry = { }; entry.dwSize = sizeof(::MODULEENTRY32); const auto snapShot = ::CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, processId); std::uintptr_t result = 0; while (::Module32Next(snapShot, &entry)) { if (!moduleName.compare(entry.szModule)) { result = reinterpret_cast<std::uintptr_t>(entry.modBaseAddr); break; } } if (snapShot) ::CloseHandle(snapShot); return result; } // Read process memory template <typename T> constexpr const T Read(const std::uintptr_t& address) const noexcept { T value = { }; ::ReadProcessMemory(processHandle, reinterpret_cast<const void*>(address), &value, sizeof(T), NULL); return value; } // Write process memory template <typename T> constexpr void Write(const std::uintptr_t& address, const T& value) const noexcept { ::WriteProcessMemory(processHandle, reinterpret_cast<void*>(address), &value, sizeof(T), NULL); } };
main.cpp beraber kodlayacağız.
Hazırsanız başlayalım artık
C++:#include "memory.h" #include <thread> #include <array> int main() { } int main() { return 0; }
{} Arasına şimdi güncel offset yerleştireceğiz bunları verdiğim linklerden 3. olana giriyoruz.
Şimdi size kelimeleri vericem o kelimeleri teker teker "ctrl+f" yaparak aratacaksınız ve en güncel offset bulacaksınız
KELİMELER
// Hizmetler
dwLocalPlayer
dwEntityList
dwClientState
// Player
m_mHyWWeapons
// Temel
m_flFallbackWear
m_nFallbackPaintKit
m_mFallbackSeed
m_nFallbackStatTrak
m_iItemDefinitionIndex
m_iItemIDHigh
m_iEntityQuality
m_iAccountID
m_OriginalOwnerXuidLow
Örnek 1.sonuç bizlere " constexpr ::std:trdiff_t dwLocalPlayer = 0xDE997C; " bunu vericeck kopyalayıp yapıştırıyoruz tamamını.
C++:#include "memory.h" int main() { // Hizmetler constexpr ::std:trdiff_t dwLocalPlayer = 0xDE997C; constexpr ::std:trdiff_t dwEntityList = 0x4DFEF0C; constexpr ::std:trdiff_t dwClientState = 0x59F19C; // Player constexpr ::std:trdiff_t m_hMyWeapons = 0x2E08; // Temel constexpr ::std:trdiff_t m_flFallbackWear = 0x31E0; constexpr ::std:trdiff_t m_nFallbackPaintKit = 0x31D8; constexpr ::std:trdiff_t m_nFallbackSeed = 0x31DC; constexpr ::std:trdiff_t m_nFallbackStatTrak = 0x31E4; constexpr ::std:trdiff_t m_iItemDefinitionIndex = 0x2FBA; constexpr ::std:trdiff_t m_iItemIDHigh = 0x2FD0; constexpr ::std:trdiff_t m_iEntityQuality = 0x2FBC; constexpr ::std:trdiff_t m_iAccountID = 0x2FD8; constexpr ::std:trdiff_t m_OriginalOwnerXuidLow = 0x31D0; } int main() { return 0; }
Şimdi case silah ıd olarak geçer bunları verdiğim linklerden öğrenebilirsiniz
return skin ıd olarak geçer attığım linkleri araştırarak istediğiniz skinleri bulabilir ıdsını alabilirsiniz
C++:// Silah - Skin constexpr const int GetWeaponPaint(const short& itemDefinition) { switch (itemDefinition) { case 1: return 711; // 1 ıd = deagle case 4: return 38; // 4 ıd = glock case 61: return 653; // 61 ıd = usp case 7: return 490; // 7ıd = ak case 9: return 344; // 9 ıd = awp } }
C++:int main() { const auto memory = Memory{ "csgo.exe" }; // Modül Adresleri const auto client = memory.GetModuleAddress("client.dll"); const auto engine = memory.GetModuleAddress("engine.dll"); // Hack Loop while (true) { std::this_thread::sleep_for(std::chrono::milliseconds(2)); const auto& localPlayer = memory.Read<std::uintptr_t>(client + offset::dwLocalPlayer); const auto& weapons = memory.Read<std::array<unsigned long, 8>>(localPlayer + offset::m_hMyWeapons); // Oyuncu Silah for (const auto& handle : weapons) { const auto& weapon = memory.Read<std::uintptr_t>((client + offset::dwEntityList + (handle & 0xFFF) * 0x10) - 0x10); // Silah Geçerliliği if (!weapon) continue; // Cilt Uygulama if (const auto paint = GetWeaponPaint(memory.Read<short>(weapon + offset::m_iItemDefinitionIndex))) { const bool shouldUpdate = memory.Read<std::int32_t>(weapon + offset::m_nFallbackPaintKit) != paint; // Silah Yedek Değerleri memory.Write<std::int32_t>(weapon + offset::m_iItemIDHigh, -1); memory.Write<std::int32_t>(weapon + offset::m_nFallbackPaintKit, paint); memory.Write<float>(weapon + offset::m_flFallbackWear, 0.1f); if (shouldUpdate) memory.Write<std::int32_t>(memory.Read<std::uintptr_t>(engine + offset::dwClientState) + 0x174, -1); } } } return 0;
-- Kaydediyoruz kısayol olarak Ctrl+S kullanabilirsiniz.
-- Build > Build Solution diyoruz Türkçe ise Derle > Çözümü Derle diyoruz ve kodlar çalışıyor kaydettiğimiz dosyalara .exe olarak gelecek.
--CSGO Açıyoruz ayarlardan tam ekran pencereliye alın ve kütüphaneden aim eğitim sunucularına girin.
--CSGO Çalışırken dosyalardan .exe uzantılı dosyamızı çalıştırıyoruz ve seçtiğmiz silahlara skinler geliyor.
C++:#include "memory.h" #include <thread> #include <array> namespace offset { // Hizmetler constexpr ::std::ptrdiff_t dwLocalPlayer = 0xDE997C; constexpr ::std::ptrdiff_t dwEntityList = 0x4DFEF0C; constexpr ::std::ptrdiff_t dwClientState = 0x59F19C; // Player constexpr ::std::ptrdiff_t m_hMyWeapons = 0x2E08; // Temel constexpr ::std::ptrdiff_t m_flFallbackWear = 0x31E0; constexpr ::std::ptrdiff_t m_nFallbackPaintKit = 0x31D8; constexpr ::std::ptrdiff_t m_nFallbackSeed = 0x31DC; constexpr ::std::ptrdiff_t m_nFallbackStatTrak = 0x31E4; constexpr ::std::ptrdiff_t m_iItemDefinitionIndex = 0x2FBA; constexpr ::std::ptrdiff_t m_iItemIDHigh = 0x2FD0; constexpr ::std::ptrdiff_t m_iEntityQuality = 0x2FBC; constexpr ::std::ptrdiff_t m_iAccountID = 0x2FD8; constexpr ::std::ptrdiff_t m_OriginalOwnerXuidLow = 0x31D0; } // Silah - Skin constexpr const int GetWeaponPaint(const short& itemDefinition) { switch (itemDefinition) { case 1: return 231; // Deagle ID = 1 case 4: return 38; // Glock ID = 4 case 61: return 653; // Usp ID = 61 case 7: return 255; // Ak ID = 7 case 9: return 662; // Awp ID = 9 default: return 0; } } int main() { const auto memory = Memory{ " csgo.exe" }; // Modül Adresleri const auto client = memory.GetModuleAddress("client.dll"); const auto engine = memory.GetModuleAddress("engine.dll"); // Hack Loop while (true) { std::this_thread::sleep_for(std::chrono::milliseconds(2)); const auto& localPlayer = memory.Read<std::uintptr_t>(client + offset::dwLocalPlayer); const auto& weapons = memory.Read<std::array<unsigned long, 8>>(localPlayer + offset::m_hMyWeapons); // Oyuncu Silah for (const auto& handle : weapons) { const auto& weapon = memory.Read<std::uintptr_t>((client + offset::dwEntityList + (handle & 0xFFF) * 0x10) - 0x10); // Silah Geçerliliği if (!weapon) continue; // Cilt Uygulama if (const auto paint = GetWeaponPaint(memory.Read<short>(weapon + offset::m_iItemDefinitionIndex))) { const bool shouldUpdate = memory.Read<std::int32_t>(weapon + offset::m_nFallbackPaintKit) != paint; // Silah Yedek Değerleri memory.Write<std::int32_t>(weapon + offset::m_iItemIDHigh, -1); memory.Write<std::int32_t>(weapon + offset::m_nFallbackPaintKit, paint); memory.Write<float>(weapon + offset::m_flFallbackWear, 0.1f); //memory.Write<std::int32_t>(weapon + offset::m_nFallbackSeed, 0); //memory.Write<std::int32_t>(weapon + offset::m_nFallbackStatIrak, 1337); //memory.Write<std::int32_t>(weapon + offset::m_iAccountID, memory.Read<std::int32_t>(weapon + offset::m_OriginalOwnerXuidLow)); if (shouldUpdate) memory.Write<std::int32_t>(memory.Read<std::uintptr_t>(engine + offset::dwClientState) + 0x174, -1); } } } return 0; }
Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.