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

Полноценный трейнер, [DLL\FORM] без использования EXE


Рекомендуемые сообщения

Всем привет! Конечно же хотелось записать видео урок но у меня не получилось :(

Сразу хочу заметить то, что в некоторых видео уроках были заготовки, и не понравилось так как новичок посмотрев урок не поймет от куда это брать!

Я не буду здесь описывать функции чита, а лишь приведу примеры для компактного использование формы, и полным доступом, что то подобие темы "Трейнер Гибрид"

И так начнем с заготовки! Нам потребуется:

2 звука wav -> Включение/Выключение в гугле можно найти или же любой другой.

Картинка/фон для формы.

Создаем пустой проект dll.

Подключаем в ресурсы wav и наш фон.

и начинаем писать:


#include <windows.h>
#include "Functions.h"
#include "resource.h"
#pragma comment( lib, "winmm" ) // библиотека для проигрывание звука "wav"
#define MYMENU_FLY (WM_APP + 102) // Верхний титл меню.
HINSTANCE hModule;
HWND hWnd;
LRESULT CALLBACK DLLWindowProc (HWND, UINT, WPARAM, LPARAM);
BOOL m_Health = 0; // Проверка чита функции 1 - on/ 0 - off
BOOL m_Ammo = 0; // Проверка чита функции 1 - on/ 0 - of

inline void toggle(BOOL *t) // Сама функция проверки
{
if(*t==TRUE)
*t= FALSE;
else
*t=TRUE;

}
BOOL RegisterDLLWindowClass(wchar_t szClassName[]) // Регистрируем форму
{
WNDCLASSEX wc;
wc.hInstance = hModule;
wc.lpszClassName = (LPCWSTR)L"InjectedDLLWindowClass";
wc.lpszClassName = (LPCWSTR)szClassName;
wc.lpfnWndProc = DLLWindowProc;
wc.style = CS_DBLCLKS;
wc.cbSize = sizeof (WNDCLASSEX);
wc.hIcon = LoadIcon (NULL, IDI_APPLICATION);
wc.hIconSm = LoadIcon (NULL, IDI_APPLICATION);
wc.hCursor = LoadCursor (NULL, IDC_ARROW);
wc.lpszMenuName = NULL;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hbrBackground = CreatePatternBrush(LoadBitmap(hModule,MAKEINTRESOURCE(IDB_BITMAP1))); // Как я и писал ранее грузим из ресурсов нашу форму
if (!RegisterClassEx (&wc))
return 0;
}

HMENU CreateDLLWindowMenu() // Создаем меню, верхний титул
{

HMENU hMenu;
hMenu = CreateMenu();
HMENU hMenuPopup;
if(hMenu==NULL)
return FALSE;
hMenuPopup = CreatePopupMenu();
AppendMenu (hMenuPopup, MF_STRING,MYMENU_FLY, TEXT("Fly"));
AppendMenu (hMenu, MF_POPUP, (UINT_PTR) hMenuPopup, TEXT("Cheat"));
return hMenu;
}


DWORD WINAPI ThreadProc( LPVOID lpParam )
{
MSG messages;
wchar_t *pString = reinterpret_cast<wchar_t * > (lpParam);
HMENU hMenu = CreateDLLWindowMenu();
RegisterDLLWindowClass(L"InjectedDLLWindowClass");
hWnd = FindWindow(L"Window Injected Into ClassName", L"Window Injected Into Caption");
HWND hwnd = CreateWindowEx (0, L"InjectedDLLWindowClass", pString, WS_EX_PALETTEWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 480, hWnd, hMenu,hModule, NULL );
ShowWindow (hwnd, SW_SHOWNORMAL);
CreateWindow(L"button",L"Infinite Health", WS_CHILD | WS_VISIBLE | BS_CENTER,160,10,120,25,hwnd,(HMENU)1,hModule,NULL); // Добовляем кнопочки :33
CreateWindow(L"button",L"Infinite Ammo", WS_CHILD | WS_VISIBLE | BS_CENTER,160,40,120,25,hwnd,(HMENU)2,hModule,NULL);
CreateWindow(L"button",L"No Reload", WS_CHILD | WS_VISIBLE | BS_CENTER,160,70,120,25,hwnd,(HMENU)3,hModule,NULL);
CreateWindow(L"button",L"Fly Hack", WS_CHILD | WS_VISIBLE | BS_CENTER,160,100,120,25,hwnd,(HMENU)4,hModule,NULL);
while (GetMessage (&messages, NULL, 0, 0))
{
TranslateMessage(&messages);
DispatchMessage(&messages);
}
return 1;
}

LRESULT CALLBACK DLLWindowProc (HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam)
{

switch (message)
{
case WM_DESTROY:
PostQuitMessage (0);
break;
case WM_COMMAND:
switch(wParam)
{
case MYMENU_FLY: // При нажатие в меню выведет сообщение.
MessageBox(NULL,"Fly Hack запущен","Name Trainer",MB_ICONINFORMATION);
break;
case 1: //Далее проверка наших кнопочек
{
if(m_Health != 0)
{
PlaySound(MAKEINTRESOURCE(IDR_WAVE1),hModule,SND_RESOURCE | SND_ASYNC); // Озвучиваем нажатие кнопочки из ресурсов "Wav"
OnHealth(); //Вызываем функцию чита вкл
m_Health = 0;
}
else
{
PlaySound(MAKEINTRESOURCE(IDR_WAVE2),hModule,SND_RESOURCE | SND_ASYNC); // Озвучиваем нажатие кнопочки из ресурсов "Wav2"
OffHealth(); // Вызываем функцию чита выкл
m_Health = 1;
}
}
break;

}
break;


default:
return DefWindowProc (hwnd, message, wParam, lParam);
}
return 0;
}
DWORD WINAPI Keys(LPVOID lp) // Добавим HotKeys (Горячие клавиши)
{
MSG msg;

RegisterHotKey(0, 31337, 0,VK_F1);
RegisterHotKey(0, 31338, 0,VK_F2);
RegisterHotKey(0, 31339, 0,VK_F3);
RegisterHotKey(0, 31340, 0,VK_F4);

while(TRUE) {
while(PeekMessage(&msg,NULL,0,0,PM_NOREMOVE)) {
GetMessage(&msg,NULL,0,0);

if(msg.message == WM_HOTKEY){
if(msg.wParam == 31337){
toggle(&m_Health);
if(m_Health != 0)
{
PlaySound(MAKEINTRESOURCE(IDR_WAVE1),hModule,SND_RESOURCE | SND_ASYNC);
OnHealth();
}
else
{
OffHealth();
}
}
else if(msg.wParam = 31338)
{
toggle(&m_Ammo);
}


}
else {
DispatchMessage(&msg);
}
}
Sleep(10);
}
return 0;
}
BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call,LPVOID lpReserved)
{
if(ul_reason_for_call==DLL_PROCESS_ATTACH) {
hModule = hModule;
MessageBox(NULL,L"Cheat Started!",L"Seccusseful!",MB_ICONINFORMATION); // Выводим что чит успешно стартовал
Beep(440,1000/4); // Даем сигнал
CreateThread(0, NULL, ThreadProc, (LPVOID)L"Mafia 2", NULL, NULL); // Поток формы.
CreateThread(0,NULL,Keys,NULL,NULL,NULL); // Поток Горячих клавиш ^_^/>/>/>/>
}
return TRUE;
}

эмм, добавьте functions.h

и в нем пишите сам трейнер, для примера сделайте так:


void OnHealth()
{
MessageBox(NULL,L"Func ON",NULL,NULL);
}

void OffHealth()
{
MessageBox(NULL,L"Func OFF",NULL,NULL);
}

Так же полная свобода действии, установка любых хуков в том числе d3d

2 вида использования функций

Вывод:

1) Красивая Форма с кнопочками

2) Горячие клавиши

Если, что не понятно пишите, с радостью помогу)))

Я бы расписал и 3 вариант, это d3d меню, но думаю для начала и этого достаточно будет

Ну если попросите ^_^ то без проблем)))

P.S: Не судите строго первый мини гайд по созданию трейнера.

Всем спасибо за внимание by © aassdd

  • Плюс 3
Ссылка на комментарий
Поделиться на другие сайты

Наверное не плохо в начале, спасибо за статью.

Вот мне нужна статья на vc++ которая полностью чтоб описана о работе трейнер, к примеру

1)Функция: Диалоговое окно или меню плюс кнопочки (Хоткей)

2)Функция: Открываем дверь процесс с игрой и за получаем доступ :)

3)Функция: Как получили полный доступ к exe изменяем внутренний игровой код.

4)Функция: Далее возврат все на свое место и выход (Очищаем наш след)

В интернете много таких статьей типо так и так, надо как то с нуля как делают coder и keng.

Ссылка на комментарий
Поделиться на другие сайты

Окошко в DLL - это весело, таки та ещё наркомания!

Zockir, я не сильно люблю цпп, но у меня сейчас другого выхода нет, так что попробую.

Ссылка на комментарий
Поделиться на другие сайты

Окошко в DLL - это весело, таки та ещё наркомания!

Zockir, я не сильно люблю цпп, но у меня сейчас другого выхода нет, так что попробую.

Полностью поддерживаю тебя в данной ситуации.

Автор, молодец конечно, плюсик за старания.

Ссылка на комментарий
Поделиться на другие сайты

  • 1 год спустя...


HWND hwnd = CreateWindowEx (0, L"InjectedDLLWindowClass", pString, WS_EX_PALETTEWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 480, hWnd, hMenu,hModule, NULL );

В этой строке добавить (|) или убрать (~) необходимый стиль после первоначального WS_EX_PALETTEWINDOW. И да, необходимо погуглить Window Styles, чтобы попасть на MSDN, где, собственно, перечисляются все допустимые стили для окон, и объясняется, какой из них что значит.

Ссылка на комментарий
Поделиться на другие сайты


HWND hwnd = CreateWindowEx (0, L"InjectedDLLWindowClass", pString, WS_EX_PALETTEWINDOW, CW_USEDEFAULT, CW_USEDEFAULT, 300, 480, hWnd, hMenu,hModule, NULL );

В этой строке добавить (|) или убрать (~) необходимый стиль после первоначального WS_EX_PALETTEWINDOW. И да, необходимо погуглить Window Styles, чтобы попасть на MSDN, где, собственно, перечисляются все допустимые стили для окон, и объясняется, какой из них что значит.

спасибо за быстрый ответ, но теперь появилась новая проблема, копирую отсюда полностью весь код без каких либо изменений, проект компилируется никаких ошибок не возникает, но при инжекте в процесс форма вообще не появляется. В чем может быть проблема.

Ссылка на комментарий
Поделиться на другие сайты

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

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

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