changeset 718:a212369fcc6c draft

Merge commit '7524c24e37492467c93f5f47427994fa2281daf3'
author Nick <nick@somerandomnick.ano>
date Sun, 30 Oct 2011 18:27:46 +0000
parents 0d4280abf12d (current diff) 766789d6197d (diff)
children 284cc8436997 a473b4839a88
files contrib/splicex.tgz
diffstat 11 files changed, 359 insertions(+), 160 deletions(-) [+]
line wrap: on
line diff
Binary file contrib/splicex.tgz has changed
--- a/contrib/splicex/CHANGES	Fri Oct 28 09:12:04 2011 +0000
+++ b/contrib/splicex/CHANGES	Sun Oct 30 18:27:46 2011 +0000
@@ -25,3 +25,39 @@
 		via Cython. see README for dependencies
 		and installation details.
 		
+		SpliceX compiler flags patched. recent
+		update did not distinguish:
+
+			/usr/include/<python version>
+
+				-FROM-
+
+			/usr/local/include/<python version>
+
+		Thus, if you have debian python-dev or 
+		source python-dev the ./configure script
+		should choose the appropriate option.
+		if the configure still failed to locate
+		the python development files (headers)
+		please let me know and I will correct.
+
+		SpliceX can now optionally do a pure
+		python install. This cuts down on
+		dependencies and is useful if you just
+		want to test, try, and/or debug.
+
+		SpliceX now detects invalid arguments
+		and prints with error message.
+
+	d3v11 - Sat Oct 29 2011:
+		
+		Old timing bug is now fixed. --time now
+		how a consistant tracking of how many
+		passwords and how much time has elapsed
+		among each brute force algorithm. This
+		new patch also simplified the code and
+		makes the functions faster. Much code
+		has been trimmed from splicex without
+		removing any options or functionality.
+
+		--no-char bug fixed
--- a/contrib/splicex/README	Fri Oct 28 09:12:04 2011 +0000
+++ b/contrib/splicex/README	Sun Oct 30 18:27:46 2011 +0000
@@ -21,33 +21,85 @@
 
 	d3v11 <d3v11@d3v11.ano>
 
-DEPENDS ON:
 
-	python (>=2.6), python-dev(>=2.6), cython (>=0.12.1), 
-	gcc (>=4.4.3), bash (>=4.1.5), man (>=2.5.7)
 
 (UN)INSTALL:
 
-	SOURCE:
+	You may optionally install splicex with cython. Doing so takes
+	longer to install because of compile times but splicex will
+	also be 20% to 35% faster, depending on your system. I recommend
+	this option if you intend on putting splicex to long-term use.
+	If your goal is simply to test, try, and/or debug splicex then
+	using the pythonic install will be more practical.
 
-		./configure <python[version]>
-		make compile
+	NOTES:
+
+		If you installed Python from source you can ignore
+		the python-dev dependency below. However, your source
+		install of Python must have the development files. IE:
+
+		tar xvf Python-*.tgz
+		cd Python-*
+		./configure --with-pydebug
 		make install
 
-	DEBIAN/UBUNTU:
+		This generates Python.h and structmember.h, which are
+		needed for gcc to compile splicex.
+
+	DEPENDS ON:
+
+		python (>=2.6), python-dev(>=2.6), cython (>=0.12.1), 
+		gcc (>=4.4.3), bash (>=4.1.5), man (>=2.5.7)
+
+		SOURCE:
+
+			./configure <python[version]>
+			make compile
+			make install
 
-		./configure <python[version]>
-		make compile
-		make install-deb
+		DEBIAN/UBUNTU:
+
+			./configure <python[version]>
+			make compile
+			make install-deb
+
+		UNINSTALL:
+	
+			SOURCE:
+		 		make uninstall
+
+			DEBIAN/UBUNTU:
+		 		apt-get remove splicex
 
-	UNINSTALL:
+PYTHONIC (UN)INSTALL:
+
+	You make optionally install splicex as pure python.
+	Install times are quick but splicex will be 20% to 35%
+	slower than compiling an executable binary with the
+	cython + gcc option above. I recommend using this option
+	if you simply want to test, try, and/or debug splicex.
+
+	DEPENDS ON:
+
+		python (>=2.6), bash (>=4.1.5), man (>=2.5.7)
+
+		SOURCE:
+
+			./configure <python[version]> --no-compile
+			make install
+
+		DEBIAN/UBUNTU:
+
+			./configure <python[version]> --no-compile
+			make install-deb
+
+		UNINSTALL:
 	
-		source:
-		 make uninstall
+			SOURCE:
+		 		make uninstall
 
-		debian/ubuntu:
-		 apt-get remove splicex
-
+			DEBIAN/UBUNTU:
+		 		apt-get remove splicex
 
 TOOLS:
 
--- a/contrib/splicex/configure	Fri Oct 28 09:12:04 2011 +0000
+++ b/contrib/splicex/configure	Sun Oct 30 18:27:46 2011 +0000
@@ -1,17 +1,23 @@
 #!/bin/bash
 if [ -z "$1" ]; then
- echo 'usage: ./configure <python[version]>'
+ echo 'usage: ./configure <python[version]> {optional: <--no-compile>}'
+ exit 1
+fi
+
+if [ -n "$2" ] && [[ "$2" != *--no-compile* ]]; then
+ echo 'usage: ./configure <python[version]> {optional: <--no-compile>}'
  exit 1
 fi
 
 echo -e 'checking dependencies: '
-echo -ne "      checking for python as <$1>..."
+echo -ne "	checking for python as <$1>..."
 if which `which "$1"` >/dev/null; then
  PYPATH=`which "$1"`
  echo -ne ' OK'
  echo
 else
  echo -ne ' FAILED'
+ echo
  exit 1
 fi
 
@@ -21,35 +27,69 @@
  echo
 else
  echo -ne ' FAILED'
+ echo
  exit 1
 fi
 
-echo -ne '	checking for cython...'
-if which cython >/dev/null; then
- echo -ne ' OK'
- echo
-else
- echo -ne ' FAILED'
- exit 1
+if [ -z "$2" ]; then
+ echo -ne '	checking for cython...'
+ if which cython >/dev/null; then
+  echo -ne ' OK'
+  echo
+ else
+  echo -ne ' FAILED'
+  echo
+  exit 1
+ fi
 fi
 
-echo -ne '	checking for gcc...'
-if which gcc >/dev/null; then
- echo -ne ' OK'
- echo
-else
- echo -ne ' FAILED'
- exit 1
+if [ -z "$2" ]; then
+ echo -ne '	checking for gcc...'
+ if which gcc >/dev/null; then
+  echo -ne ' OK'
+  echo
+ else
+  echo -ne ' FAILED'
+  echo
+  exit 1
+ fi
 fi
 
 echo
 echo  -ne "configuring splicex: "
 echo
-echo -e "       python version == $1"
-echo -e "       interpreter path == $PYPATH"
-echo -e "       compiler flags == gcc -I/usr/include/$1"
-sed -e s^PYTHON^"$1"^g src/make.in >Makefile
-sed -e s^PYTHON^"$PYPATH"^g src/splicex.py >build/splicex
-sed -e s^PYTHON^"$PYPATH"^g src/splicex-deshadow.py >build/splicex-deshadow
+echo -e "	python version == $1"
+echo -e "	interpreter path == $PYPATH"
+if [ -z "$2" ]; then
+ if [ -e /usr/include/"$1"/Python.h ] && [ -e /usr/include/"$1"/structmember.h ]; then
+  PYHEADERS="/usr/include/$1"
+  echo -e "	compiler flags == gcc -I /usr/include/$1"
+ elif [ -e /usr/local/include/"$1"/Python.h ] && [ -e /usr/local/include/"$1"/structmember.h ]; then
+  PYHEADERS="/usr/local/include/$1"
+  echo -e "	compiler flags == gcc -I /usr/local/include/$1"
+ else
+  echo -e "	Python.h and structmember.h could not be found... FAILED"
+  echo
+  exit 1
+ fi
+fi
+echo
+if [ -z "$2" ]; then
+ sed -e s^PYTHON^"$PYPATH"^g src/splicex.py >build/splicex || exit 1
+ sed -e s^PYTHON^"$PYPATH"^g src/splicex-deshadow.py >build/splicex-deshadow || exit 1
+fi
+sed -e s^PYTHON^"$PYPATH"^g src/splicex.pyx >build/splicex.pyx || exit 1
+sed -e s^PYTHON^"$PYPATH"^g src/deshadow.pyx >build/deshadow.pyx || exit 1
+echo -ne "	generating Makefile..."
+if [ -z "$2" ]; then
+ sed -e s^PYTHON^"$1"^g src/make.in >Makefile || exit 1
+ sed -i s^HEADERS^"$PYHEADERS"^g Makefile || exit 1
+ echo -ne ' DONE'
+ echo
+else
+ sed -e s^PYTHON^"$1"^g src/pymake.in >Makefile || exit 1
+ echo -ne ' DONE'
+ echo
+fi
 echo
 echo -e 'splicex configured'
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/splicex/src/deshadow.pyx	Sun Oct 30 18:27:46 2011 +0000
@@ -0,0 +1,7 @@
+#!PYTHON
+import sys; sys.tracebacklimit = 0
+from crypt import crypt
+TestHash = crypt(sys.argv[1], sys.argv[2])
+HashValue = sys.argv[3]
+if TestHash.__contains__(HashValue):
+ print("SHADOW CRACKED")
--- a/contrib/splicex/src/make.in	Fri Oct 28 09:12:04 2011 +0000
+++ b/contrib/splicex/src/make.in	Sun Oct 30 18:27:46 2011 +0000
@@ -1,10 +1,13 @@
 compile:
-	cython src/splicex.pyx -o build/splicex.c
-	gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I/usr/include/PYTHON -c build/splicex.c -o build/splicex.o
+	cython build/deshadow.pyx -o build/deshadow.c
+	gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I HEADERS -c build/deshadow.c -o build/deshadow.o
+	gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/deshadow.o -o build/deshadow.so
+
+	cython build/splicex.pyx -o build/splicex.c
+	gcc -pthread -fno-strict-aliasing -DNDEBUG -g -fwrapv -O2 -Wall -Wstrict-prototypes -fPIC -I HEADERS -c build/splicex.c -o build/splicex.o
 	gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions build/splicex.o -o build/splicex.so
 
 install-deb:
-	make preinstall
 	mkdir DEBIAN/splicex
 	mkdir DEBIAN/splicex/DEBIAN
 	mkdir DEBIAN/splicex/usr
@@ -13,7 +16,8 @@
 	mkdir DEBIAN/splicex/etc/splicex
 	cp DEBIAN/control DEBIAN/splicex/DEBIAN/control
 	cp build/splicex DEBIAN/splicex/usr/bin/splicex
-	cp build/splicex.so /etc/splicex/splicex.so
+	cp build/splicex.so DEBIAN/etc/splicex/splicex.so
+	cp build/deshadow.so DEBIAN/etc/splicex/deshadow.so
 	cp build/splicex-deshadow DEBIAN/splicex/usr/bin/splicex-deshadow
 	chmod +x DEBIAN/splicex/usr/bin/splicex
 	chmod +x DEBIAN/splicex/usr/bin/splicex-deshadow
@@ -36,6 +40,7 @@
 	mkdir /etc/splicex
 	cp build/splicex /usr/bin/splicex
 	cp build/splicex.so /etc/splicex/splicex.so
+	cp build/deshadow.so /etc/splicex/deshadow.so
 	cp build/splicex-deshadow /usr/bin/splicex-deshadow
 	chmod +x /usr/bin/splicex
 	chmod +x /usr/bin/splicex-deshadow
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/splicex/src/pymake.in	Sun Oct 30 18:27:46 2011 +0000
@@ -0,0 +1,62 @@
+install-deb:
+	mkdir DEBIAN/splicex
+	mkdir DEBIAN/splicex/DEBIAN
+	mkdir DEBIAN/splicex/usr
+	mkdir DEBIAN/splicex/usr/bin
+	mkdir DEBIAN/splicex/etc
+	mkdir DEBIAN/splicex/etc/splicex
+	cp DEBIAN/control DEBIAN/splicex/DEBIAN/control
+	cp build/splicex.pyx DEBIAN/splicex/usr/bin/splicex
+	cp build/deshadow.pyx DEBIAN/splicex/usr/bin/splicex-deshadow
+	chmod +x DEBIAN/splicex/usr/bin/splicex
+	chmod +x DEBIAN/splicex/usr/bin/splicex-deshadow
+	cp src/splicex.list DEBIAN/splicex/etc/splicex/splicex.list
+	cp src/manual DEBIAN/splicex/etc/splicex/splicex.1
+	gzip DEBIAN/splicex/etc/splicex/splicex.1
+	cp src/splicex.L DEBIAN/splicex/etc/splicex/splicex.L
+	cp src/splicex.N DEBIAN/splicex/etc/splicex/splicex.N
+	cp src/splicex.S DEBIAN/splicex/etc/splicex/splicex.S
+	cp src/splicex.LN DEBIAN/splicex/etc/splicex/splicex.LN
+	cp src/splicex.LS DEBIAN/splicex/etc/splicex/splicex.LS
+	cp src/splicex.NS DEBIAN/splicex/etc/splicex/splicex.NS
+	cp src/splicex.ALL DEBIAN/splicex/etc/splicex/splicex.ALL
+	dpkg-deb --build DEBIAN/splicex
+	dpkg -i DEBIAN/splicex.deb
+	rm -rf DEBIAN/splicex DEBIAN/splicex.deb
+
+install:
+	make preinstall
+	mkdir /etc/splicex
+	cp build/splicex.pyx /usr/bin/splicex
+	cp build/deshadow.pyx /usr/bin/splicex-deshadow
+	chmod +x /usr/bin/splicex
+	chmod +x /usr/bin/splicex-deshadow
+	cp src/splicex.list /etc/splicex/splicex.list
+	cp src/manual /etc/splicex/splicex.1
+	gzip /etc/splicex/splicex.1
+	cp src/splicex.L /etc/splicex/splicex.L
+	cp src/splicex.N /etc/splicex/splicex.N
+	cp src/splicex.S /etc/splicex/splicex.S
+	cp src/splicex.LN /etc/splicex/splicex.LN
+	cp src/splicex.LS /etc/splicex/splicex.LS
+	cp src/splicex.NS /etc/splicex/splicex.NS
+	cp src/splicex.ALL /etc/splicex/splicex.ALL
+
+uninstall:
+	rm -rf /etc/splicex
+	rm  -f /usr/bin/splicex
+	rm  -f /usr/bin/splicex-deshadow
+
+clean:
+	rm Makefile DEBIAN/splicex DEBIAN/*.deb build/* -rf
+
+preinstall:
+	rm -rf /etc/splicex
+	rm  -f /usr/bin/splicex
+	rm  -f /usr/bin/splicex-deshadow
+	rm DEBIAN/splicex DEBIAN/*.deb -rf
+
+update:
+	wget http://www.d3v11.ano/splicex.tgz
+	tar -xvf ../splicex.tgz --directory='../'
+	rm ../splicex.tgz
--- a/contrib/splicex/src/splicex-deshadow.py	Fri Oct 28 09:12:04 2011 +0000
+++ b/contrib/splicex/src/splicex-deshadow.py	Sun Oct 30 18:27:46 2011 +0000
@@ -1,7 +1,4 @@
 #!PYTHON
 import sys; sys.tracebacklimit = 0
-from crypt import crypt
-TestHash = crypt(sys.argv[1], sys.argv[2])
-HashValue = sys.argv[3]
-if TestHash.__contains__(HashValue):
- print("SHADOW CRACKED")
+sys.path.append('/etc/splicex')
+import deshadow
--- a/contrib/splicex/src/splicex.py	Fri Oct 28 09:12:04 2011 +0000
+++ b/contrib/splicex/src/splicex.py	Sun Oct 30 18:27:46 2011 +0000
@@ -1,4 +1,4 @@
 #!PYTHON
-import sys
+import sys; sys.tracebacklimit = 0
 sys.path.append('/etc/splicex')
 import splicex
--- a/contrib/splicex/src/splicex.pyx	Fri Oct 28 09:12:04 2011 +0000
+++ b/contrib/splicex/src/splicex.pyx	Sun Oct 30 18:27:46 2011 +0000
@@ -275,6 +275,8 @@
   DebugSwitch = True
  elif '--help' in arg:
   sys.exit(HELP())
+ elif arg != sys.argv[0]:
+  sys.exit(SpliceX + 'error: invalid argument: ' + arg)
 
 if DebugSwitch is False:
  sys.tracebacklimit = 0
@@ -1811,7 +1813,6 @@
        for WriteStates in WriteSave:
         FILE.write(WriteStates + "\n")
        FILE.close()
-      PassAmount += 1
       Timer = int(round(float(time.time() - StartTime)))
       Speed = PassAmount / Timer
       NewShowWord = ShowWord[x]
@@ -1820,7 +1821,7 @@
       if timeup == sleep_now:
        time.sleep(sleep_for)
        timeup = 0
-      print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+      print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
       output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
       if test == None:
        print(output)
@@ -1828,11 +1829,10 @@
        sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
       else:
        print(output)
+      PassAmount += 1
 
 def BF2():
     global timeup, PassAmount
-    if NoChar is True:
-     sys.exit(SpliceX + 'unable to find password')
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for x in range(StateW, WordCount):
@@ -1867,7 +1867,6 @@
         for WriteStates in WriteSave:
          FILE.write(WriteStates + "\n")
         FILE.close()
-       PassAmount += 1
        Timer = int(round(float(time.time() - StartTime)))
        Speed = PassAmount / Timer
        NewShowWord = Char1[a] + ShowWord[x]
@@ -1876,7 +1875,7 @@
        if timeup == sleep_now:
         time.sleep(sleep_for)
         timeup = 0
-       print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+       print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
        output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
        if test == None:
         print(output)
@@ -1884,9 +1883,9 @@
         sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
        else:
         print(output)
+       PassAmount += 1
 
        if ExhSwitch is False:
-        PassAmount += 1
         Timer = int(round(float(time.time() - StartTime)))
         Speed = PassAmount / Timer
         NewShowWord = ShowWord[x] + Char1[a]
@@ -1895,7 +1894,7 @@
         if timeup == sleep_now:
          time.sleep(sleep_for)
          timeup = 0
-        print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+        print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
         output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
         if test == None:
          print(output)
@@ -1903,11 +1902,10 @@
          sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
         else:
          print(output)
+        PassAmount += 1
 
 def BF3():
     global timeup, PassAmount
-    if NoChar is True:
-     sys.exit(SpliceX + 'unable to find password')
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -1944,7 +1942,6 @@
          for WriteStates in WriteSave:
           FILE.write(WriteStates + "\n")
          FILE.close()
-        PassAmount += 1
         Timer = int(round(float(time.time() - StartTime)))
         Speed = PassAmount / Timer
         NewShowWord = Char1[a] + ShowWord[x] + Char1[b]
@@ -1953,7 +1950,7 @@
         if timeup == sleep_now:
          time.sleep(sleep_for)
          timeup = 0
-        print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+        print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
         output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
         if test == None:
          print(output)
@@ -1961,9 +1958,9 @@
          sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
         else:
          print(output)
+        PassAmount += 1
 
         if ExhSwitch is False:
-         PassAmount += 1
          Timer = int(round(float(time.time() - StartTime)))
          Speed = PassAmount / Timer
          NewShowWord = Char1[a] + Char1[b] + ShowWord[x]
@@ -1972,7 +1969,7 @@
          if timeup == sleep_now:
           time.sleep(sleep_for)
           timeup = 0
-         print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+         print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
          output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
          if test == None:
           print(output)
@@ -1980,8 +1977,8 @@
           sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
          else:
           print(output)
-
          PassAmount += 1
+
          Timer = int(round(float(time.time() - StartTime)))
          Speed = PassAmount / Timer
          NewShowWord = ShowWord[x] + Char1[b] + Char1[a]
@@ -1990,7 +1987,7 @@
          if timeup == sleep_now:
           time.sleep(sleep_for)
           timeup = 0
-         print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+         print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
          output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
          if test == None:
           print(output)
@@ -1998,11 +1995,10 @@
           sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
          else:
           print(output)
+         PassAmount += 1
 
 def BF4():
     global timeup, PassAmount
-    if NoChar is True:
-     sys.exit(SpliceX + 'unable to find password')
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -2041,7 +2037,6 @@
           for WriteStates in WriteSave:
            FILE.write(WriteStates + "\n")
           FILE.close()
-         PassAmount += 1
          Timer = int(round(float(time.time() - StartTime)))
          Speed = PassAmount / Timer
          NewShowWord = Char1[c] + Char1[a] + ShowWord[x] + Char1[b]
@@ -2050,7 +2045,7 @@
          if timeup == sleep_now:
           time.sleep(sleep_for)
           timeup = 0
-         print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+         print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
          output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
          if test == None:
           print(output)
@@ -2058,9 +2053,9 @@
           sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
          else:
           print(output)
+         PassAmount += 1
 
          if ExhSwitch is False:
-          PassAmount += 1
           Timer = int(round(float(time.time() - StartTime)))
           Speed = PassAmount / Timer
           NewShowWord = Char1[b] + ShowWord[x] + Char1[a] + Char1[c]
@@ -2069,7 +2064,7 @@
           if timeup == sleep_now:
            time.sleep(sleep_for)
            timeup = 0
-          print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+          print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
           output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
           if test == None:
            print(output)
@@ -2077,8 +2072,8 @@
            sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
           else:
            print(output)
-
           PassAmount += 1
+
           Timer = int(round(float(time.time() - StartTime)))
           Speed = PassAmount / Timer
           NewShowWord = Char1[c] + Char1[a] + Char1[b] + ShowWord[x]
@@ -2087,7 +2082,7 @@
           if timeup == sleep_now:
            time.sleep(sleep_for)
            timeup = 0
-          print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+          print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
           output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
           if test == None:
            print(output)
@@ -2095,8 +2090,8 @@
            sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
           else:
            print(output)
-
           PassAmount += 1
+
           Timer = int(round(float(time.time() - StartTime)))
           Speed = PassAmount / Timer
           NewShowWord = ShowWord[x] + Char1[b] + Char1[a] + Char1[c]
@@ -2105,7 +2100,7 @@
           if timeup == sleep_now:
            time.sleep(sleep_for)
            timeup = 0
-          print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+          print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
           output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
           if test == None:
            print(output)
@@ -2113,11 +2108,10 @@
            sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
           else:
            print(output)
+          PassAmount += 1
 
 def BF5():
     global timeup, PassAmount
-    if NoChar is True:
-     sys.exit(SpliceX + 'unable to find password')
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -2158,7 +2152,6 @@
            for WriteStates in WriteSave:
             FILE.write(WriteStates + "\n")
            FILE.close()
-          PassAmount += 1
           Timer = int(round(float(time.time() - StartTime)))
           Speed = PassAmount / Timer
           NewShowWord = Char1[c] + Char1[a] + ShowWord[x] + Char1[b] + Char1[d]
@@ -2167,7 +2160,7 @@
           if timeup == sleep_now:
            time.sleep(sleep_for)
            timeup = 0
-          print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+          print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
           output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
           if test == None:
            print(output)
@@ -2175,9 +2168,9 @@
            sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
           else:
            print(output)
+          PassAmount += 1
 
           if ExhSwitch is False:
-           PassAmount += 1
            Timer = int(round(float(time.time() - StartTime)))
            Speed = PassAmount / Timer
            NewShowWord = Char1[c] + Char1[a] + Char1[b] + Char1[d] + ShowWord[x]
@@ -2186,7 +2179,7 @@
            if timeup == sleep_now:
             time.sleep(sleep_for)
             timeup = 0
-           print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+           print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
            output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
            if test == None:
             print(output)
@@ -2194,8 +2187,8 @@
             sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
            else:
             print(output)
-
            PassAmount += 1
+
            Timer = int(round(float(time.time() - StartTime)))
            Speed = PassAmount / Timer
            NewShowWord = ShowWord[x] + Char1[d] + Char1[b] + Char1[a] + Char1[c]
@@ -2204,7 +2197,7 @@
            if timeup == sleep_now:
             time.sleep(sleep_for)
             timeup = 0
-           print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+           print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
            output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
            if test == None:
             print(output)
@@ -2212,11 +2205,10 @@
             sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
            else:
             print(output)
+           PassAmount += 1
 
 def BF6():
     global timeup, PassAmount
-    if NoChar is True:
-     sys.exit(SpliceX + 'unable to find password')
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -2259,7 +2251,6 @@
             for WriteStates in WriteSave:
              FILE.write(WriteStates + "\n")
             FILE.close()
-           PassAmount += 1
            Timer = int(round(float(time.time() - StartTime)))
            Speed = PassAmount / Timer
            NewShowWord = Char1[e] + Char1[c] + Char1[a] + ShowWord[x] + Char1[b] + Char1[d]
@@ -2268,7 +2259,7 @@
            if timeup == sleep_now:
             time.sleep(sleep_for)
             timeup = 0
-           print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+           print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
            output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
            if test == None:
             print(output)
@@ -2276,9 +2267,9 @@
             sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
            else:
             print(output)
+           PassAmount += 1
 
            if ExhSwitch is False:
-            PassAmount += 1
             Timer = int(round(float(time.time() - StartTime)))
             Speed = PassAmount / Timer
             NewShowWord = Char1[d] + Char1[b] + ShowWord[x] + Char1[a] + Char1[c] + Char1[e]
@@ -2287,7 +2278,7 @@
             if timeup == sleep_now:
              time.sleep(sleep_for)
              timeup = 0
-            print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+            print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
             output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
             if test == None:
              print(output)
@@ -2295,8 +2286,8 @@
              sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
             else:
              print(output)
-
             PassAmount += 1
+
             Timer = int(round(float(time.time() - StartTime)))
             Speed = PassAmount / Timer
             NewShowWord = Char1[e] + Char1[c] + Char1[a] + Char1[b] + Char1[d] + ShowWord[x]
@@ -2305,7 +2296,7 @@
             if timeup == sleep_now:
              time.sleep(sleep_for)
              timeup = 0
-            print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+            print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
             output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
             if test == None:
              print(output)
@@ -2313,8 +2304,8 @@
              sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
             else:
              print(output)
-
             PassAmount += 1
+
             Timer = int(round(float(time.time() - StartTime)))
             Speed = PassAmount / Timer
             NewShowWord = ShowWord[x] + Char1[d] + Char1[b] + Char1[a] + Char1[c] + Char1[e]
@@ -2323,7 +2314,7 @@
             if timeup == sleep_now:
              time.sleep(sleep_for)
              timeup = 0
-            print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+            print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
             output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
             if test == None:
              print(output)
@@ -2331,11 +2322,10 @@
              sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
             else:
              print(output)
+            PassAmount += 1
 
 def BF7():
     global timeup, PassAmount
-    if NoChar is True:
-     sys.exit(SpliceX + 'unable to find password')
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -2380,7 +2370,6 @@
              for WriteStates in WriteSave:
               FILE.write(WriteStates + "\n")
              FILE.close()
-            PassAmount += 1
             Timer = int(round(float(time.time() - StartTime)))
             Speed = PassAmount / Timer
             NewShowWord = Char1[e] + Char1[c] + Char1[a] + ShowWord[x] + Char1[b] + Char1[d] + Char1[f]
@@ -2389,7 +2378,7 @@
             if timeup == sleep_now:
              time.sleep(sleep_for)
              timeup = 0
-            print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+            print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
             output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
             if test == None:
              print(output)
@@ -2397,9 +2386,9 @@
              sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
             else:
              print(output)
+            PassAmount += 1
 
             if ExhSwitch is False:
-             PassAmount += 1
              Timer = int(round(float(time.time() - StartTime)))
              Speed = PassAmount / Timer
              NewShowWord = Char1[e] + Char1[c] + Char1[a] + Char1[b] + Char1[d] + Char1[f] + ShowWord[x]
@@ -2408,7 +2397,7 @@
              if timeup == sleep_now:
               time.sleep(sleep_for)
               timeup = 0
-             print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+             print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
              output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
              if test == None:
               print(output)
@@ -2416,8 +2405,8 @@
               sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
              else:
               print(output)
-
              PassAmount += 1
+
              Timer = int(round(float(time.time() - StartTime)))
              Speed = PassAmount / Timer
              NewShowWord = ShowWord[x] + Char1[f] + Char1[d] + Char1[b] + Char1[a] + Char1[c] + Char1[e]
@@ -2426,7 +2415,7 @@
              if timeup == sleep_now:
               time.sleep(sleep_for)
               timeup = 0
-             print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+             print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
              output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
              if test == None:
               print(output)
@@ -2434,11 +2423,10 @@
               sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
              else:
               print(output)
+             PassAmount += 1
 
 def BF8():
     global timeup, PassAmount
-    if NoChar is True:
-     sys.exit(SpliceX + 'unable to find password')
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -2485,7 +2473,6 @@
               for WriteStates in WriteSave:
                FILE.write(WriteStates + "\n")
               FILE.close()
-             PassAmount += 1
              Timer = int(round(float(time.time() - StartTime)))
              Speed = PassAmount / Timer
              NewShowWord = Char1[g] + Char1[e] + Char1[c] + Char1[a] + ShowWord[x] + Char1[b] + Char1[d] + Char1[f]
@@ -2494,7 +2481,7 @@
              if timeup == sleep_now:
               time.sleep(sleep_for)
               timeup = 0
-             print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+             print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
              output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
              if test == None:
               print(output)
@@ -2502,9 +2489,9 @@
               sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
              else:
               print(output)
+             PassAmount += 1
 
              if ExhSwitch is False:
-              PassAmount += 1
               Timer = int(round(float(time.time() - StartTime)))
               Speed = PassAmount / Timer
               NewShowWord = Char1[f] + Char1[d] + Char1[b] + ShowWord[x] + Char1[a] + Char1[c] + Char1[e] + Char1[g]
@@ -2513,7 +2500,7 @@
               if timeup == sleep_now:
                time.sleep(sleep_for)
                timeup = 0
-              print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+              print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
               output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
               if test == None:
                print(output)
@@ -2521,8 +2508,8 @@
                sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
               else:
                print(output)
-
               PassAmount += 1
+
               Timer = int(round(float(time.time() - StartTime)))
               Speed = PassAmount / Timer
               NewShowWord = Char1[g] + Char1[e] + Char1[c] + Char1[a] + Char1[b] + Char1[d] + Char1[f] + ShowWord[x]
@@ -2531,7 +2518,7 @@
               if timeup == sleep_now:
                time.sleep(sleep_for)
                timeup = 0
-              print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+              print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
               output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
               if test == None:
                print(output)
@@ -2539,8 +2526,8 @@
                sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
               else:
                print(output)
-
               PassAmount += 1
+
               Timer = int(round(float(time.time() - StartTime)))
               Speed = PassAmount / Timer
               NewShowWord = ShowWord[x] + Char1[f] + Char1[d] + Char1[b] + Char1[a] + Char1[c] + Char1[e] + Char1[g]
@@ -2549,7 +2536,7 @@
               if timeup == sleep_now:
                time.sleep(sleep_for)
                timeup = 0
-              print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+              print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
               output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
               if test == None:
                print(output)
@@ -2557,11 +2544,10 @@
                sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
               else:
                print(output)
+              PassAmount += 1
 
 def BF9():
     global timeup, PassAmount
-    if NoChar is True:
-     sys.exit(SpliceX + 'unable to find password')
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -2610,7 +2596,6 @@
                for WriteStates in WriteSave:
                 FILE.write(WriteStates + "\n")
                FILE.close()
-              PassAmount += 1
               Timer = int(round(float(time.time() - StartTime)))
               Speed = PassAmount / Timer
               NewShowWord = Char1[g] + Char1[e] + Char1[c] + Char1[a] + ShowWord[x] + Char1[b] + Char1[d] + Char1[f] + Char1[h]
@@ -2619,7 +2604,7 @@
               if timeup == sleep_now:
                time.sleep(sleep_for)
                timeup = 0
-              print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+              print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
               output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
               if test == None:
                print(output)
@@ -2627,9 +2612,9 @@
                sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
               else:
                print(output)
+              PassAmount += 1
 
               if ExhSwitch is False:
-               PassAmount += 1
                Timer = int(round(float(time.time() - StartTime)))
                Speed = PassAmount / Timer
                NewShowWord = Char1[g] + Char1[e] + Char1[c] + Char1[a] +Char1[b] + Char1[d] + Char1[f] + Char1[h] + ShowWord[x]
@@ -2638,7 +2623,7 @@
                if timeup == sleep_now:
                 time.sleep(sleep_for)
                 timeup = 0
-               print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+               print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
                output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
                if test == None:
                 print(output)
@@ -2646,8 +2631,8 @@
                 sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
                else:
                 print(output)
-
                PassAmount += 1
+
                Timer = int(round(float(time.time() - StartTime)))
                Speed = PassAmount / Timer
                NewShowWord = ShowWord[x] + Char1[h] + Char1[f] + Char1[d] + Char1[b] + Char1[a] + Char1[c] + Char1[e] + Char1[g]
@@ -2656,7 +2641,7 @@
                if timeup == sleep_now:
                 time.sleep(sleep_for)
                 timeup = 0
-               print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+               print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
                output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
                if test == None:
                 print(output)
@@ -2664,11 +2649,10 @@
                 sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
                else:
                 print(output)
+               PassAmount += 1
 
 def BF10():
     global timeup, PassAmount
-    if NoChar is True:
-     sys.exit(SpliceX + 'unable to find password')
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -2719,7 +2703,6 @@
                 for WriteStates in WriteSave:
                  FILE.write(WriteStates + "\n")
                 FILE.close()
-               PassAmount += 1
                Timer = int(round(float(time.time() - StartTime)))
                Speed = PassAmount / Timer
                NewShowWord = Char1[i] + Char1[g] + Char1[e] + Char1[c] + Char1[a] + ShowWord[x] + Char1[b] + Char1[d] + Char1[f] + Char1[h]
@@ -2728,7 +2711,7 @@
                if timeup == sleep_now:
                 time.sleep(sleep_for)
                 timeup = 0
-               print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+               print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
                output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
                if test == None:
                 print(output)
@@ -2736,9 +2719,9 @@
                 sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
                else:
                 print(output)
+               PassAmount += 1
 
                if ExhSwitch is False:
-                PassAmount += 1
                 Timer = int(round(float(time.time() - StartTime)))
                 Speed = PassAmount / Timer
                 NewShowWord = Char1[h] + Char1[f] + Char1[d] + Char1[b] + ShowWord[x] + Char1[a] + Char1[c] + Char1[e] + Char1[g] + Char1[i]
@@ -2747,7 +2730,7 @@
                 if timeup == sleep_now:
                  time.sleep(sleep_for)
                  timeup = 0
-                print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+                print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
                 output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
                 if test == None:
                  print(output)
@@ -2755,8 +2738,8 @@
                  sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
                 else:
                  print(output)
-
                 PassAmount += 1
+
                 Timer = int(round(float(time.time() - StartTime)))
                 Speed = PassAmount / Timer
                 NewShowWord = Char1[i] + Char1[g] + Char1[e] + Char1[c] + Char1[a] + ShowWord[x] + Char1[b] + Char1[d] + Char1[f] + Char1[h] + ShowWord[x]
@@ -2765,7 +2748,7 @@
                 if timeup == sleep_now:
                  time.sleep(sleep_for)
                  timeup = 0
-                print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+                print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
                 output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
                 if test == None:
                  print(output)
@@ -2773,8 +2756,8 @@
                  sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
                 else:
                  print(output)
-
                 PassAmount += 1
+
                 Timer = int(round(float(time.time() - StartTime)))
                 Speed = PassAmount / Timer
                 NewShowWord = ShowWord[x] + Char1[h] + Char1[f] + Char1[d] + Char1[b] + Char1[a] + Char1[c] + Char1[e] + Char1[g] + Char1[i]
@@ -2783,7 +2766,7 @@
                 if timeup == sleep_now:
                  time.sleep(sleep_for)
                  timeup = 0
-                print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+                print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
                 output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
                 if test == None:
                  print(output)
@@ -2791,11 +2774,10 @@
                  sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
                 else:
                  print(output)
+                PassAmount += 1
 
 def BF11():
     global timeup, PassAmount
-    if NoChar is True:
-     sys.exit(SpliceX + 'unable to find password')
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -2848,7 +2830,6 @@
                  for WriteStates in WriteSave:
                   FILE.write(WriteStates + "\n")
                  FILE.close()
-                PassAmount += 1
                 Timer = int(round(float(time.time() - StartTime)))
                 Speed = PassAmount / Timer
                 NewShowWord = Char1[i] + Char1[g] + Char1[e] + Char1[c] + Char1[a] + ShowWord[x] + Char1[b] + Char1[d] + Char1[f] + Char1[h] + Char1[j]
@@ -2857,7 +2838,7 @@
                 if timeup == sleep_now:
                  time.sleep(sleep_for)
                  timeup = 0
-                print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+                print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
                 cmd = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace('USERNAME', User[u].replace(" ", "")))
                 if test == None:
                  print(output)
@@ -2865,9 +2846,9 @@
                  sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
                 else:
                  print(output)
+                PassAmount += 1
 
                 if ExhSwitch is False:
-                 PassAmount += 1
                  Timer = int(round(float(time.time() - StartTime)))
                  Speed = PassAmount / Timer
                  NewShowWord = Char1[i] + Char1[g] + Char1[e] + Char1[c] + Char1[a] + Char1[b] + Char1[d] + Char1[f] + Char1[h] + Char1[j] + ShowWord[x] 
@@ -2876,7 +2857,7 @@
                  if timeup == sleep_now:
                   time.sleep(sleep_for)
                   timeup = 0
-                 print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+                 print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
                  output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
                  if test == None:
                   print(output)
@@ -2884,8 +2865,8 @@
                   sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
                  else:
                   print(output)
-
                  PassAmount += 1
+
                  Timer = int(round(float(time.time() - StartTime)))
                  Speed = PassAmount / Timer
                  NewShowWord = ShowWord[x] + Char1[j] + Char1[h] + Char1[f] + Char1[d] + Char1[b] + Char1[a] + Char1[c] + Char1[e] + Char1[g] + Char1[i]
@@ -2894,7 +2875,7 @@
                  if timeup == sleep_now:
                   time.sleep(sleep_for)
                   timeup = 0
-                 print(SpliceX + str(Speed) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
+                 print(SpliceX + str(int(round(float(Speed)))) + "/s " + User[u].replace(" ", "") + " " + NewShowWord.replace(" ", ""))
                  output = os.popen(cmd.replace("PASSWORD", NewPassWd.replace(" ", "")).replace("USERNAME", User[u].replace(" ", ""))).read()
                  if test == None:
                   print(output)
@@ -2902,6 +2883,7 @@
                   sys.exit(Red + "[PASSWORD FOUND]: " + Green + NewShowWord + DefColour)
                  else:
                   print(output)
+                 PassAmount += 1
 
 def SBF1():
     for u in range(StateU, UserCount):
@@ -2940,8 +2922,6 @@
       print(NewShowWord.replace(" ", ""))
 
 def SBF2():
-    if NoChar is True:
-     sys.exit(0)
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for x in range(StateW, WordCount):
@@ -2984,8 +2964,6 @@
         print(NewShowWord.replace(" ", ""))
 
 def SBF3():
-    if NoChar is True:
-     sys.exit(0)
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -3033,8 +3011,6 @@
          print(NewShowWord.replace(" ", ""))
 
 def SBF4():
-    if NoChar is True:
-     sys.exit(0)
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -3087,8 +3063,6 @@
           print(NewShowWord.replace(" ", ""))
 
 def SBF5():
-    if NoChar is True:
-     sys.exit(0)
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -3140,8 +3114,6 @@
            print(NewShowWord.replace(" ", ""))
 
 def SBF6():
-    if NoChar is True:
-     sys.exit(0)
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -3198,8 +3170,6 @@
             print(NewShowWord.replace(" ", ""))
 
 def SBF7():
-    if NoChar is True:
-     sys.exit(0)
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -3255,8 +3225,6 @@
              print(NewShowWord.replace(" ", ""))
 
 def SBF8():
-    if NoChar is True:
-     sys.exit(0)
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -3317,8 +3285,6 @@
               print(NewShowWord.replace(" ", ""))
 
 def SBF9():
-    if NoChar is True:
-     sys.exit(0)
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -3378,8 +3344,6 @@
                print(NewShowWord.replace(" ", ""))
 
 def SBF10():
-    if NoChar is True:
-     sys.exit(0)
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -3444,8 +3408,6 @@
                 print(NewShowWord.replace(" ", ""))
 
 def SBF11():
-    if NoChar is True:
-     sys.exit(0)
     for u in range(StateU, UserCount):
      for a in range(StateA, EndCount):
       for b in range(StateB, EndCount):
@@ -3552,7 +3514,7 @@
      pass
     elif length_end < 0:
      sys.exit(SpliceX + 'unable to find password')
-    elif StdoutSwitch is True:
+    else:
      BF1()
 
 def C_BF2():
@@ -3560,6 +3522,8 @@
      pass
     elif length_end < 1:
      sys.exit(SpliceX + 'unable to find password')
+    elif NoChar is True:
+     sys.exit(SpliceX + 'unable to find password')
     else:
      BF2()
 
@@ -3568,6 +3532,8 @@
      pass
     elif length_end < 2:
      sys.exit(SpliceX + 'unable to find password')
+    elif NoChar is True:
+     sys.exit(SpliceX + 'unable to find password')
     else:
      BF3()
 
@@ -3576,6 +3542,8 @@
      pass
     elif length_end < 3:
      sys.exit(SpliceX + 'unable to find password')
+    elif NoChar is True:
+     sys.exit(SpliceX + 'unable to find password')
     else:
      BF4()
 
@@ -3584,6 +3552,8 @@
      pass
     elif length_end < 4:
      sys.exit(SpliceX + 'unable to find password')
+    elif NoChar is True:
+     sys.exit(SpliceX + 'unable to find password')
     else:
      BF5()
 
@@ -3592,6 +3562,8 @@
      pass
     elif length_end < 5:
      sys.exit(SpliceX + 'unable to find password')
+    elif NoChar is True:
+     sys.exit(SpliceX + 'unable to find password')
     else:
      BF6()
 
@@ -3600,6 +3572,8 @@
      pass
     elif length_end < 6:
      sys.exit(SpliceX + 'unable to find password')
+    elif NoChar is True:
+     sys.exit(SpliceX + 'unable to find password')
     else:
      BF7()
 
@@ -3608,6 +3582,8 @@
      pass
     elif length_end < 7:
      sys.exit(SpliceX + 'unable to find password')
+    elif NoChar is True:
+     sys.exit(SpliceX + 'unable to find password')
     else:
      BF8()
 
@@ -3616,6 +3592,8 @@
      pass
     elif length_end < 8:
      sys.exit(SpliceX + 'unable to find password')
+    elif NoChar is True:
+     sys.exit(SpliceX + 'unable to find password')
     else:
      BF9()
 
@@ -3624,6 +3602,8 @@
      pass
     elif length_end < 9:
      sys.exit(SpliceX + 'unable to find password')
+    elif NoChar is True:
+     sys.exit(SpliceX + 'unable to find password')
     else:
      BF10()
 
@@ -3632,6 +3612,8 @@
      pass
     elif length_end < 10:
      sys.exit(SpliceX + 'unable to find password')
+    elif NoChar is True:
+     sys.exit(SpliceX + 'unable to find password')
     else:
      BF11()
 
@@ -3640,7 +3622,7 @@
      pass
     elif length_end < 0:
      sys.exit(0)
-    elif StdoutSwitch is True:
+    else:
      SBF1()
 
 def C_SBF2():
@@ -3648,6 +3630,8 @@
      pass
     elif length_end < 1:
      sys.exit(0)
+    elif NoChar is True:
+     sys.exit(0)
     else:
      SBF2()
 
@@ -3656,6 +3640,8 @@
      pass
     elif length_end < 2:
      sys.exit(0)
+    elif NoChar is True:
+     sys.exit(0)
     else:
      SBF3()
 
@@ -3664,6 +3650,8 @@
      pass
     elif length_end < 3:
      sys.exit(0)
+    elif NoChar is True:
+     sys.exit(0)
     else:
      SBF4()
 
@@ -3672,6 +3660,8 @@
      pass
     elif length_end < 4:
      sys.exit(0)
+    elif NoChar is True:
+     sys.exit(0)
     else:
      SBF5()
 
@@ -3680,6 +3670,8 @@
      pass
     elif length_end < 5:
      sys.exit(0)
+    elif NoChar is True:
+     sys.exit(0)
     else:
      SBF6()
 
@@ -3688,6 +3680,8 @@
      pass
     elif length_end < 6:
      sys.exit(0)
+    elif NoChar is True:
+     sys.exit(0)
     else:
      SBF7()
 
@@ -3696,6 +3690,8 @@
      pass
     elif length_end < 7:
      sys.exit(0)
+    elif NoChar is True:
+     sys.exit(0)
     else:
      SBF8()
 
@@ -3704,6 +3700,8 @@
      pass
     elif length_end < 8:
      sys.exit(0)
+    elif NoChar is True:
+     sys.exit(0)
     else:
      SBF9()
 
@@ -3712,6 +3710,8 @@
      pass
     elif length_end < 9:
      sys.exit(0)
+    elif NoChar is True:
+     sys.exit(0)
     else:
      SBF10()
 
@@ -3720,6 +3720,8 @@
      pass
     elif length_end < 10:
      sys.exit(0)
+    elif NoChar is True:
+     sys.exit(0)
     else:
      SBF11()
 
--- a/doc/www.anonet2.org/public_pod/index.pod	Fri Oct 28 09:12:04 2011 +0000
+++ b/doc/www.anonet2.org/public_pod/index.pod	Sun Oct 30 18:27:46 2011 +0000
@@ -61,8 +61,6 @@
  <tr><td>IRCZ<></td><td>L<UFO|irc://anortr.ucis.nl:8805/anonet></td><td>L<aooo|http://www.anonet2.org/irc_anonymity> (Hidden IP, visible username and realname)</td></tr>
  <tr><td>IRCZ<></td><td>L<UFO|irc://irc.kwaaknet.org:6667/anonet></td><td>L<nooo|http://www.anonet2.org/irc_anonymity> (Visible IP, username and realname (warning!))</td></tr>
 -->
- <tr><td>IRCZ<></td><td>L<d3v11|irc://v7ygpbs5s62zqei6.onion/anonet></td><td>L<aaoa|http://www.anonet2.org/irc_anonymity> (Hidden IP, username and realname, custom nickname)</td></tr>
- <tr><td>IRCZ<></td><td>L<whatis-theplan|irc://mjf6cqigsjeqhsb3.onion/anonet></td><td>L<aaoa|http://www.anonet2.org/irc_anonymity> (Hidden IP, username and realname, custom nickname)</td></tr>
 <!--
  <tr><td>TelnetZ<></td><td>L<SRN|telnet://anortr.ucis.nl:8803/></td><td>L<aaya|http://www.anonet2.org/irc_anonymity> (Hidden IP and username, custom nickname)</td></tr>
 -->