-- your code goes hereMisc Xorbase
#define Valve001 /*Valve001*/XorStr<0xE0, 9, 0xAC8FE543>("\xB6\x80\x8E\x95\x81\xD5\xD6\xD6" + 0xAC8FE543).s
// Factory Xorbase
#define VClientPrediction /*VClientPrediction*/XorStr<0xB6,18,0xB9FE4AA4>("\xE0\xF4\xD4\xD0\xDF\xD5\xC8\xED\xCC\xDA\xA4\xA8\xA1\xB7\xAD\xAA\xA8"+0xB9FE4AA4).s
#define GameMovement /*GameMovement*/XorStr<0x0D,13,0x9718CA9D>("\x4A\x6F\x62\x75\x5C\x7D\x65\x71\x78\x73\x79\x6C"+0x9718CA9D).s
#define VClientEntityList /*VClientEntityList*/XorStr<0x1D,18,0xA581C4C4>("\x4B\x5D\x73\x49\x44\x4C\x57\x61\x4B\x52\x4E\x5C\x50\x66\x42\x5F\x59"+0xA581C4C4).s
#define VEngineClient /*VEngineClient*/XorStr<0x36,14,0xB3A44271>("\x60\x72\x56\x5E\x53\x55\x59\x7E\x52\x56\x25\x2F\x36"+0xB3A44271).s
#define VModelInfoClient /*VModelInfoClient*/XorStr<0x86,17,0x85D55DC3>("\xD0\xCA\xE7\xED\xEF\xE7\xC5\xE3\xE8\xE0\xD3\xFD\xFB\xF6\xFA\xE1"+0x85D55DC3).s
#define EngineTraceClient /*EngineTraceClient*/XorStr<0x29,18,0x95BF0A98>("\x6C\x44\x4C\x45\x43\x4B\x7B\x42\x50\x51\x56\x77\x59\x5F\x52\x56\x4D"+0x95BF0A98).s
#define VEngineEffects /*VEngineEffects*/XorStr<0x4F,15,0x7CF80FBB>("\x19\x15\x3F\x35\x3A\x3A\x30\x13\x31\x3E\x3C\x39\x2F\x2F"+0x7CF80FBB).s
#define VGUI_Surface /*VGUI_Surface*/XorStr<0x8D,13,0x69A96E81>("\xDB\xC9\xDA\xD9\xCE\xC1\xE6\xE6\xF3\xF7\xF4\xFD"+0x69A96E81).s
#define VDebugOverlay /*VDebugOverlay*/XorStr<0x1E,14,0x211EDC00>("\x48\x5B\x45\x43\x57\x44\x6B\x53\x43\x55\x44\x48\x53"+0x211EDC00).s
#define VEngineRenderView /*VEngineRenderView*/XorStr<0xA4,18,0xF157A3FE>("\xF2\xE0\xC8\xC0\xC1\xC7\xCF\xF9\xC9\xC3\xCA\xCA\xC2\xE7\xDB\xD6\xC3"+0xF157A3FE).s
#define SteamClient007 /*SteamClient007*/XorStr<0x0E,15,0x5D0AF176>("\x5D\x7B\x75\x70\x7F\x50\x78\x7C\x73\x79\x6C\x29\x2A\x2C"+0x5D0AF176).s
#define SteamFriends003 /*SteamFriends003*/XorStr<0x59,16,0x844692F4>("\x0A\x2E\x3E\x3D\x30\x18\x2D\x09\x04\x0C\x07\x17\x55\x56\x54"+0x844692F4).s
#define VClient /*VClient*/XorStr<0x65,8,0xB2D7AEC7>("\x33\x25\x0B\x01\x0C\x04\x1F"+0xB2D7AEC7).s
#define VMaterialSystem /*VMaterialSystem*/XorStr<0x29,16,0x1AC4CD03>("\x7F\x67\x4A\x58\x48\x5C\x46\x51\x5D\x61\x4A\x47\x41\x53\x5A"+0x1AC4CD03).s
#define VGUI_Panel /*VGUI_Panel*/XorStr<0x51,11,0xD210EF44>("\x07\x15\x06\x1D\x0A\x06\x36\x36\x3C\x36"+0xD210EF44).s
#define GAMEEVENTSMANAGER002 /*GAMEEVENTSMANAGER002*/XorStr<0xC7,21,0xB69E4B99>("\x80\x89\x84\x8F\x8E\x9A\x88\x80\x9B\x83\x9C\x93\x9D\x95\x92\x93\x85\xE8\xE9\xE8"+0xB69E4B99).s
#define VEngineModel /*VEngineModel*/XorStr<0x42,13,0x6F6F01C3>("\x14\x06\x2A\x22\x2F\x29\x2D\x04\x25\x2F\x29\x21"+0x6F6F01C3).s
#define IEngineSoundClient /*IEngineSoundClient*/XorStr<0x20,19,0x10EB2B30>("\x69\x64\x4C\x44\x4D\x4B\x43\x74\x47\x5C\x44\x4F\x6F\x41\x47\x4A\x5E\x45"+0x10EB2B30).s
#define VPhysicsDebugOverlay /*VPhysicsDebugOverlay*/XorStr<0xCD,21,0x737BA0A7>("\x9B\x9E\xA7\xA9\xA2\xBB\xB0\xA7\x91\xB3\xB5\xAD\xBE\x95\xAD\xB9\xAF\xB2\xBE\x99"+0x737BA0A7).s
#define VEngineShadowMgr /*VEngineShadowMgr*/XorStr<0x97,17,0x6A9B763D>("\xC1\xDD\xF7\xFD\xF2\xF2\xF8\xCD\xF7\xC1\xC5\xCD\xD4\xE9\xC2\xD4"+0x6A9B763D).s
#define BlackBoxVersion /*BlackBoxVersion*/XorStr<0x6D,16,0xC88752E2>("\x2F\x02\x0E\x13\x1A\x30\x1C\x0C\x23\x13\x05\x0B\x10\x15\x15"+0xC88752E2).s
#define VCLIENTENGINETOOLS /*VCLIENTENGINETOOLS*/XorStr<0xB2,19,0x50325170>("\xE4\xF0\xF8\xFC\xF3\xF9\xEC\xFC\xF4\xFC\xF5\xF3\xFB\xEB\x8F\x8E\x8E\x90"+0x50325170).s
#define VEngineVGui /*VEngineVGui*/XorStr<0xEA,12,0x5FE3AD1A>("\xBC\xAE\x82\x8A\x87\x81\x95\xA7\xB5\x86\x9D"+0x5FE3AD1A).s
#define InputSystemVersion /*InputSystemVersion*/XorStr<0x30,19,0xF07789F8>("\x79\x5F\x42\x46\x40\x66\x4F\x44\x4C\x5C\x57\x6D\x59\x4F\x4D\x56\x2F\x2F"+0xF07789F8).s
#define VPhysicsSurfaceProps /*VPhysicsSurfaceProps*/XorStr<0x28,21,0x3E7076FB>("\x7E\x79\x42\x52\x5F\x44\x4D\x5C\x63\x44\x40\x55\x55\x56\x53\x67\x4A\x56\x4A\x48"+0x3E7076FB).s
#define VPhysicsCollision /*VPhysicsCollision*/XorStr<0xD0,18,0x6420ED31>("\x86\x81\xBA\xAA\xA7\xBC\xB5\xA4\x9B\xB6\xB6\xB7\xB5\xAE\xB7\xB0\x8E"+0x6420ED31).s
#define VPhysics /*VPhysics*/XorStr<0x96,9,0x61DF4039>("\xC0\xC7\xF0\xE0\xE9\xF2\xFF\xEE"+0x61DF4039).s
#define ShaderDLL /*ShaderDLL*/XorStr<0xE6,10,0x8B14681A>("\xB5\x8F\x89\x8D\x8F\x99\xA8\xA1\xA2"+0x8B14681A).s
#define ShaderSystem /*ShaderSystem*/XorStr<0x7F,13,0xE636CCF5>("\x2C\xE8\xE0\xE6\xE6\xF6\xD6\xFF\xF4\xFC\xEC\xE7"+0xE636CCF5).s
#define VMaterialSystemStub /*VMaterialSystemStub*/XorStr<0xEB,20,0x8451F450>("\xBD\xA1\x8C\x9A\x8A\x82\x98\x93\x9F\xA7\x8C\x85\x83\x9D\x94\xA9\x8F\x89\x9F"+0x8451F450).s
#define VEngineCvar /*VEngineCvar*/XorStr<0x8D,12,0x8C803C90>("\xDB\xCB\xE1\xF7\xF8\xFC\xF6\xD7\xE3\xF7\xE5"+0x8C803C90).s
#define VStudioRender /*VStudioRender*/XorStr<0x67,14,0x7315D5E0>("\x31\x3B\x1D\x1F\x0F\x05\x02\x3C\x0A\x1E\x15\x17\x01"+0x7315D5E0).s
#define VSoundEmitter /*VSoundEmitter*/XorStr<0xD9,14,0x67922792>("\x8F\x89\xB4\xA9\xB3\xBA\x9A\x8D\x88\x96\x97\x81\x97"+0x67922792).s
#define MATCHFRAMEWORK_ /*MATCHFRAMEWORK_*/XorStr<0x9B,16,0x5DC7A952>("\xD6\xDD\xC9\xDD\xD7\xE6\xF3\xE3\xEE\xE1\xF2\xE9\xF5\xE3\xF6"+0x5DC7A952).s
#define VCLIENTTOOLS /*VCLIENTTOOLS*/XorStr<0x85,13,0xF85E6295>("\xD3\xC5\xCB\xC1\xCC\xC4\xDF\xD8\xC2\xC1\xC3\xC3"+0xF85E6295).s
#define RunGameEngine /*RunGameEngine*/XorStr<0xCF,14,0xBCA6FA95>("\x9D\xA5\xBF\x95\xB2\xB9\xB0\x93\xB9\xBF\xB0\xB4\xBE"+0xBCA6FA95).s
#define GameUI /*GameUI*/XorStr<0x36,7,0xE02033D8>("\x71\x56\x55\x5C\x6F\x72"+0xE02033D8).s
#define GameConsole /*GameConsole*/XorStr<0x84,12,0xDB992D74>("\xC3\xE4\xEB\xE2\xCB\xE6\xE4\xF8\xE3\xE1\xEB"+0xDB992D74).s
#define ClientLeafSystem /*ClientLeafSystem*/XorStr<0xBC,17,0xF73B131B>("\xFF\xD1\xD7\xDA\xAE\xB5\x8E\xA6\xA5\xA3\x95\xBE\xBB\xBD\xAF\xA6"+0xF73B131B).s
#define VENGINE_GAMETYPES_VERSION /*VENGINE_GAMETYPES_VERSION*/XorStr<0x70,26,0x93131703>("\x26\x34\x3C\x34\x3D\x3B\x33\x28\x3F\x38\x37\x3E\x28\x24\x2E\x3A\xD3\xDE\xD4\xC6\xD6\xD6\xCF\xC8\xC6"+0x93131703).s
#define ShaderShadow /*ShaderShadow*/XorStr<0x57,13,0x43E913EB>("\x04\x30\x38\x3E\x3E\x2E\x0E\x36\x3E\x04\x0E\x15"+0x43E913EB).s
#define ShaderDeviceMgr /*ShaderDeviceMgr*/XorStr<0xD3,16,0x8CEA10C6>("\x80\xBC\xB4\xB2\xB2\xAA\x9D\xBF\xAD\xB5\xBE\xBB\x92\x87\x93"+0x8CEA10C6).s
#define ShaderDevice /*ShaderDevice*/XorStr<0x2F,13,0xC548EC9E>("\x7C\x58\x50\x56\x56\x46\x71\x53\x41\x51\x5A\x5F"+0xC548EC9E).s
#define ShaderApi /*ShaderApi*/XorStr<0x1F,10,0xA07AD0F0>("\x4C\x48\x40\x46\x46\x56\x64\x56\x4E"+0xA07AD0F0).s
// Things
#define MODEL_TEXTURES /*Model textures*/XorStr<0x83,15,0xFF037887>("\xCE\xEB\xE1\xE3\xEB\xA8\xFD\xEF\xF3\xF8\xF8\xFC\xEA\xE3"+0xFF037887).s
#define MODEL_CLIENTEFFECT /*ClientEffect textures*/XorStr<0x86,22,0xADF4834D>("\xC5\xEB\xE1\xEC\xE4\xFF\xC9\xEB\xE8\xEA\xF3\xE5\xB2\xE7\xF1\xED\xE2\xE2\xEA\xFC\xE9"+0xADF4834D).s
#define WORLD_TEXTURES /*World*/XorStr<0xF1,6,0xF1733D58>("\xA6\x9D\x81\x98\x91"+0xF1733D58).s
#define SKYBOX_TEXTURES /*SkyBox textures*/XorStr<0x3B,16,0x7E6DE8D3>("\x68\x57\x44\x7C\x50\x38\x61\x36\x26\x3C\x31\x33\x35\x2D\x3A"+0x7E6DE8D3).s
#define clientmodeoffset 0x4AAE330
#include "sdk.h"
#include "xor.h"
#include "Cvars.h"
#include "Toolbox.h"
#include "Drawing.h"
#include "ESP.h"
#include "Aimbot.h"
#include "Keyp.h"
#include "delta.h"
#include "Misc.h"
#include "Math.h"
#include "Netvar.h"
IBaseClientDLL* g_pBaseClientDLL = NULL;
IVEngineClient* g_pEngineClient = NULL;
IClientEntityList* g_pClientEntityList = NULL;
ISurface* g_pSurface = NULL;
CGlobalVarsBase* g_pGlobals = NULL;
CInput* g_pInput = NULL;
IVModelInfoClient* g_pModelInfoClient = NULL;
IPanel* g_pPanel = NULL;
IMaterialSystem* g_pMaterialSystem = NULL;
IGameEventManager2* g_pGameEventManager = NULL;
IVModelRender* g_pModelRender = NULL;
IEngineTrace* g_pEngineTrace = NULL;
ICvar* g_pCvar = NULL;
IGameMovement* g_pGameMovement = NULL;
IPrediction* g_pPrediction = NULL;
IVEffects* g_pVEffects = NULL;
IVDebugOverlay* g_pDebugOverlay = NULL;
IVRenderView* g_pRenderView = NULL;
IEngineSound* g_pEngineSound = NULL;
IVPhysicsDebugOverlay* g_pPhysicsDebugOverlay = NULL;
IShadowMgr* g_pShadowManager = NULL;
IBlackBox* g_pBlackBox = NULL;
IClientEngineTools* g_pClientEngineTools = NULL;
IEngineVGui* g_pEngineVGui = NULL;
IInputSystem* g_pInputSystem = NULL;
IMatchFramework* g_pMatchFramework = NULL;
IPhysicsSurfaceProps* g_pPhysicsSurfaceProps = NULL;
IPhysicsCollision* g_pPhysicsCollision = NULL;
IPhysics* g_pPhysics = NULL;
IShaderSystem* g_pShaderSystem = NULL;
IShaderDLLInternal* g_pShaderDLL = NULL;
IMaterialSystemStub* g_pMaterialSystemStub = NULL;
IStudioRender* g_pStudioRender = NULL;
ISoundEmitterSystemBase* g_pSoundEmitterBase = NULL;
IShaderShadow* g_pShaderShadow = NULL;
IShaderDeviceMgr* g_pShaderDeviceMgr = NULL;
IShaderDevice* g_pShaderDevice = NULL;
IShaderAPI* g_pShaderApi = NULL;
ISteamClient* g_pSteamClient = NULL;
ISteamFriends* g_pSteamFriends = NULL;
INetChannelInfo* g_pChannel = NULL;
void* g_pClientMode = NULL;
tCreateMove oCreateMove;
tPaintTraverse oPaintTraverse;
tFrameStageNotify oFrameStageNotify;
tSetCursorPos oSetCursorPos;
tGetCursorPos oGetCursorPos;
tFindMaterial oFindMaterial;
tKeyEvent oKeyEvent;
tclCreateMove oclCreateMove;
tclOverrideView oclOverrideView;
tclShouldDrawParticles oclShouldDrawParticles;
//======================================================================
#if defined(HACK_GMOD)
CUserCmd *WINAPI hkGetUserCmd(int sequence_number)
{
static CUserCmd* pCmd = *(CUserCmd **)((DWORD)g_pInput + 0xC4);
return &pCmd[sequence_number % MULTIPLAYER_BACKUP];
}
//======================================================================
//======================================================================
bool WINAPI hkWriteUsercmdDeltaToBuffer(void* buf, int from, int to, bool isnew)
{
CUserCmd nullcmd, *F, *T;
typedef void(__cdecl* tWriteUserCmd)(void*, CUserCmd*, CUserCmd*);
static tWriteUserCmd WriteUserCmd = (tWriteUserCmd)gToolBox.FindPattern(clientdll, "\x55\x8B\xEC\x8B\x45\x10\x8B\x48\x04");
//util::FindPattern((DWORD)GetModuleHandle(clientdll), 0x640000, "\x55\x8B\xEC\x8B\x45\x10\x8B\x48\x04") NANO
if (from == -1)
F = &nullcmd;
else if (!(F = hkGetUserCmd(from)))
F = &nullcmd;
if (!(T = hkGetUserCmd(to)))
T = &nullcmd;
WriteUserCmd(buf, T, F);
return !(*(bool*)((DWORD)buf + 0x10));
}
#endif
//======================================================================
//======================================================================
void WINAPI hkCreateMove(int sequence_number, float input_sample_frametime, bool active)
{
CBaseCombatWeapon* pBaseWeapon = NULL;
IClientEntity* pLocal = NULL;
byte* bSendPacket = NULL;
void* __ebp = NULL;
pLocal = (IClientEntity*)g_pClientEntityList->GetClientEntity(g_pEngineClient->GetLocalPlayer());
if (pLocal)
{
pBaseWeapon = pLocal->m_hActiveWeapon(g_pClientEntityList);
#if defined(HACK_TF2)
if (pBaseWeapon && pLocal->IsAlive() && gVars.misc_bhop)
{
if (pLocal->m_iPlayerClass() == TFClass_Heavy && pBaseWeapon->GetClientClass()->GetName() && streql(pBaseWeapon->GetClientClass()->GetName(), /*Minigun*/XorStr<0x56, 8, 0x2F3249BE>("\x1B\x3E\x36\x30\x3D\x2E\x32" + 0x2F3249BE).s));
*(int*)((DWORD)pBaseWeapon + gAddys.m_iWeaponState) = AC_STATE_IDLE;
}
#endif
}
oCreateMove(sequence_number, input_sample_frametime, active);
CUserCmd* pCmd = GetMGUserCmd(sequence_number);
if (!pCmd)
return;
Vector vecOldView = pCmd->m_vecViewAngles;
Vector vecOldMove = pCmd->m_vecMove;
gVars.RadarView = vecOldView;
_asm
{
mov __ebp, ebp;
};
#if !defined(HACK_CSGO)
bSendPacket = (byte *)(*(char **)__ebp - 0x1);
#endif
// Move Modifiers #
gMisc.AntiAim(pCmd, pLocal, bSendPacket, vecOldView); // AA
gMisc.SpamMove(pCmd);
gAimbot.DoAim(pCmd, pLocal, pBaseWeapon); // Aimer
gAimbot.SimulateBulletFire(pCmd, pLocal, pBaseWeapon); // Spread, Recoil, Bullet drop
gAimbot.DoTrigger(pCmd, pLocal, pBaseWeapon);
gMisc.SpeedHack(__ebp, bSendPacket);
gMisc.Airstuck(bSendPacket, pCmd);
gMisc.Autostrafe(pCmd, pLocal, bSendPacket);
gMisc.FakeLag(pCmd, bSendPacket);
gMisc.SpamCommands();
gMisc.NameSteal();
gMisc.ForceSkin(pBaseWeapon, 38);
if (gVars.misc_ghostmode && gKeyInput.alt_holding)
pCmd->m_vecMove = Vector(0, 0, 0);
if (gVars.aimbot_fixangles)
{
pCmd->m_vecMove.z = 0;
pCmd->m_vecViewAngles.z = 0;
if (isinf(pCmd->m_vecMove.x)
|| isinf(pCmd->m_vecMove.y)
|| isinf(pCmd->m_vecMove.z)
|| pCmd->m_vecMove.z != 0.0f
|| pCmd->m_vecMove.x > 1000 || pCmd->m_vecMove.x < -1000
|| pCmd->m_vecMove.y > 1000 || pCmd->m_vecMove.y < -1000
|| pCmd->m_vecMove.z > 1000 || pCmd->m_vecMove.z < -1000)
{
gToolBox.ConsoleColor(ConCol::RED, /*[RIP MANAGER] Move(%f %f %f)*/XorStr<0x4E, 29, 0xEA3108FE>("\x15\x1D\x19\x01\x72\x1E\x15\x1B\x17\x10\x1D\x0B\x07\x7B\x11\x32\x28\x3A\x48\x44\x04\x43\x41\x03\x46\x42\x0E\x40" + 0xEA3108FE).s, pCmd->m_vecMove.x, pCmd->m_vecMove.y, pCmd->m_vecMove.z);
pCmd->m_vecMove.x = vecOldMove.x;
pCmd->m_vecMove.y = vecOldMove.y;
}
pCmd->m_vecViewAngles.Fix();
if (pCmd->m_vecViewAngles.z != 0.0f
|| pCmd->m_vecViewAngles != pCmd->m_vecViewAngles
|| pCmd->m_vecViewAngles.x < -89 || pCmd->m_vecViewAngles.x > 89
|| pCmd->m_vecViewAngles.y < -180 || pCmd->m_vecViewAngles.y > 180
|| pCmd->m_vecViewAngles.y < -179.99 || pCmd->m_vecViewAngles.y > 179.99
|| isinf(pCmd->m_vecViewAngles.x)
|| isinf(pCmd->m_vecViewAngles.y)
|| isinf(pCmd->m_vecViewAngles.z))
{
gToolBox.ConsoleColor(ConCol::RED, /*[RIP MANAGER] Vector(%f %f %f)*/XorStr<0xDF, 31, 0x2499905D>("\x84\xB2\xA8\xB2\xC3\xA9\xA4\xA8\xA6\xAF\xAC\xB8\xB6\xCC\xBB\x8B\x8C\x84\x9E\x80\xDB\xD1\x93\xD6\xD2\x9E\xD9\xDF\x9D\xD5" + 0x2499905D).s, pCmd->m_vecViewAngles.x, pCmd->m_vecViewAngles.y, pCmd->m_vecViewAngles.z);
pCmd->m_vecViewAngles.x = vecOldView.x;
pCmd->m_vecViewAngles.y = vecOldView.y;
}
}
if (!gVars.aimbot_silent)
g_pEngineClient->SetViewAngles(pCmd->m_vecViewAngles);
#if !defined(HACK_GMOD)
CInput::CVerifiedUserCmd* pVerfiedCmd = *(CInput::CVerifiedUserCmd**)((DWORD)g_pInput + pVerifiedCommandOff);
if (!pVerfiedCmd)
return;
CInput::CVerifiedUserCmd* pVerfied = &pVerfiedCmd[sequence_number % MULTIPLAYER_BACKUP];
if (!pVerfied)
return;
pVerfied->m_cmd = *pCmd;
pVerfied->m_crc = gToolBox.GetCRC(pCmd);
#endif
}
//======================================================================
//======================================================================
void WINAPI hkclCreateMove(float input_sample_frametime, CUserCmd* pCmd)
{
static bool sbDoneOnce = false;
if (!sbDoneOnce)
{
prnQuick("*barks internally*");
sbDoneOnce = true;
}
Vector vecOldView = pCmd->m_vecViewAngles;
Vector vecOldMove = pCmd->m_vecMove;
oclCreateMove(input_sample_frametime, pCmd);
}
//======================================================================
//======================================================================
void WINAPI hkclOverrideView(CViewSetup* pSetup)
{
static Vector newOrigin;
if (g_pEngineClient->IsInGame() && g_pEngineClient->IsConnected())
{
IClientEntity* pLocal = (IClientEntity*)g_pClientEntityList->GetClientEntity(g_pEngineClient->GetLocalPlayer());
if (!pLocal)
return;
if (gVars.misc_fovhack && pSetup->fov != 120.0f)
pSetup->fov = 120.0f;
if (!gKeyInput.alt_holding)
newOrigin = pSetup->origin;
if (gVars.misc_ghostmode && gKeyInput.alt_holding)
{
float fSpeed = 5.f;
if (GetAsyncKeyState(VK_CONTROL))
fSpeed = fSpeed * 0.45;
if (GetAsyncKeyState(VK_SHIFT))
fSpeed = fSpeed * 1.65;
if (GetAsyncKeyState(0x57)) // W
newOrigin += pSetup->angles.Forward() * fSpeed;
if (GetAsyncKeyState(0x41)) // A
newOrigin -= pSetup->angles.Right() * fSpeed;
if (GetAsyncKeyState(0x44)) // D
newOrigin += pSetup->angles.Right() * fSpeed;
if (GetAsyncKeyState(0x53)) // S
newOrigin -= pSetup->angles.Forward() * fSpeed;
if (GetAsyncKeyState(VK_SPACE)) // S
newOrigin += pSetup->angles.Up() * fSpeed;
if (gKeyInput.e_holding)
{
Vector vecEnd;
trace_t tr;
Ray_t ray;
gMath._AngleVectors(pSetup->angles, &vecEnd);
vecEnd = vecEnd * 8192.0f + newOrigin;
ray.Init(newOrigin, vecEnd);
g_pEngineTrace->TraceRay(ray, CONTENTS_SOLID, NULL, &tr);
newOrigin = tr.endpos;
}
pSetup->origin = newOrigin;
}
}
oclOverrideView(pSetup);
}
//======================================================================
//======================================================================
bool WINAPI hkclShouldDrawParticles()
{
if (gVars.esp_noparticles)
return false;
return oclShouldDrawParticles();
}
//======================================================================
//======================================================================
void WINAPI hkPaintTraverse(VPANEL vguiPanel, bool forceRepaint, bool allowForce)
{
oPaintTraverse(vguiPanel, forceRepaint, allowForce);
static bool sbFoundPanel = false;
static bool unlockonce = false;
static bool lockonce = false;
VPANEL uiPopupPanel = NULL;
if (!uiPopupPanel)
{
const char* panelName = g_pPanel->GetName(vguiPanel);
if (!panelName)
return;
if (gToolBox.IsGoodPanel(panelName))
{
if (!sbFoundPanel)
prn(ConCol::DARKGRAY, /*[PaintTraverse] Panel Name: %s*/XorStr<0xFE, 31, 0x3DBD2073>("\xA5\xAF\x61\x68\x6C\x77\x50\x77\x67\x71\x6D\x7B\x79\x6E\x51\x2D\x5E\x6E\x7E\x74\x7E\x33\x5A\x74\x7B\x72\x22\x39\x3F\x68" + 0x3DBD2073).s, panelName);
uiPopupPanel = vguiPanel;
}
}
if (uiPopupPanel == vguiPanel)
{
if (!sbFoundPanel)
{
pDrawing.Initialize();
prn(ConCol::DARKGRAY, /*[PaintTraverse] Called pDrawing.Initialize()*/XorStr<0x7E, 45, 0x95A11AC2>("\x25\x2F\xE1\xE8\xEC\xF7\xD0\xF7\xE7\xF1\xED\xFB\xF9\xEE\xD1\xAD\xCD\xEE\xFC\xFD\xF7\xF7\xB4\xE5\xD2\xE5\xF9\xEE\xF3\xF5\xFB\xB3\xD7\xF1\xC9\xD5\xCB\xC2\xC8\xCC\xDC\xC2\x80\x80" + 0x95A11AC2).s);
sbFoundPanel = true;
}
while (pScreenSize.m_iHeight < 300 || pScreenSize.m_iWidth < 300)
g_pEngineClient->GetScreenSize(pScreenSize.m_iWidth, pScreenSize.m_iHeight);
gMisc.StatsThink();
gKeyInput.Think();
gGUIInput.Think();
if ((gVars.misc_antiscreenshot && !gKeyInput.f12_holding) || !gVars.misc_antiscreenshot)
{
Radar->Think();
Radar->Paint();
if (g_pEngineClient->IsInGame() && g_pEngineClient->IsConnected())
{
IClientEntity* pLocal = (IClientEntity*)g_pClientEntityList->GetClientEntity(g_pEngineClient->GetLocalPlayer());
if (!pLocal)
return;
CBaseCombatWeapon* pBaseWeapon = pLocal->m_hActiveWeapon(g_pClientEntityList);
if (!pBaseWeapon)
return;
gMisc.DrawESP(pLocal, pBaseWeapon);
}
pDrawing.DrawString(FONT_MENU_OUTLINED, WinAlign::WIDTH, (pScreenSize.m_iWidth / 2), 100, MENU_BH, "Win200");
Clock->Think();
Clock->Paint();
InfoBox->Paint();
InfoBox->Think();
Game_Snake->Think();
Game_Snake->Paint();
#if defined(HACK_CSS)
StatsBox->Think();
StatsBox->Paint();
#endif
}
if (gVars.hotkey_menu)
{
if (!unlockonce && g_pEngineClient->IsInGame() && g_pEngineClient->IsConnected())
{
#ifdef HACK_CSGO
g_pEngineClient->ClientCmd(/*cl_mouseenable 0*/XorStr<0xE2, 17, 0x4CC92237>("\x81\x8F\xBB\x88\x89\x92\x9B\x8C\x8F\x85\x8D\x8F\x82\x8A\xD0\xC1" + 0x4CC92237).s);
#else
g_pSurface->SetCursorAlwaysVisible(true);
#endif
unlockonce = true;
lockonce = false;
}
Menu->Paint();
Menu->Think();
gKeyInput.DrawCursor();
}
else
{
if (!lockonce && g_pEngineClient->IsInGame() && g_pEngineClient->IsConnected())
{
#ifdef HACK_CSGO
g_pEngineClient->ClientCmd(/*cl_mouseenable 1*/XorStr<0x63, 17, 0x14FAA548>("\x00\x08\x3A\x0B\x08\x1D\x1A\x0F\x0E\x02\x0C\x0C\x03\x15\x51\x43" + 0x14FAA548).s);
#else
g_pSurface->SetCursorAlwaysVisible(false);
#endif
lockonce = true;
unlockonce = false;
}
}
}
}
//======================================================================
//======================================================================
void WINAPI hkFrameStageNotify(ClientFrameStage_t curStage)
{
Vector* PunchAngle = NULL, *ViewPunch = NULL, OldPunch, OldViewPunch;
if (curStage == FRAME_RENDER_START)
{
if (gVars.aimbot_novisrecoil && g_pEngineClient->IsInGame() && g_pEngineClient->IsConnected())
{
IClientEntity* pLocal = (IClientEntity*)g_pClientEntityList->GetClientEntity(g_pEngineClient->GetLocalPlayer());
if (pLocal && pLocal->IsAlive())
{
PunchAngle = (Vector*)((DWORD)pLocal + gAddys.m_vecPunchAngle);
OldPunch = *PunchAngle;
*PunchAngle = Vector(0.0f, 0.0f, 0.0f);
#if defined(HACK_CSGO)
ViewPunch = (Vector*)((DWORD)pLocal + gAddys.m_viewPunchAngle);
OldViewPunch = *ViewPunch;
*ViewPunch = Vector(0.0f, 0.0f, 0.0f);
#endif
}
}
}
oFrameStageNotify(curStage);
if (curStage == FRAME_RENDER_START)
{
if (gVars.aimbot_novisrecoil && g_pEngineClient->IsInGame() && g_pEngineClient->IsConnected())
{
IClientEntity* pLocal = (IClientEntity*)g_pClientEntityList->GetClientEntity(g_pEngineClient->GetLocalPlayer());
if (pLocal && pLocal->IsAlive())
{
*PunchAngle = OldPunch;
#if defined(HACK_CSGO)
*ViewPunch = OldViewPunch;
#endif
}
}
}
}
//======================================================================
//======================================================================
IMaterial* WINAPI hkFindMaterial(char const* pMaterialName, const char* pTextureGroupName, bool complain, const char* pComplainPrefix = NULL)
{
static bool bInGame = false;
IMaterial* pMaterial = NULL;
pMaterial = oFindMaterial(pMaterialName, pTextureGroupName, complain, pComplainPrefix);
if (pMaterialName && pTextureGroupName)
{
if (g_pEngineClient->IsInGame() && g_pEngineClient->IsConnected())
{
if (!bInGame)
{
gMisc.SetAsusWalls(gVars.esp_asuswalls, 0.6f);
gMisc.SetSkyChams(gVars.esp_nosky);
gMisc.SetPlayerChams(gVars.esp_playerwallhack, gVars.esp_wireplayer);
gMisc.SetWeaponChams(gVars.esp_nohands, gVars.esp_wireweapons);
bInGame = true;
}
}
else
{
if (bInGame)
{
gMisc.vecSkyTextures.clear(); //Clear Buffer
gMisc.vecMapTextures.clear(); //Clear Buffer
gMisc.SetSkyChams(false); //Fixing Server Error
gMisc.SetPlayerChams(false, false); //Fixing Server Error
gMisc.SetWeaponChams(false, false); //Fixing Server Error
bInGame = false;
}
if (strstr(pTextureGroupName, SKYBOX_TEXTURES))
gMisc.vecSkyTextures.push_back(pMaterial);
if (strstr(pTextureGroupName, WORLD_TEXTURES) && !strstr(pMaterialName, /*models\\player*/XorStr<0xBC, 14, 0x4FAFEAA3>("\xD1\xD2\xDA\xDA\xAC\xB2\x9E\xB3\xA8\xA4\xBF\xA2\xBA" + 0x4FAFEAA3).s))
gMisc.vecMapTextures.push_back(pMaterial);
if (strstr(pTextureGroupName, MODEL_TEXTURES) && strstr(pMaterialName, /*models\\player*/XorStr<0xBC, 14, 0x4FAFEAA3>("\xD1\xD2\xDA\xDA\xAC\xB2\x9E\xB3\xA8\xA4\xBF\xA2\xBA" + 0x4FAFEAA3).s))
gMisc.vecPlayerTextures.push_back(pMaterial);
if (strstr(pTextureGroupName, MODEL_TEXTURES) && strstr(pMaterialName, /*models\\weapons*/XorStr<0xD8, 15, 0x6123BC7A>("\xB5\xB6\xBE\xBE\xB0\xAE\x82\xA8\x85\x80\x92\x8C\x8A\x96" + 0x6123BC7A).s))
gMisc.vecWeaponTextures.push_back(pMaterial);
if (strstr(pMaterialName, /*wood*/XorStr<0x14, 5, 0x8FD732C2>("\x63\x7A\x79\x73" + 0x8FD732C2).s)
|| strstr(pMaterialName, /*WOOD*/XorStr<0xA6, 5, 0x0B5F5397>("\xF1\xE8\xE7\xED" + 0x0B5F5397).s)
|| strstr(pMaterialName, /*door*/XorStr<0xDE, 5, 0x871051D3>("\xBA\xB0\x8F\x93" + 0x871051D3).s)
|| strstr(pMaterialName, /*DOOR*/XorStr<0x3C, 5, 0xF9444CE6>("\x78\x72\x71\x6D" + 0xF9444CE6).s)
|| strstr(pMaterialName, /*gate*/XorStr<0xBA, 5, 0x5598E5A0>("\xDD\xDA\xC8\xD8" + 0x5598E5A0).s)
|| strstr(pMaterialName, /*GATE*/XorStr<0xC1, 5, 0xC5783BBB>("\x86\x83\x97\x81" + 0xC5783BBB).s)
|| strstr(pMaterialName, /*box*/XorStr<0xCB, 4, 0x3B0E547D>("\xA9\xA3\xB5" + 0x3B0E547D).s)
|| strstr(pMaterialName, /*BOX*/XorStr<0x89, 4, 0x18DEA303>("\xCB\xC5\xD3" + 0x18DEA303).s)
|| strstr(pMaterialName, /*decal*/XorStr<0xB5, 6, 0x4E9E81D9>("\xD1\xD3\xD4\xD9\xD5" + 0x4E9E81D9).s)
|| strstr(pMaterialName, /*DECAL*/XorStr<0x68, 6, 0xFC506747>("\x2C\x2C\x29\x2A\x20" + 0xFC506747).s))
gMisc.vecMapTextures.push_back(pMaterial);
}
}
return pMaterial;
}
//======================================================================
//======================================================================
int WINAPI hkKeyEvent(int eventcode, ButtonCode_t keynum, const char *pszCurrentBinding)
{
if (eventcode == 1 && keynum != BUTTON_CODE_INVALID)
{
if (g_pEngineClient->IsInGame() && g_pEngineClient->IsConnected() && keynum == KEY_INSERT)
{
gVars.hotkey_menu = !gVars.hotkey_menu;
return NULL;
}
if (keynum == KEY_LALT)
{
gVars.misc_airstuck_active = !gVars.misc_airstuck_active;
return NULL;
}
}
return oKeyEvent(eventcode, keynum, pszCurrentBinding);
}
//======================================================================
//======================================================================
BOOL WINAPI hkSetCursorPos(int x, int y)
{
gVars.OldPos.x = x;
gVars.OldPos.y = y;
if (gVars.hotkey_menu)
return true;
return oSetCursorPos(x, y);
}
//======================================================================
//======================================================================
BOOL WINAPI hkGetCursorPos(LPPOINT lpPoint)
{
BOOL old = oGetCursorPos(lpPoint);
if (gVars.hotkey_menu)
{
ScreenToClient(GetForegroundWindow(), lpPoint);
gVars.MousePos.x = lpPoint->x;
gVars.MousePos.y = lpPoint->y;
if (g_pEngineClient->IsInGame())
{
lpPoint->x = gVars.OldPos.x;
lpPoint->y = gVars.OldPos.y;
}
}
return old;
}
//======================================================================
//======================================================================
void OnStart()
{
static bool bStartedOnce = false;
if (bStartedOnce)
return;
gToolBox.CreateDebugConsole();
const char* pszStrPath = gToolBox.GetDLLPath(gVars.hInst).c_str();
sprintf(gVars.CurrentDir, "%s", pszStrPath);
sprintf(gVars.LogPath, WIN200_LOGFILE, pszStrPath);
sprintf(gVars.ScorePath, WIN200_HIGHSCOREFILE, pszStrPath);
sprintf(gVars.ConfigPath, WIN200_SETTINGSFILE, pszStrPath);
while (!FindWindow(Valve001, NULL))
Sleep(100); prn(ConCol::DARKRED, /*Found Valve001*/XorStr<0xD8, 15, 0xD21AA565>("\x9E\xB6\xAF\xB5\xB8\xFD\x88\xBE\x8C\x97\x87\xD3\xD4\xD4" + 0xD21AA565).s);
while (!GetModuleHandle(enginedll) || !GetModuleHandle(clientdll))
Sleep(100); prn(ConCol::DARKRED, /*Found Handles*/XorStr<0x9C, 14, 0x72342165>("\xDA\xF2\xEB\xF1\xC4\x81\xEA\xC2\xCA\xC1\xCA\xC2\xDB" + 0x72342165).s);
prn(ConCol::BLUE, gVars.CurrentDir);
gVars.FirstTime();
tCreateInterface SteamFactory = gToolBox.SetFactory(steamclientdll);
tCreateInterface ClientFactory = gToolBox.SetFactory(clientdll);
tCreateInterface EngineFactory = gToolBox.SetFactory(enginedll);
tCreateInterface VguiFactory = gToolBox.SetFactory(vguimatsurfacedll);
tCreateInterface Vgui2Factory = gToolBox.SetFactory(vgui2dll);
tCreateInterface MaterialFactory = gToolBox.SetFactory(materialsystemdll);
tCreateInterface CvarFactory = gToolBox.SetFactory(vstdlibdll);
tCreateInterface InputFactory = gToolBox.SetFactory(inputsystemdll);
tCreateInterface PhysicsFactory = gToolBox.SetFactory(vphysicsdll);
tCreateInterface StudioFactory = gToolBox.SetFactory(studiorenderdll);
tCreateInterface SoundFactory = gToolBox.SetFactory(soundemittersystemdll);
tCreateInterface ShaderFactory = gToolBox.SetFactory(shaderapidx9dll);
#if defined(HACK_CSGO)
tCreateInterface MatchmakingFactory = gToolBox.SetFactory(matchmakingdll);
#endif
g_pPrediction = (IPrediction*)gToolBox.BruteforceInterface(ClientFactory, VClientPrediction);
g_pGameMovement = (IGameMovement*)gToolBox.BruteforceInterface(ClientFactory, GameMovement);
g_pClientEntityList = (IClientEntityList*)gToolBox.BruteforceInterface(ClientFactory, VClientEntityList);
g_pEngineClient = (IVEngineClient*)gToolBox.BruteforceInterface(EngineFactory, VEngineClient);
g_pModelInfoClient = (IVModelInfoClient*)gToolBox.BruteforceInterface(EngineFactory, VModelInfoClient);
g_pEngineTrace = (IEngineTrace*)gToolBox.BruteforceInterface(EngineFactory, EngineTraceClient);
g_pVEffects = (IVEffects*)gToolBox.BruteforceInterface(EngineFactory, VEngineEffects);
g_pSurface = (ISurface*)gToolBox.BruteforceInterface(VguiFactory, VGUI_Surface);
g_pCvar = (ICvar*)gToolBox.BruteforceInterface(CvarFactory, VEngineCvar);
g_pDebugOverlay = (IVDebugOverlay*)gToolBox.BruteforceInterface(EngineFactory, VDebugOverlay);
g_pRenderView = (IVRenderView*)gToolBox.BruteforceInterface(EngineFactory, VEngineRenderView);
g_pModelRender = (IVModelRender*)gToolBox.BruteforceInterface(EngineFactory, VEngineModel);
g_pEngineSound = (IEngineSound*)gToolBox.BruteforceInterface(EngineFactory, IEngineSoundClient);
g_pPhysicsDebugOverlay = (IVPhysicsDebugOverlay*)gToolBox.BruteforceInterface(EngineFactory, VPhysicsDebugOverlay);
g_pShadowManager = (IShadowMgr*)gToolBox.BruteforceInterface(EngineFactory, VEngineShadowMgr);
g_pBlackBox = (IBlackBox*)gToolBox.BruteforceInterface(EngineFactory, BlackBoxVersion);
g_pClientEngineTools = (IClientEngineTools*)gToolBox.BruteforceInterface(EngineFactory, VCLIENTENGINETOOLS);
g_pEngineVGui = (IEngineVGui*)gToolBox.BruteforceInterface(EngineFactory, VEngineVGui);
g_pInputSystem = (IInputSystem*)gToolBox.BruteforceInterface(InputFactory, InputSystemVersion);
g_pShaderShadow = (IShaderShadow*)gToolBox.BruteforceInterface(ShaderFactory, ShaderShadow);
g_pShaderDeviceMgr = (IShaderDeviceMgr*)gToolBox.BruteforceInterface(ShaderFactory, ShaderDeviceMgr);
g_pShaderDevice = (IShaderDevice*)gToolBox.BruteforceInterface(ShaderFactory, ShaderDevice);
g_pShaderApi = (IShaderAPI*)gToolBox.BruteforceInterface(ShaderFactory, ShaderApi);
g_pPhysicsSurfaceProps = (IPhysicsSurfaceProps*)gToolBox.BruteforceInterface(PhysicsFactory, VPhysicsSurfaceProps);
g_pPhysicsCollision = (IPhysicsCollision*)gToolBox.BruteforceInterface(PhysicsFactory, VPhysicsCollision);
g_pPhysics = (IPhysics*)gToolBox.BruteforceInterface(PhysicsFactory, VPhysics);
g_pShaderDLL = (IShaderDLLInternal*)gToolBox.BruteforceInterface(MaterialFactory, ShaderDLL);
g_pShaderSystem = (IShaderSystem*)gToolBox.BruteforceInterface(MaterialFactory, ShaderSystem);
g_pMaterialSystemStub = (IMaterialSystemStub*)gToolBox.BruteforceInterface(MaterialFactory, VMaterialSystemStub);
g_pStudioRender = (IStudioRender*)gToolBox.BruteforceInterface(StudioFactory, VStudioRender);
g_pSoundEmitterBase = (ISoundEmitterSystemBase*)gToolBox.BruteforceInterface(SoundFactory, VSoundEmitter);
g_pSteamClient = (ISteamClient*)gToolBox.SetInterface(SteamFactory, SteamClient007);
g_pBaseClientDLL = (IBaseClientDLL*)gToolBox.BruteforceInterface(ClientFactory, VClient);
g_pMaterialSystem = (IMaterialSystem*)gToolBox.BruteforceInterface(MaterialFactory, VMaterialSystem);
g_pGameEventManager = (IGameEventManager2*)gToolBox.SetInterface(EngineFactory, GAMEEVENTSMANAGER002);
g_pPanel = (IPanel*)gToolBox.BruteforceInterface(Vgui2Factory, VGUI_Panel);
#if defined(HACK_CSGO)
g_pMatchFramework = (IMatchFramework*)gToolBox.BruteforceInterface(MatchmakingFactory, MATCHFRAMEWORK_);
#endif
if (!g_pSteamFriends)
{
HSteamPipe hNewPipe = g_pSteamClient->CreateSteamPipe();
HSteamUser hNewUser = g_pSteamClient->ConnectToGlobalUser(hNewPipe);
g_pSteamFriends = g_pSteamClient->GetISteamFriends(hNewUser, hNewPipe, SteamFriends003);
XASSERT(g_pSteamFriends);
/*if (g_pSteamFriends)
{
const char* pchOldName = g_pSteamFriends->GetPersonaName();
if (pchOldName && !(pchOldName[0] == '[' && pchOldName[1] == 'A' && pchOldName[2] == 'B'))
{
char chNewName[64];
sprintf(chNewName, "[ABN] %s", pchOldName);
prnQuick("Sett Steam Name to %s", chNewName);
g_pSteamFriends->SetPersonaName(chNewName);
}
}*/
}
if (g_pBaseClientDLL)
{
g_pNetvarManager = new CNetvarManager();
gAddys.FindNetvars(g_pNetvarManager);
gAddys.FindClientMode(g_pBaseClientDLL);
gAddys.FindInput(g_pBaseClientDLL);
gAddys.FindGlobals(g_pBaseClientDLL);
DWORD* pdwClientMeme = *(DWORD**)g_pBaseClientDLL;
DWORD* pdwInputMeme = *(DWORD**)g_pInput;
DWORD* pdwClientMode = *(DWORD**)g_pClientMode;
#if defined(HACK_GMOD)
gToolBox.HookVirtual(pdwInputMeme, (DWORD*)&hkGetUserCmd, ID_GetUserCmd);
gToolBox.HookVirtual(pdwClientMeme, (DWORD*)&hkWriteUsercmdDeltaToBuffer, ID_WriteUsercmdDeltaToBuffer);
#endif
#if defined(HACK_CSS) || defined(HACK_DODS) || defined(HACK_GMOD)//temp
/*CL*/oclCreateMove = (tclCreateMove)gToolBox.HookVirtual(pdwClientMode, (DWORD*)&hkclCreateMove, ID_CreateMove);
/*CL*/oclOverrideView = (tclOverrideView)gToolBox.HookVirtual(pdwClientMode, (DWORD*)&hkclOverrideView, ID_OverrideView);
/*CL*/oclShouldDrawParticles = (tclShouldDrawParticles)gToolBox.HookVirtual(pdwClientMode, (DWORD*)&hkclShouldDrawParticles, ID_ShouldDrawParticles);
#endif
#if !defined(HACK_HL2DM)
oCreateMove = (tCreateMove)gToolBox.HookVirtual(pdwClientMeme, (DWORD*)&hkCreateMove, ID_CreateMove);
oFrameStageNotify = (tFrameStageNotify)gToolBox.HookVirtual(pdwClientMeme, (DWORD*)&hkFrameStageNotify, ID_FrameStageNotify);
#endif
oKeyEvent = (tKeyEvent)gToolBox.HookVirtual(pdwClientMeme, (DWORD*)&hkKeyEvent, ID_KeyEvent);
}
#if defined(HACK_CSS)//temp
if (g_pMaterialSystem)
{
DWORD* pdwMatSystemMeme = *(DWORD**)g_pMaterialSystem;
oFindMaterial = (tFindMaterial)gToolBox.HookVirtual(pdwMatSystemMeme, (DWORD*)&hkFindMaterial, ID_FindMaterial);
}
#endif
if (g_pGameEventManager)
gGameEvents.RegisterSelf();
if (g_pPanel)
{
DWORD* pdwPanelMeme = *(DWORD**)g_pPanel;
oPaintTraverse = (tPaintTraverse)gToolBox.HookVirtual(pdwPanelMeme, (DWORD*)&hkPaintTraverse, ID_PaintTraverse);
}
prn(ConCol::DARKGRAY, /*CUserCmd: Size %i*/XorStr<0x19, 18, 0x34D910DF>("\x5A\x4F\x68\x79\x6F\x5D\x72\x44\x1B\x02\x70\x4D\x5F\x43\x07\x0D\x40" + 0x34D910DF).s, sizeof(CUserCmd));
bStartedOnce = true;
}
//======================================================================
//======================================================================
void OnEnd()
{
FreeConsole();
ExitProcess(NULL);
}
//======================================================================
//======================================================================
DWORD WINAPI DllMain(HMODULE hDll, DWORD dwReason, LPVOID lpReserved)
{
if (dwReason == DLL_PROCESS_ATTACH)
{
gVars.hInst = hDll;
gToolBox.BaseUponModule((HMODULE)hDll);
gToolBox.RemovePE((DWORD)hDll);
DisableThreadLibraryCalls(hDll);
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)OnStart, NULL, NULL, NULL);
}
else if (dwReason == DLL_PROCESS_DETACH)
CreateThread(NULL, NULL, (LPTHREAD_START_ROUTINE)OnEnd, NULL, NULL, NULL);
return TRUE;
}
//======================================================================