Jump to content
nedo

[c++ + wxWidgets] Simple word list generator

Recommended Posts

Posted (edited)

Citeam zilele trecute solicitarea cuiva pentru un word list.

M-am gandit sa fac eu unul.

Programul este scris in c++ iar pentru interfata grafica este utilizat wxWidgets, deci pentru cei care vor sa si-l compileze singuri(aveti atasat proiectul code::blocks) aveti nevoie de librariile wxwidgets.

Va avertizez totusi ca atunci cand genereaza wordlist-ul interfata se v-a bloca, nu il inchideti pana cand nu termina. Va va anunta printr-un message box.

De asemenea luati aminte ca wordlisturile sunt enorme, spre exemplu pentru toate combinatiile de 6 caractere cu un folosind doar literele de la a la z, fara majuscule a generat un fisier de 1.9 gb.

Il folositi pe propria raspundere. De asemenea daca cineva are o varianta mai eficienta pentru generarea cuvintelor decat aceasta:


void WordlistMakerFrame::makeWordlist(std::string& word, std::string& charSet, int wordSize, std::ofstream& fOut)
{
if(wordSize == 0)
{
for(unsigned int i = 0; i < charSet.size(); i++)
{
word[wordSize] = charSet[i];
fOut << word << std::endl;
}
word[0] = charSet[0];
}
else
{
for(unsigned int i = 0; i < charSet.size(); i++)
{
word[wordSize] = charSet[i];
makeWordlist(word, charSet, (wordSize - 1), fOut);

}
}
}

Sa imi spuna si mie. Mi-am batut capul cateva ore bune pentru a gasii o functie recursiva cat de cat eficienta si corecta.(E scrisa de mine).

Sper sa va placa.

Le: Pentru paranoici link scan pe virus total al versiunii de release

click

Edit 24.03.2012

Am revenit cu o noua versiune, oarecum imbunatatita + un link de download nou deoarece cel vechi se pare ca a fost sters.

In aceasta versiune generarea wordlistului se face intr-un thread separat interfata ne mai fiind blocata.

Momentan threadul nu poate fii oprit decat prin iesirea din aplicatie deoarece threadul invoca o functie recursiva, cea de mai sus, si aceasta nu se poate opri inainte sa isi termine executia. Voi incerca sa rezolv aceasta problema ... probabil trebuie sa fac executia altfel in interiorul clasei threadului. Eventual o sa incerc sa folosesc mai multe threaduri.

In acest moment aplicatia pe un dual core foarte slab a generat aproximativ 8 milioane de combinatii de 5 caractere cu un charset a-z in cateva minute.

Sper sa va foloseasca, si daca mai aveti vreo sugestie va stau la dispozitie.

Link catre proiectul codeblocks aici

In folderele bin/debug si bin/release aveti cele 2 versiuni ale aplicatiei cu cele 2 dll-uri necesare rulari lui.

Edited by nedo
  • Upvote 1

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.



×
×
  • Create New...