Grave falla nei protocolli ssl e tls

In questi giorni è stata resa nota la scoperta di una grave vulnerabilità nei protocolli ssl e tls!

A quando si dice sembrerebbe che la vulnerabilità permetta all’ attaccante un attacco man in the middle e inserire nel flusso delle informazioni cifrate dei comandi a sua scelta: ciò potrebbero renderlo in grado di alterare i dati trasmessi, iniettarvi del codice maligno e, ancor peggio, ottenere il certificato digitale del client, assumendone così l’identità.

maggiori informazioni sono disponibili qui.

Disattivare il controllo del disco all’ avvio di Windows

Ogni tanto utilizzo Windows per motivi vari, ma ogni volta mi tira fuori un problema nuovo.. Quello che mi disturbava ultimamente era eseguire lo scandisk ogni volta che avviavo il sistema operativo.. La soluzione è stata modificare una chiave nel registro di sistema così da bloccare definitivamente il controllo all’ avvio..

  1. Avviare REGEDIT
  2. andare in: HKEY_LOCAL_MACHINE\SYSTEM\CURRENTCONTROLSET\CONTROL\SESSION MANAGER
  3. fare doppio click BOOTEXECUTE
  4. inseriamo questa riga: AUTOCHECK AUTOCHK /K:c*

ovviamente se il vostro disco non è C sostituite la C con la lettera del vostro disco.

Come spegnere server linux dal pulsante

Di default solitamente quando si installa una versione server di linux non viene installato l’ ACPI, se abbiamo la necessità di spegnere il nostro server dal pulsante di accensione/spegnimento dobbiamo installare ACPI.

Su sistemi Debian based come Ubuntu il comando è:

sudo apt-get install acpid

Ovviamente installare ACPID non basta, bisogna assicurarsi che ACPI sia abilitato nel bios.

Ora assicuriamoci che nel file /etc/acpi/powerbtn.sh ci sia da qualche parte la riga:

/sbin/shutdown -h now “Power button pressed”

se così non fosse dobbiamo aggiungerla e salvare..

Operazione completata :D

Fare più di una copia di backup con hp recovery disk manager

Sul blog di Geekissimo ho trovato questa interessante guida al cracking del recovery manager HP.
Non so il perchè devono limitare il software ad effettuare una sola copia comunque io mi sono trovato il problema di aver masterizzato su un disco difettoso che in lettura non andava più, ma fortunatamente esiste sempre una soluzione :D
HP Recovery Manager, l’utility per la creazione dei dischi di ripristino integrata nei computer di Hewlett Packard ha una grave limitazione: i dischi di ripristino possono essere creati una sola volta.

In pochi semplici passi si potrà ovviare a questo problema..

Occorrente? WinRAR, 7Zip:

1. Accedere all’Esplora Risorse di Windows;

2. Recarsi nel menu Organizza > Opzioni cartella e ricerca (Strumenti > Opzioni Cartella, se si usa XP);

3. Selezionare la scheda visualizzazione;

4. Mettere il segno di spunta accanto alla voce Visualizza cartelle e file nascosti;

5. Togliere il segno di spunta dalla voce Nascondi i file protetti di sistema e cliccare su OK per salvare i cambiamenti;

6. Avviare WinRAR;

7. Accedere con WinRAR alla partizione di ripristino (es: FACTORY IMAGE D:);

8. Fare click destro sul file HPCD.sys e rinominarlo in HPCD.bak;

9. Recarsi nella cartella C:\Windows\SMINST, fare click destro sul file HPCD.sys e rinominarlo in HPCD.bak.

Adesso provate ad avviare nuovamente l’utility per la creazione dei dischi di ripristino e dovreste avere una bella sorpresa.

L’operazione è ripetibile ogni volta che si desidera, ma non credo serva più di una volta.. :)

Aggiungere il Bluetooth al nintendo DS

DS BrutDue ragazzi hanno avviato un progetto, creare una cartuccia modificata del nintendo DS con un modulo bluetooth ed un accelerometro a tre assi con un set completo di API per gesterle e quindi sviluppare del software che sfrutti queste caratteristiche. Il sito del progetto so li può trovare all’ indirizzo dsbrut.sukzessiv.net Happy Hacking a tutti! :D

Smartlab presenta SmartCast!

SmartCsatIl 21,22,23 Ottobre 2009 la Smartlab sarà in fiera allo SMAU2009 per presentare il suo nuovo prodotto hardware/software ideato per ottimizzare i processi di comunicazione tramite messaggi SMS,MMS,FAX,VOCE,POSTA IBRIDA.

SmartCast è composto da un router multicanale, amministrabile tramite strumenti web, corredato da librerie per lo sviluppo di soluzioni software personalizzate. Le librerie di sviluppo, rilasciate in versione sorgente, garantiscono l’ accesso ai servizi di trasmissione dalle piattaforme più diffuse: .Net, Java, PHP, Flex.

Il sistema si compone di una parte hardware e di una software, la parte hardware è un server con una distribuzione linux (Ubuntu server LTS) su cui gira la piattaforma SmartCast che è scritta in JavaEE.

Per maggiori informazioni visitare il sito www.smartlab.it/cast

Cambiare frequenza ai Wavecom Q24 Plus con comandi AT

wavecomPer lavoro ho avuto sotto mano dei fantastici moduli Wavecom Q24 Plus, dei moduli GSM/GPRS quadband che hanno solo un piccolo problemino (se così si può dire), perchè di default sono impostati a lavorare sulle frequenze 850/1900 MHz che sono le frequanze Americane a qui da noi il modulo sembra morto, nel senzo che non prende linea e quindi la prima operazione da fare per poterlo utilizzare è cambiare le frequenze di funzionamento sulle frequenze 900/1800 MHz.
Per fare questo bisogna inviargli il comando: AT+WMBS=5,1 -> il modulo risponderà con un bel OK e da ora in poi sarà pronto ad eseguire qualsiasi compito noi vogliamo programmargli!! :-)

Stampare automaticamente i file messi in una cartella

Ieri per un amico mi sono ritrovato a dover scrivere uno script bash che messi dei file PDF,DOC,TXT si occupa in automatico di inviarli alla stampante predefinita in CUPS.
Sostamzialmente lo script una volta avviato non fa altro che provare ad intervalli di 10 secondi il comando ls, passarlo al grep così da filtrare i tipi di file e stamparli.

#!/bin/bash
 
INTERVAL=10
INTERVALTOREMOVE=2
echo
echo "Automated Printing Started."
echo
while [ 0 ]
do
	for elemento in $(ls $1 | grep ".*.pdf$\|.*.doc$\|.*.txt$")
	do
		lp $1$elemento
		sleep $INTERVALTOREMOVE
		rm $1$elemento
	done
   sleep $INTERVAL
done
exit 0

Per utilizzare lo script basta semplicemente avviarlo e come parametro passargli la cartella da monitorare, es. /home/Predator/

Parser html con JavaCC

Vi presento un piccolo esempio di come si può scrivere facilmente un parser LL1 in java con il tool JavaCC.
Il seguente codice è solo a scopo didattico, ovviamente non riconosce tutti i costrutti del linguaggio html ma rende l’ idea della semplicità di realizzazione di un parser.

options { IGNORE_CASE = true; } 
PARSER_BEGIN(parserHTML)
public class parserHTML {
		public static void main(String[] args)
		throws ParseException, TokenMgrError, java.io.FileNotFoundException{
			parserHTML parser = new parserHTML(new java.io.FileInputStream("input.txt"));
			parser.Start();
		}
	}
PARSER_END(parserHTML)
 
 
 
SKIP: {" "}
SKIP: {"\n" | "\r" | "\r\n" |"\t"}
SKIP: {"<!--": INCOMMENTO}
<INCOMMENTO>
SKIP:{"-->":DEFAULT | <~[]>}
TOKEN: {
		<PAGINAAPERTA: "<html>">
	|	<PAGINACHIUSA: "</html>">
	|	<TESTAAPERTA: "<head>">
	|	<TESTACHIUSA: "</head>">
	|	<TITOLOAPERTO: "<title>">
	|	<TITOLOCHIUSO: "</title>">
	|	<CORPOAPERTO: "<body>">
	|	<CORPOCHIUSO: "</body>">
	|	<FORMATTAZIONEAPERTA: "<b>">
	|	<FORMATTAZIONECHIUSA: "</b>">
	|	<PARAGRAFOAPERTO: "<p>">
	|	<PARAGRAFOCHIUSO: "</p>">
	|	<METAAPERTO: "<meta>">
	|	<CHIAVEMETA: "http-equiv">
	|	<METACHIUSO: "</meta>">
	|	<STILEAPERTO: "<style">
	|	<CHIAVESTILE: "text/css">
	|	<STILECHIUSO: "</style>">
	|	<COLLEGAMENTOAPERTO: "<a">
	|	<COLLEGAMENTOCHIUSO: "</a>">
	|	<INPUTAPERTO: "<input">
	|	<CHIAVE: "type" | "id" | "name">
	|	<CHIAVEINPUT: "checkbox" | "radio" | "submit">
	|	<CHIAVECOLLEGAMENTO: "href" | "title">
	|	<ACUTACHIUSA: ">">
	|	<NUOVALINEA: "<br>">
	|	<FORMAPERTO: "<form>">
	|	<FORMCHIUSO: "</form>">
	|	<UGUALE: "=">
	|	<VIRGOLETTE: "\"">
	|	<HAPERTA: "<h1>">
	|	<HCHIUSA: "</h1>">
	|	<TABELLAAPERTA: "<table>">
	|	<TABELLACHIUSA: "</table>">
	|	<RIGAAPERTA: "<tr>">
	|	<RIGACHIUSA: "</tr>">
	|	<CELLAAPERTA: "<td>">
	|	<CELLACHIUSA: "</td>">
	|	<CARATTERE: ["$","A"-"Z","_",",",".","a"-"z","0"-"9"]>
}
 
 
 
 
void Start():
{}
{
	<PAGINAAPERTA>
	testa()
	corpo()
	<PAGINACHIUSA>
	|
	{System.out.println("FILE VUOTO");}
}
 
 
void testa():
{}
{
	(
	<TESTAAPERTA>
	corpotesta()
	<TESTACHIUSA>
	)
	|
	{System.out.println("testa epsilon");}
}
 
void corpotesta():
{}
{
	(
		<TITOLOAPERTO>
		stringa()
		<TITOLOCHIUSO>
		corpotesta()
	)
	|
	(
		<METAAPERTO>
		<CHIAVEMETA>
		<UGUALE>
		<VIRGOLETTE>
		stringa()
		<VIRGOLETTE>
		<METACHIUSO>
		corpotesta()
	)
	|
	(
		<STILEAPERTO>
		<CHIAVE>
		<UGUALE>
		<VIRGOLETTE>
		<CHIAVESTILE>
		<VIRGOLETTE>
		<ACUTACHIUSA>
		stringa()
		<STILECHIUSO>
		corpotesta()
	)
	|	
	{System.out.println("corpotesta epsilon");}
}
 
void stringa():
{}
{
	(
		(<CARATTERE>)*
		(<NUOVALINEA>)*
	)
	|
	{System.out.println("stringa epsilon");}	
}
 
 
void corpo():
{}
{
	<CORPOAPERTO>
	contenuto()
	<CORPOCHIUSO>
	(<NUOVALINEA>)*
	|  	
	{System.out.println("corpo epsilon");}
 
}
 
 
void contenuto():
{}
{
	(	
		<HAPERTA>
		stringa()
		<HCHIUSA>
		contenuto()
	)	
	|
	(
		<PARAGRAFOAPERTO>
		contenuto()
		<PARAGRAFOCHIUSO>
		contenuto()
	)
	|
	(
		<COLLEGAMENTOAPERTO>
		(
			<CHIAVECOLLEGAMENTO>
			<UGUALE>
			<VIRGOLETTE>
			stringa()
			<VIRGOLETTE>
		)*
		<ACUTACHIUSA>
		stringa()
		<COLLEGAMENTOCHIUSO>
		contenuto()
	)
	|
	(
		<NUOVALINEA>
		contenuto()
	)
	|
	(
		<FORMAPERTO>
		contenuto()
		<FORMCHIUSO>
		contenuto()
	)
	|
	(
		<INPUTAPERTO>
		(
		<CHIAVE>
		<UGUALE>
		<VIRGOLETTE>
		<CHIAVEINPUT>
		<VIRGOLETTE>
		)+
		<ACUTACHIUSA>
		contenuto()
	)
	|
	(
	<CARATTERE>
	stringa()
	contenuto()
	)
	|
	(
	<FORMATTAZIONEAPERTA>
	stringa()
	<FORMATTAZIONECHIUSA>
	contenuto()
	)
	|
	(
		<TABELLAAPERTA>
		(
			<RIGAAPERTA>
			(
				<CELLAAPERTA>
				stringa()
				<CELLACHIUSA>
			)*
			<RIGACHIUSA>
		)*
		<TABELLACHIUSA>
		contenuto()
	)
	|
	{System.out.println("contenuto epsilon");} 
}