Arduino trova Password: Cerco idee! :)

GINGARDU:
se la pw e a 4 cifre fai prima a trovarla per tentativi ti assicuri che il telecomando funzioni e in un paio d'ore la trovi

Ti assicuro che va via molto + tempo! Ti dico solo che il cliente mi ha detto: "Se non erro le prime due cifre dovrebbero essere 40" Quindi io dovevo provare da 4000 a 4099. Bene di tempo per quelle 100 combinaizoni ne è passato un bel po! :slight_smile:

Potresti provare questo.... :
-Di solito per i dvr quando si entra nel menù installatore il dvr stesso emette un BEEP sonoro tramite il buzzer interno a conferma dell'avvenuta operazione di convalida dell'ingresso menù...potresti provare a vedere se magari digitando il codice sbagliato il buzzer emette un suono grave oppure tre beep di errore...
Boh...ho provato a buttarla perchè se così fosse puoi associare all'arduino un microfono e il gioco è fatto...

Un normale dvr ha la programmazione a video con schermate tipo decoder digitale terrestre o sky per intenderci, non emettono nessun beep se non per un allarme di movimento (se attivato) o restart, che il telecomando riceva dati su ir dal DVR me pare ancora più improbabile, di che dvr parliamo?

Visto che tanto immagino che questa manovra ti serva una sola volta,potresti fare cosi, metti un display ad Arduino che ti visualizza il codice che sta provando, poi punti una videocamera, o una webcam verso la TV e la metti in registrazione in maniera tale che oltre a vedere la schermata del dvr vedi anche il display col codice.
Una volta finita la procedura in avanzamento veloce cerchi il punto dove il codice inserito è valido e ti leggi dal display la combinazione.
Spera però che dopo x tentativi di inserimento il dvr non si pianti, altrimenti addio!!!!
Happy hacking

Nik_90:

GINGARDU:
se la pw e a 4 cifre fai prima a trovarla per tentativi ti assicuri che il telecomando funzioni e in un paio d'ore la trovi

Ti assicuro che va via molto + tempo! Ti dico solo che il cliente mi ha detto: "Se non erro le prime due cifre dovrebbero essere 40" Quindi io dovevo provare da 4000 a 4099. Bene di tempo per quelle 100 combinaizoni ne è passato un bel po! :slight_smile:

mah... l'assistenza che dice? di solito se si porta apparecchio e scontrino fanno in un attimo
il manuale?

è come la mia autoradio, che se si sbaglia chiede sempre piu ore di attesa per inserire un codice nuovo?

Hai pensato a smontare l'hd e tentare di leggerlo con un normale PC ? A me è capitato di salvare i filmati registrati su un LG grazie ad una libreria che ho trovato su internet cercando lg dvr recovery o qualcosa di simile (funziona su linux). La cosa non è possibile con tutte le marche, però: dipende dal formato che usano per registrare sull'hard disk...

ragazzi approfitto per chiedere una cosa quanto vosta un dvr recorder senza fotocamere?avete qualche link? mi servirebbe qualcosa anceh di economico :smiley:

[OT]
Ciao

ragazzi approfitto per chiedere una cosa quanto vosta un dvr recorder senza fotocamere?avete qualche link? mi servirebbe qualcosa anceh di economico

in che senso? Un dvr di fatto è l'apparecchio che effettua la registrazione, le videocamere son a parte...
Ti basta un pc e una webcam, oppure una ipcam..

Se puoi vuoi le funzionalità di un dvr (e non solo) e vuoi risparmiare, puoi andare su soluzioni sw, tipo ZoneMinder o Motion, che puoi usare con webcam, ipcam e anche con tvcc cam (con scheda di acquisizione)...

EDIT:
vedo poi che Motion è stato provato pure su RPi:

[/OT]

io intendevo una cosa del genere ovvero HW non SW
http://www.ebay.it/itm/MINI-DVR-PORTATILE-MODELLO-SD-CARD-1-CANALE-PER-TELECAMERE-/180973297852?pt=Telecamere_da_sorveglianza&hash=item2a22d960bc

Allora ragazzi, ho visto un po la situazione. Stavo prima di tutto cercando di vedere il segnale che emette il telecomando per ogni cifra. Ho utilizzato questo sketch:

#include <IRremote.h>

int RECV_PIN = 4;
IRrecv irrecv(RECV_PIN);
decode_results results;

void setup()
{
  Serial.begin(9600);
  irrecv.enableIRIn(); // Start the receiver
}

void loop() {
  if (irrecv.decode(&results)) {
    Serial.println(results.value, HEX);
    irrecv.resume(); // Receive the next value
  }
}

e ad esempio premendo l'1 sul telecomando ho questo risultato:

4BD4A25D

La libreria che sto utilizzando è questa:

Dite che inviando lo stesso segnale tramite irsend dovrebbe funzionare?

Grazie

si,funziona,quello è un protocollo nec....basta specificarlo nell'ir send ed applicare il valore 32 bit

Ragazzi funziona:) Cioè, la decodifica dei tasti e dell'invio è andata senza problemi!:slight_smile: Ora, mi chiedevo una cosa per i tentativi da fino a 9999 io avevo immaginato un ciclo for che andava da 0001 a 9999. Ma ora mi stavo chiedendo, come faccio a far partire il ciclo da 0001? E come faccio a scomporre ad esempio il numero 1234, in modo che mandi poi in sequenza
1, 2, 3 e 4, esiste qualche funzione che voi conoscete?
Una volta feci una cosa simile ma trovando per la cifra il modulo di1000 ade esempio e poi facendo sottrazioni, insomma un casino!:slight_smile:

4 cicli for annidiati?

for(a=0;a<10;a++)
{
for(b=0;b<10;b++)
{
for(c=0;c<10;c++)
{
for(d=0;d<10;d++)
{
// il tuo codice da inviare è A B C D
}
}
}
}

Ragazzi tutto ok!:slight_smile: Ha funzionato, ieri pensato, in giornata realizzato!:wink:
Vi mostro il momento della scoperta della password!:slight_smile: Ci ha messo circa 3 ore e mi ha trovato la password!

Ecco il video:

Grazie a tutti!

:fearful:

bravo!

:slight_smile:

tuxduino:
:fearful:

bravo!

:slight_smile:

Grazie!:slight_smile:

beh..... e qual'era la combinazione!?!??!

complimenti! :slight_smile:

ottimo lavoro Nik! questa sì che è una bella inventiva, solo che dovresti ora dare i giusti meriti a chi ti ha aiutato, vedo intanto che hai seguito il consiglio di Niki77 sull'uso della webcam, ne hai seguito anche la logica per mandare le 4 cifre o hai fatto qualcosa di diverso?

Per mandare le 4 cifre avrei seguito quel consiglio se la password non fosse stata tra 1000 e 9999, perchè tra 1000 e 9999 ho adottato un'altro metodo, una cosa del genere:

int numero = 1234
int migliaia = (numero / 1000);
int centinaia = (numero -(migliaia x 1000)) / 100
int decine = (numero - (migliaia x 1000) - (centinaia x 100)) / 10
int unita = (numero - (migliaia x 1000) - (centinaia x 100) - (decine x 10))

diciamo che il metodo dei 4 cicli for era anche più intuitivo ma non so perchè sono finito a questo! xD
Avrei utilizzato quel metodo per fare da 0001 a 1000 nel caso non avrei trovato la password!

Per quanto riguarda invece l'uso della webcam in effetti non è così.. oggi ho passato tutti il tempo in laboratorio e ho solo sperato che il dvr reagisse come volevo!:slight_smile:
L'ho messo lì a provare password da 1000 in poi e ho sperato che nel momento in cui veniva individuata la password il dvr si fermasse e non rispondesse più ai comandi dell'ir che mandava segnali!
Ovviamente, siccome ero in laboratorio, mentre facevo dell'altro, l'occhio finiva sempre sul monitor del dvr fino a quando non ho sentito "beep" parecchio diversi, allora mi sono alzato e ho controllato il monitor seriale di arduino e ho ristretto la ricerca ad una decina di cifre solamente. Ed infine, password trovata!:slight_smile:
Ecco la storia di oggi! xD

Nik_90:

GINGARDU:
se la pw e a 4 cifre fai prima a trovarla per tentativi ti assicuri che il telecomando funzioni e in un paio d'ore la trovi

Ti assicuro che va via molto + tempo! Ti dico solo che il cliente mi ha detto: "Se non erro le prime due cifre dovrebbero essere 40" Quindi io dovevo provare da 4000 a 4099. Bene di tempo per quelle 100 combinaizoni ne è passato un bel po! :slight_smile:

se una sequenza di dati dura 100 millisecondi (ed esagero, mi stupirei se arriva a 10ms),100combinazioni 100ms = 10000ms ovvero 10 secondi. se fossero 10000 combinazioni (da 0000 a 9999) allora sarebbero 10000100=1000000=1000secondi = 16minuti.

non capisco come mai ci hai messo 3 ore... forse un rallentamento causato dalla seriale, 4cifre ogni 100ms sono 4000cifre al secondo, circa 40.000baud.. quindi il mio discorso di prima vale con un baudrate più alto.

Tra l'altro visto che hai

  1. il beep
  2. un cambio schermata
    è facile automatizzare lo stop dell'arduino, attaccando un microfono (ma sei sensibile ai rumori ambientali) o usando un led come ricevitore attaccatto allo schermo della tv; quando rileva un consistente cambio di luce, vuol dire che hai comabito schermata, o hai spento la luce :slight_smile: