Модераторы: Akina

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> ВВОД ПАРОЛЯ СКРЫТ ЗВЕЗДОЧКАМИ 
:(
    Опции темы
Guest
Дата 16.7.2005, 13:07 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











При запуске программы появляется окно для ввода пароля. При его вводе в этом окошке набираемый текст закрывается звездочками. Как сделать?
  Вверх
Spawn™Production®
Дата 16.7.2005, 13:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тестер ПО, VB.NET Developer
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 12.4.2005
Где: Зеленоград

Репутация: нет
Всего: 12




Ну думаю текстовый бокс ты в состоянии расположить на форме... У тектового бокса в свойстве PasswordChar поставь *.
Короче говоря, символ, который стоит в этом свойстве будет отображаться, как маска, скрывающая то, что вводит пользователь.


--------------------
ОС: WinXP SP2 Rus
Frameworks: v1.0.3705, v1.1.4322, v2.0.50215, v2.0.50727
Сам кодю на VB (6.0 (почти забросил), 7.1, 8.0)
PM WWW   Вверх
Guest
Дата 16.7.2005, 18:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











а в inputbox можно сделать звездочки?
или только в textbox ?

Если только в textbox то как сделать, что бы загрузилась form1 ввел пароль если паоль праильный form1 закрывается и открывается form2 (сама программа). Если пароль не верный в form1 то в программу не пускает. Выход.
  Вверх
korob2001
Дата 16.7.2005, 18:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Комодератор
Сообщений: 2871
Регистрация: 29.12.2002

Репутация: нет
Всего: 61



Ну так алгоритм ты сам только что рассказал, что мешает его реализовать? Воспользуйся условиями If(...) Then .... Else..., ну и соответственно либо выгружай форму, либо выгружай и загружай вторую форму.
Код

Dim strPass As String
strPass = "d1fg25"
If txtPass.Text <> strPass Then
   ' Пароль не совпал, выгружаем форму
Else
   ' Пароль совпал, выгружаем форму с запросом пароля
   ' и подгружаем вторую форму.
End If

Удачи.


--------------------
"Время проходит", - привыкли говорить вы по неверному пониманию. 
"Время стоит - проходите вы".
PM MAIL WWW ICQ MSN   Вверх
Spawn™Production®
Дата 16.7.2005, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тестер ПО, VB.NET Developer
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 12.4.2005
Где: Зеленоград

Репутация: нет
Всего: 12



Так, для Login формы есть соответствующий шаблон...
Для inputbox'а нельзя, разве только ты сам его сделаешь, т.е. будет не inputbox, а твоя форма его заменяющая.


--------------------
ОС: WinXP SP2 Rus
Frameworks: v1.0.3705, v1.1.4322, v2.0.50215, v2.0.50727
Сам кодю на VB (6.0 (почти забросил), 7.1, 8.0)
PM WWW   Вверх
Guest
Дата 16.7.2005, 19:13 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











загрузить, выгрузить форму как?
Login форма где?
  Вверх
Spawn™Production®
Дата 16.7.2005, 19:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тестер ПО, VB.NET Developer
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 12.4.2005
Где: Зеленоград

Репутация: нет
Всего: 12



Цитата(Guest @ 16.7.2005, 20:13)
загрузить, выгрузить форму как?

блин, почитай книжку какую-нибудь...
Код

Load Form1
Unload Form1


Цитата(Guest @ 16.7.2005, 20:13)
Login форма где?

правой кнопкой на окне проектов, Добавить - Форма - в появившемся окне выбираем Log in Dialog


--------------------
ОС: WinXP SP2 Rus
Frameworks: v1.0.3705, v1.1.4322, v2.0.50215, v2.0.50727
Сам кодю на VB (6.0 (почти забросил), 7.1, 8.0)
PM WWW   Вверх
bom
Дата 16.7.2005, 20:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Spawn™Production®
Цитата
Для inputbox'а нельзя

Если очень хочется, то можно:
Код

'Modul1.bas
Option Explicit
Private Declare Function SendMessage Lib "user32" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, lParam As Any) As Long
Private Declare Function FindWindow Lib "user32" Alias "FindWindowA" (ByVal lpClassName As String, ByVal lpWindowName As String) As Long
Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long
Private Declare Function SetTimer& Lib "user32" (ByVal hwnd&, ByVal nIDEvent&, ByVal uElapse&, ByVal lpTimerFunc&)
Private Declare Function KillTimer& Lib "user32" (ByVal hwnd&, ByVal nIDEvent&)

Private Sub TimerProc(ByVal hwnd&, ByVal uMsg&, ByVal idEvent&, ByVal dwTime&)
    Dim myHwnd As Long
    myHwnd = FindWindowEx(FindWindow("#32770", App.Title), 0, "Edit", "")
    Call SendMessage(myHwnd, &HCC, 42, 0)
    KillTimer hwnd, idEvent
End Sub

Sub main()
SetTimer 0, &H5000&, 10, AddressOf TimerProc
Dim strPass As String, strInpt As String
strPass = "d1fg25"
strInpt = InputBox("Введите пароль доступа")
If StrPtr(strInpt) <> 0 Then
    If strInpt <> strPass Then
           MsgBox "Пароль не совпал, выгружаем форму"
        Else
           MsgBox "Пароль совпал, выгружаем форму с запросом пароля " & _
           "и подгружаем вторую форму."
    End If
End If
End Sub

PM MAIL   Вверх
Spawn™Production®
Дата 16.7.2005, 21:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Тестер ПО, VB.NET Developer
**


Профиль
Группа: Участник
Сообщений: 398
Регистрация: 12.4.2005
Где: Зеленоград

Репутация: нет
Всего: 12



bom, хех, уж лучше я под енто дело форму забадяжу, имхо сразу возможностей больше.


--------------------
ОС: WinXP SP2 Rus
Frameworks: v1.0.3705, v1.1.4322, v2.0.50215, v2.0.50727
Сам кодю на VB (6.0 (почти забросил), 7.1, 8.0)
PM WWW   Вверх
bom
Дата 16.7.2005, 22:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Инпутбокс и вправду выглядит не очень smile

Кстати, Spawn™Production®, спасибо за линк на API-Guide, только что скачал, классная весчь.

Это сообщение отредактировал(а) bom - 16.7.2005, 22:12
PM MAIL   Вверх
ArtNeoX
Дата 17.7.2005, 11:28 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Самое простое решение:

в свойствах Text1 - PasswordChar поставить *

Для формы 1

Private Sub Command1_Click()
If Text1 = "пароль" Then Form2.Show Else End
End Sub

----------------------------------------------------
Для формы 2

Private Sub Form_Load()
Unload Form1
End Sub

  Вверх
xkodex
Дата 17.7.2005, 17:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 55
Регистрация: 30.4.2005

Репутация: нет
Всего: нет



Да форма проще и удобнее. И возможнностей побольше будет...
PM MAIL WWW   Вверх
assassin
Дата 24.7.2005, 11:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 19.7.2005

Репутация: нет
Всего: нет



А это надежная "система защиты", если ее так можно назвать ? Можно будет как-то узнать пасс в if-условии ? Кроме как из отладчика ? smile
PM MAIL   Вверх
Voldemar2004
Дата 24.7.2005, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(assassin @ 24.7.2005, 11:17)
А это надежная "система защиты", если ее так можно назвать ?
Весьма сомневаюсь.

Цитата(ArtNeoX @ 17.7.2005, 11:28)
Самое простое решение: в свойствах Text1 - PasswordChar поставить *


Код

Private Sub Command1_Click()
If Text1 = "пароль" Then Form2.Show Else End
End Sub


Даже более сложные способы защиты взламываются очень быстро, про это вообще промолчу. В общем кто знаком с реверс-инжинирингом для того это не проблема.

