Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: AntonVinnik  
Дата: 09.01.18 21:27
Оценка:
В подписанный 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  
Дата: 09.01.18 21:32
Оценка: -1
Ответ — невозможно.
Для того и придуманы цифровые подписи, криптография. Чтобы байтики не меняли )
Re[2]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: Pzz Россия https://github.com/alexpevzner
Дата: 09.01.18 22:52
Оценка:
Здравствуйте, alexdpp, Вы писали:

A>Ответ — невозможно.

A>Для того и придуманы цифровые подписи, криптография. Чтобы байтики не меняли )

С другой стороны, в исполняемом файле может вроде бы быть несколько подписей (например, с разными digest algorithm, для совместимости с разными вендами). А это значит, что к уже подписанному файлу можно добавить вторую подпись. А значит, к нему можно и еще чего-нибудь добавить.
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: NWP Россия  
Дата: 09.01.18 22:52
Оценка:
Здравствуйте, AntonVinnik, Вы писали:

AV>В подписанный EXE нужно добавить 8-ми битный уникальный ID, чтобы подпись при этом не слетела.

AV>(ID необходим для последующего отслеживания источников трафика)

тут же вроде в теме #1 Фалко рассказывал, как он это делает?
Re[3]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: NWP Россия  
Дата: 09.01.18 23:30
Оценка:
Здравствуйте, Pzz, Вы писали:


Pzz>С другой стороны, в исполняемом файле может вроде бы быть несколько подписей (например, с разными digest algorithm, для совместимости с разными вендами). А это значит, что к уже подписанному файлу можно добавить вторую подпись. А значит, к нему можно и еще чего-нибудь добавить.


Может ттогда вторую подпись и добавлять? Вместо ID генерить пару и доподписывать.
Интересно как винда отнесется ко второй подписи, к которой нет доверия?
Re[2]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: Carc Россия https://vk.com/gosha_mazov
Дата: 10.01.18 06:05
Оценка:
Здравствуйте, NWP, Вы писали:

NWP>тут же вроде в теме #1 Фалко рассказывал, как он это делает?

Угу, там ему еще и присутствующий здесь drVano (автор VMProtect) что-то пояснял. Думаю, имеет смысл поспрошать на этот предмет именно drVano, он всё же эксперт в этих вопросах.
Aml Pages Home
Re[3]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: Carc Россия https://vk.com/gosha_mazov
Дата: 10.01.18 06:08
Оценка:
Здравствуйте, Carc, Вы писали:


C>Угу, там ему еще и присутствующий здесь drVano (автор VMProtect) что-то пояснял. Думаю, имеет смысл поспрошать на этот предмет именно drVano, он всё же эксперт в этих вопросах.

PS: вот сама ветка обсуждения
Автор: falcoware
Дата: 21.12.17
, а вот и коммент про DOS-заголовок от drVano
Автор: drVanо
Дата: 21.12.17
Aml Pages Home
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: wantus  
Дата: 10.01.18 08:31
Оценка: 6 (1)
https://blog.barthe.ph/2009/02/22/change-signed-executable/
Re[3]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: drVanо Россия https://vmpsoft.com
Дата: 10.01.18 09:02
Оценка:
Здравствуйте, Carc, Вы писали:

NWP>>тут же вроде в теме #1 Фалко рассказывал, как он это делает?

C>Угу, там ему еще и присутствующий здесь drVano (автор VMProtect) что-то пояснял. Думаю, имеет смысл поспрошать на этот предмет именно drVano, он всё же эксперт в этих вопросах.

Я объяснял конкретно фалко куда он может записать ID партнера перед тем как накатывать электронную подпись, т.к. насколько я понял его проблему он писал ID партнера в конец файла, а после signtoool-а он уже не мог найти ранее записанный ID. К "подделке" самой подписи ЭТО НИКАК НЕ ОТНОСИТСЯ!
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: uuuser  
Дата: 10.01.18 13:30
Оценка: +1
Здравствуйте, AntonVinnik, Вы писали:

AV>В подписанный EXE нужно добавить 8-ми битный уникальный ID, чтобы подпись при этом не слетела.

AV>(ID необходим для последующего отслеживания источников трафика)
AV>Сейчас мы пишем этот ID в поле e_res2 структуры IMAGE_DOS_HEADER. Судя по докам поле зарезервировано и не используется, следовательно им можем пользоваться мы.
AV>Подпись в результате слетела. Подскажите, пожалуйста, решение проблемы.

может быть самое тупое предложение, но почему просто не смотреть на время подписи?
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: maks__  
Дата: 10.01.18 16:38
Оценка:
AV>В подписанный EXE нужно добавить 8-ми битный уникальный ID, чтобы подпись при этом не слетела.
AV>(ID необходим для последующего отслеживания источников трафика)

Можно дописывать суффикс к имени файла.
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: salnicoff  
Дата: 10.01.18 16:43
Оценка:
Здравствуйте, AntonVinnik, Вы писали:

AV>В подписанный EXE нужно добавить 8-ми битный уникальный ID, чтобы подпись при этом не слетела.

AV>(ID необходим для последующего отслеживания источников трафика)

А оно надо прямо в сам файл добавить? Сделать кастомное имя файла — не вариант?
Re[2]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: Matrix_Failure http://matrixfailure.wordpress.com/
Дата: 11.01.18 14:27
Оценка:
Здравствуйте, salnicoff, Вы писали:

Фалько же написал в предыдущей ветке по этой теме, что если дописать байты в хвост файла, то цифровая подпись не нарушается.
Re[3]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: salnicoff  
Дата: 12.01.18 17:56
Оценка:
Здравствуйте, Matrix_Failure, Вы писали:

M_F>Фалько же написал в предыдущей ветке по этой теме, что если дописать байты в хвост файла, то цифровая подпись не нарушается.


А зря. Добавили байтиков в конец файла — его MD5 поменялся, и все антивирусы должны этот файл передектить.
Re[4]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: Matrix_Failure http://matrixfailure.wordpress.com/
Дата: 13.01.18 19:43
Оценка:
Здравствуйте, salnicoff, Вы писали:


S>А зря. Добавили байтиков в конец файла — его MD5 поменялся, и все антивирусы должны этот файл передектить.

Речь не про md5 всего файла, он понятно поменяется, а про authenticode code signing.
Re[5]: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: salnicoff  
Дата: 14.01.18 17:57
Оценка:
Здравствуйте, Matrix_Failure, Вы писали:

S>>А зря. Добавили байтиков в конец файла — его MD5 поменялся, и все антивирусы должны этот файл передектить.

M_F>Речь не про md5 всего файла, он понятно поменяется, а про authenticode code signing.

Всякие там смарт-скрины в первую очередь по MD5 смотрят — какая репутация у конкретного хэша. Получается, что каждый раз репутацию надо будет заново набирать.
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: kate13  
Дата: 22.01.18 18:44
Оценка: 6 (1)
Вот хороший пример как это делает гугл, причем с исходным кодом https://github.com/google/omaha/tree/master/common/certificate_tag
Мы используем слегка модифицированную версию их реализации, все работает отлично. Удачи.
Re: Изменение ЕХЕ файла с цифровой подписью, без потери оной #2
От: CreatorCray  
Дата: 22.01.18 22:47
Оценка:
Здравствуйте, AntonVinnik, Вы писали:

AV>Судя по докам поле зарезервировано и не используется, следовательно им можем пользоваться мы.

Это предположение неверно.
... << RSDN@Home 1.0.0 alpha 5 rev. 0>>
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.