Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ Изменение значения в адресе ХЕлП (DLL) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Неявный вызов оператора http://www.cyberforum.ru/cpp-beginners/thread1212844.html
Дано комплексное число Его действительную и мнимую часть объявить в private конструктор и деструктор объявить в public потом дополнить класс перегрузкой префикного инкремента (++) #include...
C++ Неверный ввод в файл Доброго времени суток! Написал программу, которая должна: 1. Считывать имя файла, определённое пользователем, производить запрос чисел от пользователя и запись чисел в этот файл. 2. Из файла... http://www.cyberforum.ru/cpp-beginners/thread1212839.html
C++ "Построить синтаксическое дерево выражения
"Построить синтаксическое дерево выражения ((а + Ь)/с) *d. Ввести значения переменных и вычислить значение дерева-формулы"
Вычислить для каждой строки файла к-ство открытых и закрытых скобок C++
Вычислить для каждой строки текстового файла количество открытых и закрытых скобок и дописать вычисленные значения в конец каждой строки. Результаты записать в новый файл. #include <stdio.h>...
C++ Перегруженная функция вывода >> http://www.cyberforum.ru/cpp-beginners/thread1212813.html
Есть участок кода: #include <iostream> #include <string.h> #include <stdio.h> #include <conio.h> #include <Windows.h> using namespace std;
C++ Наследование без использования двоеточия Добрый вечер! Задача: Сделать наследование без использования ":". Заранее спасибо! подробнее

Показать сообщение отдельно
ThePanix
0 / 0 / 0
Регистрация: 20.06.2014
Сообщений: 55

С++ Изменение значения в адресе ХЕлП (DLL) - C++

20.06.2014, 02:01. Просмотров 212. Ответов 0
Метки (Все метки)

Длл инжекторная если посмотрите под спойлером.
Проблема в след. надо изменить значение по конкретному адресу на конкретное число типо как типо как в Cheat Engine меняется коллво денег или жизней на другое.
Так вот как это реализовать в C++ и желательно нажатием кнопки.
Если не поняли спрашивайте уточню.
Вот что пытался всунуть но хз что наверное не так делаю или вообще не подходит этот вариант.
C++
1
2
3
4
5
6
7
8
9
10
11
const int Offset = 0x1; //смещение
const int PAdress = 0x012DFC; //адрес указателя на адрес переменной, которая нам нужна
int Adress; //переменная для адреса, нужной нам переменной
int Data; //переменная которая нам нужна
ReadProcessMemory(ProcessHandle,&PAdress, &Adress, sizeof(int), &ReadBytes); //читаем из указателя адресс переменной, которая нам нужна, и записываем в Adress
Adress += Offset;// добавляем к адресу смещение
ReadProcessMemory(ProcessHandle,&Adress, &Data, sizeof(int), &ReadBytes) // Читаем значение переменной, которая нам нужна.
 
Data += 10000; //Прибавляем к нужной переменной 10000
 
WriteProcessMemory(ProcessHandle, (void*)Adress, &Data, sizeof(int), NULL); //и переписываем
Вот весь код DLL-ки
Кликните здесь для просмотра всего текста

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
#include <Windows.h>
#include <fcntl.h>
#include <stdio.h>
#include <io.h>
#include <WinBase.h>
 
HANDLE phandle = GetCurrentProcess();
 
void CreateConsole()
{
    int hConHandle = 0;
    HANDLE lStdHandle = 0;
    FILE *fp = 0;
    AllocConsole();
    SetConsoleTitle(L"ThePanix");
    lStdHandle = GetStdHandle(STD_OUTPUT_HANDLE);
    hConHandle = _open_osfhandle(PtrToUlong(lStdHandle), _O_TEXT);
    fp = _fdopen(hConHandle, "w");
    *stdout = *fp;
    setvbuf(stdout, NULL, _IONBF, 0);
}
 
void Status()
{
    CreateConsole();
    printf("This ko-ko-ko is made specifically for ko-ko-ko");
    for (;; Sleep(100))
    {
        DWORD Players = (DWORD)GetModuleHandleA("engine.dll")+ 0x00611CB8;
        DWORD Players_1 = *(DWORD*)(Players); 
        DWORD Players_2 = *(DWORD*)(Players_1 + 0x54); 
        DWORD Players_3 = *(DWORD*)(Players_2 + 0x2C0); 
        DWORD Players_Adress = Players_3 + 0x1e4;    
 
 
        DWORD InGameA=(DWORD)GetModuleHandleA("engine.dll") + 0x3B93BC; 
        int InGame = *(int*)(InGameA);
 
        if(InGame == 1)
        {
            DWORD PlayerCountA=(DWORD)GetModuleHandleA("server.dll") + 0x509DD0; 
            int PlayerCount = *(int*)(PlayerCountA);
            if(GetAsyncKeyState(VK_NUMPAD1)){printf("PlayerCount = [%d] \n",PlayerCount);}
        
 
            for (int i =0; i<PlayerCount; i++)// Тут мы делаем перебор на 64 игрока ( от 0 до 64 ) 
                { 
                    int Team = *(int*)(Players_Adress+i*0x140+0x20);//Команды игроков 
                    char *name = (char*)(Players_Adress+i*0x140+0x0);//Имена игроков 
                    int HP = *(int*)(Players_Adress+i*0x140+0x24);//Здоровье игроков 
                    if(GetAsyncKeyState(VK_NUMPAD2)){printf("   NAME = [%s] HP = [%d] TEAM = %d \n",name,HP,Team);}
 
                    float *POSITION_X = (float*)(Players_Adress + i * 0x140 + 0x28);//Позиция игроков X 
                    float *POSITION_Y = (float*)(Players_Adress + i * 0x140 + 0x2C);//Позиция игроков Y     
                    float *POSITION_Z= (float*)(Players_Adress + i * 0x140 + 0x30);//Позиция игроков Z 
                    /*
                    if (GetAsyncKeyState(VK_NUMPAD3)){ printf(" POSITION_X = %d\n   POSITION_Y = %d\n POSITION_Z = %d\n \n", POSITION_X, POSITION_Y, POSITION_Z); }
                    */ //пока не реализованно флоат значение не пишется нету указателей
                }
        }
            
    }
}
 
DWORD APIENTRY DllMain (HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
    switch (ul_reason_for_call)
    {
    case DLL_PROCESS_ATTACH:
    CreateThread(NULL,NULL,(LPTHREAD_START_ROUTINE)Status,NULL,NULL,NULL);
    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return true;
}
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru