push edi
pop edi
push edi
pop edi
push edi
// Command1_Click
[edi+38] = CLng(password)
[edi+3C] = CLng(Left$(Replace(Replace(Replace(Replace(Replace(Replace(MD5Hash(login), "A", "1"), "B", "2"), "C", "3"), "D", "4"), "E", "5"), "F", "6"), 6))
[edi+3C] = [edi+3C] XOR [edi+38]
eax = [edi+3C]
call [eax]
tyomitch писал(а):Лол
Alexander, то что ты дизассемблировал - это досовская заглушка, выводящая на экран "эта прога без Винды не запустится".
Досовский debug при работе с виндовыми прогами тебе совершенно, совершенно никак не поможет.
A.A.Z. писал(а):Офф
Народ, а если брать готовый exe, вырезать откуда-нибудь из середины небольшой кусок кода и давать его пользователю в индивидуальном порядке (только если он заплатит)? Для "вставления" можно даже прогу отдельную написать Ведь если он введет что-то другое, прога просто не запустится
IvanTheTerrible писал(а):A.A.Z. писал(а):Офф
Народ, а если брать готовый exe, вырезать откуда-нибудь из середины небольшой кусок кода и давать его пользователю в индивидуальном порядке (только если он заплатит)? Для "вставления" можно даже прогу отдельную написать Ведь если он введет что-то другое, прога просто не запустится
Возможно, что и сработает, если добавить следующие прибамбасы:
1. Пусть установленная у юзера программа автоматически с определенной периодичностью (скажем, еженедельно) скачивает через интернет некоторый пароль.
2. Этот пароль генерируется владельцем авторских прав на программу в зависимости от текущей даты и "отпечатка пальца" компа юзера (например, операционка + HDD Serial Number + ...). Таким образом, он будет годиться только для конкретного компа и его передача другим лицам бессмыслена.
3. Полученный ключ используется для дешифрации некоторого множества зашитых в программу констант, используемых разными блоками программы.
4. Добавить еще одно преобразование полученных в результате дешифрации значений через некоторую функцию от текущей даты.
5. Результат работы програмной ф-ий/процедур должен зависеть помимо прочего от полученных в (3) и (4) значений.
6. Сделать так, чтобы при "неправильных" значениях (3) и (4) включалось самоуничтожение.
Все это пока "весьма сыро"...
Надо бы пообсуждать, послушать критику...
tyomitch писал(а):1. А если у юзера нет Интернета?
2. А если 1 чел купит программу, расшифрует её кусок, и выпустит "патч", расшифровывающий её и без твоего ключа?
IvanTheTerrible писал(а):Как вариант, возможно и такое решение (но, подчеркиваю, только для On-line реализаций). В программу вставляется функция, результат которой возвращается сервером. Можно сделать так, что возвращаемое значение будет сложно предсказать (не 0 или 1, а что-нибудь посложнее).
tyomitch писал(а):Как вариант, можно вместо программы написать веб-сервис, тогда на машине пользователя не будет ни байта кода, и нечего будет ломать
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5