• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

python Befehle

Conax

Hacker
Code:
python -c "for n in xrange(0, 99999999): print '%08d' % n" | beispielprogramm.....

erstellt mir ja Nummern von 0 bis 99999999 und übergibt diese an "beispielprogramm". Nun würde mich interessieren wie muss der Befehl aussehen damit python diese erzeugten Zahlen in eine txt Datei "beispiel.txt" schreibt (also Art Wörterbuch nur mit Zahlen)?

Ich habe schon selbst einen Versuch unternommen mit diesem Befehl:
Code:
python -c "for n in xrange(0, 999): print '%08d' % n" | sort -o versuchm.txt

Das hat auch soweit geklappt und sieht nach diesem Muster aus:
00000000
00000001
00000002
00000003
00000004
00000005
00000006
00000007
00000008
00000009
00000010

jedoch gefallen mir die Nullen davor nicht aber ich weiss nicht wie man diese wegbekommt. Das Ergebnis sollte also so aussehen:
0
1
2
3
..
999

Eine andere Sache die mich interessieren würde kann man diesen Befehl auch so anpassen das z.B. eine andere Zahl vorgesetzt wird (also z.B. Telefonvorwahl) und dies dann ebenfalls in einer txt Datei gespeichert wird. Das also "beispiel.txt" dann so aussieht:

0300
0301
0302
....
0309999999

und zum Schluss noch eine abschliesende Frage wie man den Befehl so anpasst das er z.B. ein bestehendes Wörterbuch einliest und Zahlen am Anfang bzw. am Ende generiert und diese an ein anderes Programm übergibt. Also nach diesem Muster:

Wörterbuch (beispiel.txt:
Apfel
Apfelbaun

daraus soll dann werden:
Apfel0
Apfel1
.....
Apfel9999

Apfelbaum0
Apfelbaum1
....
Apfelbaum9999

0Apfel
1Apfel
.....
9999Apfel

Danke
 

framp

Moderator
Teammitglied
Zu 1)
Code:
python -c "for n in xrange(0, 999): print '%d' % n" > ergebnis.txt
Zu 2)
Code:
python -c "for n in xrange(0, 999): print '030%d' % n" > ergebnis.txt
-> http://docs.python.org/release/2.6.6/library/stdtypes.html#sequence-types-str-unicode-list-tuple-buffer-xrange Kapitel 5.6.2

Zu 3) Ist leider kein Einzeiler mehr
Code:
#!/usr/bin/env python 
#-*- coding: utf-8 -*-
import fileinput

for line in fileinput.input():
    l=line.strip()
    for n in xrange(0, 1000): 
        print '%s%d' % (l,n)
    for n in xrange(0, 1000): 
        print '%d%s' % (n,l)
und das ganze dann mit > wieder in eine Datei redirecten
 
A

Anonymous

Gast
Ich hab mir mal die Mühe gemacht aus deinen Beiträgen der letzen paar Wochen ein paar Zitate völlig zusammenhanglos zusammenzustellen.
Conax schrieb:
ich habe hier den bluetooth sniffer von Michael Ossman bekommen. Ich will gerade den spectrum analyzer testen hierfür benötige ich
Conax schrieb:
Ich habe ein Wörterbuch erstellt mit allen Städten-, Gemeinden-, Flüssen-, Berge/Gebirgszüge- und Regierungsbezirke Deutschlands (dazu noch alle Länder der Erde und deren Hauptstädte) - insgesamt ca. 14.000 Einträge.Das Wörterbuch ist schon alphabetisch sotiert und doppelte Einträge werden entfernt. Ein Problem habe ich aber noch und zwar möchte ich die Leerzeichen bzw. Tabfelder vor und nach einem Wort entfernen.
Conax schrieb:
Ich bin fast fertig mit meinem geographie Wörterbuch. Etwas nervt mich allerdings noch und zwar habe ich oft Einträge wie z.B. Mühlhausen (Franken).Gibt es da auch einen Befehl das es alles was in Klammern steht entfernt (inklusive der Klammern natürlich). Das also "(Franken)" wegfällt und nur noch Mühlhausen dort steht?
Conax schrieb:
Wie man bestehende Wörterbücher sehr effektiv bearbeiten kann weiss ich ja nun. Mich würde jetzt mal interessieren kann man sich so ein brute force Wörterbuch mit Zahlen (bei Buchstaben + Sonderzeichen kann man das vergessen) auch mit ein paar Befehlen automatisch erstellen lassen?
Conax schrieb:
Bei WPA2 z.B. besteht die Passwortlänge mindestens aus 8 Zeichen also von 00000000 bis 99999999. Besteht das Passwort also nur aus Zahlen und ist 8 Zeichen lange gäbe es also 1.0000.0000 mögliche Passwörter.
Mit ner Grafikkarte und pyrit dürfte das locker in ner Stunde dann durch sein. Bei einer stelle Mehr eben 10 Stunden und bei noch einer mehr eben 100 Stunden - also schon ein paar Tage. Deswegen finde ich das bei Zahlen es maximal bis zu 10 Stellen sinnvoll ist. Die Warscheinlichkeit das man damit ein wpa2 passwort knackt liegt vielleicht bei 2% aber immerhin. Nun könnte man dann ja mit dieser riesigen Zahlenliste rainbow tables erstellen für die häufigsten essids wie "Fritz Box ...", "easybox" oder "d-link ..." dann geht das ganze noch wesentlich schneller. Mit dieser Art der Rainbow tables habe ich dann vielleicht nur noch eine 0,5% ige chance da ja die ohne standard essid schon mal wegfallen
Conax schrieb:
erstellt mir ja Nummern von 0 bis 99999999 und übergibt diese an "beispielprogramm". Nun würde mich interessieren wie muss der Befehl aussehen damit python diese erzeugten Zahlen in eine txt Datei "beispiel.txt" schreibt (also Art Wörterbuch nur mit Zahlen)?
Eine andere Sache die mich interessieren würde kann man diesen Befehl auch so anpassen das z.B. eine andere Zahl vorgesetzt wird (also z.B. Telefonvorwahl) und dies dann ebenfalls in einer txt Datei gespeichert wird. Das also "beispiel.txt" dann so aussieht:
Conax schrieb:
und zum Schluss noch eine abschliesende Frage wie man den Befehl so anpasst das er z.B. ein bestehendes Wörterbuch einliest und Zahlen am Anfang bzw. am Ende generiert und diese an ein anderes Programm übergibt. Also nach diesem Muster:
Conax schrieb:
Tja nun ist es so weit ich beginne ein Studium der Wirtschaftsinformatik
Was studierst du hier eigentlich, Wirtschaftsinformatik ? oder gibt es jetzt schon eine Studienrichtung Wirtschaftskriminalität, wo man lernen kann mit möglichst wenig eigenen Gundlagen- und Hintergrundwissen und nur mit Hilfe des Wissens Anderer unter Ausnutzung deren Leichtglaubigkeite und Gutmütigkeit ....
Conax schrieb:
aber es geht mir ja auch nicht darum tatsächlich in fremde Netze einzusteigen - mach das ja nur für mich zum Spaß.
Bin mir nicht ganz sicher ob du dir da bewusst bist wo da die Grenzen sind und die graue Zone anfängt in der man sich schon tüchtigen Ärger einfangen kann.

Ich kann mir schon vorstellen wie die nächsten Fragen aussehen. Hier gleich mal ein paar Antworten darauf im Voraus, Variablen, Schleifen, Verzweigungen, Ablaufsteuerung, Funktionen, Rekursion, Ausgabenformatierung, Ausgabe- und Kanalumlenkung, Kommandoverknüpfung. Alles stink-normale Grundlagen und das Prinzip in fast jeder Programmier- und Scriptsprache gleich.

Es hilft alles nichts, du musst dich schon irgendwie selbst etwas mit dem Grundlagen Thema befassen.

robi
 
OP
C

Conax

Hacker
Code:
./advWörterbuch.py Wörterbuch.txt > neuesWörterbuch.txt

Also danke für den Code habe dann damit "advWörterbuch.py" erstellt und ein Blick in "neuesWörterbuch.txt" geworfen und es war genauso wie ich es haben wollte - vielen Dank.

Das "http://docs.python.org/release/2.6.6/library/stdtypes.html#sequence-types-str-unicode-list-tuple-buffer-xrange" werde ich mir mal genauer durchlesen scheint ganz interessant zu sein.

@robi

Also du brauchst nicht nur die Beiträge der letzten Zeit lesen dann dürftest du wissen das ich mich mit Wlan und Bluetooth mal etwas ausführlicher befasst habe. Siehe z.B. flashen des eeproms von wlan Hardware (obwohl ich jetzt nicht weiss ob ich das hier gepostet habe - aufjedenfall in einem anderen Forum). CRDA, compat wireless und Co. haben da auch eine Rolle gespielt und um ehrlich zu sein es hat mir eben Freude gemacht wenn ich dann auch alle Funktionen der Hardware wie maximale Sendeleistung nutzen kann (im 5 ghz Bereich sind ja sogar die Grenzwerte höher). Was den bluetooth sniffer von Michael Ossman angeht verstehe ich nicht was daran so "kriminell" sein soll gerade was den spectrum analyzer angeht. Kannst ja mal im Netz suchen nach meinen anderen Beiträgen dann wirst du feststellen es handelt sich eher aus einem Mix aus technischer Neugier (im Bereich Hardware) und Sicherheitsinteresse.
Momentan findet in einem anderen Forum ein Wettbewerb statt siehe hier:
http://www.wardriving-forum.de/forum/showthread.php?69226-Wiki-Schreibwettbewerb

Das mit den Wörterbüchern stand dort auf einer Wunschliste weshalb ich dazu einen Wiki Artikel verfassen möchte.

Mal davon abgesehen hängt es ja auch immer davon ab was man mit seinem "Wissen" macht oder werden jetzt alle Chemiker unter Generalverdacht gestellt weil Sie Substanzen haben oder an diese herankommen aus denen man Sprengstoff herstellen kann?
Das ich nicht vorhabe bei Fremden irgendeinen Schaden anzurichten macht z.B. dieser Beitrag von mir deutlich:
http://www.wardriving-forum.de/forum/showthread.php?69177-mein-eigenes-W%F6rterbuch

"Ich möchte das ganze einmal testen und würde mich freuen wenn mir jemand einen 4 way Handshake hochladen könnte. Wichtig momentan spielt noch die groß und kleinschreibung eine Rolle weswegen das Passwort in folgender Form geschrieben sein müsste (bei einem Dorf z.B. "Hohen Neuendorf")"

Ich könnte auch selber irgendeinen Handshake auftreiben aber das sniffen fremder Daten wäre ja illegal.

An Wörterbüchern ist auch schlichtweg nichts illegales daran und eigentlich hat ein ct Artikel vor Jaren mein Interesse in dieser Hinsicht geweckt. Es ging damals um dieses advanced password recovery tool von Elcomsoft das aber eben nicht kostenlos war und ich fragte mich dann ob man die Funktionen die dieses Programm bietet auch unter Linux irgendwie hinbekommt. Das interessante an dem ct Artikel waren eben die Zeiten wenn z.B. hinter jedes Wort noch Zahlen angefügt werden oder spielereien wie a = @ berücksichtigt werden. Später erschien dann irgendwann mal in der ix ein Artikel zum thema passwortknacken mittels Grafikkarte (gpu cracking) welchen ich auch sehr interessant fand. Klar man kann die Zeiten etc. alles selber ausrechnen und weiss dann wie lange der PC für dies und jenes braucht aber solche Dinge einfach mal live auszuprobieren und seine Schlüsse daraus zu ziehen machen meiner Meinung nach einfach viel mehr Spaß.
Was die Sache bzgl. meines Studiums angeht so hat dieses ja sowieso noch nicht begonnen und im Studium werde ich sicherlich etwas völlig anderes lernen (da wirds wohl eher auf Themen wie Datenbanken hinauslaufen).
 

abgdf

Guru
Python-Einzeiler ("python -c ...") bringen meiner Meinung nach nicht viel, weil sie wegen der Einrückungssyntax schnell an ihre Grenzen stoßen:
Code:
for i in range(10):
    print i
kann man zu
Code:
python -c 'for i in range(10): print i'
umsetzen, aber was ist schon mit
Code:
for i in range(10):
    if i == 5:
        print i
?
Code:
python -c 'for i in range(10): if i ==5: print i'
klappt schonmal nicht. Kann sein, daß es irgendwie geht, ein Hinweis dazu wäre nett.
Bei Einzeilern ist da Perl mit seinen geschweiften Klammern im Vorteil.
(Bei größeren (OOP-)Programmen gebe ich persönlich dagegen Python den Vorzug.)
Ein Perl-Einzeiler sähe z.B. so aus:
Code:
perl -e 'foreach (0..10){printf("%08d\n", $_);}'
Aber ich finde, robi hat recht: Deine Postings sehen schon ein bißchen "verdächtig" aus.

Gruß
 

framp

Moderator
Teammitglied
abgdf schrieb:
...
Code:
python -c 'for i in range(10): if i ==5: print i'
klappt schonmal nicht. Kann sein, daß es irgendwie geht, ein Hinweis dazu wäre nett...
Code:
python -c "for i in range(10):^M if i ==5:^M   print i"
Der Trick ist <CTRL V> und RETURN einzugeben für Newline und <CTRL V> <TAB> für Identation. Ist aber ziemlich uggly. Wie Du schon geschrieben hast ist da Perl besser zu gebrauchen für OneLiners.

robi schrieb:
...ch kann mir schon vorstellen wie die nächsten Fragen aussehen. Hier gleich mal ein paar Antworten darauf im Voraus, Variablen, Schleifen, Verzweigungen, Ablaufsteuerung, Funktionen, Rekursion, Ausgabenformatierung, Ausgabe- und Kanalumlenkung, Kommandoverknüpfung. Alles stink-normale Grundlagen und das Prinzip in fast jeder Programmier- und Scriptsprache gleich.

Es hilft alles nichts, du musst dich schon irgendwie selbst etwas mit dem Grundlagen Thema befassen.
Full ACK. Und ein paar Samples hat er jetzt ja zum lernen :roll:
 

}-Tux-{

Hacker
abgdf schrieb:
umsetzen, aber was ist schon mit
Code:
for i in range(10):
    if i == 5:
        print i
?
Code:
python -c 'for i in range(10): if i ==5: print i'
klappt schonmal nicht. Kann sein, daß es irgendwie geht, ein Hinweis dazu wäre nett.
Geht z.B. via "list comprehensions" (siehe
http://docs.python.org/tutorial/datastructures.html#list-comprehensions):
Code:
python -c "print '\n'.join([str(i) for i in range(10) if i == 5])"


}-Tux-{
 

abgdf

Guru
framp schrieb:
abgdf schrieb:
...
Code:
python -c 'for i in range(10): if i ==5: print i'
klappt schonmal nicht. Kann sein, daß es irgendwie geht, ein Hinweis dazu wäre nett...
Code:
python -c "for i in range(10):^M if i ==5:^M   print i"
Der Trick ist <CTRL V> und RETURN einzugeben für Newline und <CTRL V> <TAB> für Identation.
Ah, vielen Dank! Wieder was gelernt. :p
 
Oben