Перейти к содержанию

CybioZ

Пользователи
  • Постов

    26
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные CybioZ

  1. Файл:http://rghost.ru/6bpNSYdnH

    VT:https://www.virustotal.com/ru/file/b48b7b6be63d6705551e20553dc0d7f2dfeb75d83396f4b527dc4281a6e992a3/analysis/1434821946/

    вот хороший проект , там нету ни мерцаний ничего лишнего.. только не знаю как туда перенести мой чит. меню на Directx'e.

  2. Код под себя взял , но единственное , не понимаю как им правильно воспользоваться.. взял в пример AsaultCube эффекта 0 

    HDC hdc; // мой hdc?

    HDC hdcMem; // HDC игры.

    HBITMAP buffer; // не понимаю как это реализуется. 

    там еще 3 параметра: UINT message, WPARAM wParam, LPARAM lParam ---- пытался найти в интернете про  2  последних , не понял , зачем их нужно указывать 

    пробовал нарисовать не получалось ничего.

    помоги пожалуйста !

    NullAlex: Когда научишься использовать тег спойлера? Второе предупреждение, за третьим последует РО.

    #include "Windows.h"#include "iostream"HDC _hgame;HWND _wgame;#define IDM_EXIT 100COLORREF color = 0;RECT rect = { 220, 220, 220, 220 };HDC hdc;HDC hdcMem;HBITMAP buffer;const UINT_PTR timerPtr = 1;void ReDrawElipse(HWND hWnd){	COLORREF white = RGB(255, 0, 0);	HBRUSH newBrush = ::CreateSolidBrush(white);	HBRUSH oldBrush = (HBRUSH)::SelectObject(hdcMem, newBrush);	::Rectangle(hdcMem, rect.left - 1, rect.top - 1, rect.right + 1, rect.bottom + 1);	::DeleteObject((HGDIOBJ)oldBrush);	color = RGB(rand() % 256, rand() % 256, rand() % 256);	newBrush = ::CreateSolidBrush(color);	oldBrush = (HBRUSH)::SelectObject(hdcMem, newBrush);	::Ellipse(hdcMem, rect.left, rect.top, rect.right, rect.bottom);	::DeleteObject((HGDIOBJ)oldBrush);	::InvalidateRect(hWnd, &rect, false);}////  FUNCTION: WndProc(HWND, UINT, WPARAM, LPARAM)////  PURPOSE:  Processes messages for the main window.////  WM_COMMAND  - process the application menu//  WM_PAINT    - Paint the main window//  WM_DESTROY  - post a quit message and return////LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam){	int wmId, wmEvent;	PAINTSTRUCT paintStruct;	switch (message)	{	case WM_CREATE:	{		hdc = ::BeginPaint(hWnd, &paintStruct);		hdcMem = ::CreateCompatibleDC(hdc);		buffer = ::CreateCompatibleBitmap(hdc, rect.right, rect.bottom);		::SelectObject(hdcMem, buffer);		::EndPaint(hWnd, &paintStruct);		ReDrawElipse(hWnd);		::SetTimer(hWnd, timerPtr, 1000, NULL);	}	break;	case WM_COMMAND:		wmId = LOWORD(wParam);		wmEvent = HIWORD(wParam);		// Parse the menu selections:		switch (wmId)		{		case IDM_EXIT:			::SendMessageA(hWnd, WM_DESTROY, NULL, NULL);			break;		default:			return DefWindowProc(hWnd, message, wParam, lParam);		}		break;	case WM_PAINT:	{		hdc = ::BeginPaint(hWnd, &paintStruct);		::BitBlt(hdc, rect.left, rect.top, rect.right, rect.bottom, hdcMem, rect.left, rect.top, SRCCOPY);		::EndPaint(hWnd, &paintStruct);	}	break;	case WM_TIMER:	{		switch (wParam)		{		case timerPtr:		{			ReDrawElipse(hWnd);		}		break;		}	}	break;	case WM_DESTROY:	{		::DeleteObject(buffer);		::ReleaseDC(hWnd, hdc);		::PostQuitMessage(0);	}	break;	default:		return DefWindowProc(hWnd, message, wParam, lParam);	}	return 0;}int main(){	_wgame = FindWindowA(0, "AssaultCube");	hdcMem = GetDC(_wgame);	HWND hwnd = GetConsoleWindow();	HDC dc = GetDC(hwnd);	WndProc(_wgame, 25, 30, 25);	std::system("pause");	return 0;}
  3. #include <sstream>

    #include <iostream>

    #include <math.h>

    #include <vector>

    #include <algorithm>

    #include "HackProcess.h"

    CHackProcess fProcess;

    using namespace std;

    const DWORD Player_Base = 0x0

    const DWORD dw_inGameBase = 0x0

    const DWORD dw_mTeamOffset = 0x0

    const DWORD dw_Health = 0x0

    const DWORD dw_Dormant = 0x0

    const DWORD dw_inGame = 0x0

    const DWORD dw_Position = 0x0

    //Enemy Vars including the enemy loop

    const DWORD EntityPlayer_Base = 0x0

    //How far in memory is each enemy data

    const DWORD EntityLoopDistance =0x0

    bool Key_STATES = false;

    RECT m_Rect;

    //Our desktop handle

    HDC HDC_Desktop;

    HBRUSH EnemyBrush;//font we use to write text with

    COLORREF LINESCOLOR;

    COLORREF HEALTHCOLOR;

    COLORREF DISTANCECOLOR;

    HWND TargetWnd;

    HWND Handle;

    DWORD DwProcId;

    HFONT Font; //font we use to write text with

    //ESP VARS

    const DWORD ViewMatrix = 0x4A0C1C4; //4A0D16

    //Set of initial variables you'll need

    typedef struct { float flMatrix[4][4]; }WorldToScreenMatrix_t;

    float Get3dDistance(float*myCoords, float*enemyCoords)

    {

    return sqrt(

    pow(double(enemyCoords[0] - myCoords[0]), 2.0) +

    pow(double(enemyCoords[1] - myCoords[1]), 2.0) +

    pow(double(enemyCoords[2] - myCoords[2]), 2.0));

    }

    void SetupDrawing(HDC hDesktop, HWND handle)

    {

    HDC_Desktop = hDesktop;

    Handle = handle;

    EnemyBrush = CreateSolidBrush(RGB(100, 116, 239));

    LINESCOLOR = RGB(0, 255, 0);

    HEALTHCOLOR = RGB(255, 0, 0);

    DISTANCECOLOR = RGB(83, 178, 3);

    }

    //We will use this struct throughout all other tutorials adding more variables every time

    struct MyPlayer_t

    {

    DWORD CLocalPlayer;

    DWORD Engine;

    int Team;

    int Health;

    int FlickerCheck;

    int inGAME;//6 in game 0 in menu;

    WorldToScreenMatrix_t WorldToScreenMatrix;

    float Position[3];

    void ReadInformation()

    {

    // Reading CLocalPlayer Pointer to our "CLocalPlayer" DWORD.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + Player_Base), &CLocalPlayer, sizeof(DWORD), 0);

    // Reading out our Team to our "Team" Varible.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordEngine + dw_inGameBase), &Engine, sizeof(DWORD), 0);

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(Engine + dw_inGame), &inGAME, sizeof(int), 0);

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CLocalPlayer + dw_mTeamOffset), &Team, sizeof(int), 0);

    // Reading out our Health to our "Health" Varible.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CLocalPlayer + dw_Health), &Health, sizeof(int), 0);

    // Reading out our Position to our "Position" Varible.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CLocalPlayer + dw_Position), &Position, sizeof(float[3]), 0);

    //engine.dll+5CE294

    //Here we find how many player entities exist in our game, through this we make sure to only loop the amount of times we need

    //when grabbing player data

    //Note that this call could be even better at a regular 15 or so seconds timer but performance shouldn't vary a great deal

    //client.dll+4A0C196

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + ViewMatrix), &WorldToScreenMatrix, sizeof(WorldToScreenMatrix), 0);

    }

    }MyPlayer;

    //ENemy struct

    struct PlayerList_t

    {

    DWORD CBaseEntity;

    int Team;

    int Health;

    float Position[3];

    int dormant;

    void ReadInformation(int Player)

    {

    // Reading CBaseEntity Pointer to our "CBaseEntity" DWORD + Current Player in the loop. 0x10 is the CBaseEntity List Size

    //"client.dll"+00545204 //0x571A5204

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + EntityPlayer_Base + (Player * EntityLoopDistance)), &CBaseEntity, sizeof(DWORD), 0);

    // Reading out our Team to our "Team" Varible.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_mTeamOffset), &Team, sizeof(int), 0);

    // Reading out our Health to our "Health" Varible.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_Health), &Health, sizeof(int), 0);

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_Dormant), &dormant, sizeof(byte), 0);

    // Reading out our Position to our "Position" Varible.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_Position), &Position, sizeof(float[3]), 0);

    }

    }PlayerList[64];

    bool WorldToScreen(float * from, float * to)

    {

    float w = 0.0f;

    to[0] = MyPlayer.WorldToScreenMatrix.flMatrix[0][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[0][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[0][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[0][3];

    to[1] = MyPlayer.WorldToScreenMatrix.flMatrix[1][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[1][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[1][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[1][3];

    w = MyPlayer.WorldToScreenMatrix.flMatrix[3][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[3][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[3][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[3][3];

    if (w < 0.01f)

    {

    return false;

    }

    float invw = 1.0f / w;

    to[0] *= invw;

    to[1] *= invw;

    int width = (int)(m_Rect.right - m_Rect.left);

    int height = (int)(m_Rect.bottom - m_Rect.top);

    float x = width / 2;

    float y = height / 2;

    x += 0.5 * to[0] * width + 0.5;

    y -= 0.5 * to[1] * height + 0.5;

    to[0] = x + m_Rect.left;

    to[1] = y + m_Rect.top;

    return true;

    }

    //We receive the 2-D Coordinates the colour and the device we want to use to draw those colours with

    //HDC so we know where to draw and brush because we need it to draw

    void DrawFilledRect(int x, int y, int w, int h)

    {

    //We create our rectangle to draw on screen

    RECT rect = { x, y, x + w, y + h };

    //We clear that portion of the screen and display our rectangle

    FillRect(HDC_Desktop, &rect, EnemyBrush);

    }

    void DrawBorderBox(int x, int y, int w, int h, int thickness)

    {

    //Top horiz line

    DrawFilledRect(x, y, w, thickness);

    //Left vertical line

    DrawFilledRect(x, y, thickness, h);

    //right vertical line

    DrawFilledRect((x + w), y, thickness, h);

    //bottom horiz line

    DrawFilledRect(x, y + h, w + thickness, thickness);

    }

    //Here is where we draw our line from point A to Point B

    void DrawLine(float StartX, float StartY, float EndX, float EndY, COLORREF Pen)

    {

    int a, b = 0;

    HPEN hOPen;

    // penstyle, width, color

    HPEN hNPen = CreatePen(PS_SOLID, 1, Pen);

    hOPen = (HPEN)SelectObject(HDC_Desktop, hNPen);

    // starting point of line

    MoveToEx(HDC_Desktop, StartX, StartY, NULL);

    // ending point of line

    a = LineTo(HDC_Desktop, EndX, EndY);

    DeleteObject(SelectObject(HDC_Desktop, hOPen));

    }

    //Draw our text with this function

    void DrawString(int x, int y, COLORREF color, const char* text)

    {

    SetTextAlign(HDC_Desktop, TA_CENTER | TA_NOUPDATECP);

    SetBkColor(HDC_Desktop, RGB(0, 0, 0));

    SetBkMode(HDC_Desktop, TRANSPARENT);

    SetTextColor(HDC_Desktop, color);

    SelectObject(HDC_Desktop, Font);

    TextOutA(HDC_Desktop, x, y, text, strlen(text));

    DeleteObject(Font);

    }

    void DrawESP(int x, int y,int health,float distance)

    {

    int width = 32;

    int height = 56;

    DrawBorderBox(x - (width / 2), y - height, width, height, 1);

    DrawLine((m_Rect.right - m_Rect.left)/2,

    m_Rect.bottom - m_Rect.top, x, y, LINESCOLOR);

    std::stringstream hp, dist;

    hp<< health;

    dist << (int)distance/8 - 3;

    char * Distanceinfo = new char[dist.str().size() + 1];

    strcpy(Distanceinfo, dist.str().c_str());

    char * HealthInfo = new char[hp.str().size() + 1];

    strcpy(HealthInfo, hp.str().c_str());

    DrawString(x, y-14, HEALTHCOLOR, HealthInfo);

    DrawString(x, y - 69, DISTANCECOLOR, Distanceinfo);

    delete[] HealthInfo, Distanceinfo;

    }

    void ESP()

    {

    GetWindowRect(FindWindow(NULL, "Counter-Strike: Global Offensive"), &m_Rect);

    for (int i = 1; i < 64;i++)

    {

    if (dw_inGame == 0)

    continue;

    PlayerList.ReadInformation(i);

    if (PlayerList.Health < 1 || PlayerList.Health >100)

    continue;

    if (PlayerList.dormant == 1)

    continue;

    if (PlayerList.Team == MyPlayer.Team)

    continue;

    float EnemyXY[3];

    if (WorldToScreen(PlayerList.Position, EnemyXY))

    {

    DrawESP(EnemyXY[0] - m_Rect.left, EnemyXY[1] - m_Rect.top, PlayerList.Health, Get3dDistance(MyPlayer.Position, PlayerList.Position));

    // DrawESP(EnemyXY[0] - m_Rect.left, EnemyXY[1] - m_Rect.top, Get3dDistance(MyPlayer.Position,PlayerList.Position)); //(MyPlayer.Position, PlayerList.Position),

    }

    }

    }

    int main()

    {

    cout << "****************************** ESP HACK by Cybioz *******************************" << endl;

    cout << "* *" << endl;

    cout << "* Activation-[DEL] *" << endl;

    cout << "* Deactivation-[INSERT] *" << endl;

    cout << "* *" << endl;

    cout << "*******************************************************************************" << endl;

    fProcess.RunProcess();

    ShowWindow(FindWindowA("ConsoleWindowClass", NULL), false);

    TargetWnd = FindWindow(0, "Counter-Strike: Global Offensive");

    HDC_Desktop = GetDC(TargetWnd);

    SetupDrawing(HDC_Desktop,TargetWnd);

    //Our infinite loop will go here

    while (Key_STATES == false)

    {

    if (GetAsyncKeyState(VK_DELETE))

    {

    Key_STATES = true;

    while (true) {

    MyPlayer.ReadInformation();

    ESP();

    if (GetAsyncKeyState(VK_INSERT))

    {

    Key_STATES = false;

    break;

    }

    }

    }

    }

    return 0;

    }

    #include <Windows.h>
  4. Код:

    #include 

    #include
    #include
    #include
    #include
    #include
    #include "HackProcess.h"

    CHackProcess fProcess;
    using namespace std;


    const DWORD Player_Base = 0x
    const DWORD dw_inGameBase = 0x0
    const DWORD dw_mTeamOffset = 0x0;//client
    const DWORD dw_Health = 0x0;//client
    const DWORD dw_Dormant = 0x0;
    const DWORD dw_inGame = 0x0;
    const DWORD dw_Position = 0x0;//client
    const DWORD EntityPlayer_Base = 0x0;
    //How far in memory is each enemy data
    const DWORD EntityLoopDistance = 0x10;
    bool Key_STATES = false;
    RECT m_Rect;



    //Our desktop handle
    HDC HDC_Desktop;
    HBRUSH EnemyBrush;//font we use to write text with


    COLORREF LINESCOLOR;
    COLORREF HEALTHCOLOR;
    COLORREF DISTANCECOLOR;


    HWND TargetWnd;
    HWND Handle;
    DWORD DwProcId;

    HFONT Font; //font we use to write text with
    //ESP VARS
    const DWORD ViewMatrix = 0x4A0C1A4; //4A0D16


    //Set of initial variables you'll need

    typedef struct { float flMatrix[4][4]; }WorldToScreenMatrix_t;
    float Get3dDistance(float*myCoords, float*enemyCoords)
    {
    return sqrt(
    pow(double(enemyCoords[0] - myCoords[0]), 2.0) +
    pow(double(enemyCoords[1] - myCoords[1]), 2.0) +
    pow(double(enemyCoords[2] - myCoords[2]), 2.0));

    }

    void SetupDrawing(HDC hDesktop, HWND handle)
    {
    HDC_Desktop = hDesktop;
    Handle = handle;
    EnemyBrush = CreateSolidBrush(RGB(151, 200, 237));
    LINESCOLOR = RGB(0, 255, 0);
    HEALTHCOLOR = RGB(255, 0, 0);
    DISTANCECOLOR = RGB(83, 178, 3);
    }
    //We will use this struct throughout all other tutorials adding more variables every time
    struct MyPlayer_t
    {
    DWORD CLocalPlayer;
    DWORD Engine;
    int Team;
    int Health;
    int FlickerCheck;
    int inGAME;//6 in game 0 in menu;
    WorldToScreenMatrix_t WorldToScreenMatrix;
    float Position[3];

    void ReadInformation()
    {
    // Reading CLocalPlayer Pointer to our "CLocalPlayer" DWORD.
    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + Player_Base), &CLocalPlayer, sizeof(DWORD), 0);
    // Reading out our Team to our "Team" Varible.
    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordEngine + dw_inGameBase), &Engine, sizeof(DWORD), 0);
    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(Engine + dw_inGame), &inGAME, sizeof(int), 0);
    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CLocalPlayer + dw_mTeamOffset), &Team, sizeof(int), 0);
    // Reading out our Health to our "Health" Varible.
    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CLocalPlayer + dw_Health), &Health, sizeof(int), 0);
    // Reading out our Position to our "Position" Varible.
    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CLocalPlayer + dw_Position), &Position, sizeof(float[3]), 0);
    //engine.dll+5CE294
    //Here we find how many player entities exist in our game, through this we make sure to only loop the amount of times we need
    //when grabbing player data
    //Note that this call could be even better at a regular 15 or so seconds timer but performance shouldn't vary a great deal

    //client.dll+4A0C196

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + ViewMatrix), &WorldToScreenMatrix, sizeof(WorldToScreenMatrix), 0);
    }
    }MyPlayer;



    //ENemy struct
    struct PlayerList_t
    {
    DWORD CBaseEntity;
    int Team;
    int Health;
    float Position[3];
    int dormant;
    void ReadInformation(int Player)
    {
    // Reading CBaseEntity Pointer to our "CBaseEntity" DWORD + Current Player in the loop. 0x10 is the CBaseEntity List Size
    //"client.dll"+00545204 //0x571A5204
    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + EntityPlayer_Base + (Player * EntityLoopDistance)), &CBaseEntity, sizeof(DWORD), 0);
    // Reading out our Team to our "Team" Varible.
    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_mTeamOffset), &Team, sizeof(int), 0);
    // Reading out our Health to our "Health" Varible.
    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_Health), &Health, sizeof(int), 0);
    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_Dormant), &dormant, sizeof(byte), 0);

    // Reading out our Position to our "Position" Varible.
    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_Position), &Position, sizeof(float[3]), 0);
    }
    }PlayerList[64];

    bool WorldToScreen(float * from, float * to)
    {
    float w = 0.0f;
    to[0] = MyPlayer.WorldToScreenMatrix.flMatrix[0][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[0][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[0][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[0][3];
    to[1] = MyPlayer.WorldToScreenMatrix.flMatrix[1][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[1][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[1][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[1][3];
    w = MyPlayer.WorldToScreenMatrix.flMatrix[3][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[3][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[3][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[3][3];

    if (w < 0.01f)
    {
    return false;
    }
    float invw = 1.0f / w;
    to[0] *= invw;
    to[1] *= invw;
    int width = (int)(m_Rect.right - m_Rect.left);
    int height = (int)(m_Rect.bottom - m_Rect.top);

    float x = width / 2;
    float y = height / 2;

    x += 0.5 * to[0] * width + 0.5;
    y -= 0.5 * to[1] * height + 0.5;

    to[0] = x + m_Rect.left;
    to[1] = y + m_Rect.top;
    return true;
    }

    //We receive the 2-D Coordinates the colour and the device we want to use to draw those colours with
    //HDC so we know where to draw and brush because we need it to draw
    void DrawFilledRect(int x, int y, int w, int h)
    {
    //We create our rectangle to draw on screen
    RECT rect = { x, y, x + w, y + h };
    //We clear that portion of the screen and display our rectangle
    FillRect(HDC_Desktop, &rect, EnemyBrush);
    }


    void DrawBorderBox(int x, int y, int w, int h, int thickness)
    {
    //Top horiz line
    DrawFilledRect(x, y, w, thickness);
    //Left vertical line
    DrawFilledRect(x, y, thickness, h);
    //right vertical line
    DrawFilledRect((x + w), y, thickness, h);
    //bottom horiz line
    DrawFilledRect(x, y + h, w + thickness, thickness);
    }


    //Here is where we draw our line from point A to Point B
    void DrawLine(float StartX, float StartY, float EndX, float EndY, COLORREF Pen)
    {
    int a, b = 0;
    HPEN hOPen;
    // penstyle, width, color
    HPEN hNPen = CreatePen(PS_SOLID, 1, Pen);
    hOPen = (HPEN)SelectObject(HDC_Desktop, hNPen);
    // starting point of line
    MoveToEx(HDC_Desktop, StartX, StartY, NULL);
    // ending point of line
    a = LineTo(HDC_Desktop, EndX, EndY);
    DeleteObject(SelectObject(HDC_Desktop, hOPen));
    }

    //Draw our text with this function
    void DrawString(int x, int y, COLORREF color, const char* text)
    {
    SetTextAlign(HDC_Desktop, TA_CENTER | TA_NOUPDATECP);

    SetBkColor(HDC_Desktop, RGB(0, 0, 0));
    SetBkMode(HDC_Desktop, TRANSPARENT);

    SetTextColor(HDC_Desktop, color);

    SelectObject(HDC_Desktop, Font);

    TextOutA(HDC_Desktop, x, y, text, strlen(text));

    DeleteObject(Font);
    }
    void DrawESP(int x, int y,int health,float distance)
    {
    int width = 32;
    int height = 56;
    DrawBorderBox(x - (width / 2), y - height, width, height, 1);
    DrawLine((m_Rect.right - m_Rect.left)/2,
    m_Rect.bottom - m_Rect.top, x, y, LINESCOLOR);
    std::stringstream hp, dist;
    hp<< health;
    dist << (int)distance/8 - 3;
    char * Distanceinfo = new char[dist.str().size() + 1];
    strcpy(Distanceinfo, dist.str().c_str());

    char * HealthInfo = new char[hp.str().size() + 1];
    strcpy(HealthInfo, hp.str().c_str());

    DrawString(x, y-14, HEALTHCOLOR, HealthInfo);
    DrawString(x, y - 69, DISTANCECOLOR, Distanceinfo);
    delete[] HealthInfo, Distanceinfo;
    }
    void ESP()
    {
    GetWindowRect(FindWindow(NULL, "Counter-Strike: Global Offensive"), &m_Rect);
    for (int i = 0; i < 64;i++)
    {
    PlayerList.ReadInformation(i);
    if (MyPlayer.inGAME == 6) {
    if (PlayerList.Health < 1 || PlayerList.Health >100)
    continue;
    if (PlayerList.dormant == 1)
    continue;
    if (PlayerList.Team == MyPlayer.Team)
    continue;

    float EnemyXY[3];
    if (WorldToScreen(PlayerList.Position, EnemyXY))
    {
    DrawESP(EnemyXY[0] - m_Rect.left, EnemyXY[1] - m_Rect.top, PlayerList.Health, Get3dDistance(MyPlayer.Position, PlayerList.Position));
    // DrawESP(EnemyXY[0] - m_Rect.left, EnemyXY[1] - m_Rect.top, Get3dDistance(MyPlayer.Position,PlayerList.Position)); //(MyPlayer.Position, PlayerList.Position),
    }
    }
    }
    }
    int main()
    {
    cout << "****************************** ESP HACK by Cybioz *******************************" << endl;
    cout << "* *" << endl;
    cout << "* Activation-[DEL] *" << endl;
    cout << "* Deactivation-[iNSERT] *" << endl;
    cout << "* *" << endl;
    cout << "*******************************************************************************" << endl;
    fProcess.RunProcess();
    ShowWindow(FindWindowA("ConsoleWindowClass", NULL), false);
    TargetWnd = FindWindow(0, "Counter-Strike: Global Offensive");
    HDC hdc_Desktop = GetDC(TargetWnd);
    SetupDrawing(hdc_Desktop,TargetWnd);
    //Our infinite loop will go here
    while (Key_STATES == false)
    {
    if (GetAsyncKeyState(VK_DELETE))
    {
    Key_STATES = true;
    while (true) {
    MyPlayer.ReadInformation();
    ESP();
    if (GetAsyncKeyState(VK_INSERT))
    {
    Key_STATES = false;
    break;

    }
    }
    }
    }
    return 0;
    }

    тут же уже готово получение окна и т.д , я единственное не могу сделать  , чтобы не мелькало.. 


    1 пункт сделал.. А следующие не понятны 

  5. Если ты делаешь хук на DirectX, то мерцания у тебя не должно быть. А если просто делаешь средствами GDI, то тебе надо сначала отрисовывать все в фоновый буфер, а потом блиттингом выводить на основной DC окна. Таким образом и получится антимерцание. Но, опять же, если ты рисуешь поверх DX окна, не факт, что такой способ действительно поможет тебе избавиться от мерцания.

    Пишу по средству GDI. И как мне реализовать эту дабл буферизацию

  6. в паблике возьми любой чит на directx

    Можешь подсказать где именно  ?)))

    //Our desktop handle

    HDC HDC_Desktop;

    HBRUSH EnemyBrush;//font we use to write text with

    COLORREF LINESCOLOR;

    COLORREF HEALTHCOLOR;

    COLORREF DISTANCECOLOR;

    HWND TargetWnd;

    HWND Handle;

    DWORD DwProcId;

    HFONT Font; //font we use to write text with

    //ESP VARS

    const DWORD ViewMatrix = 0x4A0C1A4; //4A0D16

    //Set of initial variables you'll need

    typedef struct { float flMatrix[4][4]; }WorldToScreenMatrix_t;

    float Get3dDistance(float*myCoords, float*enemyCoords)

    {

    return sqrt(

    pow(double(enemyCoords[0] - myCoords[0]), 2.0) +

    pow(double(enemyCoords[1] - myCoords[1]), 2.0) +

    pow(double(enemyCoords[2] - myCoords[2]), 2.0));

    }

    void SetupDrawing(HDC hDesktop, HWND handle)

    {

    HDC_Desktop = hDesktop;

    Handle = handle;

    EnemyBrush = CreateSolidBrush(RGB(151, 200, 237));

    LINESCOLOR = RGB(0, 255, 0);

    HEALTHCOLOR = RGB(255, 0, 0);

    DISTANCECOLOR = RGB(83, 178, 3);

    }

    //We will use this struct throughout all other tutorials adding more variables every time

    struct MyPlayer_t

    {

    DWORD CLocalPlayer;

    DWORD Engine;

    int Team;

    int Health;

    int FlickerCheck;

    int inGAME;//6 in game 0 in menu;

    WorldToScreenMatrix_t WorldToScreenMatrix;

    float Position[3];

    void ReadInformation()

    {

    // Reading CLocalPlayer Pointer to our "CLocalPlayer" DWORD.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + Player_Base), &CLocalPlayer, sizeof(DWORD), 0);

    // Reading out our Team to our "Team" Varible.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordEngine + dw_inGameBase), &Engine, sizeof(DWORD), 0);

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(Engine + dw_inGame), &inGAME, sizeof(int), 0);

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CLocalPlayer + dw_mTeamOffset), &Team, sizeof(int), 0);

    // Reading out our Health to our "Health" Varible.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CLocalPlayer + dw_Health), &Health, sizeof(int), 0);

    // Reading out our Position to our "Position" Varible.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CLocalPlayer + dw_Position), &Position, sizeof(float[3]), 0);

    //engine.dll+5CE294

    //Here we find how many player entities exist in our game, through this we make sure to only loop the amount of times we need

    //when grabbing player data

    //Note that this call could be even better at a regular 15 or so seconds timer but performance shouldn't vary a great deal

    //client.dll+4A0C196

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + ViewMatrix), &WorldToScreenMatrix, sizeof(WorldToScreenMatrix), 0);

    }

    }MyPlayer;

    //ENemy struct

    struct PlayerList_t

    {

    DWORD CBaseEntity;

    int Team;

    int Health;

    float Position[3];

    int dormant;

    void ReadInformation(int Player)

    {

    // Reading CBaseEntity Pointer to our "CBaseEntity" DWORD + Current Player in the loop. 0x10 is the CBaseEntity List Size

    //"client.dll"+00545204 //0x571A5204

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + EntityPlayer_Base + (Player * EntityLoopDistance)), &CBaseEntity, sizeof(DWORD), 0);

    // Reading out our Team to our "Team" Varible.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_mTeamOffset), &Team, sizeof(int), 0);

    // Reading out our Health to our "Health" Varible.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_Health), &Health, sizeof(int), 0);

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_Dormant), &dormant, sizeof(byte), 0);

    // Reading out our Position to our "Position" Varible.

    ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_Position), &Position, sizeof(float[3]), 0);

    }

    }PlayerList[64];

    bool WorldToScreen(float * from, float * to)

    {

    float w = 0.0f;

    to[0] = MyPlayer.WorldToScreenMatrix.flMatrix[0][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[0][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[0][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[0][3];

    to[1] = MyPlayer.WorldToScreenMatrix.flMatrix[1][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[1][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[1][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[1][3];

    w = MyPlayer.WorldToScreenMatrix.flMatrix[3][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[3][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[3][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[3][3];

    if (w < 0.01f)

    {

    return false;

    }

    float invw = 1.0f / w;

    to[0] *= invw;

    to[1] *= invw;

    int width = (int)(m_Rect.right - m_Rect.left);

    int height = (int)(m_Rect.bottom - m_Rect.top);

    float x = width / 2;

    float y = height / 2;

    x += 0.5 * to[0] * width + 0.5;

    y -= 0.5 * to[1] * height + 0.5;

    to[0] = x + m_Rect.left;

    to[1] = y + m_Rect.top;

    return true;

    }

    //We receive the 2-D Coordinates the colour and the device we want to use to draw those colours with

    //HDC so we know where to draw and brush because we need it to draw

    void DrawFilledRect(int x, int y, int w, int h)

    {

    //We create our rectangle to draw on screen

    RECT rect = { x, y, x + w, y + h };

    //We clear that portion of the screen and display our rectangle

    FillRect(HDC_Desktop, &rect, EnemyBrush);

    }

    void DrawBorderBox(int x, int y, int w, int h, int thickness)

    {

    //Top horiz line

    DrawFilledRect(x, y, w, thickness);

    //Left vertical line

    DrawFilledRect(x, y, thickness, h);

    //right vertical line

    DrawFilledRect((x + w), y, thickness, h);

    //bottom horiz line

    DrawFilledRect(x, y + h, w + thickness, thickness);

    }

    //Here is where we draw our line from point A to Point B

    void DrawLine(float StartX, float StartY, float EndX, float EndY, COLORREF Pen)

    {

    int a, b = 0;

    HPEN hOPen;

    // penstyle, width, color

    HPEN hNPen = CreatePen(PS_SOLID, 1, Pen);

    hOPen = (HPEN)SelectObject(HDC_Desktop, hNPen);

    // starting point of line

    MoveToEx(HDC_Desktop, StartX, StartY, NULL);

    // ending point of line

    a = LineTo(HDC_Desktop, EndX, EndY);

    DeleteObject(SelectObject(HDC_Desktop, hOPen));

    }

    //Draw our text with this function

    void DrawString(int x, int y, COLORREF color, const char* text)

    {

    SetTextAlign(HDC_Desktop, TA_CENTER | TA_NOUPDATECP);

    SetBkColor(HDC_Desktop, RGB(0, 0, 0));

    SetBkMode(HDC_Desktop, TRANSPARENT);

    SetTextColor(HDC_Desktop, color);

    SelectObject(HDC_Desktop, Font);

    TextOutA(HDC_Desktop, x, y, text, strlen(text));

    DeleteObject(Font);

    }

    void DrawESP(int x, int y,int health,float distance)

    {

    int width = 32;

    int height = 56;

    DrawBorderBox(x - (width / 2), y - height, width, height, 1);

    DrawLine((m_Rect.right - m_Rect.left)/2,

    m_Rect.bottom - m_Rect.top, x, y, LINESCOLOR);

    std::stringstream hp, dist;

    hp<< health;

    dist << (int)distance/8 - 3;

    char * Distanceinfo = new char[dist.str().size() + 1];

    strcpy(Distanceinfo, dist.str().c_str());

    char * HealthInfo = new char[hp.str().size() + 1];

    strcpy(HealthInfo, hp.str().c_str());

    DrawString(x, y-14, HEALTHCOLOR, HealthInfo);

    DrawString(x, y - 69, DISTANCECOLOR, Distanceinfo);

    delete[] HealthInfo, Distanceinfo;

    }

    void ESP()

    {

    GetWindowRect(FindWindow(NULL, "Counter-Strike: Global Offensive"), &m_Rect);

    for (int i = 0; i < 64;i++)

    {

    PlayerList.ReadInformation(i);

    if (MyPlayer.inGAME == 6) {

    if (PlayerList.Health < 1 || PlayerList.Health >100)

    continue;

    if (PlayerList.dormant == 1)

    continue;

    if (PlayerList.Team == MyPlayer.Team)

    continue;

    float EnemyXY[3];

    if (WorldToScreen(PlayerList.Position, EnemyXY))

    {

    DrawESP(EnemyXY[0] - m_Rect.left, EnemyXY[1] - m_Rect.top, PlayerList.Health, Get3dDistance(MyPlayer.Position, PlayerList.Position));

    // DrawESP(EnemyXY[0] - m_Rect.left, EnemyXY[1] - m_Rect.top, Get3dDistance(MyPlayer.Position,PlayerList.Position)); //(MyPlayer.Position, PlayerList.Position),

    }

    }

    }

    }

    int main()

    {

    cout << "****************************** ESP HACK by Mark *******************************" << endl;

    cout << "* *" << endl;

    cout << "* Activation-[DEL] *" << endl;

    cout << "* Deactivation-[iNSERT] *" << endl;

    cout << "* *" << endl;

    cout << "*******************************************************************************" << endl;

    fProcess.RunProcess();

    ShowWindow(FindWindowA("ConsoleWindowClass", NULL), false);

    TargetWnd = FindWindow(0, "Counter-Strike: Global Offensive");

    HDC hdc_Desktop = GetDC(TargetWnd);

    SetupDrawing(hdc_Desktop,TargetWnd);

    //Our infinite loop will go here

    while (Key_STATES == false)

    {

    if (GetAsyncKeyState(VK_DELETE))

    {

    Key_STATES = true;

    while (true) {

    MyPlayer.ReadInformation();

    ESP();

    if (GetAsyncKeyState(VK_INSERT))

    {

    Key_STATES = false;

    break;

    }

    }

    }

    }

    return 0;

    }

  7. Расскажу.. Кароче , там у меня была ошибка в коде:

    	[spoiler]int width = (int)(m_Rect.right - m_Rect.left);int height = (int)(m_Rect.bottom- m_Rect.top);float x = width / 2;float y = height / 2;x += 0.5 * to[0] * width + 0.5;x -= 0.5 * to[1] * width + 0.5;to[0] = x + m_Rect.left;[/spoiler]	to[1] = y+ m_Rect.top;

    а должно быть так:

    x += 0.5 * to[0] * width + 0.5;

    y -= 0.5 * to[1] * height + 0.5;


    Но мне требуется еще кое-какая помощь , у меня esp не работает в фуллскрине. и еще эти гребаные мерцания. Смотрел у флипа как он с этими мерцаниями справился: он нашел flikercheck и по нему делал анти-мерцания. А я тут спросил на американских форумах , как же можно другим способом от этих мерцаний избавиться , на что они мне говорят : двойная буферизация, ну я залез в google , почитал про нее , немного разобрался, а как реализовать мне ее в моем проекте я не знаю :( По этому прошу помочь мне , кто знает , как мне пофиксить мерцания с помощью "двойной буферизации". 

    Буду очень благодарен :D

  8. вот подробное видео: https://www.youtube.com/watch?v=hVlzn6ByQ4Y&feature=youtu.be

    NullAlex: так как товарищ CybioZ не использует тег спойлера, и игнорирует устное предупреждение, более того - убирает их, то получает соответствующее наказание, в виде 1 балла предупреждения.

    #include <Windows.h>#include <sstream>#include <iostream> #include <math.h>  #include "HackProcess.h"#include <vector>#include <algorithm>   /*----------------AIMBOT RELATED CODE------------------*///Create our 'hooking' and process managing objectCHackProcess fProcess;  using namespace std;  //We use F6 to exit the hack#define F6_Key 0x75//right click#define RIGHT_MOUSE 0x02//Here we store the num of players and update it regularly to know how many enemies we are dealing with//this saves us doing loops unless their necessary e.g. we have 12 players and still loop 32 times wasting our great resources//This makes our triggerbot MUCH faster in generalint NumOfPlayers = 10;const DWORD dw_PlayerCountOffs = 0x94D868;//Engine.dll//The player base is VERY important so we know where our player info is at//including current jump status so we can use force jumping making our bHopconst DWORD Player_Base = 0xA74C9C;//0x00574560;//The ATTACK address BELOW, WE WRITE 5 TO SHOOT OR 4 TO const DWORD dw_mTeamOffset = 0xF0;//clientconst DWORD dw_Health = 0xFC;//client//FOR the x coord we can use cl_pdump for m_vecOrigin Vector or just move around the map looking for different values//e.g. to find y coordinate walk up ladder search up, walk down search down etc.const DWORD dw_Position = 0x134;//client//Enemy Vars including the enemy loopconst DWORD EntityPlayer_Base = 0x4A16BD4;//How far in memory is each enemy dataconst DWORD EntityLoopDistance = 0x10; //04A16BD4//ViewAngles//We find these by moving our mouse around constantly looking for changed/unchanged value,//the alternative is to use cl_pdump 1 and search for the value assigned to m_angRotation vector//const DWORD dw_m_angRotation = 0x4A5F9B0;RECT m_Rect; //Set of initial variables you'll need//Our desktop handleHDC HDC_Desktop;//Brush to paint ESP etcHBRUSH EnemyBrush;HFONT Font; //font we use to write text with//ESP VARSconst DWORD ViewMatrix = 0x4A0C164;//const DWORD dw_antiFlick = ;HWND targetWnd;HWND Handle;DWORD DwProcId;COLORREF SnapLineColor;COLORREF TextColor;typedef struct{	float flMatrix[4][4];}WorldToScreenMatrix_t;float Get3Distance(float * myCoords, float * enemyCoords){	return sqrt(		pow(double(enemyCoords[0] - myCoords[0]), 2.0) +		pow(double(enemyCoords[1] - myCoords[0]), 2.0) +		pow(double(enemyCoords[2] - myCoords[0]), 2.0) 		);}void SetupDrawing(HDC hDestop, HWND handle){	HDC_Desktop = hDestop;	Handle = handle;	EnemyBrush = CreateSolidBrush(RGB(255, 0, 0));	SnapLineColor = RGB(0, 0, 255);	TextColor = RGB(0, 255, 0);}//We will use this struct throughout all other tutorials adding more variables every timestruct MyPlayer_t  { 	DWORD CLocalPlayer; 	int Team; 	int Health; 	WorldToScreenMatrix_t WorldToScreenMatrix;	float Position[0]; 	//	int flikerCheck;//не настроено	void ReadInformation() 	{		// Reading CLocalPlayer Pointer to our "CLocalPlayer" DWORD. 		ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + Player_Base), &CLocalPlayer, sizeof(DWORD), 0);		// Reading out our Team to our "Team" Varible. 		ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(CLocalPlayer + dw_mTeamOffset), &Team, sizeof(int), 0);		// Reading out our Health to our "Health" Varible.     		ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(CLocalPlayer + dw_Health), &Health, sizeof(int), 0); 		// Reading out our Position to our "Position" Varible. 		ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(CLocalPlayer + dw_Position), &Position, sizeof(float[3]), 0); 		//Here we find how many player entities exist in our game, through this we make sure to only loop the amount of times we need		//when grabbing player data		//Note that this call could be even better at a regular 15 or so seconds timer but performance shouldn't vary a great deal		ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordServer + dw_PlayerCountOffs), &NumOfPlayers, sizeof(int),0);						//VMATRIX		ReadProcessMemory(fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient + ViewMatrix), &WorldToScreenMatrix , sizeof(WorldToScreenMatrix), 0);	}}MyPlayer;    //ENemy structstruct PlayerList_t {	DWORD CBaseEntity; 	int Team; 	int Health; 	float Position[3]; 	//float AimbotAngle[3]; //	char Name[39]; 	void ReadInformation(int Player) 	{		// Reading CBaseEntity Pointer to our "CBaseEntity" DWORD + Current Player in the loop. 0x10 is the CBaseEntity List Size 		//"client.dll"+00545204 //0x571A5204		ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(fProcess.__dwordClient +EntityPlayer_Base + (Player * EntityLoopDistance)),&CBaseEntity, sizeof(DWORD), 0);		// Reading out our Team to our "Team" Varible. 		ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_mTeamOffset), &Team, sizeof(int), 0);		// Reading out our Health to our "Health" Varible.     		ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_Health), &Health, sizeof(int), 0); 		// Reading out our Position to our "Position" Varible. 		ReadProcessMemory (fProcess.__HandleProcess, (PBYTE*)(CBaseEntity + dw_Position), &Position, sizeof(float[3]), 0);  	}}PlayerList[10];  bool WorldToScreen(float * from, float * to){	float w = 0.0f;	to[0] = MyPlayer.WorldToScreenMatrix.flMatrix[0][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[0][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[0][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[0][3];	to[1] = MyPlayer.WorldToScreenMatrix.flMatrix[1][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[1][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[1][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[1][3];	w= MyPlayer.WorldToScreenMatrix.flMatrix[3][0] * from[0] + MyPlayer.WorldToScreenMatrix.flMatrix[3][1] * from[1] + MyPlayer.WorldToScreenMatrix.flMatrix[3][2] * from[2] + MyPlayer.WorldToScreenMatrix.flMatrix[3][3];		if (w < 0.01f)	{		return false;	}	float invw = 1.0f / w;	to[0] *= invw;	to[1] *= invw;	int width = (int)(m_Rect.right - m_Rect.left);	int height = (int)(m_Rect.bottom- m_Rect.top);	float x = width / 2;	float y = height / 2;	x += 0.5 * to[0] * width + 0.5;	x -= 0.5 * to[1] * width + 0.5;	to[0] = x + m_Rect.left;	to[1] = y+ m_Rect.top;}//We receive the 2-D Coordinates the colour and the device we want to use to draw those colours with//HDC so we know where to draw and brush because we need it to drawvoid DrawFilledRect(int x, int y, int w, int h){	//We create our rectangle to draw on screen	RECT rect = { x, y, x + w, y + h }; 	//We clear that portion of the screen and display our rectangle	FillRect(HDC_Desktop, &rect, EnemyBrush);}void DrawBorderBox(int x, int y, int w, int h, int thickness){	//Top horiz line	DrawFilledRect(x, y, w, thickness);	//Left vertical line	DrawFilledRect( x, y, thickness, h);	//right vertical line	DrawFilledRect((x + w), y, thickness, h);	//bottom horiz line	DrawFilledRect(x, y + h, w+thickness, thickness);}//Here is where we draw our line from point A to Point Bvoid DrawLine(float StartX, float StartY, float EndX, float EndY, COLORREF Pen){	int a,b=0;	HPEN hOPen;	// penstyle, width, color	HPEN hNPen = CreatePen(PS_SOLID, 2, Pen);	hOPen = (HPEN)SelectObject(HDC_Desktop, hNPen);	// starting point of line	MoveToEx(HDC_Desktop, StartX, StartY, NULL);	// ending point of line	a = LineTo(HDC_Desktop, EndX, EndY);	DeleteObject(SelectObject(HDC_Desktop, hOPen));}//Draw our text with this functionvoid DrawString(int x, int y, COLORREF color, const char* text){		SetTextAlign(HDC_Desktop,TA_CENTER|TA_NOUPDATECP);	SetBkColor(HDC_Desktop,RGB(0,0,0));	SetBkMode(HDC_Desktop,TRANSPARENT);	SetTextColor(HDC_Desktop,color);	SelectObject(HDC_Desktop,Font);	TextOutA(HDC_Desktop,x,y,text,strlen(text));	DeleteObject(Font);}void DrawESP(int x, int y, float distance){	//ESP RECTANGLE	int width = 50;             int height = 100;        	DrawBorderBox(x - (width/2), y-height, width, height, 1);	DrawLine((m_Rect.right - m_Rect.left)/2,		m_Rect.bottom - m_Rect.top, x, y, SnapLineColor);	std::stringstream ss;	ss << (int)distance;	char *distanceInfo = new char[ss.str().size() + 1];	strcpy(distanceInfo, ss.str().c_str());	DrawString(x, y, TextColor, distanceInfo);	delete[] distanceInfo;}void ESP(){	GetWindowRect(FindWindow(NULL, "Counter-Strike: Global Offensive"), &m_Rect);	for (int i = 0; i < NumOfPlayers; i++)	{		PlayerList[i].ReadInformation(i);		if (PlayerList[i].Health < 2)			continue;				if (PlayerList[i].Team ==MyPlayer.Team)			continue;		float EnemyXY[3];		if (WorldToScreen(PlayerList[i].Position, EnemyXY))		{		DrawESP(EnemyXY[0] - m_Rect.left, EnemyXY[1] - m_Rect.top, Get3Distance(MyPlayer.Position, PlayerList[i].Position));		}	}}int main(){	//Do we have OUR CSS GAME?	fProcess.RunProcess(); 	ShowWindow(FindWindowA("ConsoleWindowClass", NULL), false);	targetWnd = FindWindow(0, "Counter-Strike: Global Offensive");	//Our infinite loop will go here	HDC HDC_Desktop=GetDC(targetWnd);	SetupDrawing(HDC_Desktop, targetWnd);//while(true){	//	MyPlayer.ReadInformation();	//	   //   	printf("Health:%d %sTeam: %d", MyPlayer.Health, "\n", MyPlayer.Team);	//}		for (;		{			MyPlayer.ReadInformation();				ESP();		}					return 0;}//КОД
  9. Всем привет ! Создал я Whallhack по Урокам Fleep Hacks , он создавал для CS:S , я для CS:GO , у  меня есть ошибки , почему то криво работает WH:http://prntscr.com/7eiwfj

    При повороте камеры вообще смещаются куда-то боксы: http://prntscr.com/7eixv1

    Помогите , если не сложно.

    И еще , что то не так с дистанцией.

  10. Всё просто.

    У тебя в функции FindSignature выполняется VirtualQueryEx к твоему процессу если что:

    VirtualQueryEx(System.Diagnostics.Process.GetCurrentProcess().Handle,

    А здесь должен быть процесс Heroes 3. Вот и думай теперь, почему у тебя не получается.

    И во первых, FindSignature должен возвращать не int, так как адреса у нас хранятся в виде unsigned int - uint.

    Во вторых FindSignature по логике твоего кода - первым параметром должен получать хэндл на открытый процесс Heroes 3 и вторым параметром сигнатуру.

    uint FindSignature(HANDLE hProcess, byte[] signature)....

    P.S. Тебе нет нужды постоянно открывать и закрывать хэндл на процесс игры, один раз открывай - пользуйся им и закрывай  (когда он не нужен).

    Спасибо , попробую разобраться. 

    Т.е я искал сигнатуру  в своем процессе ?Оо

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.