Prison Break Community

Reply
[Un mio programma Java] Scofield i suoi origami e i messaggi in codice.., Perchè non scriveril senza difficoltà? :)
CAT_IMG Posted on 2/9/2009, 12:58Quote
Avatar


"Il genio è la capacità di vedere 10 cose la dove l'uomo cmune ne vede 1, e dove l'uomo di talento ne vede 2 o 3." Ezra Pound

Group: Member
Posts: 2309


Status: Offline: ultima azione eseguita il 30/11/2009, 23:18


Come detto nella mia presentazione, studio Java, e seguo da sempre PB.

NOTA: Descrizione ed introduzione li ho copiati dal commento nel codice sorgente del programma che avevo scritto!

  • Introduzione:

  • Il seguente programma è stato scritto basandosi sulla seconda stagione di Prison Break, in cui Michael Scofield (impersonato da Wentworth Miller), cifra su un origami a forma di gru del testo destinato alla dottoressa Sara Tancredi. Il primo origami contiene tre righe di puntini, separati da spazi. Gli altri 3 origami contengono un apparente numero telefonico disabilitato.
  • Descrizione:

  • Il programma cifra una frase lunga N caratteri utilizzando il procedimento di Scofield.
    Ogni riga di puntini deve essere abbinata al numero disattivato corrispondente.
    Il numero disattivato indica i tasti del cellulare, quindi ogni numero indica un preciso tasto; i puntini indicano la posizione della lettera su quel tasto.

Dopo questa introduzione e alla descrizione del programma posso passare al come esegurlo!
Non preoccupatevi del sistema operativo che state utilizzando perchè è scritto in Java, quindi non avrete problemi ad eseguirlo.

Una volta scaricato il pacchetto zippato, lo dovete estrarre. Ora avete una cartella con al suo interno 3 file: uno il .bat una è l'immagine ed uno il Jar. Spostate la cartella nel suo insieme, non spostate nessun file! ;) (altrimenti in caso fosse l'immagine non verrebbe visualizzata).

Per quelli che non si fidano: nel .bat ci sono 2 righe, potrete controllare voi stessi, una è il comando java (che indicherò li sotto), e l'altra è @pause>null in modo da non far comparire la riga dal DOS.
Il programma può essere eseguito su tutti i sistemi con la JVM installata (sarebbe nella cartella in programmi denominata JRE).
Come ho detto li, chi utilizza windows consiglio il file bat, in modo che venga eseguito senza dover digitare comandi dal DOS.

Chi non usa windows deve fare la seguente operazione:
Aprire il terminale, o DOS: (start > esegui > cmd)

e scrivere:

CODICE
cd c:\


Ovviamente in caso sia ubuntu, dovrete mettere Scrivania

Prendere il file JAR e metterlo in C\:

Ora digitare il seguente comando:
CODICE
java -jar ProgettoScofield.jar


Se avete un problema di qualsiasi tipo segnalatelo qui ;)

Per vedere il file cifrato sotto windows è necessario aprirlo con WordPad. Quindi tasto destro > apri con.. wordpad ;)

Provatelo e poi ditemi che ne pensate..dalle vostre impressioni, miglioramenti..ecc..tutto quello che volete!! :D

EDIT:

Nuova Versione!



Ho aggiornato anche le istruzioni!! ;)

Edited by RootkitNeo - 19/9/2009, 21:21

Download attachment
ProgettoScofield.zip ( Number of downloads: 3 )



Forum che rispecchia maggiormente l'etica hacker.

EX Amministratore di ItalianHackers.


Dovete credermi, io non voglio distruggere Microsoft. E’ soltanto un effetto collaterale involontario ~ Linus Torvalds

Dato un numero sufficiente di occhi, tutti i bug vengono a galla ~ Linus Torvalds

«Intelligenza è la capacità di evitare di fare un lavoro, ottenendo tuttavia di trovarlo finito.» ~ Linus Torvalds

image

   
imageWhat Metal Genre Are You?
Your Result: Death Metal
 

You are one of the most deadliest genres ever! You enjoy gore, harsh vocals, and... Death! You hate those emo pansies and you are an hardcore person!!!!!!

Black Metal
 
Thrash Metal
 
Power Metal
 
Nu Metal
 
Emo Metal
 
What Metal Genre Are You?
Quiz Created on GoToQuiz






Un hacker non è un criminale


image

 
P_MSG P_EMAIL P_MSN Top
CAT_IMG Posted on 2/9/2009, 14:42Quote
Avatar



Group: Admin
Posts: 5633


Status: Utente anonimo


Pazzesco!!! I miei più sentiti complimenti! :applausi:

image
Credits to miele and fan_cifully

 
P_MSG P_EMAIL P_WEBSITE Top
CAT_IMG Posted on 2/9/2009, 16:43Quote
Avatar


"Il genio è la capacità di vedere 10 cose la dove l'uomo cmune ne vede 1, e dove l'uomo di talento ne vede 2 o 3." Ezra Pound

Group: Member
Posts: 2309


Status: Offline: ultima azione eseguita il 30/11/2009, 23:18


CITAZIONE (Rod @ 2/9/2009, 15:42)
Pazzesco!!! I miei più sentiti complimenti! :applausi:

Grazie!! :D


Forum che rispecchia maggiormente l'etica hacker.

EX Amministratore di ItalianHackers.


Dovete credermi, io non voglio distruggere Microsoft. E’ soltanto un effetto collaterale involontario ~ Linus Torvalds

Dato un numero sufficiente di occhi, tutti i bug vengono a galla ~ Linus Torvalds

«Intelligenza è la capacità di evitare di fare un lavoro, ottenendo tuttavia di trovarlo finito.» ~ Linus Torvalds

image

   
imageWhat Metal Genre Are You?
Your Result: Death Metal
 

You are one of the most deadliest genres ever! You enjoy gore, harsh vocals, and... Death! You hate those emo pansies and you are an hardcore person!!!!!!

Black Metal
 
Thrash Metal
 
Power Metal
 
Nu Metal
 
Emo Metal
 
What Metal Genre Are You?
Quiz Created on GoToQuiz






Un hacker non è un criminale


image

 
P_MSG P_EMAIL P_MSN Top
CAT_IMG Posted on 4/9/2009, 16:59Quote
Avatar

Detenuto della cerchia
di John Abruzzi


Group: PrisonBreak Fan
Posts: 595


Status: Offline: ultima azione eseguita il 30/11/2009, 15:23


Niente male bravo ^_^

image
 
P_MSG P_EMAIL Top
CAT_IMG Posted on 6/9/2009, 13:59Quote
Avatar


"Il genio è la capacità di vedere 10 cose la dove l'uomo cmune ne vede 1, e dove l'uomo di talento ne vede 2 o 3." Ezra Pound

Group: Member
Posts: 2309


Status: Offline: ultima azione eseguita il 30/11/2009, 23:18


Ah..siccome l'ho scritto su Ubuntu Linux ci sono dei problemi con la codifica dei caratteri. Teoricamente si dovrebbero vedere una riga di numeri e una di puntini, ma su Win ho visto che aprendolo con il notepad non è così.

Aggiornato il primo post con il codice sorgente.

Per aprirlo e vedere il file cifrato come dev'essere usate WordPad


Forum che rispecchia maggiormente l'etica hacker.

EX Amministratore di ItalianHackers.


Dovete credermi, io non voglio distruggere Microsoft. E’ soltanto un effetto collaterale involontario ~ Linus Torvalds

Dato un numero sufficiente di occhi, tutti i bug vengono a galla ~ Linus Torvalds

«Intelligenza è la capacità di evitare di fare un lavoro, ottenendo tuttavia di trovarlo finito.» ~ Linus Torvalds

image

   
imageWhat Metal Genre Are You?
Your Result: Death Metal
 

You are one of the most deadliest genres ever! You enjoy gore, harsh vocals, and... Death! You hate those emo pansies and you are an hardcore person!!!!!!

Black Metal
 
Thrash Metal
 
Power Metal
 
Nu Metal
 
Emo Metal
 
What Metal Genre Are You?
Quiz Created on GoToQuiz






Un hacker non è un criminale


image

 
P_MSG P_EMAIL P_MSN Top
CAT_IMG Posted on 11/9/2009, 21:38Quote
Avatar

Infermiere di Fox River

Group: Member
Posts: 23


Status: Offline: ultima azione eseguita il 15/11/2009, 17:13


uau sei bravo complimenti

imageimage
 
P_MSG P_EMAIL Top
CAT_IMG Posted on 19/9/2009, 20:29Quote
Avatar


"Il genio è la capacità di vedere 10 cose la dove l'uomo cmune ne vede 1, e dove l'uomo di talento ne vede 2 o 3." Ezra Pound

Group: Member
Posts: 2309


Status: Offline: ultima azione eseguita il 30/11/2009, 23:18


Ho scritto la nuova versione!
Ora per l'input ci sono le finestrelle, da messaggi tramite le finestrella grafiche..e c'è la foto di Scofield! ;)

Metto il codice in questo post casomai qualcuno fosse interessato..


CODICE
/*
 La versione 0.8 Beta del programma ha superato i test ed è stata aggiornata in modo sufficiente, la versione attuale è la 1.0.
 
   Introduzione:
        Il seguente programma è stato scritto basandosi sulla seconda stagione di Prison Break, in cui Michael Scofield
        (impersonato da Wentworth Miller), cifra su un origami a forma di gru del testo destinato alla dottoressa Sara
        Tancredi. Il primo origami contiene tre righe di puntini, separati da spazi. Gli altri 3 origami contengono
        un apparente numero telefonico disabilitato.
     
    Descrizione:
        Il programma cifra una frase lunga N caratteri, utilizzando il procedimento di Scofield.
        Ogni riga di puntini deve essere abbinata al numero disattivato corrispondente.
        Il numero disattivato indica i tasti del cellulare, quindi ogni numero indica un preciso tasto; i puntini indicano
        la posizione della lettera su quel tasto.
 
 Version: 1.0
 
 Ulteriori aggiornamenti saranno: Controllo caratteri accentati (V). Successivamente output su file (V),
 e a seguire input da file.
 Al momento il programma non gestisce gli "Invio" nel testo.
 
 Copyright (c) Marco "RootkitNeo" 2748355274.
 ja091690MN
 
 Il seguente programma è distrubuito entro i termini della licenza GNU/GPL.
 
 Aggiunta: Lettera prima parola maiuscola, abbellimenti con swing
*/

import java.io.*;
import javax.swing.JOptionPane;
import javax.swing.ImageIcon;

// Se si utilizza la classe ricordarsi di gestire nel main il carattere maiuscolo o minuscolo
// e gli spazi tra i caratteri

