Skip to content

adhfshi/ParDictAttack

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

32 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

The "hash_gen.cpp" file is used to generate hash values from plain text and store the data into hash_value.dat file. This is simluating that the database and OS in real world store user passwords. 

Compile "hash_gen.cpp" file by using command "g++ -o hash_gen hash_gen.cpp". If you want to generate hashs for different plain text, please modify the "hash_gen.cpp" directly.

The "cracker.cpp" file is used to dictionary attack. We use "clock()" function to time the program. Compile the code using command "g++ -o cracker cracker.cpp"

Using command "./cracker $dictionary_path $hash_value.dat_path" to crack the password hash that saved inside the .dat file. 

=================================================================
Update 3/17/2016
Add parallelized programe (openMP version) to github.

Use command "g++ -fopenmp -o crackeromp cracker_omp.cpp " to compile "cracker_omp.cpp" file and submit bash "crackeromp.bash" to discovery cluster to run.

output file can be found in output folder.

=================================================================
Update 3/28/2016
Clean up folder. You can find sequential code in "seq_code" folder and Parallelized code in "par_code" folder.

Fix errors in SHA256.h file and regenerate correct hash list.

==================================================================
Update 3/29/2016
Added cracker.cu file. You can find it in "par_code/cudaonly" folder.
To compile and run the program, please follow the below steps:
1. "nvcc -G -g -lineinfo -o crackercu cracker.cu" --- compile the .cu file
2. "bsub -Is -XF -q par-gpu-2 -n 1 /bin/bash" -- use par-gpu-2 queue since our program designed for Tesla K40 GPU (useing K20 GPU will lead a memory leak error)
3. "./crackercu $dictionary_path $hash_value.dat_path" --- run the program. Please use "10_million_password_list_top_10000.txt" as the dictionary and "hash_value.dat" as the input hash value. Make sure you put a correct path.

Please load the following module:
1. gnu-4.4-compilers 
2. fftw-3.3.3
3. platfor-mpi
4. cuda-7.0
5. oracle_java-1.7u40

====================================================================
Update 12/4/2016
Added MPI+CUDA code, you can find them in "par_code/cudampi"
To compile and run the program, please follow the below steps:
1. "mpicc -c mpi.c -o mpi.o" this well compile "mpi.c" file
2. "nvcc -c crackerMPI.cu -o cracker.o" this will comile .cu file
3. "mpicc mpi.o cracker.o -L/shared/apps/cuda7.0/lib64 -lcudart -lstdc++ -o final" this will combin mpi file and cuda file
4. "bsub < cudampi.bash" submit thie job. Please modify the bash file and make sure you put the correct path of both "hash_value.dat1" file and dictionary file. All dictionary files can be found in dictionary folder.

If you can not run the cuda+mpi code, please let me know. And we will keep updating our github repo. 

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Packages

No packages published