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

Перебор символов - C++

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
Romadzao
7 / 7 / 1
Регистрация: 02.07.2012
Сообщений: 120
04.07.2012, 17:07     Перебор символов #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
42
43
44
45
46
47
48
49
#include "stdio.h" 
#include "windows.h" 
#include <conio.h>
 
int main(int argc, char* argv[]) 
{
        static char szPassword[256];                  // Буфер для хранения текущего пароля
        ZeroMemory(szPassword, sizeof(szPassword));  // Начинаем перебирать с пустого пароля
 
        static char szAlphabet[256];               // Алфавит, т.е. набор символов для перебора 
        strcpy(szAlphabet, "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz_0123456789"); 
 
        static unsigned char bAlphabet[256]; 
        ZeroMemory(bAlphabet, sizeof(bAlphabet)); 
 
        int i = 0, k = 0; 
        while (TRUE) 
        { 
                bAlphabet[k] = (unsigned char)szAlphabet[i]; 
                if (!szAlphabet[i]) 
                        break; 
                k = (unsigned char)szAlphabet[i]; 
                i++; 
        } 
 
        while (TRUE) 
        { 
                __asm 
                { 
                    pushad 
                    mov edi,offset szPassword 
                    mov ebx,offset bAlphabet 
                L1: movzx eax,byte ptr [edi] 
                    xlat 
                    cmp al,0 
                    je L3 
                    mov [edi],al 
                    jmp L5 
 
                L3: xlat 
                    stosb 
                    jmp L1 
 
                L5: popad 
                } 
                printf("%s\n", szPassword); // И как тут сравнивать?
        } 
        return 0; 
}
И вот вопрос: если после printf("%s\n", szPassword); что-нибудь делать, например вызывать getch(); то всё работает нормально, а если вставить проверку слова
C++
1
if(szPassword=="Pass"){printf("Фук йеех! Подошло!");}
то проверку if программка игнорирует. Я подозреваю, что так szPassword=="Pass" сравнивать нельзя, тогда напишите пожалуйста как сравнивать можно или предложите способы ускорения процесса перебора.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.07.2012, 17:07     Перебор символов
Посмотрите здесь:

Перебор списка C++
Перебор C++
Cудоку перебор C++
Написать перебор символов в строке и сортировку массива структур C++
Перебор комбинаций C++
C++ Cделать перебор id-ов
Перебор C++
C++ Как сделать чтобы перебор символов шел до конца строки? Если у меня например в ней есть пробелы?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Кот Ангенс
 Аватар для Кот Ангенс
317 / 267 / 37
Регистрация: 24.05.2012
Сообщений: 629
04.07.2012, 17:10     Перебор символов #2
C
1
2
3
4
5
#include <string.h>
 
...
 
if (!strcmp(szPassword, "Pass")) { ... }
Romadzao
7 / 7 / 1
Регистрация: 02.07.2012
Сообщений: 120
04.07.2012, 17:14  [ТС]     Перебор символов #3
Спасибо, не ожидал такого быстрого ответа!
Yandex
Объявления
04.07.2012, 17:14     Перебор символов
Ответ Создать тему
Опции темы

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