Надо применять алгоритмы шифрования (симметричные/несимметричные), впрочем открыть справочник по криптографии и на основе какого-нибудь алгоритма (табличный алгоритм с открытым ключом например, как самый простой) написать подпрограмму на VB, шифрующую по такому принципу: например ввел слово "пароль" получил "63&Da830)~e", предположим, взломщик вычислил "63&Da830)~e", но без второго ключа, зная даже "63&Da830)~e" и формулу он сделать ничего не сможет. Если пишешь для своей организации, где все свои, но в она все-таки просочилась в Сеть вряд ли крэкеры будут для нее что-то писать, уж очень специфичный задачи на VB.

А то, что вводится в TextBox.Passwordchar = "*" это ИМХО самый последний шаг, интерфейс. И защищать программу стоимостью > 100$ никто по такому принципу (да еще в VB) не будет. Я вот мучался с Фотошопом 8 в результате сделал дедовским способом - удалением/установкой заново с помощью Total Uninstaller (вот такие программы нужны, как воздух smile ).


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
bom
Дата 24.7.2005, 15:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Хранить незащищенный ключ в теле программы - неправильно, это все понимают, но и другие способы имхо не особо надежны - в частности предлагаемый Voldemar2004 с шифрованием. Главная уязвимость это условие If Text1 = "пароль" Then Form2.Show Else End. Дизассемблировав программу, его можно увидеть как на ладони в виде Asm кода наподобие:
Код

push 004011EB
Call 0040115A
xor byte ptr [eax], a1
add byte ptr [eax], a1

Извините в Асме не разбираюсь smile
После несложных манипуляций c Asm кодом более опытным чем я кодером, наше условие будет иметь вид:
If Text1 = "пароль" Then Form2.Show Else Form2.Show, т.е. после сохранения изменений, наша программа будет считать правильным паролем любую строку и даже пустую.

Как с этим бороться - не знаю, возможно надо шифровать сам последующий после проверки код программы, но как это реализовать практически?
PM MAIL   Вверх
cardinal
Дата 24.7.2005, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(bom @ 24.7.2005, 13:45)
Как с этим бороться

Первая возможность это конечно отсылка твоих данных через интернет. Типа такой-то пользуется прогой. Ты смотришь есть у него лицензия или нет у себя в бд. Но это уже всем известно и поэтому крэкнутые вещи ставят на компы не подключенные к инету.
Вторая возможность это сделать кучу проверок (не только в начале проги, но и в середине парочку). Но и их все вычислить можно, но займет уже больше времени.
Третья возможность сделать такой штраф, что риск того не будет стоить. Дешевле будет купить лицензионное ПО, чем наткнуться на проверку (которая должна быть нормальным явлением) и заплатить огромный по сравнению со стоимостью лицензии штрафом.
Цитата(bom @ 24.7.2005, 13:45)
возможно надо шифровать сам последующий после проверки код программы

Можно воспользоваться прогой сжатия .exe файлов, которая очень сильно затрудняет процесс крэканья. Но при этом прога начинает тормозить (что само собой понятно). Вот тут дилемма - или ты делаешь качественное ПО без тормозов или ты делаешь ПО с тормозами, но с более хорошей защитой.


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
bom
Дата 24.7.2005, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Цитата
отсылка твоих данных через интернет....такой-то пользуется прогой
Другими словами - такой то пользуется взломанной версией твоей проги. Особой радости тебе это известие не принесет, если оно еще продерется через кордоны файеволов, коими сейчас многие пользуются smile

Цитата
сделать кучу проверок....их все вычислить можно
Это точно. При чем самое трудное вычислить первую проверку, а потом вступает в игру F3(Поиск), т.к. уже известно что с чем сравнивается.

Цитата
сделать такой штраф, что риск того не будет стоить
Это - к законодателям smile

Цитата
Можно воспользоваться прогой сжатия .exe файлов, которая очень сильно затрудняет процесс крэканья
Затрудняет, но только не для профессионала-крекера. К тому же программ для сжатия не так и много и для большинства из них есть распаковщики, UPX вообще сам и сжимает и распаковывает (для тех кто не зал), но дело даже не в этом, когда сжатая программа запускается, ее код все равно распаковывается в память Винды, чем и как бы она не была сжата.

Если защищаемая программа делается для узкого круга пользователей, которым в последствии понадобится поддержа, то способы защит, приведенных cardinalом , в самый раз - не дорого и сердито, но для массовых программ, Имхо, этого явно недостаточно, иначе мы бы уже давно не пользовались взломанными Винрарами, Нерами, и прочими TheBat-ами.

Сори за нестандартные цитаты, у меня Быстрая цитата не фурычит

PM MAIL   Вверх
Voldemar2004
Дата 24.7.2005, 20:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(cardinal @ 24.7.2005, 16:31)
Можно воспользоваться прогой сжатия .exe файлов,
есть соответствующие программы для распаковки таких exe-шников, причем есть готовые проги для определения - каким упаковщиком сжат файл (что-то наподобие ProtectionID).
Цитата(cardinal @ 24.7.2005, 16:31)
которая очень сильно затрудняет процесс крэканья.
Процесс-то может и затруднит, но не сведет его к нулю.

Цитата(bom @ 24.7.2005, 15:45)
Хранить незащищенный ключ в теле программы - неправильно, это все понимают, но и другие способы имхо не особо надежны - в частности предлагаемый Voldemar2004 с шифрованием.
Все не так просто. Есть программы, которые даже спустя месяц не смогли сломать! Ответ: если нужна серьезная защита, то обращаемся к профи. Наше дело писать программы. А их - защищать нас от крэкеров.
Добавлено @ 20:31
Цитата(bom @ 24.7.2005, 20:17)
Если защищаемая программа делается для узкого круга пользователей, которым в последствии понадобится поддержа, то способы защит, приведенных cardinalом , в самый раз - не дорого и сердито, но для массовых программ, Имхо, этого явно недостаточно, иначе мы бы уже давно не пользовались взломанными Винрарами, Нерами, и прочими TheBat-ами.
Если пишешь для своей организации - то смысла то защищать? Ведь им (своим сотрудникам) еще и объяснять надо особенности твоей проги, им не до взлома.



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Akina
Дата 24.7.2005, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(bom @ 24.7.2005, 16:45)
Главная уязвимость это условие If Text1 = "пароль" Then Form2.Show Else End

Ну это совершенно по-дилетантски...

Во-первых, самое элементарное

Код

' idea, not a code!
Sub Textbox.keyDown(Key as Char, ...)
  If Key in "ABCD....XYZabc...xyz12..90..." Then
    CurrentPass = CurrentPass & Key
    Key = "*"
  ElseIf Key = BS Then
    CurrentPass = Left(CurrentPass, Len(CurrentPass)-1)
  ElseIf Key in "MoveCursor" Then
    ' ну короче вы поняли
End Sub


Во-вторых, элементарный разбор пароля на группы (лучше битовые) и контроль этих групп в различных подпрограммах (рефреша грида, печати, чтения данных и пр.) изгадит немало крови.

В третьих, если программа не посылает нах при неправильном пароле, а просто слегка глючит по типу "дважды два? ну где-то шесть-семь..."...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
cardinal
Дата 24.7.2005, 22:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(Akina @ 24.7.2005, 19:04)
В третьих, если программа не посылает нах при неправильном пароле, а просто слегка глючит по типу "дважды два? ну где-то шесть-семь..."...

Да - это тоже классно. Ты как бы крэкнул, как бы работает, а на самом деле прога уже в курсе, что ее пытались крэкнуть и начинает теб гадить smile
Цитата(Voldemar2004 @ 24.7.2005, 18:29)
Процесс-то может и затруднит, но не сведет его к нулю.

Какая фраза smile Ну этого я и не утверждал...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
bom
Дата 24.7.2005, 22:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Voldemar2004
Цитата
Есть программы, которые даже спустя месяц не смогли сломать! Ответ: если нужна серьезная защита, то обращаемся к профи. Наше дело писать программы

Эт то понятно, интерес чисто теоретический с практическим уклоном: как им это удалось?

Цитата
Если пишешь для своей организации - то смысла то защищать?
Чтоб конкурирующая организация не заюзала на халяву smile

Akina
Цитата
Ну это совершенно по-дилетантски...
Что именно? Использовать конструкцию "If ..Then" для проверки ? В любом случае где то обязательно будет использоваться проверка чего то с чем то и в зависимости от результата что то делать (посылать, подглючивать и т.д или нормально работать).

Цитата
если программа не посылает нах при неправильном пароле
В подавляющем большинстве случаев результат проверки на зарегистрированность все равно где то отображается: или в диалоге "О программе" или в заголовке окна ("Незарегистрированная версия"). Если прога совсем никак не реагирует (внешне) на результат, то я сочувствую купившим ее юзерам, которые будут гадать в чем причина глюков - кривая регистрация, кривые собственные руки или руки Программера smile
PM MAIL   Вверх
cardinal
Дата 25.7.2005, 03:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(bom @ 24.7.2005, 20:36)
как им это удалось?

Ну как, как... Чтобы защитить прогу надо знать как проги крэкать. Чем больше способов крэканья ты знаешь, тем больше способов защиты от них ты учтешь во время разработки защиты...


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Akina
Дата 25.7.2005, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(bom @ 24.7.2005, 23:36)
В любом случае где то обязательно будет использоваться проверка чего то с чем то и в зависимости от результата что то делать (посылать, подглючивать и т.д или нормально работать).

При грамотном подходе - никогда... будет нечто типа:
Код

SomeConstant = Koeff1 * ASCII(Password[1]) + Koeff2 * ASCII(Password[2])...

В любом коде - куча констант...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bom
Дата 25.7.2005, 16:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Akina
Цитата
При грамотном подходе - никогда... будет нечто типа:
Код

SomeConstant = Koeff1 * ASCII(Password[1]) + Koeff2 * ASCII(Password[2])...

А дальше?
Код

If SomeConstant <> SomeConstant2 Then
'посылаем нах or подглючиваем or пишем "Evalution copy"...
Else
'нормально работаем
End If


cardinal
Цитата
Чем больше способов крэканья ты знаешь, тем больше способов защиты от них ты учтешь

Lenin
Цитата
Учиться, учиться, учиться...

Полностью с вами согласен smile
PM MAIL   Вверх
Akina
Дата 25.7.2005, 16:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(bom @ 25.7.2005, 17:31)
А дальше?

Что - дальше? неверный пароль - невверный коэффициент - неверный результат... а сообщение "Незарегистрированная версия" - по расчету с теми же коэффициентами какого-нить эталонного значения. Пока ты обратно до непосредственно пароля доберешься - сдохнешь нах.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bom
Дата 25.7.2005, 18:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Akina
Цитата
Пока ты обратно до непосредственно пароля доберешься

Достаточно поменять условие проверки на противоположное и все ухищрения на смарку, искать пароль нет необходимости. Хотя можно и поискать, для фаната реверсинжиниринга это только в кайф.
PM MAIL   Вверх
Akina
Дата 25.7.2005, 18:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Во тебе счастья, что прграмма перестала сообщать о своей нелицензионности... а считает-то она все одно хрен знает что - другие-то коэффициенты уплыли...


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bom
Дата 25.7.2005, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Еще 1 способ.
Вместо:
Код

If SomeConstant <> SomeConstant2 Then
'где SomeConstant - очень запутанная [b]Akina[/b] хитроумная производная от эталонной строки,
'SomeConstant2 - не менее запутанная по тем же правилам производная строки, введенной юзером в качестве пароля для авторизации.

Код

If SomeConstant <> SomeConstant Then

или вместо второй переменной подставляется непосредственно значение первой переменной:
Код

If SomeConstant <> "значение, которое принимает SomeConstant" Then

PM MAIL   Вверх
bom
Дата 25.7.2005, 18:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Akina
Цитата
а считает-то она все одно хрен знает что - другие-то коэффициенты уплыли...
Это уже частности, зависящие от квалификации взломщика, степени сложности защиты, цены, затребованной автором за регистрацию, оценки взлощиком стоимости времени своего труда и т.д.
PM MAIL   Вверх
Akina
Дата 25.7.2005, 18:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



bom
Не, ну опять - смысл-то какой?

Есть у меня, скажем, формула типа там (от балды)
Код

x=2.256 * a + (b - 84.1) ^ 0.746

Так вот - все эти коэффициенты я построю из char-ов пароля в переменных (типа там k(1)=(asc(Pass[1])*101+asc(Pass[3]))/(100+pass(5))+0.84 какого-нить)...
Для того чтобы понять какие значения должны народиться в этих переменных при правильном пароле, тебе придется не только востановить код, но и полностью понять логику, заложенную в программу... и только после этого ты сможешь занести в переменные нужные значения и убрать код их изменения, чтобы этот х правильно считался по известным a и b.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Voldemar2004
Дата 25.7.2005, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(bom @ 24.7.2005, 22:36)
как им это удалось?
smile Это самое интересное. Я бы тоже хотел узнать.


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
bom
Дата 25.7.2005, 21:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Цитата
Для того чтобы понять какие значения должны народиться в этих переменных при правильном пароле, тебе придется не только востановить код...
Неужели? А где же хранятся эти правильные значения? На сменных носителях? smile
Эти самые переменные и будут содержать правильные значения в момент сравнения с соответствующими переменными, полученными от манипуляций с паролем подлежащим проверке.
PM MAIL   Вверх
cardinal
Дата 26.7.2005, 01:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Цитата(bom @ 25.7.2005, 19:18)
Неужели? А где же хранятся эти правильные значения? На сменных носителях?

Да, не... На самом деле чем больше ты напрудишь в защите, тем проще будет просто купить лицензию и не парится. В этом Akina абсолютно прав.
bom, прикинь ты сейчас поспоришь с кем-нибудь, что ты взломаешь такой-то пакет и просидишь бесонную неделю за компом и выиграешь спор. Классно! А теперь начинаем считать:
Сколько программист в Москве получает? 500-1000 у.е. (и более соответственно)
Неделя получается твоей работы стоит 125-250 у.е.
Ну а теперь вопрос? Какой пакет стоит дороже?
Ответ: тот на который прилагаются hardware защиты в лицензионном пакете (сами стоимостью в 50 у.е.), которые сломать будет уже намного сложнее, т.к. нужны знания электроники smile
Считать в этот раз не буду smile

Не ну короче, а сколько всего сервиса ты теряешь при серьезном пакете? Ты не будешь получать ни исправления ошибок, ни информацию о новых версиях и т.д. Если что, то никакой support тебе не поможет.

А если проверка будет, то ты вообще попух smile

Внимание вопрос:
На хрена солидной организации вся эта головная боль? smile smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
bom
Дата 26.7.2005, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Цитата(cardinal @ 26.7.2005, 01:04)
чем больше ты напрудишь в защите, тем проще будет просто купить лицензию
Экономически выгоднее скорее... Согласен, об этом и говорил:
Цитата(bom @ 25.7.2005, 18:50)
зависящие от квалификации взломщика, степени сложности защиты, цены, затребованной автором за регистрацию, оценки взлощиком стоимости времени своего труда и т.д


Цитата(cardinal @ 26.7.2005, 01:04)
На хрена солидной организации вся эта головная боль?

Цитата(bom @ 24.7.2005, 20:17)
Если защищаемая программа делается для узкого круга пользователей, которым в последствии понадобится поддержа, то способы защит, приведенных cardinalом , в самый раз - не дорого и сердито, но для массовых программ, Имхо, этого явно недостаточно


PM MAIL   Вверх
cardinal
Дата 26.7.2005, 20:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Ну че всю дисскусию в FAQ? smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Voldemar2004
Дата 26.7.2005, 20:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Вот это оставить можно, а идею развить...А остальное удалить нафиг, как флейм ИМХО.

Код

Sub Textbox.keyDown(Key as Char, ...)    
  If Key in "ABCD....XYZabc...xyz12..90..." Then    
    CurrentPass = CurrentPass & Key    
    Key = "*"    
  ElseIf Key = BS Then    
    CurrentPass = Left(CurrentPass, Len(CurrentPass)-1)    
  ElseIf Key in "MoveCursor" Then    
    ' ну короче вы поняли    
End Sub[/quote]



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
cardinal
Дата 26.7.2005, 20:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



Это VB.Net?


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Akina
Дата 26.7.2005, 21:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



cardinal
Это идея. Ее можно было вообще нумерованным списком оформить.




--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bom
Дата 27.7.2005, 00:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Цитата(Voldemar2004 @ 26.7.2005, 20:37)
это оставить можно, а идею развить...

Цитата(Akina @ 26.7.2005, 21:00)
Ее можно было вообще нумерованным списком оформить

Вы это серьезно?
Или это я шуток не понимаю? smile
PM MAIL   Вверх
cardinal
Дата 27.7.2005, 01:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Инженер
****


Профиль
Группа: Экс. модератор
Сообщений: 6003
Регистрация: 26.3.2002
Где: Германия

Репутация: 19
Всего: 99



А что защита своих программ это неактульно? Когда я писал свою первую прогу меня вообще кроме ее защиты ничего не интресовало... smile


--------------------
Немецкая оппозиция потребовала упростить натурализацию иммигрантов
В моем блоге: Разные истории из жизни в Германии

"Познание бесконечности требует бесконечного времени, а потому работай не работай - все едино".  А. и Б. Стругацкие
PM   Вверх
Akina
Дата 27.7.2005, 08:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(bom @ 27.7.2005, 01:01)
Вы это серьезно?

Абсолютно серьезно. Это же алгоритм, ни к какому языку ен привязанный. То что он оказался похож на VB - случайность.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Voldemar2004
Дата 27.7.2005, 10:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(bom @ 27.7.2005, 00:01)
Вы это серьезно?
Или это я шуток не понимаю?

bom, Конечно серьезно, никаких шуток. Akina хорошую идею подсказал.


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Akina
Дата 27.7.2005, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Собсно основной смысл идеи заключается в том, что пароль накапливается НЕ В КОНТРОЛЕ. Ибо шаблон вывода обходится/правится на счет "раз" - не зря даже Microsoft наконец-то дошла до того, что при автосохранении количество звездочек в поле пароля НЕ РАВНО количеству символов в пароле (не везде, аднака, но все-таки). Это раз.
И два - такой способ накопления пароля позволяет создавать пароли и методы верификации, которые не создаются другими способами... например:
  • пароль с исправлением опечатки - т.е. скажем пароль "пароль", но его вводить надо так:
    "п" "о" "<BackSpace>" "а" "р" "о" "л" "ь"
  • пароль с тестированием временнЫх задержек - скажем между 3 и 4 символами пароля должна быть пауза не менее 3 секунд
  • другие способы усложнения пароля



--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Voldemar2004
Дата 27.7.2005, 11:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Akina @ 27.7.2005, 10:53)
количество звездочек в поле пароля НЕ РАВНО количеству символов в пароле (не везде, аднака, но все-таки).

Akina, а может сделать как в Unix-системах - юзер вводит пароль, допустим из 10 символов, но вместо * он ничего не видит, никаких символов и если пароль неверен, пауза 10 секунд, при 3-ех неправильно введенных паролях - ребут, или пауза 1 минута.


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Akina
Дата 27.7.2005, 11:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Voldemar2004
это один из вариантов. Впрочем, полного юзера такое введет в состояние ступора.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Voldemar2004
Дата 27.7.2005, 12:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Код

' idea only!

Private Sub Command1_Click()
Text1.Text = ""
Text1.Locked = False
Text1.PasswordChar = " "
' delaem zapret na pokaz kursora (kak v Unix)
' tolko nado podumat': kak eto sdelat'?
End Sub

Private Sub Form_Load()
Dim i As Integer

Text1.Locked = True

For i = 0 To 49 ' naprimer ili do konza TextBox'a
Text1.Text = Text1.Text & " "
Next i

End Sub

Private Function PassChar()
'...algoritm compressii

Do
' ne pokazivaem nikakih soobshenii o pravilnosti
'...
' horosho bi bez: if .... else .... end if
Loop While PassChar <> RealPassChar

' pri sleduyshem zapuske programmi ne pristaem k usery s voprosami
' "Vvedi parol"
End Function

' otdelnaya funczia pishet v texstoviy fail zashifrovanniy parol
' naprimer "Password" -> #^!$#!@^&^%JADSD
' kolichestvo vvedennih simvolov nikoga (!!!) ne ravno chisly shifr-simvolov -
' eto osobennost' shifrovania - kakoi smisl v tupoi podstanovke odnih simvolov drugimi?


P.S. Извиняйте за транслит - русский язык нафиг пропал из VB. Переставлял 10 раз, не помогло. ОС сносить жалко, если кто сталкивался, скажите, как исправить.
Добавлено @ 12:29
Цитата(Akina @ 27.7.2005, 11:57)
полного юзера такое введет в состояние ступора.
Ну может он не такой тупой как пробка? Можно в хелпе написать или в ToolTipText "Пароль никак не будет отображен (*) и т.п. Смело вводи пароль, юзер!" smile


--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Akina
Дата 27.7.2005, 12:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Voldemar2004
Зачем изобретать сокрытие курсора, когда можно обойтись без текстбокса, принимая пароль непосредственно в CommandButton.KeyPress?


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
bom
Дата 27.7.2005, 16:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 329
Регистрация: 22.2.2004
Где: Казахстан, Алматы

Репутация: 4
Всего: 6



Цитата(cardinal @ 27.7.2005, 01:13)
А что защита своих программ это неактульно?

Актуально конечно, интересно, спору нет. Я о другом.
Мало отличающиеся друг от друга варианты развития и реализации идеи Akinaвстречаются практически на каждом сайте по VB, последние лет 5. Вот несколько адресов навскидку, найденных поисковиком:
http://rtfm.vn.ua/prog/js/vbsovet.htmlhttp://forum.sources.ru/index.php?showtopic=49854
http://www.vbnet.ru/subscribe/showsubscribe.asp?id=134
Идея конечно интересная, но смысл прятать пароль в окне ввода, которое проживет всего несколько секунд, стандартное свойство текстбокса passwordchar=* прекрасно справляется со своей задачей - прячет то что ввел юзер от случайного взгляда, защиту от кого развивают
Akina и Voldemar2004? От террориста который оттолкнет юзера, только что введшего свой пароль, но не успевшего нажать "ОК", что бы тот не дай бог не открыл скрытое под звездочками с помощью Passwiew? smile Но тот может догадаться нажать "ОК" или "спросить" у самого юзера smile
Имхо, если уж забивать голову этой идеей, то было бы полезнее разработать алгоритм защиты от клавиатурных шпионов во время печатанья пароля юзером.
PM MAIL   Вверх
Akina
Дата 28.7.2005, 13:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Цитата(bom @ 27.7.2005, 17:05)
алгоритм защиты от клавиатурных шпионов

Элементарно - контроль запущенных процессов.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Voldemar2004
Дата 28.7.2005, 15:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1650
Регистрация: 25.12.2004

Репутация: 7
Всего: 23



Цитата(Akina @ 28.7.2005, 13:58)
Элементарно - контроль запущенных процессов.
А как узнать какой процесс нехороший?, т.е. - клавиатурный шпион?



--------------------
i_i 
(';') 
(V)

user posted image
PM MAIL   Вверх
Akina
Дата 28.7.2005, 16:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 34
Всего: 454



Voldemar2004
Достаточно знать, какой лишний. Или у какого изменились параметры.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.1070 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.