Вы находитесь на легендарной ветке форума, созданной 18.05.2014. Это первая ветка, посвященная внутридневной торговле и не только... Наши традиции: ГИМН; Пятничная Дискотека; кофе от Helen@; клип от Админа в марте. На нашей ветке общаются позитивно и уважительно. Добро пожаловать!
Мои проекты, которые я написал и поддерживаю ( в смысле не сам, в составе ITфирмы), умеют обновляться. Как это работает. Поддержка - это значит постоянно ведётся поиск скрытых ошибок и оптимизация кода, и добавляются новые фичи. Соответственно, периодически выходит новая версия программы.. Так вот, программ при запуске проверяет в известном ему месте текстовый файл, в котором зашифрованы номер последней версии и её crc32, рядом же лежит новый exe для скачивания. А каждый exe знает свою версию, и, если версия в интернете выше, то он сообщает пользователю об этом и предлагает обновиться. Можно отказаться, ничего страшного. Но при следующем запуске он опять спросит. Как происходит сам процесс обновления. Exe скачивает новый exe и первым делом проверяет контрольную сумму, то есть тот самый crc32 , о котором я писал выше. Если crc32 совпадает, то программа переименовывает себя в версионный бэкап, а новый вариант в стандартное имя , после чего предлагает перезапустить программу. Если crc32 не совпал, то выводится сообщение о неудаче при установке обновлений.
Это делается для проверки целостности данных, потому что возможны потери пакетов, тогда программа просто перестанет работать, и придётся руками вытаскивать бэкап и переименовывать его в стандартный файл.
Так вот, наша крысиная дискуссия с Генрихом навела меня на идею, что exe должен куда то сохранять свою контрольную сумму, и проверять её при каждом запуске. И, если вдруг не совпадает, запускать стандартную процедуру обновления. Потому что, если вспороть exe и посадить туда крысу, контрольная сумма изменится…..
Мои проекты, которые я написал и поддерживаю ( в смысле не сам, в составе ITфирмы), умеют обновляться. Как это работает. Поддержка - это значит постоянно ведётся поиск скрытых ошибок и оптимизация кода, и добавляются новые фичи. Соответственно, периодически выходит новая версия программы.. Так вот, программ при запуске проверяет в известном ему месте текстовый файл, в котором зашифрованы номер последней версии и её crc32, рядом же лежит новый exe для скачивания. А каждый exe знает свою версию, и, если версия в интернете выше, то он сообщает пользователю об этом и предлагает обновиться. Можно отказаться, ничего страшного. Но при следующем запуске он опять спросит. Как происходит сам процесс обновления. Exe скачивает новый exe и первым делом проверяет контрольную сумму, то есть тот самый crc32 , о котором я писал выше. Если crc32 совпадает, то программа переименовывает себя в версионный бэкап, а новый вариант в стандартное имя , после чего предлагает перезапустить программу. Если crc32 не совпал, то выводится сообщение о неудаче при установке обновлений.
Атос создал таки идеальную ветку. Флоризелем закрепил и светлой Тенью поддерживает. Джони шикарно справляется с пиратской личиной пресловутого полковника. Класс!
Так вот, наша крысиная дискуссия с Генрихом навела меня на идею, что exe должен куда то сохранять свою контрольную сумму, и проверять её при каждом запуске. И, если вдруг не совпадает, запускать стандартную процедуру обновления. Потому что, если вспороть exe и посадить туда крысу, контрольная сумма изменится…..
Знаю я эту фишечку. Контрольную сумму на весь файл в самом ехе ты не сможешь хранить. Тебе придется использовать вирусную технологию - сначала посчитать контрольную сумму, потом к ехе прилепить код с контрольной суммой и его проверкой. А это определяется легко дисассемблером.
Так вот, наша крысиная дискуссия с Генрихом навела меня на идею, что exe должен куда то сохранять свою контрольную сумму, и проверять её при каждом запуске. И, если вдруг не совпадает, запускать стандартную процедуру обновления. Потому что, если вспороть exe и посадить туда крысу, контрольная сумма изменится…..
Знаю я эту фишечку. Контрольную сумму на весь файл в самом ехе ты не сможешь хранить. Тебе придется использовать вирусную технологию - сначала посчитать контрольную сумму, потом к ехе прилепить код с контрольной суммой и его проверкой. А это определяется легко дисассемблером.
Разумеется, засунуть контрольную сумму в exe не получится, это всё равно что пс Хотел положить в письмо 100 долларов, но уже запечатал конверт. Но - я могу хранить её на самом видном месте, в текстовом файле рядом с exe. Просто нужно использовать не саму кс, а результат вычислений с её использованием. Например, какой нибудь MD5
Да. .... Если я посчитаю контрольную сумму по алгоритму crc32, потом пририсую к ней слева и справа слово f*ck(), и всё это ещё и зашифрую в MD5 ....... Ты не знаешь, какой алгоритм кс я использовал, что пририсовал к результату и какое хэширование применил. Поэтому набор символов в текстовом файлике ничего не даст.
Знаю я эту фишечку. Контрольную сумму на весь файл в самом ехе ты не сможешь хранить. Тебе придется использовать вирусную технологию - сначала посчитать контрольную сумму, потом к ехе прилепить код с контрольной суммой и его проверкой. А это определяется легко дисассемблером.
Разумеется, засунуть контрольную сумму в exe не получится, это всё равно что пс Хотел положить в письмо 100 долларов, но уже запечатал конверт. Но - я могу хранить её на самом видном месте, в текстовом файле рядом с exe. Просто нужно использовать не саму кс, а результат вычислений с её использованием. Например, какой нибудь MD5
MD5 - это и есть контрольная сумма. Зачем еще мудрить? Если я стырю твой ехе и дисассемблирую, то я конечно увижу, куда он обращается и какие файлы читает и что с ними делает.. Расскажу тебе случай из прошлой жизни.. Был у нас в конторе неплохой дельфийский, кстати, программер. Он написал прогу, которую рассылал ребятам в резидентуры.. И возникла проблема - прогу рассылать стали и кураторы без его ведома. И некоторые экземпляры были сырыми и висли.. Ему дали по голове.. Тогда он написал защиту, которая привязывала прогу к железу. Я ради шутки взломал его защиту и заставил прогу в самом начале выводить надпись, что сделал это Мюллер и ему надо прислать кофе. Причем размер этой программы не изменился ни на байт. И автор проги так и не понял, как я это сделал.. Может ты понял?
Генрих, это я не с целью поспорить - просто излагаю идею, которая пришла в голову.
Я это понял. Поэтому сразу подсвечиваю тебе слабые места. Просто ты имхо начинаешь изобретать велосипед, на котором я уже давным-давно катался... Но ты все равно рассказывай.. вдруг окажется, что я такую защиту еще не знаю? Чиста подискутировать..
Да. .... Если я посчитаю контрольную сумму по алгоритму crc32, потом пририсую к ней слева и справа слово f*ck(), и всё это ещё и зашифрую в MD5 ....... Ты не знаешь, какой алгоритм кс я использовал, что пририсовал к результату и какое хэширование применил. Поэтому набор символов в текстовом файлике ничего не даст.
Я понял. Ты хочешь скрыть способ рассчета КС, чтобы я не подменил ее в файле. Но этот способ будет зашит в ехе! Я его даже не стану расшифровывать, а просто скопипастю и он поработает на меня. Ты его напишешь, я его заюзаю.
Разумеется, засунуть контрольную сумму в exe не получится, это всё равно что пс Хотел положить в письмо 100 долларов, но уже запечатал конверт. Но - я могу хранить её на самом видном месте, в текстовом файле рядом с exe. Просто нужно использовать не саму кс, а результат вычислений с её использованием. Например, какой нибудь MD5
MD5 - это и есть контрольная сумма. Зачем еще мудрить? Если я стырю твой ехе и дисассемблирую, то я конечно увижу, куда он обращается и какие файлы читает и что с ними делает.. Расскажу тебе случай из прошлой жизни.. Был у нас в конторе неплохой дельфийский, кстати, программер. Он написал прогу, которую рассылал ребятам в резидентуры.. И возникла проблема - прогу рассылать стали и кураторы без его ведома. И некоторые экземпляры были сырыми и висли.. Ему дали по голове.. Тогда он написал защиту, которая привязывала прогу к железу. Я ради шутки взломал его защиту и заставил прогу в самом начале выводить надпись, что сделал это Мюллер и ему надо прислать кофе. Причем размер этой программы не изменился ни на байт. И автор проги так и не понял, как я это сделал.. Может ты понял?
MD5 - это не контрольная сумма. Но не суть, я MD5 привёл для примера. Суть -ты не знаешь всеёцепочки вычислений. Наверное, путём дизассемблирования можно решить любую задачу, но сколько это займёт времени ? Взломать можно ВСЁ - и смысл любой защиты от взлома не в том, чтобы сделать взлом невозможным, а в том, чтобы затраты на взлом были выше его результата. Экзешник не надо тырить - если мы говорим о том, что можно скачать в интернете. Как обойти привязку к железу ... Не знаю, никогда не думал. Первое, что приходит в голову - эмулировать железо
Причина удаления:
Перемещённое сообщение не будет удалено, только эта копия.
Используйте эту форму для отправки жалобы на выбранное сообщение (например, «спам» или «оскорбление»).
Внимание! Уважаемые посетители сайта mfd.ru, предупреждаем вас о следующем: ОАО Московская Биржа (далее – Биржа) является источником и обладателем всей или части указанной на настоящей странице Биржевой информации. Вы не имеете права без письменного согласия Биржи осуществлять дальнейшее распространение или предоставление Биржевой информации третьим лицам в любом виде и любыми средствами, её трансляцию, демонстрацию или предоставление доступа к такой информации, а также её использование в игровых, учебных и иных системах, предусматривающих предоставление и/или распространение Биржевой информации. Вы также не имеете права без письменного согласия Биржи использовать Биржевую информацию для создания Модифицированной информации предназначенной для дальнейшего предоставления третьим лицам или публичного распространения. Кроме того, вы не имеете права без письменного согласия Биржи использовать Биржевую информацию в своих Non-display системах.