Форум программистов, компьютерный форум CyberForum.ru

C++ Проверка логин\пароль - C++

Восстановить пароль Регистрация
 
 
Рейтинг: Рейтинг темы: голосов - 57, средняя оценка - 4.79
popoff17
10 / 10 / 2
Регистрация: 13.07.2010
Сообщений: 206
27.07.2011, 06:43     C++ Проверка логин\пароль #1
Доброго времени суток!
В консольном приложении планирую сделать запрос логина\пароля при входе.

.txt файл имеет такую структуру:
=============
pass;log;admin;
password;login;user;
pass2;log2;user;
=============
код программы:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
void main (){
 
int i=0,j=0;
char str[100], ch[100], log[255];
str[0]='0';
std::cin>>log;
std::ifstream access;
access.open("access.txt", std::ios::in | std::ios::binary);
if (!access.is_open()) std::cout<<"not open file!";
access.seekg(0, std::ios::cur);
while (!access.get(ch[i]).eof()){  /////////перебор строки
    if (ch[i] == ';'){break;}
    std::cout<<ch[i];
    i++;
}
 
/////////перебор введенной строки
int len = std::strlen(log);
for (i=0; i<len;i++){
std::cout<<log[i]<<std::endl;
}
 
///////////сравнение введенных данных с данными из файла
for (j=0;j<i;j++)
{
    if (log[j] == ch[j])
    {continue;}
    else
    {std::cout<<"password is not korrect\n";
        break;}
}
std::cout<<"Wellcome to my programm\n";
access.close();
system ("pause");
}
код работает, хотел только спросить, как по вашему, все правильо сделано, или можно было как-то по другому? попроще?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.07.2011, 06:43     C++ Проверка логин\пароль
Посмотрите здесь:

Работа с "Логин и пароль" на с++ C++
Пароль C++
C++ Пароль в c++
подкорректировать код(логин и пароль) C++
Логин и пароль прочитать из файла C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
27.07.2011, 09:53     C++ Проверка логин\пароль #21
Да ну давай взломай мой алгоритм
Вложения
Тип файла: zip demo_simple.exe.zip (4.2 Кб, 35 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
-=ЮрА=-
Заблокирован
Автор FAQ
27.07.2011, 09:55     C++ Проверка логин\пароль #22
Цитата Сообщение от NIch Посмотреть сообщение
А зачем иметь исходники? Открывай через отладчик Olly (или любой другой) и пожалуйста смотри на свой код, правда на ассемблере. Алгоритм открывается на раз-два.
Пост выше тебе!
NIch
 Аватар для NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
27.07.2011, 10:01     C++ Проверка логин\пароль #23
Вопрос защиты программы паролем очень непростой.
1. Где хранить пароль (файл, реестр, сеть и пр.)
2. В каком виде хранить пароль (открыто, шифрованно, хэш)
3. Как спрятать (защитить) участок кода в программе, отвечающий за проверку пароля
Вопросов уйма, потому что если программа имеет доступ к паролю, то и злоумышленник тож может иметь доступ... Получить код программы не составляет труда имея exeшник...
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
27.07.2011, 10:02     C++ Проверка логин\пароль #24
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Да ну давай взломай мой алгоритм
Сами попробуйте на первом же вопросе нажать кнопку "Отмена"
NIch
 Аватар для NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
27.07.2011, 10:06     C++ Проверка логин\пароль #25
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
Пост выше тебе!
Чета я не понимаю как она работает... Запускаю, там сразу 2 окна открываются...
1. Введите пароль (поле ввода и 2 кнопки)
2. Вы взломали программу (2 кнопки)
Может что то в ней не так, не хочется "пытать счастья" если она не доработана, посмотри пожалуйста.
popoff17
10 / 10 / 2
Регистрация: 13.07.2010
Сообщений: 206
27.07.2011, 10:20  [ТС]     C++ Проверка логин\пароль #26
Цитата Сообщение от mimicria Посмотреть сообщение
Предполагается, что программа будет распространяться, не так ли? Кто будет назначать права на моём компьютере, если я скачал и установил программу (к примеру)?
Предполагается программа для сдачи практики в универе. но темку создал по 2м причинам:

- чтобы опытные кодеры оценили алгоритм проверки введенных данных и, если есть смысл, посоветовали как можно сделать по другому, т.е. я хотел услышать критику и советы.
Для серьезной работоспособной программы то понятно, что лучше писать или хэш, или в реестр, или же в мускульную БД, причем сделать клиент-серверное приложение и "бла-бла-бла", но я пока до этого не дорос, да и задание подразумевает организацию файловой БД(тэ-икс-тэ).

- с С++ только знакомлюсь (пока однокурсники его изучали я в больнице лежал), поэтому знания и навыки полученные в ходе написания этой программы будут использованы для написания программы для работы на моем предприятии (есть одна задумка)

Другими словами: будь вы преподом, по пятибальной шкале на сколько бы оценили мой код? какие бы выдвинули замечания и предложения?

Добавлено через 1 минуту
Цитата Сообщение от Nameless One Посмотреть сообщение
ну так проблема ТС'а же вроде не в защите от пиратства, а в разграничении прав доступа к его самописной "БД"
кто такой "ТС"?
-=ЮрА=-
Заблокирован
Автор FAQ
27.07.2011, 10:23     C++ Проверка логин\пароль #27
Ну да не дописал ветвь если Cancel нажать, ну мне интересно взломаите ли вы сейчас!
Вложения
Тип файла: zip demo_simple.zip (4.2 Кб, 26 просмотров)
-=ЮрА=-
Заблокирован
Автор FAQ
27.07.2011, 10:27     C++ Проверка логин\пароль #28
mimicria, NIch - мой пост выше Вам!Ну покажите что вы не просто так воздух сотрясаете, слабо???

Добавлено через 2 минуты
Вот простой консольный вариант демки, каждый месяц в строке логина меняется 1 цифра, можно вбить чтобы каждую секунду меняась, вот код
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
#include <windows.h>
#include <string.h>
#include <stdio.h>
#include <conio.h>
#include <time.h>
 
char sLogin[] = "TESTxx";
bool login(char * sLogin);
bool bLogin = false;
 
int main()
{
    if(!bLogin & login(sLogin))
        bLogin = true;
    if(bLogin)
    {
        printf("You enter in program\r\n");
        printf("Press any key to continue\r\n");
        getch();
    }
    else
        printf("Enter login invalid\r\n");
    return 0;
}
 
bool login(char * sLogin)
{
    bool bRet = false;
    time_t t;time(&t);
    tm * ptm = localtime(&t);
    sLogin[4] = '\0';
    char s[1024];
    sprintf(s,"%02d",ptm->tm_mon + 1);
    strcat(sLogin,s);
    printf("Login string must be less then 1024 chars\r\n");
    printf("Enter login>");
    scanf("%s",&s);
    if(strcmp(sLogin,s) == 0)
        bRet = true;
    return bRet;
}
NIch
 Аватар для NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
27.07.2011, 10:31     C++ Проверка логин\пароль #29
Слушай, -=ЮрА=-, готов проверить и твои и свои навыки, но посмотри опять на свою программу. Запускаю, а там опять 2 окна. Может так и должно быть?
Отодвигаю окно с вводом пароля в сторону, а прям под ним окно с надписью "Вы взломали программу"
Миниатюры
C++ Проверка логин\пароль  
mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
27.07.2011, 10:32     C++ Проверка логин\пароль #30
Цитата Сообщение от -=ЮрА=- Посмотреть сообщение
ну мне интересно взломаите ли вы сейчас!
demo_simple2.zip
Вводим любые значения, улыбаемся и машем!!!

И да, под основным окном висит как-раз об успешном завершении
NIch
27.07.2011, 10:37
  #31

Не по теме:

Вообще похоже на CrackMe...Видели, знаем))) Интересно будет посмотреть)))

-=ЮрА=-
Заблокирован
Автор FAQ
27.07.2011, 10:41     C++ Проверка логин\пароль #32
mimicria, да признаю проект взломал

Добавлено через 2 минуты
NIch, ну это можно убрать ShowWindow(SW_HIDE), всё равно инпут на основное окно закрыт окном пароля...
grizlik78
27.07.2011, 10:41
  #33

Не по теме:

Цитата Сообщение от popoff17 Посмотреть сообщение
кто такой "ТС"?
Если посмотришь на свои сообщения в этой теме, туда где дата и время сообщения указаны, то увидишь, что ТС это ты От англ. "Топик-стартер", то есть автор темы.

mimicria
return (true);
 Аватар для mimicria
1956 / 1093 / 91
Регистрация: 19.04.2011
Сообщений: 2,344
27.07.2011, 11:05     C++ Проверка логин\пароль #34
Цитата Сообщение от popoff17 Посмотреть сообщение
Другими словами: будь вы преподом, по пятибальной шкале на сколько бы оценили мой код?
Оценка 2.
Удалите файл access и посмотрите что получилось
NIch
 Аватар для NIch
399 / 310 / 27
Регистрация: 17.03.2010
Сообщений: 1,120
27.07.2011, 11:05     C++ Проверка логин\пароль #35
-=ЮрА=-, не буду патчить твою программу, лень)))
Вот по этому адресу 00401505 меняем в отладчике JE на JNE и вводим любой пароль)))
Таким же макаром можно найти сам пароль, но если он меняется постоянно, то лучше попросить программу соглашаться на любой...
Вот скрины (прям как пособие для начинающик крекеров):
Миниатюры
C++ Проверка логин\пароль   C++ Проверка логин\пароль   C++ Проверка логин\пароль  

C++ Проверка логин\пароль  
popoff17
10 / 10 / 2
Регистрация: 13.07.2010
Сообщений: 206
27.07.2011, 13:16  [ТС]     C++ Проверка логин\пароль #36
Цитата Сообщение от mimicria Посмотреть сообщение
Оценка 2.
Удалите файл access и посмотрите что получилось
ну да... прога вылетела со свистом... я думал консоль просто отобразит что нет файла(11 строка):

C++
1
if (!access.is_open()) std::cout<<"not open file!";
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.07.2011, 13:33     C++ Проверка логин\пароль
Еще ссылки по теме:

C++ Исправить регулярку, чтобы в rgxm записывалось последовательно логин, пароль, адрес сервера, порт и имя потока
C++ Логин и пароль из файла
C++ Меню логин пароль

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
-=ЮрА=-
Заблокирован
Автор FAQ
27.07.2011, 13:33     C++ Проверка логин\пароль #37
Цитата Сообщение от NIch Посмотреть сообщение
-=ЮрА=-, не буду патчить твою программу, лень)))
Вот по этому адресу 00401505 меняем в отладчике JE на JNE и вводим любой пароль)))
Таким же макаром можно найти сам пароль, но если он меняется постоянно, то лучше попросить программу соглашаться на любой...
Вот скрины (прям как пособие для начинающик крекеров):
Не знал, спасибо за ликбез.
Yandex
Объявления
27.07.2011, 13:33     C++ Проверка логин\пароль
Ответ Создать тему
Опции темы

Текущее время: 02:24. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru