интересно
правда я не понимаю в чём смысл анпака, я ещё зеленый в этой теме, но гидрой уже в engine поковырялся, как буд то бы весь псевдокод читаем, да и патчить по байтам можно
в новых клиентах в основном всё в nwindow.dll делается
Да. Особого смысла нет, если клиенты эпилог и выше. До эпилога старая версия темиды, которая не запускается на win10/11.
Темида разворачивает dll файл, вырезает импорт, экспорт, шифрует ресурсы.
Все секции до ресурсов объединяются в одну безымянную секцию с raw размером равным виртуальному.
Я делал так: сначала анпак-скрипт, затем модулем scylla проверял импорты, исправлял/удалял лишнее, складывал импорты в отдельную компактную секцию. Далее брал чистый длл файл и начинал собирать.
Для этого я запускал оригинальную длл под дебагом, ставил брейкпоинт на начало секции. Ловил момент дешифрования dll файла. Далее дампил эту чистую безымянную секцию, делил ее на 3-4 части (text, rdata, data. в старых dll еще бывает idata).
1) text - тут удалены вызовы импорт-функций. Заменены на 6-7 nop инструкций. Я брал восстановленную анпак-скриптом text секцию, проверяя на ошибки (иногда могут быть неправильные сдвиги)
2) data - нужно просто урезать размер с виртуального до правильного raw. Искал последний не 0 байт, выравнивал, удалял остальные нулевые байты. Записывал raw/виртуальный размер. Кстати размер нужно фиксить всем секциям. Не забываем что после темиды они виртуального размера. Поэтому длл с темидой такая большая на диске.
3) rdata/idata - тут самое нудное. Нужно найти место где в оригинале начинались iat/экспорт таблицы. Сформировать новые таблицы, записать их, поправив все смещения. Я это делал своим скриптом.
Ресурсы можно взять после анпака-скрипта.
Если есть reloc, то можно просто поставить брейкпоинт перед исправлением релокаций темидой и вытащить из памяти расшифрованную reloc таблицу.
Затем создать новые секции, сложить их. В заголовке вписать правильные смещения и размер. Если все сделаете правильно, ваши новые секции в сумме будут иметь такой же виртуальный размер, как и старая безымянная секция.
Возможно есть способы проще, но я их не нашел. Все гайды показывают простой анпак, без восстановления близко к оригиналу. Я просто смотрел как выглядят длл без темиды и возвращал к такой же структуре