иногда надо раздавать свои инсталлеры партнерам, подписывая каждый инсталлер партнера, чтобы начислить ему деньги в случае установки его партнерского дистрибутива.
Самый оптимальный способ "присобачить" его ID к концу ехе и во время инсталляции дистрибутива проверять конец файла и запускать соответствующий скрипт в партнерке.
Однако, как известно, при изменении ЕХЕ исчезает цифровая подпись.
Здравствуйте, falcoware, Вы писали:
F>Самый оптимальный способ "присобачить" его ID к концу ехе и во время инсталляции дистрибутива проверять конец файла и запускать соответствующий скрипт в партнерке.
Самый оптимальный способ записать ID партнера в DOS заголовок и не морочить себе голову:
typedef struct _IMAGE_DOS_HEADER {
WORD e_magic;
WORD e_cblp;
WORD e_cp;
WORD e_crlc;
WORD e_cparhdr;
WORD e_minalloc;
WORD e_maxalloc;
WORD e_ss;
WORD e_sp;
WORD e_csum;
WORD e_ip;
WORD e_cs;
WORD e_lfarlc;
WORD e_ovno;
WORD e_res[4]; // <---- например сюда
WORD e_oemid;
WORD e_oeminfo;
WORD e_res2[10];
LONG e_lfanew;
} IMAGE_DOS_HEADER, *PIMAGE_DOS_HEADER;
Re[2]: Изменение ЕХЕ файла с цифровой подписью, без потери оной.
Здравствуйте, falcoware, Вы писали:
F>Насколько я понимаю, Инносетап Паскаль скрипт не осилит Вашу гениальность! =)
Насколько я понимаю вы даже не удосужились почитать в интернете где лежит эта самая структура, а она (что самое удивительное !!!) лежит в самом начале файла и для доступа к этому полю внутри файла достаточно посчитать смещение этого поля в структуре. Этот то вы осилите или посчитать за вас?
Re[4]: Изменение ЕХЕ файла с цифровой подписью, без потери оной.
V>Насколько я понимаю вы даже не удосужились почитать в интернете где лежит эта самая структура, а она (что самое удивительное !!!) лежит в самом начале файла и для доступа к этому полю внутри файла достаточно посчитать смещение этого поля в структуре. Этот то вы осилите или посчитать за вас?
Если Вы видели мой код, то я могу добавлять к ЕХЕ "мусор", дабы раздуть дистрибутив для солидности. Как Ваш метод решает эту проблему?
Здравствуйте, falcoware, Вы писали:
F>Если Вы видели мой код, то я могу добавлять к ЕХЕ "мусор", дабы раздуть дистрибутив для солидности. Как Ваш метод решает эту проблему?
Я вам с такими "проблемами" предлагаю просто пойти и убицца апстену.
Re[6]: Изменение ЕХЕ файла с цифровой подписью, без потери оной.
Здравствуйте, falcoware, Вы писали:
F>Ну смотри, ты создал Пакмана 10М. Такое на торрентах качать не будут. А раздул Пакмана до 10Г и все качают. Уловил?
Я уловил, что "не обмани ближнего своего" вы любите применять ко всем кроме себя
Re[4]: Изменение ЕХЕ файла с цифровой подписью, без потери оной.
Здравствуйте, Pzz, Вы писали:
V>>Там проблема в хранении ID еще ДО подписи
Pzz>Я этот мутный скрипт не читал, но если я правильно понял, проблема в том, как поменять чего-нибудь в подписанном EXE, не сломав подписи.
Признаться тоже непонятно. Т.е. скрипт подразумевает, что можно к файлу всякого прилепить в хвост и цифровая подпись не изменится?
Re[6]: Изменение ЕХЕ файла с цифровой подписью, без потери о
Здравствуйте, Matrix_Failure, Вы писали:
M_F>Признаться тоже непонятно. Т.е. скрипт подразумевает, что можно к файлу всякого прилепить в хвост и цифровая подпись не изменится?
Смысл в том, что authenticode подпись покрывает не весь файл, а только определенные его секции. В секциях, не включенных в подпись, можно ковыряться сколько угодно (но, по-моему, нельзя менять их размер). Этим пользуются все web deployment консоли — типа сконфигурил инсталляцию через вебсайт, вписал её в уже готовый подписанный инсталлятор, послал линк клиенту. Клиент скачал, запустил и всё встало как надо. Этой икебане уже лет 10, если не больше.
Re[7]: Изменение ЕХЕ файла с цифровой подписью, без потери оной.
Здравствуйте, falcoware, Вы писали:
F>Ну смотри, ты создал Пакмана 10М. Такое на торрентах качать не будут. А раздул Пакмана до 10Г и все качают. Уловил?
Объясните плиз в общих чертах
1) создать пакмана
2) раздуть до 10Г
3) все качают с торентов
...
4) профит
зачем пункт 1?
Re[8]: Изменение ЕХЕ файла с цифровой подписью, без потери оной.
Здравствуйте, falcoware, Вы писали:
F>иногда надо раздавать свои инсталлеры партнерам, подписывая каждый инсталлер партнера, чтобы начислить ему деньги в случае установки его партнерского дистрибутива. F>Самый оптимальный способ "присобачить" его ID к концу ехе и во время инсталляции дистрибутива проверять конец файла и запускать соответствующий скрипт в партнерке. F>Однако, как известно, при изменении ЕХЕ исчезает цифровая подпись.
F>Решение: F>...
Если не ошибаюсь, Microsoft уже закрыли эту "дырку". Правда, поведение по дефолту отключено.
Подробнее здесь:
When enabled, the new behavior for Windows Authenticode signature verification will no
longer allow extraneous information in the WIN_CERTIFICATE structure, and Windows will no
longer recognize non-compliant binaries as signed.
Включается эта настройка установкой обновления "KB 2893294" или включением флага "EnableCertPaddingCheck" в реестре.
Re[2]: Изменение ЕХЕ файла с цифровой подписью, без потери оной.