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

Akatosh

Известный
21
0
1)www.ПЕРВЫЕ ШАГИ.ru :: Шаг 98 - Функция DLLMain()(http://www.firststeps.ru/mfc/winapi/r.php?98) - DLL_PROCESS_DETACH
2) хукать деструктор игры
3) хукать отправку /q
Я знаю как это делать, я же сказал, что буду инжектить. Я спрашивал, может кто знает какой-нибудь адрес, через который проходит игра во время закрытия :) может у кого есть под рукой
 

#Rin

Известный
Всефорумный модератор
1,214
1,043
Я знаю как это делать, я же сказал, что буду инжектить. Я спрашивал, может кто знает какой-нибудь адрес, через который проходит игра во время закрытия :) может у кого есть под рукой
В собейте они есть.
Ctrl + F -> SAMP_HOOKENTER_CNETGAME_DESTR
 

-raymond-

Известный
110
9
как получить путь к файлу ini в папке SAMPFUNCS?
mkteaiQ.png
 

#Rin

Известный
Всефорумный модератор
1,214
1,043
как получить путь к файлу ini в папке SAMPFUNCS?
mkteaiQ.png
C++:
char WorkingDir[MAX_PATH], IniFile[MAX_PATH];
GetCurrentDirectory(_countof(WorkingDir), WorkingDir);
sprintf_s(IniFile, "%s\\SAMPFUNCS\\file.ini", WorkingDir);
Еще можно использовать GetModuleFileName для получения пути к твоему плагину, а не к процессу в который инжекнут плагин.
 

2Shae

Известный
149
8
Как отправить сообщение через C++? (без собейта, а то немогу разобраться в нём)
 
Последнее редактирование:

CleanLegend

Известный
Всефорумный модератор
477
935

Adder

Известный
22
0
Написал функцию, которая обновляет определённые строки чата после ввода команды.
Функция работает с помощью SF->getSAMP()->getChat()->chatEntry.
Но чат не обновляет, пробовал обновить с помощью Set.iMessagesReceived = 1;
В этом случае, она обновляется, но только после того как в чат приходит ещё одна строка.
В этом случае Set.iMessagesReceived = 0; она обновляется сразу, но на время происходит не плохая просадка ФПС.
Может подскажете, как ещё можно обновлять чат? Или какой-нибудь вариант без просадки ФПС
 

#Rin

Известный
Всефорумный модератор
1,214
1,043
Может подскажете, как ещё можно обновлять чат? Или какой-нибудь вариант без просадки ФПС
Можно сэмулировать тройное нажатие F7.
Можно попробовать вызвать функцию (0x5D7B0), что вызывает и F7.
Функция является _thiscall'ом, в аргументы передать ChatInfo (0x21A0E4).
Адреса указаны для SAMP 0.3.7 R1.
 
  • Нравится
Реакции: Adder

leak.

Известный
37
4
всем привет. подскажите, пожалуйста, каким образом можно дебажить самп.длл вместе с игрой через Ida?

пробовал Attach to process - gta_sa.exe (запущенный) , видит асм код гташки, а сампа не может

Applaction: E:\gta_samp_037\gta_sa.exe
Input file: E:\gta_samp_037\samp.dll
Directory: E:\gta_samp_037

и потом запускать StartProcess, не получилось
 

#Rin

Известный
Всефорумный модератор
1,214
1,043
всем привет. подскажите, пожалуйста, каким образом можно дебажить самп.длл вместе с игрой через Ida?

пробовал Attach to process - gta_sa.exe (запущенный) , видит асм код гташки, а сампа не может

Applaction: E:\gta_samp_037\gta_sa.exe
Input file: E:\gta_samp_037\samp.dll
Directory: E:\gta_samp_037

и потом запускать StartProcess, не получилось
Атачишся к процессу, и в списке модулей выбираешь адресное пространство сампа.
 
  • Нравится
Реакции: leak.

leak.

Известный
37
4
Атачишся к процессу, и в списке модулей выбираешь адресное пространство сампа.

в общем, я гружу gta_sa.idb, потом запускаю самп, выбираю тип дебаггера(WinDbg, LocalWin) Debuger - тестил оба.
дальше Debuger-Attach to process, выбираю gta_sa.exe.
все грузится. в списке модулей выбираю самп, перехожу по адресу - адреса есть, но байты будто пустые. ни один сампский хук не видит.
а еще в модуле есть загрузка samp.pdb файла, это нужно заливать? хотя у меня его нет
что я делаю не так?
 
Последнее редактирование: