В подписанный EXE нужно добавить 8-ми битный уникальный ID, чтобы подпись при этом не слетела.
(ID необходим для последующего отслеживания источников трафика)
Сделали так:
private function fileWriteAff($fn, $affname) {
$fd = file_get_contents($fn);
// 20-30 bytes offset for IMAGE_DOS_HEADER.e_res2[10] field
$k=20;
for ($i=0; $i<strlen($affname); $i++) {
$fd[$k]=$affname[$i];
$k++;
}
file_put_contents($fn, $fd);
}
Сейчас мы пишем этот ID в поле e_res2 структуры IMAGE_DOS_HEADER. Судя по докам поле зарезервировано и не используется, следовательно им можем пользоваться мы.
Подпись в результате слетела. Подскажите, пожалуйста, решение проблемы.
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
Здравствуйте, alexdpp, Вы писали:
A>Ответ — невозможно. A>Для того и придуманы цифровые подписи, криптография. Чтобы байтики не меняли )
С другой стороны, в исполняемом файле может вроде бы быть несколько подписей (например, с разными digest algorithm, для совместимости с разными вендами). А это значит, что к уже подписанному файлу можно добавить вторую подпись. А значит, к нему можно и еще чего-нибудь добавить.
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
Здравствуйте, AntonVinnik, Вы писали:
AV>В подписанный EXE нужно добавить 8-ми битный уникальный ID, чтобы подпись при этом не слетела. AV>(ID необходим для последующего отслеживания источников трафика)
тут же вроде в теме #1 Фалко рассказывал, как он это делает?
Re[3]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
Pzz>С другой стороны, в исполняемом файле может вроде бы быть несколько подписей (например, с разными digest algorithm, для совместимости с разными вендами). А это значит, что к уже подписанному файлу можно добавить вторую подпись. А значит, к нему можно и еще чего-нибудь добавить.
Может ттогда вторую подпись и добавлять? Вместо ID генерить пару и доподписывать.
Интересно как винда отнесется ко второй подписи, к которой нет доверия?
Re[2]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
Здравствуйте, NWP, Вы писали:
NWP>тут же вроде в теме #1 Фалко рассказывал, как он это делает?
Угу, там ему еще и присутствующий здесь drVano (автор VMProtect) что-то пояснял. Думаю, имеет смысл поспрошать на этот предмет именно drVano, он всё же эксперт в этих вопросах.
C>Угу, там ему еще и присутствующий здесь drVano (автор VMProtect) что-то пояснял. Думаю, имеет смысл поспрошать на этот предмет именно drVano, он всё же эксперт в этих вопросах.
PS: вот сама ветка обсуждения
Здравствуйте, Carc, Вы писали:
NWP>>тут же вроде в теме #1 Фалко рассказывал, как он это делает? C>Угу, там ему еще и присутствующий здесь drVano (автор VMProtect) что-то пояснял. Думаю, имеет смысл поспрошать на этот предмет именно drVano, он всё же эксперт в этих вопросах.
Я объяснял конкретно фалко куда он может записать ID партнера перед тем как накатывать электронную подпись, т.к. насколько я понял его проблему он писал ID партнера в конец файла, а после signtoool-а он уже не мог найти ранее записанный ID. К "подделке" самой подписи ЭТО НИКАК НЕ ОТНОСИТСЯ!
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
Здравствуйте, AntonVinnik, Вы писали:
AV>В подписанный EXE нужно добавить 8-ми битный уникальный ID, чтобы подпись при этом не слетела. AV>(ID необходим для последующего отслеживания источников трафика) AV>Сейчас мы пишем этот ID в поле e_res2 структуры IMAGE_DOS_HEADER. Судя по докам поле зарезервировано и не используется, следовательно им можем пользоваться мы. AV>Подпись в результате слетела. Подскажите, пожалуйста, решение проблемы.
может быть самое тупое предложение, но почему просто не смотреть на время подписи?
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
AV>В подписанный EXE нужно добавить 8-ми битный уникальный ID, чтобы подпись при этом не слетела. AV>(ID необходим для последующего отслеживания источников трафика)
Можно дописывать суффикс к имени файла.
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
Здравствуйте, AntonVinnik, Вы писали:
AV>В подписанный EXE нужно добавить 8-ми битный уникальный ID, чтобы подпись при этом не слетела. AV>(ID необходим для последующего отслеживания источников трафика)
А оно надо прямо в сам файл добавить? Сделать кастомное имя файла — не вариант?
Re[2]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
Здравствуйте, Matrix_Failure, Вы писали:
M_F>Фалько же написал в предыдущей ветке по этой теме, что если дописать байты в хвост файла, то цифровая подпись не нарушается.
А зря. Добавили байтиков в конец файла — его MD5 поменялся, и все антивирусы должны этот файл передектить.
Re[4]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
S>А зря. Добавили байтиков в конец файла — его MD5 поменялся, и все антивирусы должны этот файл передектить.
Речь не про md5 всего файла, он понятно поменяется, а про authenticode code signing.
Re[5]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
Здравствуйте, Matrix_Failure, Вы писали:
S>>А зря. Добавили байтиков в конец файла — его MD5 поменялся, и все антивирусы должны этот файл передектить. M_F>Речь не про md5 всего файла, он понятно поменяется, а про authenticode code signing.
Всякие там смарт-скрины в первую очередь по MD5 смотрят — какая репутация у конкретного хэша. Получается, что каждый раз репутацию надо будет заново набирать.
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
Здравствуйте, AntonVinnik, Вы писали:
AV>Судя по докам поле зарезервировано и не используется, следовательно им можем пользоваться мы.
Это предположение неверно.