Форум Pawn.Wiki - Воплоти мечту в реальность!: Удаляем стандартный TAB из игры - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ C++ ]
Удаляем стандартный TAB из игры
Оценка: -----

#11
Пользователь офлайн   swlm 

  • Профессионал
  • Вставить ник
  • Раскрыть информацию
Надо бы ввести такое правило, чтобы всякие новореги не создавали темы со своими плагинами, а тем более уж не проверенными, без исходников и так далее. Или же ещё жёстче сделать, не правило, а системное ограничение. Как вам идея, господа?

Сообщение отредактировал swlm: 05 апреля 2026 - 21:12

3

#12
Пользователь офлайн   MuthaX 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияswlm (05 апреля 2026 - 21:12) писал:

Надо бы ввести такое правило, чтобы всякие новореги не создавали темы со своими плагинами, а тем более уж не проверенными, без исходников и так далее. Или же ещё жёстче сделать, не правило, а системное ограничение. Как вам идея, господа?

Если глянуть через дизассемблер, то выяснится, что этот крендель не осилил не только как сделать 1 бинарник на несколько версий, но и проверить эти самые версии сампа в каждом из бинарников :facepalm: :facepalm:
Будет кек, когда кто-нибудь версию сампа перепутает.

А, формально, всё, что он сделал сводится к приблизительно следующему коду (для R1 версии):
 
uinptr_t samp_handlea = GetModuleHandleA("samp.dll");
uinptr_t g_addr_hackitem_c = (samp_handlea + 0x195F8);
uinptr_t g_addr_hackitem_b = (samp_handlea + 0x19004);
uinptr_t g_addr_hackitem_a = (samp_handlea + 0x1AB4C);
// Далее идёт цикл с VirtualProtect(lpAddress, 0x10000u, PAGE_EXECUTE_READWRITE, &prev_protect_value); // Ну ка, интересно, а зачем же ему, собственно, нужно на столь большом диапазоне адресов разрешать чтение и запись, а после - не возвращать к исходной защите памяти? - вангую он где-то подсмотрел из Луа скриптов с паблика?
// Далее подробно не разбирал, но зачем SuspendThread делать там?
// А после этих сомнительной необходимости циклов всё-таки идёт полезная часть
// hooking_procedure = 0x19F0
hooking_procedure(&g_addr_hackitem_c, detour_proc_c, ...);
hooking_procedure(&g_addr_hackitem_b, detour_proc_b, ...);
hooking_procedure(&g_addr_hackitem_a, ничего_не_делающая_функция, ...);


А вот модуль для хуков занятный: не примитивный, но и не самописный - где скачал?
1

#13
Пользователь офлайн   swlm 

  • Профессионал
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияMuthaX (07 апреля 2026 - 00:08) писал:

Нажмите сюда, чтобы прочитать это сообщение. [Показать]


да я тоже вчера глянул ради интереса что он наворотил там, я смотрел R3 версию, там он вообще что-то непонятное делал, зачем-то читал память по адресу из сампа 0x182D4, что-то делал с позицией...

P.S. А нет, не позицию он читал, что-то другое, он читал количество битов, вопрос зачем?

Сообщение отредактировал swlm: 07 апреля 2026 - 22:08

0

Поделиться темой:


  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика