Вопрос signature

Участник
Статус
Оффлайн
Регистрация
23 Апр 2022
Сообщения
694
Реакции[?]
326
Поинты[?]
12K
Участник
Статус
Оффлайн
Регистрация
23 Май 2019
Сообщения
781
Реакции[?]
331
Поинты[?]
63K
если вручную то:
у инструкций есть операнды(то над чем/с чем производится действие)
например условно пусть инструкия "умножить на 10"
это будет в байтах условно
123 10
здесь 123 это сама инструкция "умножить"
а 10 это операнд("на 10")
так вот операнды(а в частности особая группа операндов - относительные(да и абсолютные тоже) адреса) могут поменяться при апдейте, а вот сами инструкции скорее всего останутся такими же(если апдейт будет не очень сильный)
так что ты делаешь сигу
"умножить на ?"
это в нашем случае с нашими байтиками
123 ??
люди сиги делают двух видов - одновопросные(операнды на ? заменяются) и двухвопросные(операнды на ?? заменяются)
123 ? - одновопросная сига
123 ?? - двухвопросная сига
ида понимает оба типа сиг, x64dbg только двухвопросные
поэтому я предпочитаю двухвопросные сиги для совместимости(и ида и дебаггер понимают их).
операнды(их бывает и несколько штук, например условно "делить 10 на 2" здесь два операнда 10 и 2) помечаются в х64дбг пробелами(отступами) в байтиках инструкций. все зеленое на скрине это операнды и они могут впринципе при апдейте поменяться(ну некоторые из них конечно носят служебный характер и не будут меняться а если и будут меняться то вся функция кардинально поменяется но не суть возьмём их тоже как неизвестное) и надо их вопросиками заменять
1664721546300.png
сигу ты делаешь такого размера, какого нужно, чтобы она была уникальной
на скрине например получается
48 89 5c 24 ?? 48 89 74 24 ?? 55 57 41 56 48 8d ac 24 ?? ?? ?? ?? 48 81 ec ?? ?? ?? ?? 48 8b 05 ?? ?? ?? ?? 48 33 c4 48 89 85 ?? ?? ?? ?? 4c 8b 05
если сига слишком длинная - вполне возможно что стоит поискать другой хреф и на него уже сигу сделать
 
Пользователь
Статус
Оффлайн
Регистрация
20 Янв 2022
Сообщения
182
Реакции[?]
40
Поинты[?]
25K
если вручную то:
у инструкций есть операнды(то над чем/с чем производится действие)
например условно пусть инструкия "умножить на 10"
это будет в байтах условно
123 10
здесь 123 это сама инструкция "умножить"
а 10 это операнд("на 10")
так вот операнды(а в частности особая группа операндов - относительные(да и абсолютные тоже) адреса) могут поменяться при апдейте, а вот сами инструкции скорее всего останутся такими же(если апдейт будет не очень сильный)
так что ты делаешь сигу
"умножить на ?"
это в нашем случае с нашими байтиками
123 ??
люди сиги делают двух видов - одновопросные(операнды на ? заменяются) и двухвопросные(операнды на ?? заменяются)
123 ? - одновопросная сига
123 ?? - двухвопросная сига
ида понимает оба типа сиг, x64dbg только двухвопросные
поэтому я предпочитаю двухвопросные сиги для совместимости(и ида и дебаггер понимают их).
операнды(их бывает и несколько штук, например условно "делить 10 на 2" здесь два операнда 10 и 2) помечаются в х64дбг пробелами(отступами) в байтиках инструкций. все зеленое на скрине это операнды и они могут впринципе при апдейте поменяться(ну некоторые из них конечно носят служебный характер и не будут меняться а если и будут меняться то вся функция кардинально поменяется но не суть возьмём их тоже как неизвестное) и надо их вопросиками заменять
Посмотреть вложение 223103
сигу ты делаешь такого размера, какого нужно, чтобы она была уникальной
на скрине например получается
48 89 5c 24 ?? 48 89 74 24 ?? 55 57 41 56 48 8d ac 24 ?? ?? ?? ?? 48 81 ec ?? ?? ?? ?? 48 8b 05 ?? ?? ?? ?? 48 33 c4 48 89 85 ?? ?? ?? ?? 4c 8b 05
если сига слишком длинная - вполне возможно что стоит поискать другой хреф и на него уже сигу сделать
cпасибо
 
Сверху Снизу