trovare un codice da 1 a 9999 !!!

buonasera a tutti ho bisogno di una mano per favore...

vorrei utilizzare arduino per trovare una password (che ovviamente non conosco) e per fare questo mi serve un rele'
che collego al tasto FRECCIA SU e un'altro che collego al tasto ENTER...!

praticamente quando avvio arduino deve
contare fino a 1 = un impulso freccia su e poi 1 impulso al tasto enter, poi
contare fino a 2 = due impulsi freccia su e poi 1 impulso al tasto enter, poi
contare fino a 3 = tre impulsi freccia su e poi 1 impulso al tasto enter e via dicendo fino a 9999..... robe da matti lo so...!
non scrivo tutti i passaggi fino a 9999 non vorrei essere eccessivamente ripetitivo... :fearful:
penso che come frequenza di commutazione del contatto del relè freccia su possa andare bene 30ms,

così verifico anche la durata del minirelè matshushita...!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

for (i=0;i<=9999;i++)
{
for j=0; j<=i;j++)
{
digitalwrite( freccia, HIGH);
delay();
digitalwrite( freccia, LOW);
delay();
}
digitalwrite( enter, HIGH);
delay();
digitalwrite(enter, LOW);
delay();
}

30mS per un relé é troppo poco. stiamo su ordine di tempo minimi di 1/4 a 1/2 secondo.
È meglio usare un optocoppler

Ciao Uwe

G R A Z I E ! ! !
monto la baracca,
verifico che frequenza e' in grado di supportare e poi violento il minirelè...!

G R A Z I E alla prox!

Il codice di Uwe fa solo la scansione e sicuramente funziona perchè fa tutte le combinazioni possibili; ora ti metto la pulce nell'orecchio: come fai tu a sapere la combinazione giusta?

inserendo quella sbagliata premendo enter il display torna a zero, inserendo quella corretta lo strumento entra in un sub-menù di parametri protetti,
spero nel fattore culo, nel senso che lo faro' lavorare a fianco del monitor del pc e quando vedo sparire i caratteri pwd (password ) ci sono..!
tenendolo un pò d'occhio + o - dovrei sapere a che punto sono,
sempre meglio che provare a inserire manualmente tutti i codici possibili, in un'oretta circa sono arrivato a 250 ! due bale!!
arduino lavora per me!

se dici cons stai dicendo costrante, ovvero che ha un valore assegnato e non può cambiare. infatti l'errore dice:

HEY! che fine ha fatto il codice?!?!?

const int freccia = 2; // E TASTO 1
const int enter = 3; // E TASTO 2
int j ;
int i ;

void setup()

{

pinMode ( freccia , OUTPUT);
pinMode ( enter , OUTPUT);

digitalWrite (freccia, LOW);
digitalWrite (enter, LOW);

}

void loop()
{

for (i=0;i<=9999;i++)
{
for (j=0; j<=i;j++)
{
digitalWrite( freccia, HIGH);
delay(100 );
digitalWrite( freccia, LOW);
delay(100);
}
digitalWrite( enter, HIGH);
delay(100);
digitalWrite(enter, LOW);
delay(100);
}
}

scusa lesto avevo fatto una cagata esagerata ora è in funzione con tutti i delay a 75 , i ticchettii mi stanno facendo sclerareeeee!!! ma funziona...
spettacolo!

for (i=0;i<=9999;i++)

ok assegnando i= a quanto sono arrivato posso interrompere questo ticchettio da crisi epilettica e riprendere domani! bye bye e grazie

per iniziare da 999 puoi trasformare

for (i=0;i<=9999;i++)
{
for (j=0; j<=i;j++)

in

for (i=999;i<=9999;i++)
{
for (j=0; j<=i;j++)

per sapere il tempo necessario per il brute-force (nome di questa tecnica) fai 10.000(dimensione ciclo esterno) * 10.000 (ciclo interno) * 400 (millis totali di delay), risultato: (1000010000400)/(10006060*24) = 463 giorni, un anno circa.
Se riuscissi a portare i delay a 4ms ci metteresti 4 giorni... forse è meglio se usi qualcosa di diverso (e silenzioso) dal rele

si il procedimento in questo modo è eterno... mi è già passata l'euforia! ovviamente ad ogni incremento mi allungo il ciclo di 150ms...
devo controllare che segnale danno in ingresso i pulsanti e usare un paio di transistor,
ieri sera ho interrotto a 300 e modificando quell'assegnazione stamattina sono ripartito da li,
devo assolutamente velocizzare il brute-force!

grazie per le info lesto adesso sventro l'aggeggio e provo ciao

il problem è anche che ad occhio unamo non ti accorgerai mai di quando sei loggato ok, e peggio il brute andrà avanti a fare i cavoli suoi all'infinito, magari incasinando opzioni varie.
se puoi collegarti in parallelo al display, allora puoi leggerne il valore, per vedere:
1: se i comandi son stati eseguiti (ma quì direi non ci sono problemi)
2: per controllare se il tentativo ha avuto successo.

si può avere un'immagine e magari qualche link a quello che stai cercando di craccare?

ps. spero tu non sti cercando di entrare a casa di qualcuno, o di rubare il diario di qualche donzella :slight_smile:

Che dispositivo è quello della password sconosciuta? Strano che al terzo codice sbagliato non si chiuda la tastiera per un minuto !! 4° codice sbagliato 5 min ecc.... ti è andata anche bene direi

comunque prima di perdere giorni a fare prove io tenterei quelli più usati

tutti i numeri dal 1900 fino al 2012 potrebbe facilmente essere una data di nascita
4 volte 1 (potrebbero essere codici secondari di default)
4 volte 2
....
....
4 volte 9
multipli 1234 - 1248 - 4812
tastiera posizioni a rombo 4268 - 2684 - 6842 - 8426
tastiera posizioni a quadrato 1397 - 3971 -9713 -7139

buona fortuna

l'aggeggio e' un controllore di processo industriale molto avanzato, fa quasi pure il caffè!
non e' come un telefono o altro che dopo un tot di tentativi magari ritarda il nuovo tentativo di inserimento della password,
al software ho aggiunto un serial print per vedere a che punto sono arrivato col conteggio, (solo quando attiva tasto enter)anche se per ora non mi serve a molto finche' non trovo un fotoaccoppiatore adatto per velocizzare la cosa , ho gia' provato con i transistor ma il segnale dei pulsanti da "maneggiare" è molto delicato...

ps. lesto ora he ci penso... l'arduino sarebbe in grado di "far girare" un codice per effettuare un brute-force su una password composta da 4-6-7 numeri che pero' possono essere da 0-9 e non progressivi come sto facendo io ora con questo controller?

Un attacco a forza bruta è un semplice attacco in cui si provano, serialmente, tutte le possibili combinazioni del sistema.
Un combinatore a n cifre, con le cifre che spaziano da 0 a 9 (quindi 10 cifre), permette 10n combinazioni. Ad esempio, un combinatore con 3 cifre, permette 1000 combinazioni differenti (103). Un combinatore con 7 numeri, permette 107 combinazioni, 10.000.000.

L'Arduino è in grado di fare ciò, solo che poi il tempo cresce esponenzialmente in funzione del numero di cifre. Quindi più cifre hai, più tempo sarà richiesto

lesto:
per sapere il tempo necessario per il brute-force (nome di questa tecnica) fai 10.000(dimensione ciclo esterno) * 10.000 (ciclo interno) * 400 (millis totali di delay), risultato: (1000010000400)/(10006060*24) = 463 giorni, un anno circa.

Il ciclo interno fa tanti loop quanto è il valore del ciclo esterno, quindi il totale è la sommatoria di 1+2+3.....+9999 e non 10000^2.
La sommatoria di una sequenza di interi compresi tra due limiti, 1 (min) e 9999 (max) , vale:

Sum = ((max-min+1)x(max+min))/2 = ((9999-1+1)x(9999+1) = 9999*10000/2 = 49995000 cicli.

Da notare che i relè non reggono quasi 50 milioni di aperture/chiusure, se sono quelli cinesi da pochi soldi li butti via dopo nemmeno 10000 chiusure.

minirelè matsushita ds4ve, sono un gioiellino hanno un suono favoloso...!!! :grin:

sono quasi arrivato a 500 poi mi fermo. basta. fotoacoppiatoreeeeeeeeeeeeeeee dove cacchio gli ho messi ne ho una decina di recupero da "qualche parte"..
se è vero che il disordine è sinonimo di creatività io indubbiamente sono mooooolto creativo. :fearful:

comunque sti minirelè DS4E-M-DC24V Datasheet(PDF) - Nais(Matsushita Electric Works) sono una cannonata, sul datasheet da come durata meccanica 10 all'ottava che sono 100'000'000 giusto?
boia faus

lupastro81:
ps. lesto ora he ci penso... l'arduino sarebbe in grado di "far girare" un codice per effettuare un brute-force su una password composta da 4-6-7 numeri che pero' possono essere da 0-9 e non progressivi come sto facendo io ora con questo controller?

non ti seguo. Se vuoi escludere alcuni numeri, o iuncludere alcuni caratteri, allora fai un'array dei simboli possibili, poi scorri l'array in modo da ottenereogni possibile combinazione.

Un combinatore a n cifre

a fare i precisini NON sono combinazioni ma Disposizioni. La differenza tra disposizione e combinazione è che nella disposizione conta l'ordine: ovvero c'è differenza tra 1234 e 4321, in una combinazione no.

in particolare parliamo disposizione a ripetizione se un sibolo può ripetersi più volte (es. 1111), e la formula per il numero di disposizioni è la seguente:

D(n, k) = k^n

dove n è il numero di caratteri della password, e k il numero di elementi nell'array (simboli possibili)

invece nelle disposizioni semplici, il numero di disposizione si calcola così:

edit: ma perchè minirelè? non puoi usare transistor o similia, molto più economica e veloce?

astrobeed:
49995000 cicli.

Da notare che i relè non reggono quasi 50 milioni di aperture/chiusure, se sono quelli cinesi da pochi soldi li butti via dopo nemmeno 10000 chiusure.

ottima osservazione

ho provato con i transistor ma succede che entrambi i pulsanti mandandoli in conduzione mi danno come risultato sempre e solo "freccia su", probabilmente sono associati a un partitore resistivo

PORCA PTTN* L'HO TROVATOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO

425 QUATTROCENTOVENTICINQUEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEEE XD XD XD XD XD XD XD XD XD XD XD XD XD XD XD XD XD XD XD XD XD XD

ora passo al secondo strumento che ovviamente ha un codice diverso... :frowning: