Вопрос Что делать с сигнатурами

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
19 Мар 2022
Сообщения
15
Реакции
0
Новичок в сфере создания читов, скачал иду, нашел сигнатуру отрисовки тп
1740390419715.png
1740390464004.png

(80 A6 A4 09 00 00 7F как я понял), а вот чо с этим дальше делать хз. Просветите пж
 

Вложения

  • 1740390474021.png
    1740390474021.png
    9.2 KB · Просмотры: 13
почитай про exact и fuzzy pattern matching. сигнатуры это просто маленькое подмножество regex'ов. сигнатуры делают прежде всего на инструкции(потому что они при апдейте игры особо сильно не меняются без лишнего повода). люди сигнатурами представляют "общий вид" последовательности инструкций, обычно заменяя операнды/регистры на вопросики(вопросиками обозначается байт который игнорится при поиске).
например у тебя инструкция "прибавить четрые к регистру абвгд", ты сделаешь "прибавить ?? к регистру ??"(условно), т.е. "обобщишь" инструкцию. потом еще последующие инструкции ещё также обобщишь и добавишь и получится более менее уникальное и стабильное описание какого-то места в коде. потом ты это место находишь(как раз таки fuzzy pattern matching'ом) и дальше делаешь что надо(например достаешь операнды из инструкций, или еще что-то делаешь).
на то место что ты скинул можно сделать сигу 80 A6 ?? ?? ?? ?? ?? 41 0F B6 ??(на самом деле последний вопросик(??) нахуй не нужен просто для ясности написал), т.е.
and byte ptr ds:[rsi+??], ??
movzx eax, ??
под этот общий вид как раз и подходят
and byte ptr ds:[rsi+0x9A4], 0x7F
movzx eax, r12b
встречаются такие инструкции подходящие под этот общий вид, только в одном месте. вот ты нашел это место, и дальше делаешь что тебе надо.
если тебе надо чтобы тп показывало - значить можешь пропатчить(учитывай что секция .text - ридонли(т.е. должна иметь ожидамое, предопределенное содержимое и если реальное содержимое не соответствует ожидаемому то хуёво...) и её модификации античит может(если захочет конечно) задетектить) инструкции которые выставляют флаг видимости партикли. на этом rsi + 0x9A4 как раз лежит 1 байтовый flags enum(группа из 8 однобитовых независимых друг от друга чисел просто сгруппированных в один байт), в котором бит на 0x80(это 2 в седьмой степени - то есть восьмой бит) отвечает за видимость партикли.
игра делает
movzx eax, r12b
...
shl al, 0x7
or byte ptr ds:[rsi+0x9A4], al
другими словами, [rsi + 0x9a4] |= (r12b << 7)
если r12b = 0 то r12b << 7 тоже будет 0(партикля невидимая)
если r12b = 1 то r12b << 7 будет 0x80(партиклю видно)
можешь пропатчить просто сразу shl al, 0x7 на mov al, 0x80(тогда там не r12b << 7 будет а всегда константа 0x80)
сама суть сиг на инструкции в том чтобы при апдейте игры(незначительном) ничего не "ломалось" и ты бы мог снова находить нужное место(сами инструкции поменяются но ты ищешь "общий вид" поэтому все равно их находишь)
 
почитай про exact и fuzzy pattern matching. сигнатуры это просто маленькое подмножество regex'ов. сигнатуры делают прежде всего на инструкции(потому что они при апдейте игры особо сильно не меняются без лишнего повода). люди сигнатурами представляют "общий вид" последовательности инструкций, обычно заменяя операнды/регистры на вопросики(вопросиками обозначается байт который игнорится при поиске).
например у тебя инструкция "прибавить четрые к регистру абвгд", ты сделаешь "прибавить ?? к регистру ??"(условно), т.е. "обобщишь" инструкцию. потом еще последующие инструкции ещё также обобщишь и добавишь и получится более менее уникальное и стабильное описание какого-то места в коде. потом ты это место находишь(как раз таки fuzzy pattern matching'ом) и дальше делаешь что надо(например достаешь операнды из инструкций, или еще что-то делаешь).
на то место что ты скинул можно сделать сигу 80 A6 ?? ?? ?? ?? ?? 41 0F B6 ??(на самом деле последний вопросик(??) нахуй не нужен просто для ясности написал), т.е.
and byte ptr ds:[rsi+??], ??
movzx eax, ??
под этот общий вид как раз и подходят
and byte ptr ds:[rsi+0x9A4], 0x7F
movzx eax, r12b
встречаются такие инструкции подходящие под этот общий вид, только в одном месте. вот ты нашел это место, и дальше делаешь что тебе надо.
если тебе надо чтобы тп показывало - значить можешь пропатчить(учитывай что секция .text - ридонли(т.е. должна иметь ожидамое, предопределенное содержимое и если реальное содержимое не соответствует ожидаемому то хуёво...) и её модификации античит может(если захочет конечно) задетектить) инструкции которые выставляют флаг видимости партикли. на этом rsi + 0x9A4 как раз лежит 1 байтовый flags enum(группа из 8 однобитовых независимых друг от друга чисел просто сгруппированных в один байт), в котором бит на 0x80(это 2 в седьмой степени - то есть восьмой бит) отвечает за видимость партикли.
игра делает
movzx eax, r12b
...
shl al, 0x7
or byte ptr ds:[rsi+0x9A4], al
другими словами, [rsi + 0x9a4] |= (r12b << 7)
если r12b = 0 то r12b << 7 тоже будет 0(партикля невидимая)
если r12b = 1 то r12b << 7 будет 0x80(партиклю видно)
можешь пропатчить просто сразу shl al, 0x7 на mov al, 0x80(тогда там не r12b << 7 будет а всегда константа 0x80)
сама суть сиг на инструкции в том чтобы при апдейте игры(незначительном) ничего не "ломалось" и ты бы мог снова находить нужное место(сами инструкции поменяются но ты ищешь "общий вид" поэтому все равно их находишь)
Понял, написание читов на доту отменяется
 
Понял, написание читов на доту отменяется
ну сигскан это общечитерское понятие которое почти ко всем играм(и не только играм)(и не только в читах используется) относится так что полезно понимать что это такое. а вообще сигскан это просто маленькое подмножество того что делается в различных поисковых системах/алгоритмах и подобных системах.
 
ну сигскан это общечитерское понятие которое почти ко всем играм(и не только играм)(и не только в читах используется) относится так что полезно понимать что это такое. а вообще сигскан это просто маленькое подмножество того что делается в различных поисковых системах/алгоритмах и подобных системах.
ну чтоб ты понимал, уровень моих знаний программирования заканчивается на небольших знаниях питона и написания сайтов.
 
Назад
Сверху Снизу