Другое С/С++ Вопрос - Ответ

dekname

Участник
44
2
Попробуй на юрмеме так сделать, Код писал по памяти в блокноте++
C++:
#include <iostream>
#include <urmem.hpp>
#include <fstream>

using namespace urmem;
hook hookChat;

void CALLBACK hookFuncMessage(void *t, D3DCOLOR color, const char *text){
    fstream file("test hook.log", ios::binary | ios::app/* or ios::ate // Не помню по памяти какой-то второй должен быть флаг, чтобы писало в конец файла*/);
    file << text << endl;
    file.close();
    hookChat.call<calling_convention::thiscall, void>(t, color, text);
}


void initFunction(){
    hookChat.install(GetAddress(0x645A0)), get_func_addr(&hookFuncMessage));
}

void DeinitFunction(){
    hookChat.disable();
}
.
Да уже все работает на PolyHook
 
Последнее редактирование:

корбус

Известный
434
108
Из-за чего ошибка?
1606331704625.png
 

dekname

Участник
44
2
На стороне клиента есть какой-то обработчик команд? Если есть, то какой у него адрес и сигнатура?
 

memir

🇷🇺
Всефорумный модератор
333
600
А, как можно параметры с команд выдернуть?
ProcessInput разбивает строку на несколько, просто записывая нуль после команды.
посчитай длину через strlen() и прибавь её + 1 к указателю на команду, получишь строку с аргументами
 
  • Нравится
Реакции: dekname

dekname

Участник
44
2
ProcessInput разбивает строку на несколько, просто записывая нуль после команды.
посчитай длину через strlen() и прибавь её + 1 к указателю на команду, получишь строку с аргументами
спасибо! А полную строку не получить? Чтобы split'ом разбить ее на параметры?
 

memir

🇷🇺
Всефорумный модератор
333
600
спасибо! А полную строку не получить? Чтобы split'ом разбить ее на параметры?
ты всегда можешь склеить команду и строку с аргументами вручную. Именно оригинал из чатбокса на момент вызова GetCommandHandler не получить