Гость aassdd Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Всем привет! Конечно же хотелось записать видео урок но у меня не получилось Сразу хочу заметить то, что в некоторых видео уроках были заготовки, и не понравилось так как новичок посмотрев урок не поймет от куда это брать!Я не буду здесь описывать функции чита, а лишь приведу примеры для компактного использование формы, и полным доступом, что то подобие темы "Трейнер Гибрид"И так начнем с заготовки! Нам потребуется: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 - offBOOL m_Ammo = 0; // Проверка чита функции 1 - on/ 0 - ofinline 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); // Добовляем кнопочки :33CreateWindow(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);}Так же полная свобода действии, установка любых хуков в том числе d3d2 вида использования функцийВывод:1) Красивая Форма с кнопочками2) Горячие клавишиЕсли, что не понятно пишите, с радостью помогу)))Я бы расписал и 3 вариант, это d3d меню, но думаю для начала и этого достаточно будетНу если попросите то без проблем)))P.S: Не судите строго первый мини гайд по созданию трейнера.Всем спасибо за внимание by © aassdd 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Наверное не плохо в начале, спасибо за статью.Вот мне нужна статья на vc++ которая полностью чтоб описана о работе трейнер, к примеру1)Функция: Диалоговое окно или меню плюс кнопочки (Хоткей)2)Функция: Открываем дверь процесс с игрой и за получаем доступ 3)Функция: Как получили полный доступ к exe изменяем внутренний игровой код.4)Функция: Далее возврат все на свое место и выход (Очищаем наш след)В интернете много таких статьей типо так и так, надо как то с нуля как делают coder и keng. Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Окошко в DLL - это весело, таки та ещё наркомания!Zockir, я не сильно люблю цпп, но у меня сейчас другого выхода нет, так что попробую. Ссылка на комментарий Поделиться на другие сайты Поделиться
Coder Опубликовано 23 ноября, 2012 Поделиться Опубликовано 23 ноября, 2012 Окошко в DLL - это весело, таки та ещё наркомания!Zockir, я не сильно люблю цпп, но у меня сейчас другого выхода нет, так что попробую.Полностью поддерживаю тебя в данной ситуации.Автор, молодец конечно, плюсик за старания. Ссылка на комментарий Поделиться на другие сайты Поделиться
perizar Опубликовано 21 февраля, 2014 Поделиться Опубликовано 21 февраля, 2014 извините что поднимаю старую тему, но как сменить FormBorderStyle на None в данном проекте. Спасибо. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 21 февраля, 2014 Поделиться Опубликовано 21 февраля, 2014 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, где, собственно, перечисляются все допустимые стили для окон, и объясняется, какой из них что значит. Ссылка на комментарий Поделиться на другие сайты Поделиться
perizar Опубликовано 21 февраля, 2014 Поделиться Опубликовано 21 февраля, 2014 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, где, собственно, перечисляются все допустимые стили для окон, и объясняется, какой из них что значит.спасибо за быстрый ответ, но теперь появилась новая проблема, копирую отсюда полностью весь код без каких либо изменений, проект компилируется никаких ошибок не возникает, но при инжекте в процесс форма вообще не появляется. В чем может быть проблема. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения