CLEO GodMode patch

Статус
В этой теме нельзя размещать новые ответы.

FYP

Известный
Автор темы
Администратор
1,758
5,726
Этот скрипт патчит дерьмовый самповский античит на бессмертие. Он позволит вам использовать абсолютно любой гм, не важно какого вида (т.е. все старые гм с ним будут работать как и раньше).
SAMPFUNCS не требует, работает на любой версии SA:MP, предназначен для 0.3x.
Установка и запуск: закинуть в папку CLEO; запускается автоматически при старте игры, отключение не предусмотрено.
Тестировался со скриптом fullGmO3X (прикреплён к теме).
Автор: FYP

Код:
{$CLEO}
thread "GMPatch"
0662: "by FYP for BlastHack.Net"
wait 1000
0A8C: write_memory 0x004B35A0 size 4 value 0x560CEC83 virtual_protect 1
0A8C: write_memory 0x004B35A4 size 2 value 0xF18B virtual_protect 1
0a93:
Код:
{$CLEO}
wait 0
repeat
wait 0
until player.Defined(0)
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 66
while true
wait 0
0A8C: write_memory 0@ size 1 value 0xCC virtual_protect 0
end
 

Вложения

  • fullGmO3X.rar
    133 байт · Просмотры: 765
  • gmpatch.rar
    152 байт · Просмотры: 866

01EG

Известный
Проверенный
631
345
То есть будет работать рандомный гм bygaga на 0.3е, ответь пожалуйста.
 

FYP

Известный
Автор темы
Администратор
1,758
5,726
все гм, которые работали на ранних версиях сампа будут работать с ним.
 

alfazlo

Потрачен
128
36
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Значит этот опкод:
02AB: set_actor 2@ immunities BP 1 FP 1 EP 1 CP 1 MP 1
будет работать?
А можно рассказать принцип по которому работает сам античит, он блокирует именно этот опкод, или?
 

FYP

Известный
Автор темы
Администратор
1,758
5,726
Значит этот опкод:
02AB: set_actor 2@ immunities BP 1 FP 1 EP 1 CP 1 MP 1
будет работать?
А можно рассказать принцип по которому работает сам античит, он блокирует именно этот опкод, или?

да, 02AB будет работать.
принцип заключается в иньекции кода в функцию обработки иммунитетов, установленных актёру, самп ставит хук на ней и не даёт функции выполнить код обработки иммунитетов к некоторым (или всем) видам получаемого урона.
 
  • Нравится
Реакции: EXPORT и alfazlo

alfazlo

Потрачен
128
36
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
да, 02AB будет работать.
принцип заключается в иньекции кода в функцию обработки иммунитетов, установленных актёру, самп ставит хук на ней и не даёт функции выполнить код обработки иммунитетов к некоторым (или всем) видам получаемого урона.

Хук в моем понимании это перенаправление вызова в свой код? То есть samp прописывает jump в код функции обработки иммунитетов, как это было в примере Могайки?Если так то еще вопрос: Этот код восстанавливает работоспособность оригинальной функции, или если нет, то блокирует хук? Тогда подробнее про хук пожалуйста :D
upd судя по коду он восстанавливает т.к. нету получения базового адреса samp.dll ну это моя логика :/
-
Еще такой вопрос, смотрел в блокноте бинарный код такого скрипта как GoC и понял, что там реализовалась идея которая и до меня со временем дошла. Идея которая до меня дошла: из одного скрипта создается куча файлов в которые копируются определенного размера данные. Только не понятна утилизация файлов, ведь их там потом не находили. Или там все сложнее было, я сужу только по текстовым названиям файлов в бинарном файле. Времязотратно это все выходит, изменил файл и везде придется менять байты сразу
 

FYP

Известный
Автор темы
Администратор
1,758
5,726
Хук в моем понимании это перенаправление вызова в свой код? То есть samp прописывает jump в код функции обработки иммунитетов, как это было в примере Могайки?Если так то еще вопрос: Этот код восстанавливает работоспособность оригинальной функции, или если нет, то блокирует хук? Тогда подробнее про хук пожалуйста :D
upd судя по коду он восстанавливает т.к. нету получения базового адреса samp.dll ну это моя логика :/

ну, можно и так сказать. хук - это установка перенаправления в коде исполняемого файла на свой код с возвратом (или без). да, самп прописывает прыжок на свою функцию, где выполняются различные проверки, и в случае успешной проверки некоторых условий самп просто выполняет выход из функции обработки иммунитетов, поэтому прежние варианты бессмертия и не работали на 0.3х. самп в своей функции, на которую происходит перенаправление, после проверки совершает два действия: либо делает выход, не выполняя оригинальную функцию, либо продолжает выполнение. ты можешь сам это посмотреть, присоединив отладчик к запущенной игре и перейдя по адресу 0x004B35A0 в gta_sa.exe, там ты и встретишь jump на код функции хука в samp.dll.

Еще такой вопрос, смотрел в блокноте бинарный код такого скрипта как GoC и понял, что там реализовалась идея которая и до меня со временем дошла. Идея которая до меня дошла: из одного скрипта создается куча файлов в которые копируются определенного размера данные. Только не понятна утилизация файлов, ведь их там потом не находили. Или там все сложнее было, я сужу только по текстовым названиям файлов в бинарном файле. Времязотратно это все выходит, изменил файл и везде придется менять байты сразу

а в чем, собственно, заключается сам вопрос?

скажи плиз как активируется твой гм?))

fullGmO3x? включается автоматически и выключить его во время игры нелья.
 

HYPERMUV

Новичок
21
3
Фип могёт, интересно как понять что означает любой адрес, всегда интересовало
 

valik565

Потрачен
19
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
{$CLEO}
wait 0
repeat
wait 0
until player.Defined(0)
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 66
while true
wait 0
0A8C: write_memory 0@ size 1 value 0xCC virtual_protect 0
end

Сделай активацию/деактивацию,пожалуйста
 

itsLegend

Фонд борьбы за жуков 🐞
Администратор
2,695
1,448
Сделай активацию/деактивацию,пожалуйста

Код:
{$CLEO}
wait 0
 
repeat
    wait 0
until player.Defined(0)
 
0A96: 0@ = actor $PLAYER_ACTOR struct
0@ += 66
0A8D: 1@ = read_memory 0@ size 1 virtual_protect 0
 
while true
    wait 0
    if 0AB0: 35 // End
    then
        2@++
        if 2@ > 1
        then 2@ = false // OR 0
        end // OR 0B12: 2@ = 2@ XOR true
 
        if 2@ == true // OR 1
        then 0A8C: write_memory 0@ size 1 value 0xCC virtual_protect 0
        else 0A8C: write_memory 0@ size 1 value 1@ virtual_protect 0
        end
 
        while 0AB0: 35
            wait 0
        end
    end
 
    /* if 2@ == 1
    then 0A8C: write_memory 0@ size 1 value 0xCC virtual_protect 0
    else 0A8C: write_memory 0@ size 1 value 1@ virtual_protect 0
    end */
end
 
  • Нравится
Реакции: valik565 и FYP

Rodnenky

5ый год на BlastHack.net
Проверенный
202
11
А в чем разница между новыми и старыми ГМ?
 
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

  1. Ответы
    39
    Просмотры
    22K
  2. Ответы
    14
    Просмотры
    9K
  3. Ответы
    13
    Просмотры
    3K
    Читы
    Удалённый пользователь 452116
    У
    • Закрыта
    • Опрос
    Ответы
    262
    Просмотры
    76K