ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

Циклический инкремент паролей
  #1  
Старый 19.05.2010, 18:19
Pashkela
Динозавр
Регистрация: 10.01.2008
Сообщений: 2,841
Провел на форуме:
9220514

Репутация: 3338


Отправить сообщение для Pashkela с помощью ICQ
По умолчанию Циклический инкремент паролей

Только начал изучать С под Linux, просьба отнестись с пониманием)

Вот у меня такой код, для брута паролей по набору символов:
Код:
#include <stdio.h>
// Сам брут
int go(int ii,char *def_pass,int def_len,char *nabor,int len,char *current){
	unsigned int i=0;  
        while (i < len) {
		current[ii-1] = nabor[i]; // добавляем новый символ
                printf("%s\r",current);// Выводим текущую комбинацию             
		if (ii >1 ){
                     go(ii-1,def_pass,def_len,nabor,len,current);// Рекурсивно вызываем сами себя для заполнения всех позиций
		}else{
                        char *check=current; // Проверяем текущую комбинацию
                        if (strncmp(check,def_pass,def_len) == 0){ // Если совпало
			    printf("[+]Password found! => %s\n",check);
			    exit(1);
			}
                        check="";// Очищаем переменную с текущим паролем
		}
                i++;
	}
}
int main (int argc, char *argv[])
{
        char *def_pass="013283";// Пароль, который надо найти
        unsigned int def_len = strlen(def_pass);// Длина пароля 
	char *nabor="0123456789";// Набор символов, из которых будем генерить пароль
        unsigned int len = strlen(nabor); // Длина набора
	unsigned int i=1;// Минимальная длина пароля
	char *buf;
        while(i <= len){
		printf("[-]Pass length:%d\n",i);
		buf=calloc(sizeof(char),i+1); // Заполняем нулями по длине текущего пароля
		go(i,def_pass,def_len,nabor,len,buf); // Отправляем на брут
                i++;
	}
}
Все работает, но очень медленно. Натолкнулся на такую статью:

http://www.xakep.ru/post/22587/default.asp

но там пример на С++, внимание вопрос:

как внедрить данную идею - "Циклический инкремент паролей" - в код выше. Просто раньше с ассемблерными вставками и вообще программированием на С под никсами не сталкивался. В идеале готовый пример. Спасибо.
 
Ответить с цитированием
 



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Анализ паролей пользователей Windows Live Hotmail cupper Мировые новости 5 06.10.2009 23:52
Менеджер паролей RoboForm добрался до браузера Chrome jerrri Мировые новости 0 28.09.2009 17:49
Менеджер паролей от Sticky Password Zek Soft - Windows 0 24.03.2006 18:20



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