class BetaScofield  {
 private String caratteri_cell[] = { " ", " ", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz" };
 private int contatore=0;
 private String dot="", number="";
 
 // cifra la frase in input
 void cifra(String input) throws IOException {
   
   BufferedWriter file_n = new BufferedWriter(new FileWriter("TxtScofieldCrypt.txt")); // file contenente i numeri
   
   boolean enter=true; // controllo quando entro nel while
   
   // conta la stringa
   for(int i=0; i<input.length(); i++) {
     char ch = (input.charAt(i)=='è')||(input.charAt(i)=='é') ? 'e' : input.charAt(i);
     contatore++;
     
     if(ch<97||ch>122) {
       continue;
     }
     
     // controllo ogni elemento dell'array in modo da abbinarli al carattere corrispondente
     for(int j=2; j<caratteri_cell.length; j++) {
       String temp = caratteri_cell[j];
       
       // controllo ogni carattere dell'elemento
       for(int k=0; k<temp.length(); k++) {
         if(temp.charAt(k)==ch) {
           number+=j;
           int t=k;
             
           while((t+1)>0) {
             dot+=".";
             t--;
             enter=false;
           }
         }
         else {
           continue;
         }
       }
     }
   
     if(!enter) dot+=" ";
     
     if(contatore==10||i==input.length()-1) {
       number+="n";
       // scrivo i numeri
       file_n.write(number);
       dot+="n";
       
       // scrivo i puntini
       file_n.write(dot);
       contatore=0;
       number="";
       dot="";
     }
   }
   
   // chiudo il file
   file_n.close();
   
 }
 
 // Metodo che decodifica il file
 void decifra() throws IOException {
   FileReader fr; // flusso che conterrà il file
   BufferedReader br; // flusso che leggerà dal file attraverso readLine()
   
   // In caso il file non si trovi nella stessa directory viene sollevata
   // un eccezione che lancio al main()
   try {
     fr = new FileReader("TxtScofieldCrypt.txt");
     br = new BufferedReader(fr);
   } catch(FileNotFoundException e) {
     throw e;
   }
   
   // flusso che scrive su di un file
   FileWriter fw = new FileWriter("Prova.txt");
   
   // contatore: conta i puntini, e quindi la posizione della lettera corrispondente
   // k: fa scorrere i caratteri della stringa di puntini.
   int contatore=0, k=0;
   
   do {
     // riga di numeri e di puntini.
     number = br.readLine();
     dot= br.readLine();
     
     if(number!= null) {
       // ciclo che scorre tutta la stringa di numeri
       for(int i=0; i<number.length(); i++) {
         char ch_n = number.charAt(i);
         
         // conto i caratteri '.'
         while((dot.charAt(k)=='.')&&(dot.length()>k)) {
           contatore++;
           k++;
         }
         k++;
         
         // prendo il numero del tasto e lo metto nell'array in modo da avere quel gruppo di lettere
         String tasto_cell = caratteri_cell[Character.digit(ch_n, 10)];
         // prendo l'occorrenza del carattere.
         String lettera =""+ tasto_cell.charAt(contatore-1);
         fw.write(lettera);
       
         lettera="";
         contatore=0;
       }
       k=0;
     }
   } while(number!=null);
   
   // chiudo il file di lettura
   fr.close();
   // chiudo il file di scrittura
   fw.close();
 }
}

class ProgettoScofield {
 public static void main(String args[]) throws IOException {
 
   
   // Flusso per scrivere su console
   PrintWriter pw = new PrintWriter(System.out, true);
   
   // Istanzio la classe - creo un oggetto
   BetaScofield bs = new BetaScofield();
   
   String str="";
   Object possible_values[] = {"1","2"}; // Scelte che compaiono nel menù a tendina
   
   int ch1=0;
   long start, end;
   
   // Apro una finestra grafica che comunica all'utente il messaggio.
   JOptionPane.showMessageDialog(null,"<html>Programma scritto da RootkitNeo.<br>Il seguente programma è distribuito entro i termini della licenza"+
   " GNU/GPL.<br><br>Per una corretta visualizzazione dell'immagine Scofield, lasciarla nella stessa cartella del programma.<br><br>"+
   "Per non avere problemi nella visualizzazione del file cifrato (per chi si trova su win) è necessario aprire il file con l'applicazione WordPad</html>");
   
   do { // Apro una finetra grafica che riceve l'input e fa uso di un'icona personalizzata e del menù a tendina.
     Object ch = JOptionPane.showInputDialog(null,"n<html>Inserisci il numero corrispondente all'operazione desiderata:<ol><li>Cifra una frase con il metodo Scofield.</li><li>Decifra un file di testo con il metodo Scofield.</li></ol></html>","Scegli il numero corrispondente",JOptionPane.QUESTION_MESSAGE,new ImageIcon("Scofield.jpg"),possible_values,possible_values[0]);
     try {
       String p = ch.toString();
       ch1 = Integer.parseInt(p);
     } catch(NullPointerException e) { // si verifica quando si preme 'Annulla'
       JOptionPane.showMessageDialog(null,"L'operazione è stata annullatanIl programma sarà terminato.","Operazione annullata!",JOptionPane.WARNING_MESSAGE);
       break;
     }
   } while(ch1 < 1 || ch1 > 2);
   
   
   switch(ch1) {
     case 1:
     String str1="", input="";
     
     str = JOptionPane.showInputDialog("Inserisci la frase/testo da codificare secondo Scofield:","Rendezvous sundown hotel gila nm");
     try {
       // converto la stringa in minuscolo, se è presente.
       input = str.toLowerCase();
     } catch(NullPointerException e) { // si verifica se viene premuto annulla
       JOptionPane.showMessageDialog(null,"L'operazione è stata annullatanIl programma sarà terminato.","Operazione annullata!",JOptionPane.WARNING_MESSAGE);
       break;
     }
   
     // ciclo che toglie gli spazi e l'apostrofo
     for(int i=0; i<input.length(); i++) {
       str1 += (input.charAt(i)==((char)39))|| (input.charAt(i)==((char) 32)) || (input.charAt(i)==((char)44)) || (input.charAt(i)==((char)46)) || (input.charAt(i)==((char)58)) || (input.charAt(i)==((char)59)) || (input.charAt(i)==((char)45)) ? "" : input.charAt(i);
     }
     
     // calcolo il tempo impiegato per l'esecuzione di questa operazione.
     start = System.currentTimeMillis();
     bs.cifra(str1);
     end = System.currentTimeMillis();
     
     pw.println("nnLa tua frase e' stata scritta e salvata con successo nei file 'TxtScofieldCrypt.txt'.nn"+
                "Per il corretto funzionamento di un eventuale decodifica, lasciare il file presente nella stessa directory del programma JAR.nn"+
                "Questo e' necessario, visto che il programma cerca il file da decodificare nella directory da dove e' stato eseguito.nn"+
                "Il tempo Impiegato nella codifica e': " + (end-start) + " ms");
     break;
     case 2:
     pw.println("nIl file di default che verra' decodificato e' 'TxtScofieldCrypt.txt'.n");
     try {
     
       // ottengo il tempo di elaborazione di questo compito
       start = System.currentTimeMillis();
       bs.decifra();
       end = System.currentTimeMillis();
       
       pw.println("nL'operazione e' stata eseguita correttamente.nn"+
                  "Il tempo di esecuzione e' : " + (end-start) + " ms");
       
     } catch(FileNotFoundException e) {
       JOptionPane.showMessageDialog(null,"nL'errore riscontrato e' di tipo FileNotFoundExceptionnn"+
                  "Il file 'TxtScofieldCrypt.txt' non si trova nella directory corrente.nn"+
                  "Spostare il file nella directory corrente in modo da poter convertire il file nel formato originario.n",null,JOptionPane.ERROR_MESSAGE);
     }
     break;
   }
   System.exit(0);
 }
}


Forum che rispecchia maggiormente l'etica hacker.

EX Amministratore di ItalianHackers.


Dovete credermi, io non voglio distruggere Microsoft. E’ soltanto un effetto collaterale involontario ~ Linus Torvalds

Dato un numero sufficiente di occhi, tutti i bug vengono a galla ~ Linus Torvalds

«Intelligenza è la capacità di evitare di fare un lavoro, ottenendo tuttavia di trovarlo finito.» ~ Linus Torvalds

image

   
imageWhat Metal Genre Are You?
Your Result: Death Metal
 

You are one of the most deadliest genres ever! You enjoy gore, harsh vocals, and... Death! You hate those emo pansies and you are an hardcore person!!!!!!

Black Metal
 
Thrash Metal
 
Power Metal
 
Nu Metal
 
Emo Metal
 
What Metal Genre Are You?
Quiz Created on GoToQuiz






Un hacker non è un criminale


image

 
P_MSG P_EMAIL P_MSN Top
6 replies since 2/9/2009, 12:58
 

load
Fast reply
 
 
 

Enable emoticons
Clickable Smilies
Show All


Nickname:      Email: