Гайд Dingo Full fixed

Начинающий
Статус
Оффлайн
Регистрация
6 Май 2016
Сообщения
45
Реакции[?]
17
Поинты[?]
4K
собственно C+P все умеют, enjoy

#include "stdafx.h"
#include <unordered_map>
//------------------------------------------------------------
// Classes to help the parsing of the netvars
//------------------------------------------------------------
#pragma region Helper classes
typedef unordered_map<string, unique_ptr<NetvarTable>> TableMap;
typedef unordered_map<string, uint32_t> PropMap;
typedef unordered_map<string, unique_ptr<NetvarTable>>::iterator Iter;
struct NetvarTable {
TableMap m_ChildTables;
PropMap m_ChildProps;
uint32_t m_uOffset = 0;
bool is_empty() {

return m_ChildTables.size() == 0 && m_ChildProps.size() == 0;
}
void insert_table(string&& name, unique_ptr<NetvarTable>&& pTable) {

m_ChildTables.emplace(name, std::move(pTable));
}
void insert_prop(string&& name, uint32_t offset) {

m_ChildProps.emplace(name, offset);
}
};
class NetvarDatabase {
public:
TableMap m_Tables;
void insert(string&& name, unique_ptr<NetvarTable>&& pTable) {

m_Tables.emplace(name, std::move(pTable));
}
Iter find(const string& key) {
return m_Tables.find(key);

}
Iter begin() { return m_Tables.begin(); }
Iter end() { return m_Tables.end(); }
};
#pragma endregion
//------------------------------------------------------------
// Netvar Manager
//------------------------------------------------------------
CNetvarManager* CNetvarManager::instance = nullptr;
CNetvarManager::CNetvarManager() {

}
CNetvarManager::~CNetvarManager() {

}
void CNetvarManager::CreateDatabase() {
m_pDatabase = make_unique<NetvarDatabase>();
auto pClient = Interfaces.pClient;

if (pClient) {

for (auto pClass = pClient->GetAllClasses(); pClass; pClass = pClass->m_pNext) {

if (pClass->m_pRecvTable) {

//Insert new entry on the database
m_pDatabase->insert(
pClass->m_pRecvTable->m_pNetTableName,
InternalLoadTable(pClass->m_pRecvTable, 0));
m_tableCount++;
}
}
}
}
void CNetvarManager::Dump(std::ostream& output) {
for (auto& entry : *m_pDatabase) {
auto& pTable = entry.second;
if (pTable->is_empty())
continue;
output << entry.first << std::endl;
Dump(output, *pTable, 1);
output << "==============================================================" << std::endl;
}
}
void CNetvarManager::Dump(const std::string& file) {
std::ofstream output(file);
Dump(output);
}
//------------------------------------------------------------
// Internal methods below. This is where the real work is done
//------------------------------------------------------------
unique_ptr<NetvarTable> CNetvarManager::InternalLoadTable(RecvTable* pRecvTable, uint32_t offset) {
auto pTable = make_unique<NetvarTable>();
pTable->m_uOffset = offset;

for (auto i = 0; i < pRecvTable->m_nProps; ++i) {
auto pProp = &pRecvTable->m_pProps;

//Skip trash array items
if (!pProp || isdigit(pProp->m_pVarName[0])) continue;
//We dont care about the base class
if (strcmp(pProp->m_pVarName, "baseclass") == 0) continue;

//If this prop is a table
if (pProp->m_RecvType == SendPropType::DPT_DataTable && //If it is a table AND
pProp->m_pDataTable != NULL && //The DataTable isnt null AND
pProp->m_pDataTable->m_pNetTableName[0] == 'D') { //The Table name starts with D (this is because there are some shitty nested
//tables that we want to skip, and those dont start with D)

//Load the table pointed by pProp->m_pDataTable and insert it
pTable->insert_table(pProp->m_pVarName, InternalLoadTable(pProp->m_pDataTable, pProp->m_Offset));
}
else {
pTable->insert_prop(pProp->m_pVarName, pProp->m_Offset);
}
m_netvarCount++;
}
return pTable;
}
void CNetvarManager::Dump(std::ostream& output, NetvarTable& table, int level) {
char line[512] = "";
char fmt[512] = "";

sprintf(fmt, "%%-%ds: 0x%%08X\n", 50 - level * 4);

for (auto& prop : table.m_ChildProps) {
for (int i = 0; i < level; i++) {
if (i != level - 1) {
output << " ";
}
else {
output << "|___";
}
}
sprintf(line, fmt, prop.first.c_str(), prop.second + table.m_uOffset);
output << line;
}
for (auto& child : table.m_ChildTables) {
for (int i = 0; i < level; i++) {
if (i != level - 1) {
output << " ";
}
else {
output << "|___";
}
}
sprintf(line, fmt, child.first.c_str(), child.second->m_uOffset);
output << line;
Dump(output, *child.second, level + 1);
}
}
uint32_t CNetvarManager::GetOffset(const std::string& szTableName, const std::initializer_list<std::string>& props) {
auto table = m_pDatabase->find(szTableName);
if (table == m_pDatabase->end()) return -1;

int tableOffset = table->second->m_uOffset;
if (props.size() == 0) return tableOffset;

int totalOffset = tableOffset;
NetvarTable* curTable = table->second.get();

for (auto i = 0; i < props.size(); i++) {
std::string propName = *(props.begin() + i);

if (i + 1 < props.size()) {//This index is not the last one
auto childTable = curTable->m_ChildTables.find(propName);
if (childTable == curTable->m_ChildTables.end()) {
throw std::runtime_error("Prop not found");
}
totalOffset += childTable->second->m_uOffset;
curTable = childTable->second.get();
}
else { //Last index, retrieve prop instead of table
auto childProp = curTable->m_ChildProps.find(propName);
if (childProp == curTable->m_ChildProps.end()) {
throw std::runtime_error("Prop not found");
}
totalOffset += childProp->second;
}
}

return totalOffset;
}
void UTIL_TraceLine( Vector& vecAbsStart, Vector& vecAbsEnd, unsigned int mask, const IHandleEntity *ignore, int collisionGroup, trace_t *ptr )
{
Ray_t ray;
ray.Init(vecAbsStart, vecAbsEnd);
CTraceFilter traceFilter;
traceFilter.pSkip = (void*)ignore;
Interfaces.pTrace->TraceRay(ray, mask, &traceFilter, ptr);
}
void UTIL_TracePos(Ray_t &ray, unsigned int mask, const IHandleEntity *ignore, int collisionGroup, trace_t *ptr)
{
CTraceFilter traceFilter;
traceFilter.pSkip = (void*)ignore;
Interfaces.pTrace->TraceRay(ray, mask, &traceFilter, ptr);
}
float DistanceToRay(const Vector &pos, const Vector &rayStart, const Vector &rayEnd, float *along = NULL, Vector *pointOnRay = NULL)
{
Vector to = pos - rayStart;
Vector dir = rayEnd - rayStart;
float length = dir.NormalizeInPlace();
float rangeAlong = g_Math.DotProduct(dir, to);
if (along)
{
*along = rangeAlong;
}
float range;
if (rangeAlong < 0.0f)
{
// off start point
range = -(pos - rayStart).Length();
if (pointOnRay)
{
*pointOnRay = rayStart;
}
}
else if (rangeAlong > length)
{
// off end point
range = -(pos - rayEnd).Length();
if (pointOnRay)
{
*pointOnRay = rayEnd;
}
}
else // within ray bounds
{
Vector onRay = rayStart + (dir.operator*(rangeAlong));
range = (pos - onRay).Length();
if (pointOnRay)
{
*pointOnRay = onRay;
}
}
return range;
}
void UTIL_ClipTraceToPlayers( Vector& vecAbsStart, Vector& vecAbsEnd, unsigned int mask, ITraceFilter* filter, trace_t* tr)
{
trace_t playerTrace;
Ray_t ray;
float smallestFraction = tr->fraction;
const float maxRange = 60.0f;
ray.Init(vecAbsStart, vecAbsEnd);
for (int k = 1; k <= Interfaces.pGlobalVars->maxClients; ++k)
{
CBaseEntity* player = Interfaces.pEntList->GetClientEntity(k);
if (!player || !player->isAlive())
continue;
if (player->IsDormant())
continue;
if (filter && filter->ShouldHitEntity(player, mask) == false)
continue;
float range = DistanceToRay(player->WorldSpaceCenter(), vecAbsStart, vecAbsEnd);
if (range < 0.0f || range > maxRange)
continue;
Interfaces.pTrace->ClipRayToEntity(ray, mask | CONTENTS_HITBOX, player, &playerTrace);
if (playerTrace.fraction < smallestFraction)
{
// we shortened the ray - save off the trace
*tr = playerTrace;
smallestFraction = playerTrace.fraction;
}
}
}
bool TraceToExit(Vector& end, trace_t& tr, Vector start, Vector vEnd, trace_t* trace)
{
typedef bool(__fastcall* TraceToExitFn)(Vector&, trace_t&, float, float, float, float, float, float, trace_t*);
static DWORD TraceToExit = Utils.PatternSearch("client.dll", (BYTE*)"\x55\x8B\xEC\x83\xEC\x30\xF3\x0F\x10\x75", "xxxxxxxxxx", NULL, NULL);
if (!TraceToExit)
return false;
float start_y = start.y, start_z = start.z, start_x = start.x, dir_y = vEnd.y, dir_x = vEnd.x, dir_z = vEnd.z;
_asm
{
push trace
push dir_z
push dir_y
push dir_x
push start_z
push start_y
push start_x
mov edx, tr
mov ecx, end
call TraceToExit
add esp, 0x1C
}
}
CBaseCombatWeapon* CBaseEntity::GetActiveBaseCombatWeapon() {
static int m_hActiveWeapon = GET_NETVAR("DT_BaseCombatCharacter", "m_hActiveWeapon");
DWORD weaponHandle = *(DWORD*)((DWORD)this + (DWORD)m_hActiveWeapon);
return (CBaseCombatWeapon*)(Interfaces.pEntList->GetClientEntity(weaponHandle & 0xFFF));
}
const char* ConVar::GetName()
{
typedef char*(__thiscall* GetNameFn)(void*);
return getvfunc<GetNameFn>(this, ConVar_GetName)(this);
}
const char* ConVar::GetBaseName()
{
typedef char*(__thiscall* GetNameFn)(void*);
return getvfunc<GetNameFn>(this, ConVar_GetBaseName)(this);
}
void ConVar::SetValue(const char* value)
{
typedef void(__thiscall* SetValueFn)(void*, const char*);
return getvfunc<SetValueFn>(this, ConVar_SetString)(this, value);
}
void ConVar::SetValue(float value)
{
typedef void(__thiscall* SetValueFn)(void*, float);
return getvfunc<SetValueFn>(this, ConVar_SetFloat)(this, value);
}
void ConVar::SetValue(int value)
{
typedef void(__thiscall* SetValueFn)(void*, int);
return getvfunc<SetValueFn>(this, ConVar_SetInt)(this, value);
}
CBaseCombatWeapon* GetActiveBaseCombatWeapon();
bool SetupBones(matrix3x4 *pBoneToWorldOut, int nMaxBones, int boneMask, float currentTime) {
static DWORD m_nWritableBones = GET_NETVAR("DT_BaseAnimating", "m_nForceBone");
static DWORD m_dwOcclusionArray = *(uintptr_t*)(Utils.PatternSearch("client.dll", (PBYTE) "\xA1\x00\x00\x00\x00\x8B\xB7\x00\x00\x00\x00\x89\x75\xF8", "x????xx????xxx", 0, 0) + 0x1);
static DWORD m_bDidCheckForOcclusion = *(uintptr_t*)(Utils.PatternSearch("client.dll", (PBYTE) "\xA1\x00\x00\x00\x00\x8B\xB7\x00\x00\x00\x00\x89\x75\xF8", "x????xx????xxx", 0, 0) + 0x7);
*(int*)((uintptr_t)this + m_nWritableBones) = 0;
*(int*)((uintptr_t)this + m_bDidCheckForOcclusion) = reinterpret_cast< int* >(m_dwOcclusionArray)[1];
__asm
{
mov edi, this
lea ecx, dword ptr ds : [edi + 0x4]
mov edx, dword ptr ds : [ecx]
push currentTime
push boneMask
push nMaxBones
push pBoneToWorldOut
call dword ptr ds : [edx + 0x34]
}
}

