• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst]Fehler beim kompilieren von John

Ich habe mir die sources von john the ripper jumbo heruntergeladen (aktuelle version john-1.7.8-jumbo-5.tar.gz).

Wenn ich es ganz normal durchlaufen lasse dann klappt auch alles wie es soll. Ich möchte aber zwecks performance beide Kerne meines Prozessors nutzen und hierfür ist eine Änderung im makefile notwendig:

Code:
#
# This file is part of John the Ripper password cracker,
# Copyright (c) 1996-2011 by Solar Designer
#
# ...with changes in the jumbo patch, by various authors
#

CC = gcc
AS = $(CC)
LD = $(CC)
CPP = $(CC)
CP = cp
LN = ln -f -s
RM = rm -f
TR = tr
SED = sed
NULL = /dev/null
CPPFLAGS = -E

## Uncomment the TWO lines below for MPI (can be used together with OMP as well)
## If you experience problems with MPI_Barrier, remove -DJOHN_MPI_BARRIER
## If you experience problems with MPI_Abort, remove -DJOHN_MPI_ABORT
CC = mpicc -DHAVE_MPI -DJOHN_MPI_BARRIER -DJOHN_MPI_ABORT
MPIOBJ = john-mpi.o

OMPFLAGS =
# gcc with OpenMP
#OMPFLAGS = -fopenmp
# Sun Studio with OpenMP (set the OMP_NUM_THREADS env var at runtime)
#OMPFLAGS = -xopenmp
# icc with OpenMP (for make target linux-x86-64-icc)
#OMPFLAGS = -openmp

Wie man sieht habe ich die beiden rautezeichen entfernt damit der MPI support funktioniert. Beim kompilieren hakt er dann aber an folgender Stelle:

Code:
ypt -o ../run/john
gcc: libtool:: Datei oder Verzeichnis nicht gefunden
gcc: link:: Datei oder Verzeichnis nicht gefunden
mpicc: No such file or directory
make[1]: *** [../run/john] Fehler 1
make[1]: Leaving directory `/home/stefan/src/john-1.7.8-jumbo-5/src'
make: *** [linux-x86-64] Fehler 2
stefan@linux-ufn8:~/src/john-1.7.8-jumbo-5/src>

Ich habe in yast nachgeschaut und libtool ist instaliert. Das Paket "link" konnte ich aber nicht finden. Deswegen jetzt die Frage wie ich das Problem beheben kann?
 
lam-devel - Local Area Multicomputer

falls das gemeint sein sollte ja ist installiert.

Code:
stefan@linux-ufn8:~> mpicc --version
gcc (SUSE Linux) 4.5.1 20101208 [gcc-4_5-branch revision 167585]
Copyright (C) 2010 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

stefan@linux-ufn8:~>
Gerade die jumbo edition mit multicore support habe ich leider nirgends als rpm gefunden. Wenn es aber bei anderen auch klappt dann müsste dies doch bei mir auch funktionieren.

Mich interessiert besonders die jumbo version weil diese auch rar und pdf (so ein passwortgeschütztes rar oder pdf file kann ich schnell selbst erstellen) unterstützt und aus Neugier möchte ich einfach mal wissen was für Leistung so in meinem PC steckt.
 
Ich wollte das auch schon auf der mailing liste von john the ripper posten doch irgendwie bekomme ich das nicht gebacken.

http://www.openwall.com/lists/john-users/

Dieses Programm blists habe ich schon heruntergeladen und kompiliert doch bei dem hinzufügen der mailbox gibt es wohl probleme

Code:
stefan@linux-ufn8:~/src/blists-1.0> ./bindex john-users
Failed to parse the mailbox: john-users
stefan@linux-ufn8:~/src/blists-1.0>

Ich muss auch ganz ehrlich sagen diese ganze sache mit dem mailboxen damit bin ich nicht wirklich aufgewachsen - war eindeutig vor meiner Zeit
 
Mit dem Befehl "export PATH=/usr/lib64/mpi/gcc/openmpi/bin:$PATH" konnte ich das Problem lösen. Er ist also beim kompilieren dann sauber durchgelaufen.

Das nächste Problem ist aber wenn ich john aufrufe:
Code:
./john: error while loading shared libraries: libopen-rte.so.0: cannot open shared object file: No such file or directory
 
Ich habe endlich die Lösung selber gefunden. :D

Code:
nano /etc/ld.so.conf

dort die "/usr/lib64/mpi/gcc/openmpi/lib64" eintragen da ist nämlich die libopen-rte.so.0 drin die john benötigt.

Zitat:
"ldconfig creates, updates, and removes the necessary links and cache (for use by the run-time linker"

Aber das reicht noch nicht. Mit dem Befehl:

Code:
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/lib64/mpi/gcc/openmpi/lib64

wird wohl noch einmal darauf verwiesen. Hab zwar nicht so ganz verstanden warum man da zweimal den Verweis machen muss weil ich dachte das genau für den job ldconfig zuständig ist damit es john mitteilt in welchem Verzeichnis die besagte Datei zu finden ist aber sei es drum nun läuft john im multicore betrieb.

Hier mal ein kleiner Auszug:
Code:
stefan@linux-ufn8:~/src/john-1.7.8-jumbo-5/run> mpirun -np 2 john --test

zeigt mir dann mit top folgendes an:

Code:
  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                       
  825 stefan    20   0 38720 4520 2516 R   97  0.1   0:10.67 john                          
  824 stefan    20   0 38720 4520 2516 R   91  0.1   0:09.89 john

Danke für die Hilfe
 
Oben