Βοήθεια σε Γλώσσα Προγραμματισμού (Delphi)

Unkown-User

Πολύ δραστήριο μέλος

Ο Unkown-User αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Βριλήσσια (Αττική). Έχει γράψει 1,066 μηνύματα.
Χαιρετώ...

Προγραμματιστικοί μπελάδες part1 (ή αλλιώς πώς πνίγηκα σε 5 γραμμές κώδικα.)

Λοιπόν. Αυτό που θέλω να κάνω είναι το εξής. Να φτιάξω μία wordlist με όλους τους πιθανούς αριθμούς κινητών τηλεφώνων. Δηλαδή από:

6930000000 - 6959999999 και από 6970000000 μέχρι 6999999999


Πανεύκολο σκέφτηκα.

Για την ακρίβεια

6930000000 -6939999999 - Wind
6940000000 -6949999999 - Vodafone
6950000000 -6959999999 - Vodafone
696 --Κενό οπότε το παραλείπουμε
6970000000 - 6979999999 - Cosmote
6980000000 - 6989999999 - Cosmote
6990000000 - 6999999999 - Q

Οπότε συγκεντρωτικά βγαίνει το
6930000000 - 6959999999 και από 6970000000 μέχρι 6999999999


Όσοι με ξέρετε θα σας έχω πρήξει με το πόσο καλά μου έκατσε ως γλώσσα προγραμματισμού η Delphi. Η δημιουργία του GUI είναι υπόθεση λίγων δευτερολέπτων...

Τέλος πάντων, ανοίγω το RAD Studio, φτιάχνω μια vlc form, φτιάχνω και ένα Tbutton και μετά πάω να γράψω τι να κάνει όταν πατάω αυτό το Tbutton.

Υπέροχα...

Code:
AssignFile (myfile, 'wordlist.txt');
ReWrite (myfile);
For i:=6930000000 to 6959999999 do
WriteLn (myfile, i);
For i:=6970000000 to 6999999999 do
WriteLn (myfile, i);
CloseFile (myFile);

με τις οποίες εντολές φτιάχνω ένα txt αρχείο με όνομα wordlist, και πάω και στην αρχή του προγράμματος και δηλώνω και ως μεταβλητή το ,myfile το οποίο είναι TextFile και το i ως integer

Code:
var
myfile: TextFile;
i: integer;
Βάζουμε F9 compile and run ..

Μια χαρά έγινε compile (0 errors και 0 warnings, ουάου!), και πατάω το περίφημο Tbutton για δημιουργία της wordlist. Περιμένω λίγη ωρίτσα και προκύπτει ένα αρχείο txt των 700 περίπου ΜΒ. Μία χαρά σκέφτομαι, (έχω ήδη και μεγαλύτερες wordlists), αλλά προφανώς δεν μπορούσα να το ανοίξω για να το ελένξω γιατί κανένα πρόγραμμα που είχα εγκατεστημένο δεν μπορούσε να ανοίξει τόσο μεγάλο txt αρχείο.

(Ακολουθεί τμήμα κειμένου το οποίο μπορεί να παραλειφθεί) (Αφορά σπάσιμο WPA2)

Bootarw backtrack, βάζω την wlan0 σε monitor mode, spoofarw και την mac μου για παν ενδεχόμενο, αρχίζω να μαζεύω πακέτα, κάποια στιγμή συνδέεται ένας client, τον κάνω deauthenticate, κάνει auth και εγώ κλεβω το handshake και πάμε για την dictonary attack με την wordlist που έχω φτιάξει.
(Τέλος κειμένου που μπορεί να παραλειφθεί)

Τρέχω airκρακ-ng και βλέπω ότι δοκιμάζει άσχετους (αρνητικούς κι όλας) αριθμούς. (

Κατεβάζω κατι για να ανοίξω το txt των 700 mb (την wordlist που είχα φτιάξει), το ανοίγω και όντως είχε ασχετους αριθμούς μέσα.

Ανοίγω τον κώδικα του προγράμματος, κοιτάω τις επαναληπτικές, σωστές. Δοκιμάζω for i:=1 το 10 writeln (myfile, i) και μου το βγάζει σωστά (τους αριθμούς απ το 1 μέχρι το 10). Βάζω from 6930000000 to 6959999999 και μου βγάζει το ίδιο αρχείο με τους αρνητικούς που μ έβγαζε και πριν.

Σκέφτομαι λίγο.. Λες το i που έχω δηλώσει ως integer να μην μπορεί να πάρει τόσο μεγάλους αριθμούς? Πθανότατα, σκέφτομαι.. Googlarw γρήγορα και βλέπω ότι παραδόξως είχα δίκιο. Το i ως integer παίρνει τιμές από :
-2,147,483,648 μέχρι 2,147,483,647, ενώ εγώ του ζητούσα να παίρνει μεγαλύτερες τιμές (αρχίζοντας από την 6.930.000.000.)


Πάω πάνω στην δήλωση μεταβλητών και δηλώνω το i ως Ιnt64 (i:=Ιnt64).

Σημείωση: Το i ως int64 μπορεί να πάρει τιμές από -9,223,372,036,854,775,808 μέχρι 9,223,372,036,854,775,807.

Χαρούμενος βάζω compile.. Πατάω το Tbutton... Δεν άργησε καθόλου να δημιουργήσει το text file πράγμα που με παραξένεψε. Πάω να ανοίξω την wordlist μου.. Μέγεθος 0 bytes.

Σκατά λέω.. Κοιτάω τον κώδικα πάλι, δηλώνω το i ως integer πάλι, και βάζω άλλες επαναλληπτικές στις οποίες το i παίρνει μικρότερες (ΔΕΚΤΕΣ) τιμές, κάνω compile, και η wordlist είναι σωστή (με τα νέα δεδομένα)

Αλλάζω το i ως int64 .. Σκατά.. Μέγεθος 0 byte. Το αφήνω ως int64 και μικραίνω στις επαναλληπτικές το μέγεθος του i. Πάλι Μέγεθος 0 byte.


(Τμήμα κειμένου που επίσης μπορεί να παραληφθεί)

Τέσπα, επειδή είχα αρχίσει να ψιλονευριάζω βάζω το i integer και γράφω

Code:
For i:=30000000 to 59999999 do
WriteLn (myfile, i+6900000000);
For i:=70000000 to 99999999 do
WriteLn (myfile, i+6900000000);


Αφού το i δεν μπορεί να πάρει τιμές μεγαλύτερες από περίπου 2.000.000.000 να του βάλω να παίρνει μικρότερες τιμές, και στο τέλος όταν γράφει την γραμμή στο txt να προσθέτει και 6900000000. Δείτε κ ένα παράδειγμα:

Το i αρχικά παίρνει την τιμή 30000000. Όταν πάει να γραφτεί στο txt θα προστεθούν σε αυτό και 6900000000 και άρα θα γίνει 6930000000, δηλαδή αριθμός κινητού που θέλουμε.

Μετά το i θα γίνει 30000001 και αν του προστεθούν και 6900000000 όντως θα γίνει 6930000001.. Hell yeah baby! Τα καταφέραμε.. Compile με συνοπτικές διαδικασίες. Ελένχουμε μετά την λίστα και ΝΑΙ ΕΙΝΑΙ ΣΩΣΤΗ.

(Τέλος τμήματος κειμένου που επίσης μπορεί να παραληφθεί)



Aπό εκεί και πέρα γιατί όταν έβαζα το i ως int64 δεν έβγαζε τιμές στο txt? Έχω μείνει με την απορία..
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

thewatcher

Εκκολαπτόμενο μέλος

Ο thewatcher αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 30 ετών. Έχει γράψει 244 μηνύματα.
Ηθικό δίδαγμα: μην ασχολείστε με πασκαλοειδείς γλώσσες.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

West_Emperor

Νεοφερμένος

Ο Φιλιππος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 32 ετών και μας γράφει απο Ψαχνά (Εύβοια). Έχει γράψει 113 μηνύματα.
Επισης καπου διαβασα οτι η γλωσσα προγραμματισμου PASCAL αρχιζει και παρακμαζει σιγα-σιγα..:hmm:..ειναι αληθεια??
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Zed

Διάσημο μέλος

Ο Zed αυτή τη στιγμή δεν είναι συνδεδεμένος. Επαγγέλεται IT και μας γράφει απο Ηλιούπολη (Αττική). Έχει γράψει 2,488 μηνύματα.
Για να την βγάζουν από το πρόγραμμα σπουδών της σχολής μου... :P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Φιλιον_Τερας

Διάσημο μέλος

Ο Φιλιον_Τερας αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 3,031 μηνύματα.
εμεις εχουμε το Ζαχο
καμμενο πασκαλιτζη της σχολης μας
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

piou*

Εκκολαπτόμενο μέλος

Η Μαρίνα αυτή τη στιγμή δεν είναι συνδεδεμένη. Επαγγέλεται Πιλότος. Έχει γράψει 369 μηνύματα.
Πολλοι αριθμοι, λιγα δευτερολεπτα, ο εγκεφαλος μου καηκε.
Δεν καταλαβαινω πως αντεχεις ν ασχολεισαι. :P Χαρα στο κουραγιο σου.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Anarki

Διάσημο μέλος

Ο Αλέξης αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Χανιά (Χανιά). Έχει γράψει 3,345 μηνύματα.
Για την ακρίβεια

6930000000 -6939999999 - Wind
6940000000 -6949999999 - Vodafone
6950000000 -6959999999 - Vodafone
696 --Κενό οπότε το παραλείπουμε
6970000000 - 6979999999 - Cosmote
6980000000 - 6989999999 - Cosmote
6990000000 - 6999999999 - Q
Ο καθένας με τον πόνο του, η δική μου παρατήρηση είναι οτι με την φορητότητα δεν ισχύει πλέον αυτή η αντιστοιχία :P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

michael92

Πολύ δραστήριο μέλος

Ο Μιχάλης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 31 ετών και επαγγέλεται Φοιτητής/τρια. Έχει γράψει 1,227 μηνύματα.
Με javascript είναι πανεύκολο να το κάνεις πάντως :p
Μόνο JS ξέρω τι να κάνουμε :p

Απλά κάνεις το loop του στυλ :

<script>
for (i=0; i < 10000000; i++) {
document.write("694" + i + "<br>")
}
</script>

αποθηκεύεις ως html και πατάς run :p
Ξέρω θα μου πεις έτσι θα βγάλει και 69412 για αριθμό για παράδειγμα, συνεπώς πρέπει να θέσεις .length attribute, αλλά αυτό είναι πρόβλημα σου. Αυτά είναι όσα ξέρω :p
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Unkown-User

Πολύ δραστήριο μέλος

Ο Unkown-User αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Βριλήσσια (Αττική). Έχει γράψει 1,066 μηνύματα.
1) Μην κατηγορείτε την DELPHI μου, εγώ την έχω καταβρεί μαζί της :P

Ο καθένας με τον πόνο του, η δική μου παρατήρηση είναι οτι με την φορητότητα δεν ισχύει πλέον αυτή η αντιστοιχία :P

To "ο καθένας με τον πόνο του" που αναφερόταν? :P στις απαντήσεις στο thread?, στο κόλλημα μου με την Delphi?, ή στο γεγονός ότι φτιάχνω worldlists?

(δεν φταίω εγώ, που μου βάζουν wpa2 και για κωδικό τον αριθμό του κινητού του!)

Πολλοι αριθμοι, λιγα δευτερολεπτα, ο εγκεφαλος μου καηκε.
Δεν καταλαβαινω πως αντεχεις ν ασχολεισαι. :P Χαρα στο κουραγιο σου.

Βίτσια είναι αυτά! :P Kαι το χειρότερο είναι οτι την βρίσκω κι όλας με κάτι τέτοια!

Με javascript είναι πανεύκολο να το κάνεις πάντως :p
Μόνο JS ξέρω τι να κάνουμε :p

Απλά κάνεις το loop του στυλ :

<script>
for (i=0; i < 10000000; i++) {
document.write("694" + i + "<br>")
}
</script>


αποθηκεύεις ως html και πατάς run :p
Ξέρω θα μου πεις έτσι θα βγάλει και 69412 για αριθμό για παράδειγμα, συνεπώς πρέπει να θέσεις .length attribute, αλλά αυτό είναι πρόβλημα σου. Αυτά είναι όσα ξέρω :p

Ρε, ξέρω να το κάνω σε 20 γλώσσες, το θέμα μου είναι γιατί με το i ως Int64 δεν έγραφε στο txt.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Anarki

Διάσημο μέλος

Ο Αλέξης αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Χανιά (Χανιά). Έχει γράψει 3,345 μηνύματα.
Αναφερόταν στο οτι όλα τα σχόλια είναι άκυρα, όπως και το δικό μου που θα ακολουθούσε :P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Unkown-User

Πολύ δραστήριο μέλος

Ο Unkown-User αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Βριλήσσια (Αττική). Έχει γράψει 1,066 μηνύματα.
Ο καθένας με τον πόνο του, η δική μου παρατήρηση είναι οτι με την φορητότητα δεν ισχύει πλέον αυτή η αντιστοιχία :P

E, ναι, νταξ, αλλά προφανώς ο στόχος δεν είναι η αντιστοιχεία αλλά το να έχει η wordlist όλες τους αριθμούς κινητών... :P.. Πάντως ναι έχεις δίκιο ότι δεν ισχύει η αντιστοιχεία, λάθος μου, πάω να αυτομαστιγωθώ..

Αναφερόταν στο οτι όλα τα σχόλια είναι άκυρα, όπως και το δικό μου που θα ακολουθούσε :P

Ε, κλασσικά, αυτό είναι το συνηθισμένο :P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Krou

Περιβόητο μέλος

Η Krou αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 5,463 μηνύματα.
κ εγω για τη φορητοτητα ηθελα να γραψω αλλα ειπα αστο καλυτερα μη με βρισει που λεω ασχετα :P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Unkown-User

Πολύ δραστήριο μέλος

Ο Unkown-User αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Βριλήσσια (Αττική). Έχει γράψει 1,066 μηνύματα.
κ εγω για τη φορητοτητα ηθελα να γραψω αλλα ειπα αστο καλυτερα μη με βρισει που λεω ασχετα :P

Μου αρέσει που όλοι κολλήσατε στην φορητότητα :P. Γαμάτοι είμαστε. Μπράβο μας.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Anarki

Διάσημο μέλος

Ο Αλέξης αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Χανιά (Χανιά). Έχει γράψει 3,345 μηνύματα.
Δεν βλέπω κάποιο λογικό λάθος πάντως, κάποια ιδιαιτερότητα της delphi θα είναι αλλά δεν έχω ασχοληθεί ποτέ οπότε σκάω.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Eruyomo

Πολύ δραστήριο μέλος

Ο Μάνος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 39 ετών και μας γράφει απο Χανιά (Χανιά). Έχει γράψει 1,505 μηνύματα.
Γιατί να κάνεις κάτι σε γλώσσα προγραμματισμού που μπορείς να το κάνεις με ένα απλό bash script; :P

Το μόνο που μπορώ να σκεφτώ είναι οτι δεν μπορείς να κάνεις cast την int64 σε string.

Πάντως, δεν καταλαβαίνω γιατί κάνεις τόσο μεγάλο εύρος;

Πρώτον, δοκίμασε long unsigned int και δεύτερον σπάσε το loop στα 690xx 691xx 692xx
ωστε να γλιτώσεις περιπτώσεις στο μέγεθος, που είναι standard.

Επίσης, το πιο βολικό για αυτά τα πράγματα είναι το bash :P
Code:
#!/bin/bash

for i in `seq 6930000000 6959999999`
do
        echo "" >> wordlist.txt
done

for i in `seq 6970000000 6999999999`
do
        echo "" >> wordlist.txt
done
Γκρ, δεν μου εμφανίζει το $i μέσα στα ""
Τώρα που το βλέπω, καν script δεν χρειάζεσαι.
Code:
$ seq 6930000000 6959999999 >> words.txt
$ seq 6970000000 6999999999 >> words.txt
Και καθάρισες.
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Unkown-User

Πολύ δραστήριο μέλος

Ο Unkown-User αυτή τη στιγμή δεν είναι συνδεδεμένος. Μας γράφει απο Βριλήσσια (Αττική). Έχει γράψει 1,066 μηνύματα.
Γιατί να κάνεις κάτι σε γλώσσα προγραμματισμού που μπορείς να το κάνεις με ένα απλό bash script; :P

Εγώ δεν ξέρω τι είναι αυτά ΤΑ linux.. Αυτά είναι πράγματα του Σατανα..

Πέρα απ την πλάκα , προτίμησα γλώσσα προγραμματισμού, και να φτιάξω και πλήρες GUI γιατί σκοπός δεν ήταν η δημιουργία μόνο μιας wordlist αλλά ενός προγράμματος που να κάνει merge 2 ή περισσότερες wordlists και να διαγράφει τις διπλοεγγραφές, να κάνει κεφαλαίο το πρώτα γράμμα από μία wordlist, να τα κάνει όλα κεφαλαία, να έχει leet filters δηλαδή να παίρνει μία wordlist με ονόματα :

password
root
admin

και να την κάνει

p@$$w0rd
r00t
@dmin

και πολλά άλλα ωραία, απλά σ εσάς έγραψα μόνο το τμήμα που με προβλημάτισε.. :P
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Eruyomo

Πολύ δραστήριο μέλος

Ο Μάνος αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 39 ετών και μας γράφει απο Χανιά (Χανιά). Έχει γράψει 1,505 μηνύματα.
Εγώ δεν ξέρω τι είναι αυτά ΤΑ linux.. Αυτά είναι πράγματα του Σατανα..
Μα δεν χρειάζεται να χεις linux, υπάρχει και το cygwin.

Πέρα απ την πλάκα , προτίμησα γλώσσα προγραμματισμού, και να φτιάξω και πλήρες GUI γιατί σκοπός δεν ήταν η δημιουργία μόνο μιας wordlist αλλά ενός προγράμματος που να κάνει merge 2 ή περισσότερες wordlists και να διαγράφει τις διπλοεγγραφές, να κάνει κεφαλαίο το πρώτα γράμμα από μία wordlist, να τα κάνει όλα κεφαλαία, να έχει leet filters δηλαδή να παίρνει μία wordlist με ονόματα :

password
root
admin

και να την κάνει

p@$
r00t
@dmin

και πολλά άλλα ωραία, απλά σ εσάς έγραψα μόνο το τμήμα που με προβλημάτισε.. :P
Δοκίμασε τότε την python και τα dictionaries της.
Ή αν θες κάτι πιο extreme, δοκίμασε perl.

Η pascal παραείναι γερασμένη για κάτι τέτοια.

Edit:

Σε python (τρέχει και σε windows):
Code:
#!/usr/bin/python

def main():
        string="";
        f = open("wordlist.txt","w");

        for i in range(6930000000,6959999999):
                string = string + str(i) + "n";
        for i in range(6970000000,6999999999):
                string = string + str(i) + "n";
        f.write(string);
        f.close();

if __name__=="__main__":
        main();
Αν έχεις πολλή μνήμη βέβαια για να είναι και πιο γρήγορο.
Αλλιώς όπου string=string +... το αλλάζεις με f.write(...)

Edit: μου φαγε το \ στο \n ...


Code:
#!/usr/bin/python

def main():
    f=open("wordlist.txt","w");    
    for i in range(6930000000,6959999999):
        f.write(str(i) + "\n");
    for i in range(6970000000,6999999999):
        f.write(str(i) + "\n");
    f.close();

if __name__=="__main__":
    main();
 

Σημείωση: Το μήνυμα αυτό γράφτηκε 15 χρόνια πριν. Ο συντάκτης του πιθανόν να έχει αλλάξει απόψεις έκτοτε.

Χρήστες Βρείτε παρόμοια

  • Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:
    Tα παρακάτω 0 μέλη διάβασαν αυτό το θέμα:
  • Φορτώνει...
Top