GetCommandLineкак в длл получить аргументы при запуске процесса?
GetCommandLineкак в длл получить аргументы при запуске процесса?
Убирай строкукогда делаю http запрос в длл библиотеке, то он остается в строках процесса. есть ли возможность как-либо скрыть его?
Можно шифровать строку при компиляции и дешифровать в рантаймеУбирай строку
я не знаю, конечно, какой хукер ты юзаешь, но в хукнутой функции у тебя почему-то стоят референсы вместо просто параметров, вместо LRESULT - void, и нет вызова оригинальной функции, поэтому игра ломается. вот тебе пример рабочего хука с помощью MinHook:Вроде хук
C++:void CALLBACK WndProc_hooked(HWND &hwnd, UINT &Message, WPARAM &wparam, LPARAM &lparam) { switch (Message) { case WM_KEYUP: if (wparam == '9') { // ... } break; default: break; } } static hook wndproc(reinterpret_cast<LRESULT(CALLBACK*)(HWND,UINT,WPARAM,LPARAM)>(0x747EB0), WndProc_hooked);
#include <Windows.h>
#include "MinHook.h"
#pragma comment(lib, "libMinHook-x86-v120-mt.lib") // либу выбираешь под версию тулсета и рантайм либу
WNDPROC origWndProc = nullptr; // создаём прототип для сохранения оригинального вндпрока
LRESULT __stdcall HOOKED_WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
// твой код
return origWndProc(hWnd, uMsg, wParam, lParam); // вызываем оригинальный вндпрок чтобы не сломать игру
}
// иницилиазируем минхук (1 раз)
MH_Initialize();
// создаем и включаем хук
MH_CreateHook(reinterpret_cast<LPVOID>(0x747EB0), &HOOKED_WndProc, reinterpret_cast<LPVOID*>(&origWndProc));
MH_EnableHook(reinterpret_cast<LPVOID>(0x747EB0));
вот хук, который использовался - https://github.com/allwanttokissme/Yet-another-hook-library. если тип возвращаемого значения void, то будет вызываться оригинальная функция (https://github.com/allwanttokissme/Yet-another-hook-library/blob/master/hook.h#L327, https://github.com/allwanttokissme/Yet-another-hook-library/blob/master/hook.h#L342)но в хукнутой функции у тебя почему-то стоят референсы вместо просто параметров, вместо LRESULT - void, и нет вызова оригинальной функции, поэтому игра ломается
C:\Новая папка\SFPlugin\SFPlugin\SFPlugin.vcxproj : warning : Невозможно найти средства сборки для Visual Studio 2012 - Windows XP (v110_xp). Установите Visual Studio 2012 - Windows XP (v110_xp), чтобы выполнить сборку с использованием средств сборки Visual Studio 2012 - Windows XP (v110_xp).
в настройках проекта выбери установленый тулсет и винсдкКак исправить это в Visual Studio 2019?
перед использованием проверь загруженость сампа2 - Как я могу отправить сообщение в чат не используя SF Api?
void add_chat_message(DWORD dwColor, LPCSTR szString, ...)
{
va_list ap;
char msg[/* SAMP_MAX_CHAT_MESSAGE */ 144] = { 0 };
va_start(ap, szString);
vsprintf_s(msg, szString, ap);
va_end(ap);
DWORD base = reinterpret_cast<DWORD>(GetModuleHandleW(L"samp.dll"));
DWORD ptr_chat_info = base + /* SAMP_PTR_CHAT_INFO */ 0x21A0E4;
DWORD ptr_function = base + /* SAMP_PTR_FUNC_ADDTOCHATWND */ 0x64010;
__asm
{
mov eax, dword ptr[ptr_chat_info]
mov ecx, dword ptr[eax]
push 0
push dwColor
push 0
lea eax, msg
push eax
push 8
call ptr_function
}
}
Можешь подробнее объяснить, если можно скриншотами, как включить тулсет и винсдк, вчера скачал студию, и вообще не понимаю че да как тамв настройках проекта выбери установленый тулсет и винсдк
перед использованием проверь загруженость сампа
C++:void add_chat_message(DWORD dwColor, LPCSTR szString, ...) { va_list ap; char msg[/* SAMP_MAX_CHAT_MESSAGE */ 144] = { 0 }; va_start(ap, szString); vsprintf_s(msg, szString, ap); va_end(ap); DWORD base = reinterpret_cast<DWORD>(GetModuleHandleW(L"samp.dll")); DWORD ptr_chat_info = base + /* SAMP_PTR_CHAT_INFO */ 0x21A0E4; DWORD ptr_function = base + /* SAMP_PTR_FUNC_ADDTOCHATWND */ 0x64010; __asm { mov eax, dword ptr[ptr_chat_info] mov ecx, dword ptr[eax] push 0 push dwColor push 0 lea eax, msg push eax push 8 call ptr_function } }
пкм по названию проекту - настройки. выбираешь установленый тулсет (у меня это v141), применяешь настройки. после чего выбираешь версию winsdk (у меня это 10.0.17763.0), применяешь настройки.Можешь подробнее объяснить, если можно скриншотами, как включить тулсет и винсдк, вчера скачал студию, и вообще не понимаю че да как там
Можно поинтересоваться для чего тут ассемблер?перед использованием проверь загруженость сампа
MTA-стайл - асм вместо тайпдефаМожно поинтересоваться для чего тут ассемблер?
ПКМ по решению -> перенацелить решениепкм по названию проекту - настройки. выбираешь установленый тулсет (у меня это v141), применяешь настройки. после чего выбираешь версию winsdk (у меня это 10.0.17763.0), применяешь настройки.
А зачем...MTA-стайл - асм вместо тайпдефа
при чём тут это? мне просто так легче было написать, вот и всёА зачем...
Ассемблером выебнуться типа?
11 строк вместо 2хмне просто так легче было написать