void CBaseCombatWeapon::UpdateAccuracyPenalty() {
typedef void(__thiscall* OriginalFn)(void*);
getvfunc<OriginalFn>(this, 485)(this);
}
float& CBaseCombatWeapon::GetAccuracyPenalty() {
static int m_fAccuracyPenalty = GET_NETVAR(("DT_WeaponCSBase"), ("m_fAccuracyPenalty"));
return *(float*)((DWORD)this + m_fAccuracyPenalty);
}
float CBaseCombatWeapon::GetInaccuracy() {
if (!this)
return 0.f;
typedef float(__thiscall* OriginalFn)(void*);
return getvfunc<OriginalFn>(this, 483)(this);
}
float CBaseCombatWeapon::GetSpread() {
if (!this)
return 0.f;
typedef float(__thiscall* OriginalFn)(void*);
return getvfunc<OriginalFn>(this, 484)(this);//479
}
float CBaseCombatWeapon::GetWeaponCone() {
if (!this)
return 0.f;
typedef float(__thiscall* OriginalFn)(void*);
return getvfunc<OriginalFn>(this, 482)(this);
}

CCSWeaponInfo* GetCSWpnData()
{
if (!this) return nullptr;
typedef CCSWeaponInfo*(__thiscall* OriginalFn)(void*);
return getvfunc<OriginalFn>(this, 456)(this);
}
VirusTotal не нужен ибо сурцы
 
Последнее редактирование:
Cтранный и Апасный
Пользователь
Статус
Оффлайн
Регистрация
26 Янв 2017
Сообщения
418
Реакции[?]
101
Поинты[?]
0
собственно C+P все умеют, enjoy

void InitialiseSDK()
{
DWORD p = Utils.PFindPattern("client.dll", "8B 0D ? ? ? ? FF 75 08 8B 01 FF 50 64");
if (p)
{
pClientMode = **(DWORD***)(p + 2);
pClientMode = pClientMode;
}
cout << iblue << "pClientMode" << igreen << ": 0x" << pClientMode << white << endl;
//PDWORD rank = Utils.PFindPattern("client.dll", "8B EC 8B 0D ? ? ? ? 68") - 1;
CreateInterfaceFn fnEngineFactory = (CreateInterfaceFn)GetProcAddress(GetModuleHandleA("engine.dll"), "CreateInterface");
CreateInterfaceFn AppSystemFactory = (CreateInterfaceFn)GetProcAddress((HMODULE)GetModuleHandle("vguimatsurface.dll"), "CreateInterface");//**(PDWORD*)//(dwInitAddress + 0x3D);
CreateInterfaceFn MaterialSystemFactory = (CreateInterfaceFn)GetProcAddress((HMODULE)GetModuleHandle("materialsystem.dll"), "CreateInterface");
CreateInterfaceFn ClientFactory = (CreateInterfaceFn)GetProcAddress((HMODULE)GetModuleHandle("client.dll"), "CreateInterface");
CreateInterfaceFn StdFactory = (CreateInterfaceFn)GetProcAddress((HMODULE)GetModuleHandle("vstdlib.dll"), "CreateInterface");
CreateInterfaceFn VGUISurfaceFactory= (CreateInterfaceFn)GetProcAddress((HMODULE)GetModuleHandle("vgui2.dll"), "CreateInterface");
//CreateInterfaceFn VGUI2Factory = (CreateInterfaceFn)GetProcAddress((HMODULE)GetModuleHandle("vgui2.dll"), "CreateInterface");
CreateInterfaceFn PhysFactory = (CreateInterfaceFn)GetProcAddress((HMODULE)GetModuleHandle("vphysics.dll"), "CreateInterface");
typedef CGlowObjectManager*(__thiscall* GetGlowObjectManager_t)(void);
static GetGlowObjectManager_t GetGlowObjectManager = (GetGlowObjectManager_t)Utils.PFindPattern("client.dll", "A1 ? ? ? ? A8 01 75 4B");
g_pGlowObjectManager = GetGlowObjectManager();
cout << iblue << "g_pGlowObjectManager:" << igreen<< ": 0x" << g_pGlowObjectManager << white << endl;
pSurface = (ISurface*)GetInterfacePtr("VGUI_Surface", "g_pSurface", AppSystemFactory);
pPanel = (IPanel*)GetInterfacePtr("VGUI_Panel", "g_pPanel", VGUISurfaceFactory);
//pClient = (HLCLient*)GetPointer("client.dll", "VClient018");
pClient = (HLCLient*)GetInterfacePtr("VClient", "g_pClient", ClientFactory);
pEngine = (CEngineClient*)GetInterfacePtr("VEngineClient", "g_pEngine", fnEngineFactory);
pEntList = (CEntityList*)GetInterfacePtr("VClientEntityList", "g_pEntList", ClientFactory);
g_pDebugOverlay = (CDebugOverlay*)GetInterfacePtr("VDebugOverlay", "g_pDebugOverlay", fnEngineFactory);
pTrace = (IEngineTrace*)GetInterfacePtr("EngineTraceClient", "g_pEngineTraceClient", fnEngineFactory);
g_pModelInfo = (IVModelInfo*)GetInterfacePtr("VModelInfoClient", "g_pModelInfo", fnEngineFactory);
g_pModelRender = (IVModelRender*)GetInterfacePtr("VEngineModel", "g_ModelRender", fnEngineFactory);
g_pPred = (CPrediction*)GetInterfacePtr("VClientPrediction", "g_pPred", ClientFactory);
g_pGameMovement = (CGameMovement*)GetInterfacePtr("GameMovement", "g_pGameMovement", ClientFactory);
pPhysProps = (IPhysicsSurfaceProps*)GetInterfacePtr("VPhysicsSurfaceProps", "g_pPhysprops", PhysFactory);
pMaterialSystem = (IMaterialSystem*)GetInterfacePtr("VMaterialSystem", "pMaterialSystem", MaterialSystemFactory);
g_pRenderView = (IVRenderView*)GetInterfacePtr("VEngineRenderView", "g_pRenderView", fnEngineFactory);
pGlobalVars = *(CGlobalVars**)(((*(PDWORD*)pClient)[0]) + 0x1B);
pGlobalVars = (CGlobalVars*)*(PDWORD)pGlobalVars;
cout << iblue << "pGlobalVars " << igreen << ": 0x" << pGlobalVars << white << endl;
pInput = *(CInput**)((*(DWORD**)pClient)[15] + 0x1);//[15] + 0x1)
g_ICVars = (ICVar*)GetInterfacePtr("VEngineCvar", "g_pCVars", StdFactory);
//g_GameEventMgr = (IGameEventManager2*)GetInterfacePtr("GAMEEVENTSMANAGER", "g_pGameEventsMgr", fnEngineFactory);
g_GameEventMgr = (IGameEventManager2*)fnEngineFactory("GAMEEVENTSMANAGER002", NULL);
// cout << iblue << "g_pRenderView:" << igreen << ": 0x" << g_pRenderView << white << endl;
}
private:
bool InitialisedSuccessfuly = false;
public:
ISurface* pSurface;
//DWORD* pClientMode;
DWORD* pClientMode;
IPanel* pPanel;
HLCLient* pClient;
CEntityList* pEntList;
CEngineClient* pEngine;
CInput* pInput;
CGlowObjectManager* g_pGlowObjectManager;
IVModelInfo* g_pModelInfo;
IVModelRender* g_pModelRender;
CPrediction* g_pPred;
CGameMovement* g_pGameMovement;
IMoveHelper* g_pMoveHelper;
CGlobalVars* pGlobalVars;
IEngineTrace* pTrace;
IGameEventManager2* pGameEventManager;
IPhysicsSurfaceProps* pPhysProps;
CDebugOverlay* g_pDebugOverlay;
IMaterialSystem* pMaterialSystem;
IVRenderView* g_pRenderView;
ICVar* g_ICVars;
IGameEventManager2* g_GameEventMgr;
};
extern CInterfaces Interfaces;

#include "Math.h"
#include "checksum_crc.h"
#include "dt_recv2.h"
#include "NetVars.h"
#include "ISurface.h"
#include "CClient.h"
#include "EngineClient.h"
#include "Entitys.h"
#include "EntList.h"
#include "DebugOverlay.h"
#include "CTrace.h"
#include "IVRenderView.h"
#include "CModelInfo.h"
#include "CInput.h"
#include "ICVars.h"
#include "CGlobleVars.h"
#include "CGameMovement.h"
#include "CPred.h"
#include "CGlow.h"
void UTIL_TracePos(Ray_t &ray, unsigned int mask, const IHandleEntity *ignore, int collisionGroup, trace_t *ptr);
void UTIL_TraceLine(Vector& vecAbsStart, Vector& vecAbsEnd, unsigned int mask, const IHandleEntity *ignore, int collisionGroup, trace_t *ptr);
void UTIL_ClipTraceToPlayers(Vector& vecAbsStart, Vector& vecAbsEnd, unsigned int mask, ITraceFilter* filter, trace_t* tr);
bool TraceToExit(Vector& end, trace_t& tr, Vector start, Vector vEnd, trace_t* trace);
/* FIRE BULLET DATA */
struct FireBulletData
{
FireBulletData(const Vector &eye_pos)
: src(eye_pos)
{
}
Vector src;
trace_t enter_trace;
Vector direction;
CTraceFilter filter;
float trace_length;
float trace_length_remaining;
float current_damage;
int penetrate_count;
};
/* HITGROUP DEFINITIONS */
#define HITGROUP_GENERIC 0
#define HITGROUP_HEAD 1
#define HITGROUP_CHEST 2
#define HITGROUP_STOMACH 3
#define HITGROUP_LEFTARM 4
#define HITGROUP_RIGHTARM 5
#define HITGROUP_LEFTLEG 6
#define HITGROUP_RIGHTLEG 7
#define HITGROUP_GEAR 10
typedef bool(*ShouldHitFunc_t)(IHandleEntity *pHandleEntity, int contentsMask);
enum class CSGOClassID
{
CAK47 = 1,
CBaseAnimating = 2,
CBaseAnimatingOverlay = 3,
CBaseAttributableItem = 4,
CBaseButton = 5,
CBaseCombatCharacter = 6,
CBaseCombatWeapon = 7,
CBaseCSGrenade = 8,
CBaseCSGrenadeProjectile = 9,
CBaseDoor = 10,
CBaseEntity = 11,
CBaseFlex = 12,
CBaseGrenade = 13,
CBaseParticleEntity = 14,
CBasePlayer = 15,
CBasePropDoor = 16,
CBaseTeamObjectiveResource = 17,
CBaseTempEntity = 18,
CBaseToggle = 19,
CBaseTrigger = 20,
CBaseViewModel = 21,
CBaseVPhysicsTrigger = 22,
CBaseWeaponWorldModel = 23,
CBeam = 24,
CBeamSpotlight = 25,
CBoneFollower = 26,
CBreakableProp = 27,
CBreakableSurface = 28,
CC4 = 29,
CCascadeLight = 30,
CChicken = 31,
CColorCorrection = 32,
CColorCorrectionVolume = 33,
CCSGameRulesProxy = 34,
CCSPlayer = 35,
CCSPlayerResource = 36,
CCSRagdoll = 37,
CCSTeam = 38,
CDEagle = 39,
CDecoyGrenade = 40,
CDecoyProjectile = 41,
CDynamicLight = 42,
CDynamicProp = 43,
CEconEntity = 44,
CEconWearable = 45,
CEmbers = 46,
CEntityDissolve = 47,
CEntityFlame = 48,
CEntityFreezing = 49,
CEntityParticleTrail = 50,
CEnvAmbientLight = 51,
CEnvDetailController = 52,
CEnvDOFController = 53,
CEnvParticleScript = 54,
CEnvProjectedTexture = 55,
CEnvQuadraticBeam = 56,
CEnvScreenEffect = 57,
CEnvScreenOverlay = 58,
CEnvTonemapController = 59,
CEnvWind = 60,
CFEPlayerDecal = 61,
CFireCrackerBlast = 62,
CFireSmoke = 63,
CFireTrail = 64,
CFish = 65,
CFlashbang = 66,
CFogController = 67,
CFootstepControl = 68,
CFunc_Dust = 69,
CFunc_LOD = 70,
CFuncAreaPortalWindow = 71,
CFuncBrush = 72,
CFuncConveyor = 73,
CFuncLadder = 74,
CFuncMonitor = 75,
CFuncMoveLinear = 76,
CFuncOccluder = 77,
CFuncReflectiveGlass = 78,
CFuncRotating = 79,
CFuncSmokeVolume = 80,
CFuncTrackTrain = 81,
CGameRulesProxy = 82,
CHandleTest = 83,
CHEGrenade = 84,
CHostage = 85,
CHostageCarriableProp = 86,
CIncendiaryGrenade = 87,
CInferno = 88,
CInfoLadderDismount = 89,
CInfoOverlayAccessor = 90,
CItem_Healthshot = 91,
CItemDogtags = 92,
CKnife = 93,
CKnifeGG = 94,
CLightGlow = 95,
CMaterialModifyControl = 96,
CMolotovGrenade = 97,
CMolotovProjectile = 98,
CMovieDisplay = 99,
CParticleFire = 100,
CParticlePerformanceMonitor = 101,
CParticleSystem = 102,
CPhysBox = 103,
CPhysBoxMultiplayer = 104,
CPhysicsProp = 105,
CPhysicsPropMultiplayer = 106,
CPhysMagnet = 107,
CPlantedC4 = 108,
CPlasma = 109,
CPlayerResource = 110,
CPointCamera = 111,
CPointCommentaryNode = 112,
CPointWorldText = 113,
CPoseController = 114,
CPostProcessController = 115,
CPrecipitation = 116,
CPrecipitationBlocker = 117,
CPredictedViewModel = 118,
CProp_Hallucination = 119,
CPropDoorRotating = 120,
CPropJeep = 121,
CPropVehicleDriveable = 122,
CRagdollManager = 123,
CRagdollProp = 124,
CRagdollPropAttached = 125,
CRopeKeyframe = 126,
CSCAR17 = 127,
CSceneEntity = 128,
CSensorGrenade = 129,
CSensorGrenadeProjectile = 130,
CShadowControl = 131,
CSlideshowDisplay = 132,
CSmokeGrenade = 133,
CSmokeGrenadeProjectile = 134,
CSmokeStack = 135,
CSpatialEntity = 136,
CSpotlightEnd = 137,
CSprite = 138,
CSpriteOriented = 139,
CSpriteTrail = 140,
CStatueProp = 141,
CSteamJet = 142,
CSun = 143,
CSunlightShadowControl = 144,
CTeam = 145,
CTeamplayRoundBasedRulesProxy = 146,
CTEArmorRicochet = 147,
CTEBaseBeam = 148,
CTEBeamEntPoint = 149,
CTEBeamEnts = 150,
CTEBeamFollow = 151,
CTEBeamLaser = 152,
CTEBeamPoints = 153,
CTEBeamRing = 154,
CTEBeamRingPoint = 155,
CTEBeamSpline = 156,
CTEBloodSprite = 157,
CTEBloodStream = 158,
CTEBreakModel = 159,
CTEBSPDecal = 160,
CTEBubbles = 161,
CTEBubbleTrail = 162,
CTEClientProjectile = 163,
CTEDecal = 164,
CTEDust = 165,
CTEDynamicLight = 166,
CTEEffectDispatch = 167,
CTEEnergySplash = 168,
CTEExplosion = 169,
CTEFireBullets = 170,
CTEFizz = 171,
CTEFootprintDecal = 172,
CTEFoundryHelpers = 173,
CTEGaussExplosion = 174,
CTEGlowSprite = 175,
CTEImpact = 176,
CTEKillPlayerAttachments = 177,
CTELargeFunnel = 178,
CTEMetalSparks = 179,
CTEMuzzleFlash = 180,
CTEParticleSystem = 181,
CTEPhysicsProp = 182,
CTEPlantBomb = 183,
CTEPlayerAnimEvent = 184,
CTEPlayerDecal = 185,
CTEProjectedDecal = 186,
CTERadioIcon = 187,
CTEShatterSurface = 188,
CTEShowLine = 189,
CTesla = 190,
CTESmoke = 191,
CTESparks = 192,
CTESprite = 193,
CTESpriteSpray = 194,
CTest_ProxyToggle_Networkable = 194,
CTestTraceline = 196,
CTEWorldDecal = 197,
CTriggerPlayerMovement = 198,
CTriggerSoundOperator = 199,
CVGuiScreen = 200,
CVoteController = 201,
CWaterBullet = 202,
CWaterLODControl = 203,
CWeaponAug = 204,
CWeaponAWP = 205,
CWeaponBaseItem = 206,
CWeaponBizon = 207,
CWeaponCSBase = 208,
CWeaponCSBaseGun = 209,
CWeaponCycler = 210,
CWeaponElite = 211,
CWeaponFamas = 212,
CWeaponFiveSeven = 213,
CWeaponG3SG1 = 214,
CWeaponGalil = 215,
CWeaponGalilAR = 216,
CWeaponGlock = 217,
CWeaponHKP2000 = 218,
CWeaponM249 = 219,
CWeaponM3 = 220,
CWeaponM4A1 = 221,
CWeaponMAC10 = 222,
CWeaponMag7 = 223,
CWeaponMP5Navy = 224,
CWeaponMP7 = 225,
CWeaponMP9 = 226,
CWeaponNegev = 227,
CWeaponNOVA = 228,
CWeaponP228 = 229,
CWeaponP250 = 230,
CWeaponP90 = 231,
CWeaponSawedoff = 232,
CWeaponSCAR20 = 233,
CWeaponScout = 234,
CWeaponSG550 = 235,
CWeaponSG552 = 236,
CWeaponSG556 = 237,
CWeaponSSG08 = 238,
CWeaponTaser = 239,
CWeaponTec9 = 240,
CWeaponTMP = 241,
CWeaponUMP45 = 242,
CWeaponUSP = 243,
CWeaponXM1014 = 244,
CWorld = 245,
DustTrail = 246,
MovieExplosion = 247,
ParticleSmokeGrenade = 248,
RocketTrail = 249,
SmokeTrail = 250,
SporeExplosion = 251,
SporeTrail = 252
};
#include "stdafx.h"
#include <unordered_map>
//------------------------------------------------------------
// Classes to help the parsing of the netvars
//------------------------------------------------------------
#pragma region Helper classes
typedef unordered_map<string, unique_ptr<NetvarTable>> TableMap;
typedef unordered_map<string, uint32_t> PropMap;
typedef unordered_map<string, unique_ptr<NetvarTable>>::iterator Iter;
struct NetvarTable {
TableMap m_ChildTables;
PropMap m_ChildProps;
uint32_t m_uOffset = 0;
bool is_empty() {

return m_ChildTables.size() == 0 && m_ChildProps.size() == 0;
}
void insert_table(string&& name, unique_ptr<NetvarTable>&& pTable) {

m_ChildTables.emplace(name, std::move(pTable));
}
void insert_prop(string&& name, uint32_t offset) {

m_ChildProps.emplace(name, offset);
}
};
class NetvarDatabase {
public:
TableMap m_Tables;
void insert(string&& name, unique_ptr<NetvarTable>&& pTable) {

m_Tables.emplace(name, std::move(pTable));
}
Iter find(const string& key) {
return m_Tables.find(key);

}
Iter begin() { return m_Tables.begin(); }
Iter end() { return m_Tables.end(); }
};
#pragma endregion
//------------------------------------------------------------
// Netvar Manager
//------------------------------------------------------------
CNetvarManager* CNetvarManager::instance = nullptr;
CNetvarManager::CNetvarManager() {

}
CNetvarManager::~CNetvarManager() {

}
void CNetvarManager::CreateDatabase() {
m_pDatabase = make_unique<NetvarDatabase>();
auto pClient = Interfaces.pClient;

if (pClient) {

for (auto pClass = pClient->GetAllClasses(); pClass; pClass = pClass->m_pNext) {

if (pClass->m_pRecvTable) {

//Insert new entry on the database
m_pDatabase->insert(
pClass->m_pRecvTable->m_pNetTableName,
InternalLoadTable(pClass->m_pRecvTable, 0));
m_tableCount++;
}
}
}
}
void CNetvarManager::Dump(std::ostream& output) {
for (auto& entry : *m_pDatabase) {
auto& pTable = entry.second;
if (pTable->is_empty())
continue;
output << entry.first << std::endl;
Dump(output, *pTable, 1);
output << "==============================================================" << std::endl;
}
}
void CNetvarManager::Dump(const std::string& file) {
std::ofstream output(file);
Dump(output);
}
//------------------------------------------------------------
// Internal methods below. This is where the real work is done
//------------------------------------------------------------
unique_ptr<NetvarTable> CNetvarManager::InternalLoadTable(RecvTable* pRecvTable, uint32_t offset) {
auto pTable = make_unique<NetvarTable>();
pTable->m_uOffset = offset;

for (auto i = 0; i < pRecvTable->m_nProps; ++i) {
auto pProp = &pRecvTable->m_pProps;

//Skip trash array items
if (!pProp || isdigit(pProp->m_pVarName[0])) continue;
//We dont care about the base class
if (strcmp(pProp->m_pVarName, "baseclass") == 0) continue;

//If this prop is a table
if (pProp->m_RecvType == SendPropType::DPT_DataTable && //If it is a table AND
pProp->m_pDataTable != NULL && //The DataTable isnt null AND
pProp->m_pDataTable->m_pNetTableName[0] == 'D') { //The Table name starts with D (this is because there are some shitty nested
//tables that we want to skip, and those dont start with D)

//Load the table pointed by pProp->m_pDataTable and insert it
pTable->insert_table(pProp->m_pVarName, InternalLoadTable(pProp->m_pDataTable, pProp->m_Offset));
}
else {
pTable->insert_prop(pProp->m_pVarName, pProp->m_Offset);
}
m_netvarCount++;
}
return pTable;
}
void CNetvarManager::Dump(std::ostream& output, NetvarTable& table, int level) {
char line[512] = "";
char fmt[512] = "";

sprintf(fmt, "%%-%ds: 0x%%08X\n", 50 - level * 4);

for (auto& prop : table.m_ChildProps) {
for (int i = 0; i < level; i++) {
if (i != level - 1) {
output << " ";
}
else {
output << "|___";
}
}
sprintf(line, fmt, prop.first.c_str(), prop.second + table.m_uOffset);
output << line;
}
for (auto& child : table.m_ChildTables) {
for (int i = 0; i < level; i++) {
if (i != level - 1) {
output << " ";
}
else {
output << "|___";
}
}
sprintf(line, fmt, child.first.c_str(), child.second->m_uOffset);
output << line;
Dump(output, *child.second, level + 1);
}
}
uint32_t CNetvarManager::GetOffset(const std::string& szTableName, const std::initializer_list<std::string>& props) {
auto table = m_pDatabase->find(szTableName);
if (table == m_pDatabase->end()) return -1;

int tableOffset = table->second->m_uOffset;
if (props.size() == 0) return tableOffset;

int totalOffset = tableOffset;
NetvarTable* curTable = table->second.get();

for (auto i = 0; i < props.size(); i++) {
std::string propName = *(props.begin() + i);

if (i + 1 < props.size()) {//This index is not the last one
auto childTable = curTable->m_ChildTables.find(propName);
if (childTable == curTable->m_ChildTables.end()) {
throw std::runtime_error("Prop not found");
}
totalOffset += childTable->second->m_uOffset;
curTable = childTable->second.get();
}
else { //Last index, retrieve prop instead of table
auto childProp = curTable->m_ChildProps.find(propName);
if (childProp == curTable->m_ChildProps.end()) {
throw std::runtime_error("Prop not found");
}
totalOffset += childProp->second;
}
}

return totalOffset;
}
void UTIL_TraceLine( Vector& vecAbsStart, Vector& vecAbsEnd, unsigned int mask, const IHandleEntity *ignore, int collisionGroup, trace_t *ptr )
{
Ray_t ray;
ray.Init(vecAbsStart, vecAbsEnd);
CTraceFilter traceFilter;
traceFilter.pSkip = (void*)ignore;
Interfaces.pTrace->TraceRay(ray, mask, &traceFilter, ptr);
}
void UTIL_TracePos(Ray_t &ray, unsigned int mask, const IHandleEntity *ignore, int collisionGroup, trace_t *ptr)
{
CTraceFilter traceFilter;
traceFilter.pSkip = (void*)ignore;
Interfaces.pTrace->TraceRay(ray, mask, &traceFilter, ptr);
}
float DistanceToRay(const Vector &pos, const Vector &rayStart, const Vector &rayEnd, float *along = NULL, Vector *pointOnRay = NULL)
{
Vector to = pos - rayStart;
Vector dir = rayEnd - rayStart;
float length = dir.NormalizeInPlace();
float rangeAlong = g_Math.DotProduct(dir, to);
if (along)
{
*along = rangeAlong;
}
float range;
if (rangeAlong < 0.0f)
{
// off start point
range = -(pos - rayStart).Length();
if (pointOnRay)
{
*pointOnRay = rayStart;
}
}
else if (rangeAlong > length)
{
// off end point
range = -(pos - rayEnd).Length();
if (pointOnRay)
{
*pointOnRay = rayEnd;
}
}
else // within ray bounds
{
Vector onRay = rayStart + (dir.operator*(rangeAlong));
range = (pos - onRay).Length();
if (pointOnRay)
{
*pointOnRay = onRay;
}
}
return range;
}
void UTIL_ClipTraceToPlayers( Vector& vecAbsStart, Vector& vecAbsEnd, unsigned int mask, ITraceFilter* filter, trace_t* tr)
{
trace_t playerTrace;
Ray_t ray;
float smallestFraction = tr->fraction;
const float maxRange = 60.0f;
ray.Init(vecAbsStart, vecAbsEnd);
for (int k = 1; k <= Interfaces.pGlobalVars->maxClients; ++k)
{
CBaseEntity* player = Interfaces.pEntList->GetClientEntity(k);
if (!player || !player->isAlive())
continue;
if (player->IsDormant())
continue;
if (filter && filter->ShouldHitEntity(player, mask) == false)
continue;
float range = DistanceToRay(player->WorldSpaceCenter(), vecAbsStart, vecAbsEnd);
if (range < 0.0f || range > maxRange)
continue;
Interfaces.pTrace->ClipRayToEntity(ray, mask | CONTENTS_HITBOX, player, &playerTrace);
if (playerTrace.fraction < smallestFraction)
{
// we shortened the ray - save off the trace
*tr = playerTrace;
smallestFraction = playerTrace.fraction;
}
}
}
bool TraceToExit(Vector& end, trace_t& tr, Vector start, Vector vEnd, trace_t* trace)
{
typedef bool(__fastcall* TraceToExitFn)(Vector&, trace_t&, float, float, float, float, float, float, trace_t*);
static DWORD TraceToExit = Utils.PatternSearch("client.dll", (BYTE*)"\x55\x8B\xEC\x83\xEC\x30\xF3\x0F\x10\x75", "xxxxxxxxxx", NULL, NULL);
if (!TraceToExit)
return false;
float start_y = start.y, start_z = start.z, start_x = start.x, dir_y = vEnd.y, dir_x = vEnd.x, dir_z = vEnd.z;
_asm
{
push trace
push dir_z
push dir_y
push dir_x
push start_z
push start_y
push start_x
mov edx, tr
mov ecx, end
call TraceToExit
add esp, 0x1C
}
}
CBaseCombatWeapon* CBaseEntity::GetActiveBaseCombatWeapon() {
static int m_hActiveWeapon = GET_NETVAR("DT_BaseCombatCharacter", "m_hActiveWeapon");
DWORD weaponHandle = *(DWORD*)((DWORD)this + (DWORD)m_hActiveWeapon);
return (CBaseCombatWeapon*)(Interfaces.pEntList->GetClientEntity(weaponHandle & 0xFFF));
}
const char* ConVar::GetName()
{
typedef char*(__thiscall* GetNameFn)(void*);
return getvfunc<GetNameFn>(this, ConVar_GetName)(this);
}
const char* ConVar::GetBaseName()
{
typedef char*(__thiscall* GetNameFn)(void*);
return getvfunc<GetNameFn>(this, ConVar_GetBaseName)(this);
}
void ConVar::SetValue(const char* value)
{
typedef void(__thiscall* SetValueFn)(void*, const char*);
return getvfunc<SetValueFn>(this, ConVar_SetString)(this, value);
}
void ConVar::SetValue(float value)
{
typedef void(__thiscall* SetValueFn)(void*, float);
return getvfunc<SetValueFn>(this, ConVar_SetFloat)(this, value);
}
void ConVar::SetValue(int value)
{
typedef void(__thiscall* SetValueFn)(void*, int);
return getvfunc<SetValueFn>(this, ConVar_SetInt)(this, value);
}
CBaseCombatWeapon* GetActiveBaseCombatWeapon();
bool SetupBones(matrix3x4 *pBoneToWorldOut, int nMaxBones, int boneMask, float currentTime) {
static DWORD m_nWritableBones = GET_NETVAR("DT_BaseAnimating", "m_nForceBone");
static DWORD m_dwOcclusionArray = *(uintptr_t*)(Utils.PatternSearch("client.dll", (PBYTE) "\xA1\x00\x00\x00\x00\x8B\xB7\x00\x00\x00\x00\x89\x75\xF8", "x????xx????xxx", 0, 0) + 0x1);
static DWORD m_bDidCheckForOcclusion = *(uintptr_t*)(Utils.PatternSearch("client.dll", (PBYTE) "\xA1\x00\x00\x00\x00\x8B\xB7\x00\x00\x00\x00\x89\x75\xF8", "x????xx????xxx", 0, 0) + 0x7);
*(int*)((uintptr_t)this + m_nWritableBones) = 0;
*(int*)((uintptr_t)this + m_bDidCheckForOcclusion) = reinterpret_cast< int* >(m_dwOcclusionArray)[1];
__asm
{
mov edi, this
lea ecx, dword ptr ds : [edi + 0x4]
mov edx, dword ptr ds : [ecx]
push currentTime
push boneMask
push nMaxBones
push pBoneToWorldOut
call dword ptr ds : [edx + 0x34]
}
}

void CBaseCombatWeapon::UpdateAccuracyPenalty() {
typedef void(__thiscall* OriginalFn)(void*);
getvfunc<OriginalFn>(this, 485)(this);
}
float& CBaseCombatWeapon::GetAccuracyPenalty() {
static int m_fAccuracyPenalty = GET_NETVAR(("DT_WeaponCSBase"), ("m_fAccuracyPenalty"));
return *(float*)((DWORD)this + m_fAccuracyPenalty);
}
float CBaseCombatWeapon::GetInaccuracy() {
if (!this)
return 0.f;
typedef float(__thiscall* OriginalFn)(void*);
return getvfunc<OriginalFn>(this, 483)(this);
}
float CBaseCombatWeapon::GetSpread() {
if (!this)
return 0.f;
typedef float(__thiscall* OriginalFn)(void*);
return getvfunc<OriginalFn>(this, 484)(this);//479
}
float CBaseCombatWeapon::GetWeaponCone() {
if (!this)
return 0.f;
typedef float(__thiscall* OriginalFn)(void*);
return getvfunc<OriginalFn>(this, 482)(this);
}

CCSWeaponInfo* GetCSWpnData()
{
if (!this) return nullptr;
typedef CCSWeaponInfo*(__thiscall* OriginalFn)(void*);
return getvfunc<OriginalFn>(this, 456)(this);
}
Епана, ты сделал мой день, жаль лукас не могу поставить.
 
