если вручную то:
у инструкций есть операнды(то над чем/с чем производится действие)
например условно пусть инструкия "умножить на 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
если сига слишком длинная - вполне возможно что стоит поискать другой хреф и на него уже сигу сделать