![]() |
|
Модераторы: Akina |
![]()
|
|
| ArtNeoX |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 23.10.2005 Репутация: нет Всего: нет |
Проверить наличие файла.
If Dir("Files/Base.mdb") <> "" Then GoTo XXX200 ' если файл Base.mdb в папке Files есть то переход на строку xxx200 а как проверить наличие файла в папке Windows/system32 если заранее не знаешь на каком диске папка Windows/system32 и windows может быть установлена в папку не по умолчанию (windows), а например в папку winxp |
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 4 Всего: 6 |
Есть API-шные функции GetWindowsDirectory и GetSystemDirectory. Они возвращают пути к папке винды и к ее системной папке.
|
|||
|
||||
| ArtNeoX |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 23.10.2005 Репутация: нет Всего: нет |
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Тутанхамец |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 4 Всего: 6 |
А нате вам!
Функции API - это дикая куча (больше двух тысяч) функций, поставляемых вместе с Windows в ее DLL. Поскольку функции эти внешние для VB-шной проги, то их надо объявить оператором Declare. Приблизительно так:
Выше объявляется функция GetSystemDirectory из библиотеки kernel32 (версия для ANSI). Подробнее про синтаксис Declare - погляди где-нибудь в книжках, хэлпах или, думаю, даже на этом форуме найдется. Чтоб ты каждый раз не парился с этими Declare, разработчики вижл-бейсика уже объявили все возможные функции и упрятали их объявления в текстовый файл, который поставляется вместе с VB. Там еще виндосовские типы данных и константы. В поставку VB6 (и VB5, и VB4...) входит прога API Viewer (посмотри в папке VB6 в меню "Программы2 кнопки "Пуск"). Запусти, нажми File->Load Text File и выбери win32api.exe. Там все функции API на момент издания VB6. С тех пор их, думаю, прибавилось, но для начала тебе хватит. Щелкни на функцию в списке, появится ее Declare. Находишь те объявления функций, которые тебе нужны, жмешь кнопку Copy и вставляешь их в модуль своей проги. Самое главное - знать, что делает каждая из этих функций (тут иронично А теперь пример. Узнаем системную директорию Винды:
Таким вот образом. Добавлено @ 21:35 Akina, ты меня сделал! |
||||
|
|||||
| ArtNeoX |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 23.10.2005 Репутация: нет Всего: нет |
а создать там файл?
не работает. |
|||
|
||||
| Тутанхамец |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 4 Всего: 6 |
Интересно, что ты пытался сказать вот этим...
. Это сообщение отредактировал(а) Тутанхамец - 19.2.2006, 16:48 |
||||
|
|||||
| DrBoom |
|
|||
|
QIP VB-SDK Developer ![]() Профиль Группа: Участник Сообщений: 83 Регистрация: 19.2.2006 Репутация: нет Всего: нет |
А модуль FSO(File System Object) не пробывал использывать...
|
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
ArtNeoX, что именно не работает? поконкретнее плиз.
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| ArtNeoX |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 23.10.2005 Репутация: нет Всего: нет |
Как системную директорию определить я понял.
А как сосдать туда файл и проверить наличие определенного файла в системной папке. Смысл вот в чем. 1. Пользователь запускает отдельную программу которая определяет системную папку и проверяет наличие там файла xxx.txt Если он там есть, то программа завершает работу, если его там нет файл с таким именем будет создан. 2. Пользователь запускает программу. Программа определяет системную папку и проверяет наличие там файла xxx.txt Если он там есть, программа запустится, если его там нет программа не запускается. То есть это такой способ защиты от копирования твоих трудов. |
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
не понял в чём проблема - ты же сам в первом посте писал это - токо путь был литералом записан - а ты его переменной напиши
узнаёш апишной функцией путь к систему - и дальше как обычно или я что-то пропустил? |
|||
|
||||
| kulibin |
|
||||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
прикольную штуку Akina подсказал - я до этого был не в курсе
вот чего в мсдн на эту тему нашел:
а вот результат выполнения суперпрограммы:
меня пропёрло Akina - ты если ещё такое что знаеш - то колись давай |
||||
|
|||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 4 Всего: 6 |
Могу подсказать еще один простенький способ защиты трудов. При установке своей проги записывай в файл серийный номер диска. А защищаемый труд при запуске проверяет - если этот файл есть и в нём действительно записан номер диса, то запускаемся, а если нет - то и суда нет, и запускаться не будем. Так можно привязать своё творение к конкретному диску. И нет особой нужды писаться в системную папку. А то XP и 2000 не всегда дают это сделать, если, скажем, ты вошёл под "юзером".
Для получения номера диска - APIшная GetVolumeInformation. P.S. Нда, environ, оказывается, прикольная штука... Это сообщение отредактировал(а) Тутанхамец - 21.2.2006, 08:24 |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Мониторинг изменений на диске и в реестре - и твоя защита отдыхает.
а MSDN вообще полезно проматривать
Некоторые - да. Но их можно изменить - причем в локальном сеансе, дабы не нарушить работоспособности системы. Остальные создаются программами и сервисами конкретной системы и на другой могут отсутствовать. Для получения тех же данных, но "заведомо верно", лучше исользовать WMI. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
Про мсдн согласен Я имелл ввиду, что к чему-то из этого тоже привязываться можно - к параметрам процессора например + ещё что-то(как самостоятельный вариант не рекоммендую). Чи не функция Но годится вообще то - как вы поняли я сам активно пользую |
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 4 Всего: 6 |
Насчет того, что это не заводской номер винта - так я в курсе.
Кто-то мне говорил, что в российских широтах заводских номеров на винтах практически нет, хотя, как это аргументировалось - не помню... |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Есть серийный номер винта (железки), который хранится на контроллере либо на технологической дороге, и есть номер тома, который создается при форматировании и хранится в бут-секторе. Вы оба говорите о номере тома. Привязка к нему действительно бесполезна. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
А вот этот гляньте файлик. Я так понял что он наверное железячный хдд определяет.
Присоединённый файл ( Кол-во скачиваний: 6 )
HDD.zip 6,01 Kb |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
-------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 4 Всего: 6 |
Почему??
При установке создаю файл с этим номером. Если номер и содержимое файла совпадают - прога идёт. Если кто-то тащит прогу на другой комп или другой винт, то этот номер там другой, и прога, - как ей и полагается, - не идёт. Это проверено многократно. То, что он меняется при переустановке винды - ну и ладно. Прогу ведь так и так переустанавливать. По-моему так. Или?.. |
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
||||
|
||||
| Тутанхамец |
|
||||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 4 Всего: 6 |
Вот я и думаю - то ли Акина не прав, то ли он знает что-то чего мы не знаем и тогда мы юзаем какую-то лажовую защиту... |
||||
|
|||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Ну разберись в коде-то! сериал получается через CreateFile/DeviceIOControl. Если открывать том - получишь сериал второго рода, изменяемый. Если открывать девайс (который безотносителен к томам - да на нем может вообще не быть разделов) - получишь сериал первого рода, для изменения которого нужно как минимум переписывать микрокод контроллера или технологическую область винта. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
Та, блин, для меня что апи - что китайская грамота. Я правда потихоньку листаю и очень заинтересовался как месяц где-то - но валянок пока полный. Нате вам тут ещё мак-адрес Присоединённый файл ( Кол-во скачиваний: 2 )
mac_hdd.zip 4,15 Kb |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
ну и что? или ты на всю голову деревянный? ничего, освоишься... все там были... МАС-адрес - это характеристика интерфейса, связывающая 2 и 3 уровни OSI. Нет 3 уровня - МАС не требуется. То есть он у реальной железки есть, и его даже можно добыть при неинициализированном интерфейсе на адаптере (опять-таки через WMI) - но был бы в том смысл... PS. В принципе любая защита (даже самая заумная) легко объезжается при наличии легальной инсталляции. И самый простой imho метод - виртуализация вычислительной среды. Electronically tested. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
дык это . . . - нет вроде да уж - своей электроникой не проверял - но такое высказывание часто слышал. Поэтому надо несколько привязок и ещё свои файлики со своим серийником. Т.е. в случае если меняется железо чтобы с программы можно было списать старую и новую конфигурацию + наличие етого своего ключа никчему не привязанного - и уже самому решать по этой информации - делать повторную регистрацию - или не надо - при контакте с клиентом личным (в моём случае это телефон или мыло Тоже не идеально - идеально и не бывает. Ех - надо у себя заняться модернизацией А ещё вот вам модуль для запуска программы из оперативной памяти - есть такой парень SCINER - у него на сайте лежит оно - чей копирайт не знаю http://sciner.freewm.net/runner.zip Оно читает файл как двоичные данные и запускает под именем другого - так и видно его в диспетчере задач. Надо его приспособить под запуск программы для защиты из зашифрованных ресурсов - расшифровывать при запуске, грузить в память и запускать под видом например svсhost.exe - и им уже проверять все ключи и т.п. Токо нет пока мыслей как обратную связь безопасно наладить Так по идее надёжность повысится и сложность взлома тоже. Что скажете? Добавлено @ 15:07 Почему же нет? Щас у всех сетевухи стоят. Токо не у всех они используются. А вот летят они гораздо медленнее винтов - а может и вообще не летают Вижу с Akina можно много интересных вещей натрусить. Токо надо повыше его поднять и посильнее трусить |
|||
|
||||
| Akina |
|
|||
|
Советчик ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 20581 Регистрация: 8.4.2004 Где: Зеленоград Репутация: 34 Всего: 454 |
Найди-ка ты описание модели OSI/ISO (где-нить на русдоках) и почитай... только с карандашиком, внимательно, и лучше разика 3-4, да в разных вариантах...
Будешь читать - постарайся самостоятельно понять разницу между МАС-адресом сетевой карты и содержимым переменной в памяти ОС, где хранится копия этого МАС-адреса. Особенно КОГДА наконец требуется это копирование выполнять и почему оно раньше не было нужно. Windows Management Instrumentation. Такой кусок операционной системы, который... впрочем MSDN рассказывает лучше меня. Но через это дело можно добраться в почти любой закоулок как ОС, так и железа, на котором эта ОС крутится. -------------------- О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума. |
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
да уж - перестал понимать и то, что думал что понимаю
|
|||
|
||||
| cardinal |
|
|||
![]() Инженер ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 6003 Регистрация: 26.3.2002 Где: Германия Репутация: 19 Всего: 99 |
Привязывать к винту плохо, т.к. даже честный юзер может его просто поменять. И что, почему у него должны быть проблемы с твоей прогой?
-------------------- Немецкая оппозиция потребовала упростить натурализацию иммигрантов В моем блоге: Разные истории из жизни в Германии "Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино". А. и Б. Стругацкие |
|||
|
||||
| СВА |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 9.1.2006 Репутация: нет Всего: нет |
Я так понял речь идет о том как защитить программу от копирования.
Лично я делал так,у каждой дискеты тоже есть свой код (как и на HDD) так вот этот код записываеться в определенный файл на той же дискете, только в зашифрованом виде. Также на дискете саздается любой файл не носящий информационную нагрузку, или можно использовать тот самый файл где хранится предыдущий код и записывается в него его дата создания (файла) тоже в зашифрованом виде. принцип работы таков при попытке копировать дискету меняется код дискеты, а также в большенстве случаев и дата создания файла. Для проверки на вшивость, просто сравниваются реальные параметры с параметрами записанные в файле. Единственный недостаток это то что приходится возиться с дискетами. |
|||
|
||||
| СВА |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 47 Регистрация: 9.1.2006 Репутация: нет Всего: нет |
Вся эта защита будет обсолютно бесполезна если при выводе сообщения, о том что программа не заегистрирована, текст этого сообщения будет хранится в программе, лучше всего их загружать из отдельного файла, или из ресурса. Дело в том что при взломе программы ищутся как раз эти тесктовые сообщения, потом на них ставяться стоп-точки и т.д. всю технику взлома не помню.
|
|||
|
||||
| ArtNeoX |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 23.10.2005 Репутация: нет Всего: нет |
Вопрос в том, как програмно определить системную папку, (програмкой Crack) создать там какой нибудь файл (например 123.txt)
А при запуске основной программы, она определяла системную папку, проверяла там наличие созданного програмкой crack файла 123.txt и при его наличии программа запускалась, а при отсутствии выдавалось какое либо сообщение, типа программа не зарегистрирована или что то типа того и завершала работу. |
|||
|
||||
| Тутанхамец |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 612 Регистрация: 10.10.2005 Где: в пирамидЕ! Репутация: 4 Всего: 6 |
Хех, дружище, а мы тут по твоему о чём рядим?..
|
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
Вобщем загрузили парня
Думаю ему лучше будет начать защищать свои программы с такого способа:
Простенько - но от чайников с накипью вполне нормально защитит. Если программа не дорогая - то на этом можно и остановиться. Наслаждайся ой - ой - ой - сам себя насмешил |
|||
|
||||
| ArtNeoX |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 23.10.2005 Репутация: нет Всего: нет |
как определить системную папку, создать там файл, проверить его наличие там и удалить - я разобрался.
а вот как сделать что бы после 10 запуска программы удалился созданный файл из системной папки. |
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
ну ты даёш, дружище! я тебе готовую защиту выложил - с комментариями, всё рабочее. С количеством запусков тоже. Ничем не хуже твоей что ты щас паришся. Думаю лучше всё же - реестр менее доступен для ламеров чем папка эта.
пиши, блин в файл другой количество запусков - или в реестр - а как же ещё? |
|||
|
||||
| ArtNeoX |
|
|||
|
Шустрый ![]() Профиль Группа: Участник Сообщений: 125 Регистрация: 23.10.2005 Репутация: нет Всего: нет |
kulibin, ты крут... а куда сохраняется количество оставшихся запусков?
Как можно сделать чтобы программа перестала работать, например после 01.05.2006 года. |
|||
|
||||
| kulibin |
|
|||
|
Бывалый ![]() Профиль Группа: Участник Сообщений: 229 Регистрация: 9.5.2005 Где: Украина, Запорожь е Репутация: 2 Всего: 3 |
тут я с тобой согласен Ну батенька, это уж куда сделаеш - туда и будет сохраняться. Или ещё файл один или в реестр. Не понимаю вообще что не ясно. Не знаеш чтоли как в файл писать/читать? Читай книжку и не борзей: лень ему видите ли с книги две строчки кода переписать. А теперь самое интересное - про дату. Сложность в том, что дату можно на машине менять - и для того, чтобы программа об этом узнала (а это единственное что можно узнать - если дата менялась - то настоящую определить никак нельзя) нужно писать куда-то дату последнего запуска. Т.е. программа при запуске должна сравнивать текущую дату с датой прошлого запуска - и если дата прошлого запуска больше текущей - значит текущая левая (переведены часы). А что дальше делать - сам решай. Или заканчивать демо-версию или считать её уже не по датам а по запускам. Я делаю так: если часы не переведены - то пишется дата текущая(которая при следующем запуске программы будет датой прошлого запуска). А если часы отводились - то пишется прошлая дата+1 день. Есть ещё вариант попроще: писать только запуски - и смотреть время непосредственно по часам. Т.е. в этом случае если часы переведут - то всёравно когда будет превышен лимит по запускам программа работать перестанет. Ну может немного продлят демку. И ещё одно: если ориентироваться на количество запусков и дату - надо подстраховать себя от удаления этой информации. Я делаю так: допустим демка ограничена 100 запусками. На 20-м запуске я пишу ещё файлик один - или в него что-то левое сую или вообще пустой. Т.е. если программа смотрит что нет данных о запусках - или они меньше 20-ти - проверяем наличие этого файла. Если он есть - значит нас пытаются нагреть. Если нету - всё ок. Ну вобщем то на этом всё - не люблю помогать людям, которые ещё и ехидничать пытаются когда делаеш им добро. Как говорится - kulibin сделал своё дело - kulibin должен уходить |
|||
|
||||
| Voldemar2004 |
|
||||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1650 Регистрация: 25.12.2004 Репутация: 7 Всего: 23 |
ArtNeoX, думаю, ты догадался, как удалить файл после 10-го запуска? -------------------- i_i (';') (V) ![]() |
||||||||
|
|||||||||
![]()
|
| Правила форума "VB6" | |
|
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | VB6 | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |