0
Mag 27 2010

Creare tutte le possibili combinazioni di un array di caratteri

Non so se avete letto il mio post di prima…

Comunque lo sfizio di creare un generatore di dizionario per brute-force me lo volevo togliere…

Ed eccolo qua:

<?php
$z=explode(' ',microtime());
$z=$z[0]+$z[1];
$l=8;
$a=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',0,1,2,3,4,5,6,7,8,9);
$b=count($a);
$u=fopen("dizionario.txt", "w+");
for($c=0; $c<$b; $c++) {  ## 1
	$m=$a[$c];
	for($d=0; $d<$b; $d++) { ## 2
		$n=$a[$d];
		for($e=0; $e<$b; $e++) { ## 3
			$o=$a[$e];
			for($f=0; $f<$b; $f++) { ## 4
				$p=$a[$f];
				for($g=0; $g<$b; $g++) { ## 5
					$q=$a[$g];
					for($h=0; $h<$b; $h++) { ## 6
						$r=$a[$h];
						for($i=0; $i<$b; $i++) { ## 7
							$s=$a[$i];
							for($j=0; $j<$b; $j++) { ## 8
								$w=$m.$n.$o.$p.$q.$r.$s.$a[$j];
								fwrite($u, $w."n");
							}
						}
					}
				}
			}
		}
	}
}
$x="#";
$y=explode(' ',microtime());
$y=$y[0]+$y[1];
$v=$y-$z;
fwrite($u, "$x Generated in $v");
fclose($u);

Se non siete pazzi come me non fatelo girare, a meno che non abbiate 23,092060626TiB di spazio libero e tanto tempo da sprecare…

Infatti, questo script crea un documento di testo con tutte le combinazioni alfanumeriche (caratteri latini minuscoli solo, per fortuna) di 8 caratteri…

Ma facciamo un po’ di calcoli alla mano…

Numero di combinazioni: 368=2821109907456
Vale a dire 22568879259648 caratteri senza gli a capo
Quindi 25389989167104 byte il file con gli a capo
Ovvero 24794911296 KiB
Perciò 24213780,5625 MiB
Che equivale a 23646,270080566GiB
Come dire 23,092060626TiB

In pratica, è impossibile farlo…

Se prima finiva la memoria, adesso uno dei due processori è sempre al 100%…

Io dopo un bel po’ di minuti di elaborazione sono arrivato a aacou58n e a 1,2GiB.

Più precisamente a 1308793590byte…

Vedete un po’ voi…

0
Mag 27 2010

Debian Testing: problemi al mouse?

Questa è la terza volta che provo a riscrivere un fottuto post che mi si annulla perché il mouse impazzisce e mi va indietro e poi avanti…

Andrò più a fondo e scoprirò perché, infatti sono stufo di dover ricominciare la terza volta a scrivere un dannato post.

5
Mag 27 2010

Creando un dizionario per un attacco di forza bruta

Volevo creare un dizionario con tutte le possibili combinazioni alfanumeriche di 8 caratteri in PHP perché era il modo più veloce che avevo…

Il codice che ho scritto è un po’ una cosa buttata lì… Se siete esperti mi direte che è una pazzia… Eccolo qui:

<?php
function potenzaFor($s, $n) {
	$m=count($n);
	$o=count($s);
	for($j=0; $j<$m; $j++) {
		for($k=0; $k<$o; $k++) {
			$n[]=$n[$j].$s[$k];
		}
	}
	return $n;
}
$t=explode(' ',microtime());
$t=$t[0]+$t[1];
$g=8;
#$a=array('a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z',0,1,2,3,4,5,6,7,8,9);
$a=array(0,1,2,3,4,5,6,7,8,9);
$l=count($a);
$f=fopen("dizionario.txt", "w+");
$p=$a;
for($i=0; $i<$g; $i++) {
	$p=potenzaFor($a, $p);
}
if(count($p)) {
	foreach($p as $e) {
		fwrite($f, $e."n");
	}
}
$c="#";
$u=explode(' ',microtime());
$u=$u[0]+$u[1];
$v=$u-$t;
fwrite($f, "$c Generated in $v");
fclose($f);

NON eseguitelo…

Io l’ho fatto su una macchina con 2GiB di ram + 1 GiB di swap e ecco cosa è successo al monitor di sistema:

Prima.png
Quando ho cominciato… Dovevo farla prima la foto, così avreste visto meglio… ero a circa il 10% della ram in realtà…

Killed.png
Ad un certo punto… Notare la scritta killed

Come ho scritto sopra, notare la scritta killed…

Ho finito tutta la Ram e tutto lo swap :-)

Mi sa che devo alleggerire il codice…

P. S.: Se sapete uno sputo di PHP mi direte che ho fatto la descrizione sbagliata… Era solo per vedere se cambiava qualcosa…

1
Mag 23 2010

Installare Geogebra su Linux

Geogebra è un bel programma di matematica e geometria.

È rilasciato sotto GPL ed è scritto in java, così è multipiattaforma.

Tuttavia non esiste un pacchetto per le distribuzioni, così ecco un metodo universale su linux per farlo.

Purtroppo l’unica versione scaricabile per Linux pesa 40MB perché include anche java, cosa che però noi non useremo. Useremo il java del nostro computer.

Scarichiamo il .tar.gz dalla pagina di download dal sito ufficiale di geogebra, quindi estraiamo i file .jar e la cartella unsigned in /cartella/di/destinazione (cambiatela a vostro piacimento ovviamente).

Apriamo un terminale di root e digitiamo:

cd /usr/local/lib
mkdir geogebra
mv /cartella/di/destinazione/* geogebra/
wget -O geogebra/geogebra.svg http://upload.wikimedia.org/wikipedia/commons/5/57/Geogebra.svg

Sempre da root dobbiamo ora creare due file.

Per farlo usiamo nano. Si usa con nano nome_file per aprire un file. CTRL + O per salvarlo (bisognerà rispondere Y o S se vi chiede se salvare), quindi CTRL+X per uscire.

Modifichiamo il file /usr/local/bin/geogebra e mettiamo il seguente contenuto:

/usr/bin/java -jar /usr/local/lib/geogebra/geogebra.jar

Rendiamolo eseguibile con chmod +x… [Leggi il resto...]

2
Mag 15 2010

Le copie di backup personali

È secondo voi giusto che una persona possa fare una copia di materiale coperto da diritti d’autore legalmente acquistato?

Secondo me sì…

Se io ho una VHS e la voglio passare in DVD perché non lo dovrei poter fare?

Allora ditemi anche se è giusto che una VHS impedisca al DVD Recorder di registrarla…

Se hai la protezione vuol dire anche che sei originale, no? Allora lasciamo fare quella cavolo di copia…

Metti che ho paura che si rovini la cassetta oppure che devo vederla dove non c’è un VHS ma c’è solo il DVD, perché non posso far la copia?

Però la legge parla chiaro… Nel 2003 è stata emanata una legge che vieta la copia se il materiale è protetto…

A questo punto io mi chiedo, uno, cosa fa?

Se ne deve stare con le mani in mano? Comprare la versione in DVD del film interessato? Portarsi addietro il lettore VHS? Oppure deve violare la legge?

E finisco qua, perché non posso sconfinare…

Lascio solo meditare a coloro che leggono… Molti potranno immaginare come fare…

Tuttavia non si può neanche parlare di certi argomenti, così se nei commenti vedrò qualcosa che non può esserci qui sarò costretto a usare una cosa che non mi piace, la censura…