Fehler im Programm BlueMaho

Plattformunabhängige GUIs mit wxWidgets.
janni09
User
Beiträge: 9
Registriert: Dienstag 7. April 2009, 16:09

Dienstag 7. April 2009, 16:26

Hi,

vielleicht kann mir jemand helfen?

Ich setze mich zur Zeit beruflich mit dem Thema Bluetooth Pentesting auseinander,
ich habe in diesem Zusammenhang ein sehr interessantes Programm entdeckt: BlueMaho (http://wiki.thc.org/BlueMaho)

Doch leider gibt dieses an der entscheidenden Operation einen Fehler aus. Dies geschieht immer dann wenn das Programm ein externes Script mit ein paar Variablen aufrufen möchte:

Ich wäre also über jede Hilfe sehr Dankbar.

Hier die Fehlermeldung:

wxPython: stdout/stderr

Traceback (most recent call last):
File "/home/jars/BlueMaho/bluemaho.py", line 444, in OnResult
self.OnNewDevFound(dev[2])
File "/home/jars/BlueMaho/bluemaho.py", line 384, in OnNewDevFound
cmd = self.cmd_onnewdev.replace('@bt_addr@', dev)
AttributeError: 'Frame_Main' object has no attribute 'cmd_onnewdev'

Hier der Inhalt des aufgerufenen Scripts(onnewdev.cmd):

#when new device found command (olny one line) executed

#@bt_addr@ = bt_addr

#@hci@ = hciN

#@hci_num@ = 0,1,2,..N

Eterm -e ./plugins/ussp-push/ussp-push --dev @hci_num@ @bt_addr@@9 ./plugins/ed__s.gif nya.gif



Hier das Prog selbst(bluemaho.py):

[Edit (Leonidas): Code ausgelagert.]
janni09
User
Beiträge: 9
Registriert: Dienstag 7. April 2009, 16:09

Dienstag 7. April 2009, 18:45

Ich habe das Programm bereits unter verschiedenen Umgebungen ausgeführt (Ubuntu, Etch etc.), überall der selbe Fehler.....
Es muss ein Fehler im Programm-Code sein, ich hoffe ein erfahrener Programmierer kann mal ein Auge auf den Code werfen?

Ich bedanke mich im Vorraus.

Jannis
BlackJack

Dienstag 7. April 2009, 18:58

Naja die Meldung sagt's ja schon, es gibt auf dem `Frame_Main`-Objekt kein Attribut `cmd_onnewdev`, es wird aber versucht darauf zuzugreifen.

In der `OnCheckNewDev()`-Methode sollte das wahrscheinlich mal gesetzt werden, da wird nämlich die Rückgabe vom Einlesen der Datei einfach ignoriert.

Grunssätzlich sollte man Attribute alle in der `__init__()` schon an etwas sinnvolles binden, so dass das Objekt benutzbar ist. Attribute die nur bei bestimmten Aktionen entstehen, in anderen aber verwendet werden, fallen einem sonst manchmal sehr "interessant" auf die Füsse. :-)

Das ist jedenfalls eindeutig ein Bug im Programm, den man dem Autor melden sollte.
janni09
User
Beiträge: 9
Registriert: Dienstag 7. April 2009, 16:09

Dienstag 7. April 2009, 23:46

Ich danke dir auf jeden Fall für den Hinweis :D

Doch leider bin ich absoluter Laie was das Programmieren in Python angeht und da es schwierig bis unmöglich ist dem Author des Programmes den BUG zu melden (kein WIKI, kein Bug-Tracking), muss ich das irgendwie selber fixen.....

und da kommt ihr ins Spiel :lol:

Also es wäre echt cool wenn du mir eine Idioten-kompatibele Anleitung geben könntest in welcher Zeile ich was ändern muß damit es funktioniert :oops:

Am besten wäre natürlich wenn du mir sagen könntest wie ich den Code ändern muß damit es "sauber" läuft also wie ich das Attriebut bereits im `__init__()` an etwas binde. Aber sollte das zu aufwändig sein wäre es schon ein Anfang wenn du mir das mit der `OnCheckNewDev()`-Methode genau erklärst.

Im 2. Schritt wäre es noch gut wenn mann mehr als eine Zeile Code in der onnwedev.cmd ausführen könnte.. aber nur wenn meine erste Anfrage nicht schon zu viele Umstände macht.

Jannis
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Mittwoch 8. April 2009, 07:50

Der Author hat sicher eine Email Adresse angegeben, oder? Vllt gibt es die ja wirklich...
BlackJack

Mittwoch 8. April 2009, 07:57

So auf die Schnelle habe ich keinen Autor entdecken können. Der will vielleicht nicht mit den Skriptkiddies in Verbindung gebracht werden, die dieses "Hackertool" verwenden. :-)
janni09
User
Beiträge: 9
Registriert: Dienstag 7. April 2009, 16:09

Mittwoch 8. April 2009, 08:06

Ja der Author hat offenbar kein Interesse daran kontaktiert zu werden.

Allerdings schreibt er auf der Internetseite des Programms :

8. ToDo (needed)

/!\ review all code by expert programmer (sorry, but python is not my motherlanguage)
/!\ fight threads.. or try to better understand them

Ich fasse das als Aufforderung auf den Code selbst zu überarbeiten und möchte euch deshalb um eure Mithilfe bitten.

Jannis
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Mittwoch 8. April 2009, 09:55

Könnte klappen, ist ungetestet:
http://paste.pocoo.org/show/111568/

Code: Alles auswählen

373c373,374
< 	if defconf.flag_onnewdev: self.ReadCmdForOnNewDeviceFound(defconf.file_on_new_dev_found)
---
> 	if defconf.flag_onnewdev:
>             self.cmd_onnewdev = self.ReadCmdForOnNewDeviceFound(defconf.file_on_new_dev_found)
931c932
< app.MainLoop()
\ No newline at end of file
---
> app.MainLoop()
CM
User
Beiträge: 2464
Registriert: Sonntag 29. August 2004, 19:47
Kontaktdaten:

Mittwoch 8. April 2009, 10:03

Jannis PM an mich hat geschrieben:Hallo,

du scheinst viel erfahrung mit python zu haben deshalb wollte ich dich auf meinen Thread aufmerksam machen:
http://www.python-forum.de/post-131683.html

Ich wäre über jede Hilfe sehr dankbar.

Jannis
Danke, das ist zuviel der Ehre. Aber im Allgemeinen entscheiden die Forenteilnehmer eines Forums auf welche Threads sie antworten. Und ich - für meinen Teil - möchte nicht knapp 1000 Zeilen seltsamen Code eines zweifelhaften Tools durchforsten, in dem ich schon in den ersten 100 Zeilen auf Ungereimtheiten im Code stoße, die ich durch größere Umorganisation lösen würde. Die anderen hier scheinen auch wenig Lust zu haben in die Pflege des Codes anderer tiefer einzusteigen - kann mich aber auch irren ;-).

Außerdem versucht man Dir zu helfen und etwas Geduld solltest Du schon mitbringen.

Und ich mag es auch nicht, wenn man mir "Private Nachtrichten" zu öffentlichen Angelegenheiten schickt. Der Grund warum ich nicht direkt auf die PN anworte, ist dass ich vermute, dass Du das mehrfach gemacht hast / machen wirst und das solltest Du vielleicht nochmal überdenken ;-).

Gruß,
Christian
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Mittwoch 8. April 2009, 10:15

*meld* Mich auch :D

Aber da der Fehler schon genannt wurde, hab ich mal eine Zeile geändert, auch wenn er eindeutig gegen Netiquette verstoßen hat.
janni09
User
Beiträge: 9
Registriert: Dienstag 7. April 2009, 16:09

Mittwoch 8. April 2009, 10:25

@Christian

Vielen Dank das du meinen umgang mit den "Privaten Nachrichten" auch sogleich "öffentlich anprangerst"

Ich habe sonst keinen großen Umgang mit Foren, ich dachte einfach das ich so noch ein paar Leute für den thread interessieren kann.

Sollte das in irgendeiner weise nicht korrekt gewesen sein möchte ich mich dafür entschuldigen.

Du schreibst das du den Fehler im Code durch "größere Umorganisation lösen würdest" , an deinen Vorschlägen währe ich sehr interessiert.

Aber da du ja wenig Lust hast dich mit dem Programm zu beschäftigen, ist wohl leider jede weitere Anfrage an Dich überflüssig.

Ich danke dir trotzdem für deinen Beitrag.


@audax

Vielen Dank, ich werde deinen Vorschlag sogleich ausprobieren und sobald wie möglich Bericht erstatten.

Jannis
janni09
User
Beiträge: 9
Registriert: Dienstag 7. April 2009, 16:09

Mittwoch 8. April 2009, 12:04

Ich habe die Änderungen getestet, es hat auch einmal funktioniert allerdings bekomme ich seit dem die Fehlermeldung:

Traceback (most recent call last):
File "./bluemaho.py", line 445, in OnResult
self.OnNewDevFound(dev[2])
File "./bluemaho.py", line 387, in OnNewDevFound
subprocess.Popen(cmd.split())
File "/usr/lib/python2.4/subprocess.py", line 543, in __init__
errread, errwrite)
File "/usr/lib/python2.4/subprocess.py", line 894, in _execute_child
executable = args[0]
IndexError: list index out of range

Ich hoffe Ihr könnt noch einmal einen Blick drauf werfen?

Vielen Dank

Jannis
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

Mittwoch 8. April 2009, 12:27

janni09 hat geschrieben:Hallo,

du scheinst viel erfahrung mit python zu haben deshalb wollte ich dich auf meinen Thread aufmerksam machen:
http://www.python-forum.de/post-131683.html

Ich wäre über jede Hilfe sehr dankbar.

Jannis
Hallo Jannis!

Wenn mich ein Thema interessiert und ich genug Zeit dafür habe, dann versuche ich zu helfen. Das ist diesmal nicht der Fall.

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
janni09
User
Beiträge: 9
Registriert: Dienstag 7. April 2009, 16:09

Mittwoch 8. April 2009, 12:29

Ja kann man nix machen, ich danke dir trotzdem
Dauerbaustelle
User
Beiträge: 996
Registriert: Mittwoch 9. Januar 2008, 13:48

Mittwoch 8. April 2009, 12:48

janni09 hat geschrieben: ich dachte einfach das ich so noch ein paar Leute für den thread interessieren kann.
Redest du auch einfach Leute auf der Straße an und fragst sie, ob sie dir mal eben beim Einkaufen helfen wollen?!
Antworten