reaper
Пользователь
Статус
Оффлайн
Регистрация
27 Фев 2017
Сообщения
698
Реакции[?]
119
Поинты[?]
0
Пожалуйста поставь хайд большой, а то новый pbcheat не хотим.
Спасибо заране
И да 2 причина умья в подпись
 
reaper
Пользователь
Статус
Оффлайн
Регистрация
27 Фев 2017
Сообщения
698
Реакции[?]
119
Поинты[?]
0
Передумал хайд не поставь, все равно сто ошибок
 
Начинающий
Статус
Оффлайн
Регистрация
6 Май 2016
Сообщения
45
Реакции[?]
17
Поинты[?]
4K
The end
Пользователь
Статус
Оффлайн
Регистрация
28 Янв 2017
Сообщения
448
Реакции[?]
127
Поинты[?]
0
reaper
Пользователь
Статус
Оффлайн
Регистрация
27 Фев 2017
Сообщения
698
Реакции[?]
119
Поинты[?]
0
не знаю про 100 ошибок, у меня все собирается и инжектится без проблем
Мб утебя старая версия или новая, так не получится, тогда скажи какая версия утебя или скинь под хайд
 
Забаненный
Статус
Оффлайн
Регистрация
9 Май 2017
Сообщения
38
Реакции[?]
5
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
dinqo? Бомжо софт забытая хуйня, особа хайд можно вообще не ставить, для рагед киддо сверху(tweetka288) , можешь поставить.
 
Забаненный
Статус
Оффлайн
Регистрация
18 Май 2017
Сообщения
94
Реакции[?]
21
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
просто ор
заебал у меня всё пиздить!
 
я ему дал, а он симпы набивает пидор!
 
Забаненный
Статус
Оффлайн
Регистрация
9 Май 2017
Сообщения
38
Реакции[?]
5
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Пользователь
Статус
Оффлайн
Регистрация
13 Май 2017
Сообщения
104
Реакции[?]
83
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
6 Май 2016
Сообщения
45
Реакции[?]
17
Поинты[?]
4K
просто ор
заебал у меня всё пиздить!
 
я ему дал, а он симпы набивает пидор!
погоди, ты тот школяр, кто в вк просил помочь пофиксить?
 
Передумал хайд не поставь, все равно сто ошибок
Вы хоть сурс указывайте который фиксите :D
 
Последнее редактирование:
reaper
Пользователь
Статус
Оффлайн
Регистрация
27 Фев 2017
Сообщения
698
Реакции[?]
119
Поинты[?]
0
Забаненный
Статус
Оффлайн
Регистрация
18 Май 2017
Сообщения
94
Реакции[?]
21
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Сверху Снизу