не совсем понимаю как это должно выглядеть. ты либо проверяешь (скорее всего в потоке), что значение инициализировалось (например CNetGame), либо хукаешь функцию, которая вызывается после/во время инициализацииможно ли как-то проверить иниацилизацию сампа без хуков/потоков?
edx bypass в ктхуке не нужен, хотя и с ним работать будетПопробуй что-то подобное (показал на примере kthook)
C++:#include <Windows.h> #include "kthook/kthook.hpp" // edx - bypass MSVC kthook::kthook_simple<void(__fastcall*)(void* pDialog, void* edx, char button);>(CDialogCloseHook); void __fastcall CDialogCloseHooked(const decltype(CDialogCloseHook)& hook, void* pDialog, void* edx, char button) { // code return hook.get_trampoline()(pDialog, edx, button); } // install hoook (after initialization of SAMP) CDialogCloseHook.set_cb(&CDialogCloseHooked); auto sampHandle = reinterpret_cast<uintptr_t>(GetModuleHandleA("samp.dll")); // 0x6C040 - R1 CDialogCloseHook.set_dest(sampHandle + 0x6C040); CDialogCloseHook.install();
great! would it be possible to get an example without KtHook?Попробуй что-то подобное (показал на примере kthook)
C++:#include <Windows.h> #include "kthook/kthook.hpp" // edx - bypass MSVC kthook::kthook_simple<void(__fastcall*)(void* pDialog, void* edx, char button);>(CDialogCloseHook); void __fastcall CDialogCloseHooked(const decltype(CDialogCloseHook)& hook, void* pDialog, void* edx, char button) { // code return hook.get_trampoline()(pDialog, edx, button); } // install hoook (after initialization of SAMP) CDialogCloseHook.set_cb(&CDialogCloseHooked); auto sampHandle = reinterpret_cast<uintptr_t>(GetModuleHandleA("samp.dll")); // 0x6C040 - R1 CDialogCloseHook.set_dest(sampHandle + 0x6C040); CDialogCloseHook.install();
ты можешь использовать любой другой хукер на свой вкус, например MinHookgreat! would it be possible to get an example without KtHook?
Можешь почитать данную статью: linkgreat! would it be possible to get an example without KtHook?
возможно это оно: https://www.blast.hk/threads/90249/can u help me please with my question ?
![]()
thanks you ! :)
Да, это именно то, что я ищу, но для версии 0.3DL SA:MP.возможно это оно: https://www.blast.hk/threads/90249/
попробуй заменить адреса наДа, это именно то, что я ищу, но для версии 0.3DL SA:MP.
0xE5D7 и 0xE5E2Оно работает !попробуй заменить адреса на0xE5D7и0xE5E2
#include <iostream>
#include<locale>
using namespace std;
void passportIndentification()
{
setlocale(LC_ALL, "rus");
int age;
string name;
cout << "Введите свое имя" << endl;
cin >> name;
string surname;
cout << "Введите свою фамилию" << endl;
cin >> surname;
cout << "Введите свой возвраст" << endl;
cin >> age;
string nation;
cout << "Введите свою нацию" << endl;
cin >> nation;
string from;
cout << "Введите свою страну" << endl;
cin >> from;
string town;
cout << "Введите свой город" << endl;
cin >> town;
cout << "Ваше имя: " << name << endl;
cout << "Ваша фамилия: " << surname << endl;
cout << "Ваш возвраст: " << age << endl;
cout << "Ваша нация: " << nation << endl;
cout << "Ваша страна: " << from << endl;
cout << "Ваш город: " << town << endl;
}
int main() {
passportIndentification();
return 0;
}
с консолью трабл скорее, пробуй что-нибудь отсюдапочему русские символы каверкаются? локализация подключена в чем тогда проблема , никак не пойму(visual studio)
Код:#include <iostream> #include<locale> using namespace std; void passportIndentification() { setlocale(LC_ALL, "rus"); int age; string name; cout << "Введите свое имя" << endl; cin >> name; string surname; cout << "Введите свою фамилию" << endl; cin >> surname; cout << "Введите свой возвраст" << endl; cin >> age; string nation; cout << "Введите свою нацию" << endl; cin >> nation; string from; cout << "Введите свою страну" << endl; cin >> from; string town; cout << "Введите свой город" << endl; cin >> town; cout << "Ваше имя: " << name << endl; cout << "Ваша фамилия: " << surname << endl; cout << "Ваш возвраст: " << age << endl; cout << "Ваша нация: " << nation << endl; cout << "Ваша страна: " << from << endl; cout << "Ваш город: " << town << endl; } int main() { passportIndentification(); return 0; }
с локализацией все хорошо, попробуй другую консольпочему русские символы каверкаются? локализация подключена в чем тогда проблема , никак не пойму(visual studio)
Код:#include <iostream> #include<locale> using namespace std; void passportIndentification() { setlocale(LC_ALL, "rus"); int age; string name; cout << "Введите свое имя" << endl; cin >> name; string surname; cout << "Введите свою фамилию" << endl; cin >> surname; cout << "Введите свой возвраст" << endl; cin >> age; string nation; cout << "Введите свою нацию" << endl; cin >> nation; string from; cout << "Введите свою страну" << endl; cin >> from; string town; cout << "Введите свой город" << endl; cin >> town; cout << "Ваше имя: " << name << endl; cout << "Ваша фамилия: " << surname << endl; cout << "Ваш возвраст: " << age << endl; cout << "Ваша нация: " << nation << endl; cout << "Ваша страна: " << from << endl; cout << "Ваш город: " << town << endl; } int main() { passportIndentification(); return 0; }
почему русские символы каверкаются? локализация подключена в чем тогда проблема , никак не пойму(visual studio)
Код:#include <iostream> #include<locale> using namespace std; void passportIndentification() { setlocale(LC_ALL, "rus"); int age; string name; cout << "Введите свое имя" << endl; cin >> name; string surname; cout << "Введите свою фамилию" << endl; cin >> surname; cout << "Введите свой возвраст" << endl; cin >> age; string nation; cout << "Введите свою нацию" << endl; cin >> nation; string from; cout << "Введите свою страну" << endl; cin >> from; string town; cout << "Введите свой город" << endl; cin >> town; cout << "Ваше имя: " << name << endl; cout << "Ваша фамилия: " << surname << endl; cout << "Ваш возвраст: " << age << endl; cout << "Ваша нация: " << nation << endl; cout << "Ваша страна: " << from << endl; cout << "Ваш город: " << town << endl; } int main() { passportIndentification(); return 0; }
#include <iostream>
#include<locale>
#include <io.h>
#include <fcntl.h>
using namespace std;
void passportIndentification()
{
_setmode(_fileno(stdin), _O_U16TEXT);
_setmode(_fileno(stdout), _O_U16TEXT);
setlocale(LC_ALL, "rus");
int age;
wstring name;
wcout << L"Введите свое имя" << endl;
wcin >> name;
wstring surname;
wcout << L"Введите свою фамилию" << endl;
wcin >> surname;
wcout << L"Введите свой возвраст" << endl;
wcin >> age;
wstring nation;
wcout << L"Введите свою нацию" << endl;
wcin >> nation;
wstring from;
wcout << L"Введите свою страну" << endl;
wcin >> from;
wstring town;
wcout << L"Введите свой город" << endl;
wcin >> town;
wcout << L"Ваше имя: " << name << endl;
wcout << L"Ваша фамилия: " << surname << endl;
wcout << L"Ваш возвраст: " << age << endl;
wcout << L"Ваша нация: " << nation << endl;
wcout << L"Ваша страна: " << from << endl;
wcout << L"Ваш город: " << town << endl;
}
int main() {
passportIndentification();
return 0;
}