ExiliM писал(а):Является ли такой способ защиты нормальным? (всмысле защиты от отладчика)
позднего связывания (CreateObject)
...that offers enhanced protection against reverse-engineering
Достаточно юзать не OllyDbg и иже с ним, а удаленную отладку с помощью WinDbg. И половина anti-debug трюков сразу станут нерабочими. Ну а по поводу навесных защит рассуждать можно долго. Где-то они эффективны, где-то нет. PECompact к числу надежных, имхо, не относится.В PECompact есть загрузчик anti-debug <...> интересно было-бы выслушать мнения.
Всмысле защиты от копирования/просмотра информации, имел ввиду автор? Ибо я не пойму, при чем тут шифрование базы данных и антиотладка. Впрочем, Вы можете выложить свое поделие и подвергнуть его испытаниюЯвляется ли такой способ защиты нормальным? (всмысле защиты от отладчика)
Хакер, странно, вбивал в поиске позднее связывание, выводится в основном посты про CreateObject
Хакер писал(а):Понятие связывание относится только к вызовам членов класса. Когда есть вызов члена, можно говорить о связывании (раннее или позднее, и если позднее, то какое (есть два типа)). CreateObject только создаёт объект. О каком тогда связывании может идти речь?
Хакер писал(а):Потому что есть устоявшиеся термины.
Есть термин связывание в программировании вообще. Отсюда пошли statically- и dynamically link library.
Есть термин связывание в ООП — то же самое, но уже более частные для ООП случаи. ООП всё таки Математическая формула: \in программированию.
Есть термин связывание в свете COM — опять же, то же, но уже совсем частный случай — всё что в COM не наблюдается вообще здесь уже не обсуждается, и остаётся только два вида связывания: раннее и позднее.
Хакер писал(а):Вообще, мог бы что-нибудь более умное придумать в защиту своего подзащитного. А то ведь фразы-то какие: слово «свяжет» в кавычках, как бы намекающее на некую неуловимость явления, «после вызова функции», намекающее, что некоторые иные функции умеют по-телепатски выполнять свою задачу ещё до того, как будут вызваны.
SLIM писал(а):Ну ты приведи по всем трем случаям примеры хоть.
связываются тонкой ниткой, но единым не становятся.
Sub CommandButton1_Click()
'MainKey as String - это хэш из нашего ключевого файла. Читается в публичную переменную при загрузке приложения
Call CommandButton1_SecureClick(MainKey)
End Function
'Допустим я запихиваю crc в ключ
Key = Crc(arr())
SecureClick
ExiliM писал(а):
- Код: Выделить всё
'Допустим я запихиваю crc в ключ
Key = Crc(arr())
Не понятно, что такое:
- Код: Выделить всё
SecureClick
Private Sub CommandButton1_Click()
Call CommandButton1_SecureClick(MainKey)
End Function
Private Sub CommandButton1_SecureClick(MainKey as String)
EtKey = Crc(Etalon())
if MainKey = EtKey then
'Выполняем код, который до этого выполнялся в CommandButton1_Click
else
'Ничего не делаем. Нельзя здесь выводить никаких предупреждающих сообщений.
'Программа должна просто ничего не делать.
End if
End Sub
'MainKey as String - это хэш из нашего ключевого файла. Читается в публичную переменную при загрузке приложения
Call CommandButton1_SecureClick(MainKey)
ExiliM писал(а):Значит, что, я в каждой функции/процедуре, должен проверять crc и вписывать в mainkey..понятно, спасибо...и наверное желательно, что б при этом были какие-то лишние действия? и алгоритм получения crc хотя б немного отличался?
ExiliM писал(а):я думаю запарятся менять?
Полиморфизм? Теоретически да, практически (на VB) сомневаюсь.з.ы возник ещё 1 вопрос, возможна модификация программы при выполнении? например подменить сумму, на обратную?
Twister писал(а):Угу. Подменяем значение глобальной переменной и преспокойно работаем
Twister писал(а):Я бы рекомендовал задействовать подобный метод не для всех подряд процедур приложения, а только для ключевых. При чем "MainKey" я бы каждый раз получал заново. И не отдельной функцией, а прямо в коде процедур.
ExiliM писал(а):Приложение считает crc базы данных(!), entropy, + например средствами wmi, я получу серийник процессора.
jangle писал(а):Функция которая считает CRC пропатчивается кракером и теперь всегда возвращает нужно значение, поставь хоть миллион проверок в коде.
Денис писал(а):CRC считаться будет не в отдельной функции, а во всех криптованных функциях. В коде будет не миллион проверок, а миллион блоков избыточного кода.
Теперь оцени стоимость взлома?
ExiliM писал(а):Не, всё равно видимо не так понял. У меня есть база, и есть приложение.
Приложение считает crc базы данных(!), entropy, + например средствами wmi, я получу серийник процессора.
з.ы возник ещё 1 вопрос, возможна модификация программы при выполнении? например подменить сумму, на обратную?
Сейчас этот форум просматривают: Google-бот, Yandex-бот и гости: 24