Здравствуйте, Khimik, Вы писали:
K> Ещё хотелось бы немного ликбеза, что такое проверка контрольной суммы и как это сделать самому. Т.е. в принципе вроде всё понятно — посчитать хеш файла и проверять время от времени, не изменился ли он. Может как раз лучше это сделать самому, без привлечения протектора, поскольку можно контролировать время срабатывания — если программу взломают, пусть она перестанет запускаться через полгода, с сообщением что обнаружен взлом.
Я как-то делал давно, примерно так:
1. В программе делаете глобальную строку вроде MYCHECKSUM или что угодно, главное, чтобы этот текст больше в файле не присутствовал нигде и чтобы длины хватало для хранения контрольной суммы (можно две строки и сумму потом воткнуть между ними).
2. Чтобы прописать — считаете сумму файла без уникальной строки из п.1, пишете в EXE файл в место где та строка. Для проверки нужно также найти эту строку и исключить ее из подсчета контрольной суммы.
3. Нужно учесть что exe файл потом будет подписан и исключить из котрольной суммы секцию с подписью.
Вообще я забил и не использую уже много лет. Это находят и отламывают, причем быстро. Лучше чтобы программа как-то понимала, что ее взломали, и не орать об этом а просто не работать. Причем так, чтобы при обращении в саппорт было понятно, что пишет халявщик.
Здравствуйте, JustPassingBy, Вы писали:
JPB>Я как-то делал давно, примерно так: JPB>1. В программе делаете глобальную строку вроде MYCHECKSUM или что угодно, главное, чтобы этот текст больше в файле не присутствовал нигде и чтобы длины хватало для хранения контрольной суммы (можно две строки и сумму потом воткнуть между ними). JPB>2. Чтобы прописать — считаете сумму файла без уникальной строки из п.1, пишете в EXE файл в место где та строка. Для проверки нужно также найти эту строку и исключить ее из подсчета контрольной суммы. JPB>3. Нужно учесть что exe файл потом будет подписан и исключить из котрольной суммы секцию с подписью.
Я сходу не понял, какой в данном случае принцип?
Я вижу защиту так. При нажатии какой-то спрятанной кнопки в программе с кодом, она считает контрольную сумму собственного экзешника, и сохраняет её в файл настроек. Через полгода она начинает проверять эту контрольную сумму, если что сразу закрывается.
Ещё вопрос, что такое вообще контрольная сумма. Я этим никогда не интересовался, но могу предположить что это например массив из ста байт, программа суммирует его с каждыми последующими ста байтами в файле до конца файла. Или это скорее хеш? В чём разница между хешем и контрольной суммой?
И ещё вопрос, не могут ли быть ошибки, если программа про запуске открывает собственный экзешник, чтобы посчитать его контрольную сумму.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K> Я сходу не понял, какой в данном случае принцип? K> Я вижу защиту так. При нажатии какой-то спрятанной кнопки в программе с кодом, она считает контрольную сумму собственного экзешника, и сохраняет её в файл настроек. Через полгода она начинает проверять эту контрольную сумму, если что сразу закрывается. K> Ещё вопрос, что такое вообще контрольная сумма. Я этим никогда не интересовался, но могу предположить что это например массив из ста байт, программа суммирует его с каждыми последующими ста байтами в файле до конца файла. Или это скорее хеш? В чём разница между хешем и контрольной суммой? K> И ещё вопрос, не могут ли быть ошибки, если программа про запуске открывает собственный экзешник, чтобы посчитать его контрольную сумму.
Целостность файла контролировать нет смысла, будут патчить в памяти и твои проверки ничего не дадут.
Ты такие вопросы задаешь... детские. Купи лучше протектор. Но перед этим почитай, как вообще ломают софт (не тонкости работы с отладчиками, а именно, где и что отламывают). Иначе получится, как с деликером — вроде и протектор хороший, а защита отламывается на раз.
Здравствуйте, Khimik, Вы писали:
K>Я вижу защиту так. При нажатии какой-то спрятанной кнопки в программе с кодом, она считает контрольную сумму собственного экзешника, и сохраняет её в файл настроек. Через полгода она начинает проверять эту контрольную сумму, если что сразу закрывается.
Это полная фигня. Чем делать так — лучше вообще не делать, или купить готовый протектор, который это уже умеет. О чем я вам писал выше — это делается на этапе релиза, после компиляции и до подписи exe и создания инсталлятора. В принципе, можете проверять саму электронну подпись, но там довольно замороченное API и, опять же, это быстро отломают.
K>Ещё вопрос, что такое вообще контрольная сумма. Я этим никогда не интересовался, но могу предположить что это например массив из ста байт, программа суммирует его с каждыми последующими ста байтами в файле до конца файла. Или это скорее хеш? В чём разница между хешем и контрольной суммой? K>И ещё вопрос, не могут ли быть ошибки, если программа про запуске открывает собственный экзешник, чтобы посчитать его контрольную сумму.
Проблем с подсчетом суммы не будет. Как и не будет проблем у хакеров все это отломать.
Контрольной суммой может быть что угодно, но лучше взять готовый алгоритм, md5 или хоть crc. Главное понимать размер контрольной суммы, чтобы заготовить под нее место в exe файле. В вашем случае я бы рекомендовал просто купить готовое решение. Если и делать свое, то в качестве упражнения по программированию. Помните, что защита не должна мешать пользователю, который купил. Если плохо сделать и программа начнет тупить у нормальных пользователей — это в тысячу раз хуже кряков.
Купил The Enigma Protector. Подскажите, какие опции в нём включить, чтобы не начались новые проблемы. Стоит ли например включить антиотладчик? Это не вызовет срабатывания антивирусов?
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.
Здравствуйте, Khimik, Вы писали:
K>Купил The Enigma Protector. Подскажите, какие опции в нём включить, чтобы не начались новые проблемы. Стоит ли например включить антиотладчик? Это не вызовет срабатывания антивирусов?
Есть у меня один могильничек простейший тест дизассемблера, который энигма все никак не может пройти. Передайте аффтару при случае — пусть поправит это позорище:
1. Дизассемблер шурует до упора, затирая при этом что-то полезное. NORETURN функции? Нет не слышали.
2. Дизассемблер умудряется находить х64 код в х32 файле. А ну да — это же я сам дурак, просто загрузил х32 файло в энигму для х64 бит.
Здравствуйте, drVanо, Вы писали:
K>>Купил The Enigma Protector. Подскажите, какие опции в нём включить, чтобы не начались новые проблемы. Стоит ли например включить антиотладчик? Это не вызовет срабатывания антивирусов?
V>Есть у меня один могильничек простейший тест дизассемблера, который энигма все никак не может пройти. Передайте аффтару при случае — пусть поправит это позорище: V>1. Дизассемблер шурует до упора, затирая при этом что-то полезное. NORETURN функции? Нет не слышали. V>2. Дизассемблер умудряется находить х64 код в х32 файле. А ну да — это же я сам дурак, просто загрузил х32 файло в энигму для х64 бит.
Между прочим, я бы купил ваш протектор, если бы вы не хамили.
"Ты должен сделать добро из зла, потому что его больше не из чего сделать". АБ Стругацкие.