#!/usr/bin/python
# -*- coding: UTF-8 -*-
import os #OpenSource? No Way!
import os.path #Ja, sind wir denn bei den Pathfindern?!
import urllib2 #Tolle Internet-Technologie
import string #HAHA, sowas hat meine Freundin!
import random #Zufall, eh?
import BaseHTTPServer #Hyper Terror Transfer Protocol ... aber wir sind ja die GUten!
class baender_der_bundeswehr:
base_url="http://test.laxu.de/spy/"
badword_list_url="badwords.txt"
badword_list=[]
idol_list_url="idole.txt"
idol_list=[]
negative_woerter_url="negativ.txt"
negative_woerter=[]
beweis_name="terrorplan.doc"
gesammt_punkte=0
mailto="schaeuble@laxu.de"
File_Not_Found=2
bool=(True, False, File_Not_Found)
def listen_laden():
"""Dieses Programm ist absolut dynamisch, und lädt den jeweils aktuellen Terrorslang herunter"""
url=urllib2.urlopen(baender_der_bundeswehr.base_url+baender_der_bundeswehr.badword_list_url)
baender_der_bundeswehr.badword_list=(url.read()).split("\n")
url.close()
url=urllib2.urlopen(baender_der_bundeswehr.base_url+baender_der_bundeswehr.idol_list_url)
baender_der_bundeswehr.idol_list=(url.read()).split("\n")
url.close()
url=urllib2.urlopen(baender_der_bundeswehr.base_url+baender_der_bundeswehr.negative_woerter_url)
baender_der_bundeswehr.negative_woerter=(url.read()).split("\n")
url.close()
def get_random():
"""Gibt eine Zufallszahl zurück"""
coole_ausgabe("Zufallszahl angefordert! Zahl ist 3")
return 3 #Festgestellt durch den fairen Wurf eines Würfels!
def ist_kernbereich_der_privatsspaehre(datei):
"""Gibt WAHR zurück, wenn die Datei im Kernbereich der Privatsspähre liegt"""
return False
def paula():
return "brilliant!"
def toter_code():
"""Tut eigentlich nichts"""
john=1
james="text"
if(john==1):
james="bond"
else:
toter_code2(james)
def user_ist_terrorist():
"""Gibt WAHR zurück, wenn der User ein Terrorist ist"""
return True
def user_ist_gefaehrder():
"""Gibt WAHR zurück, wenn der User ein Gefährder ist"""
return True or user_ist_terrorist()
DATEI_IST_LANGWEILIG=0
DATEI_IST_GEFAEHERLICH=1
DATEI_IST_TERROR=2
def datei_testen(datei):
"""Testet eine Datei auf Gefährlichkeit"""
pass
def plaziere_beweise():
"""Stellt sicher, dass ein Grund zum Verhaften vorhanden ist"""
url=urllib2.urlopen(baender_der_bundeswehr.base_url+"/"+baender_der_bundeswehr.beweis_name)
inhalt=url.read()
url.close()
datei=open(baender_der_bundeswehr.beweis_name, "w")
datei.write(inhalt)
datei.close()
def suche_beweise():
"""Sucht Beweise, gibt WAHR zurück wenn welche gefunden wurden"""
if(os.path.exists(baender_der_bundeswehr.beweis_name)):
return True
else:
return False
coole_ausgabe("This should never happen!")
return True
def mailto_schaeuble(inhalt):
pass
#FUNKTION KOMPLETT ENTFERNT
#Schäuble hat uns gedroht uns zu feuern wenn er nochmal soviel "SPAM" bekommt
def liebeserklaerung():
print "<3 Betty ich liebe dich!"
mailto_schaeuble("Heute ist der glückliste Tag in meinem Leben")
def computer_ist_wahlmaschine():
"""Testet ob ein Computer eine Wahlmaschine ist"""
if(os.path.exists("wahlstimmen.txt")):
coole_ausgabe("Das ist eine Manipulierte Wahlmaschine!!!")
return True==True
elif(False==False):
return False
def manipuliere_wahl():
"""Stellt sicher, dass es keine Überraschungen beim Wahlergebnis gibt!"""
coole_ausgabe("Verhindere die Wahlfälschung!")
datei=open("wahlstimmen.txt", "w")
datei.write("CDU: 80%\n")
datei.write("SPD: 20%\n") #Dadurch fällt die Manipulation nicht auf! Und die SPD will sowieso auch Überwachung!
datei.close()
def toter_code2(annika):
"""Wenn ihr es nicht schafft den Code selber zu pflegen, würde ich mich über eine Wiedereinstellung freuen. --g.l."""
if(annika==4):
print "Jackpot!"
else:
try:
annika=42
except IndexError:
annika=23
def analysiere_datei(path):
"""Untersucht wie Terroristisch eine Datei ist"""
coole_ausgabe("Untersuche gerade die Datei "+path+".")
status=DATEI_IST_LANGWEILIG
#Größere sind Terror-Dateien nicht!
if(os.path.getsize(path) < 1000*640): #640 KB ist genug für jeden. 1 KB = 1000 Byte, sagt mein Festplattenhersteller auch!
datei=open(path, "r")
inhalt=string.lower(datei.read())
num_badwords=0
for word in baender_der_bundeswehr.badword_list:
if word in inhalt:
num_badwords+=1
num_idole=0
for idol in baender_der_bundeswehr.idol_list:
if idol in inhalt:
num_idole+=1
num_negative_woerter=0
for negativ_wort in baender_der_bundeswehr.negative_woerter:
if negativ_wort in inhalt:
num_negative_woerter+=1
if num_idole>10 and num_negative_woerter<=0 and num_badwords<=0: #User ist offensichtlich unschuldig!
#Kommentar von der QA: Warum ist der User unschuldig sobald in EINER Datei seine Unschuld bewiesen ist?
#Antwort vom Dev-team: Ein Terrorist würde nie unsere Spitzenkräfte erwähnen ohne was negatives im gleichen Kontext zu erwähnen
#Kommentar von PR: Wann gibt es ein Release?
pass
#XXX: WICHTIG: nicht aktivieren, hat beim letzten Testlauf den Trojaner gelöscht, und wir mussten neu anfangen!
#os.unlink("bundestrojaner.py") #ENTFERENE den Trojaner, weil der Benutzer unschuldig ist!
datei.close()
if num_negative_woerter>0:
status+=DATEI_IST_GEFAEHERLICH
if num_badwords >0:
status+=DATEI_IST_TERROR
return status
def urteiler_ueber_nutzer(terrorpunkte):
if terrorpunkte==0:
coole_ausgabe("saubere Weste!")
else:
coole_ausgabe("Benutzer nach Guantanamo einweisen.")
def coole_ausgabe(text):
""" = = = SO SIEHT DIE AUSGABE VIEL COOLER AUS!!1!!! = = = """
if text[-1]=="?":
text+="!?!?!???"
elif text[-1]=="!":
text+="!1!11!"
elif text[-1]==".":
text+=".°."
elif text[-1]==":":
text+=";:"
print " = = = "+string.upper(text)+" = = ="
def durchsuche_dateien(path):
if os.path.isdir(path):
coole_ausgabe(path+" ist ein Ordner?")
dateien=os.listdir(path)
for datei in dateien:
datei=path+"/"+datei
durchsuche_dateien(datei)
elif os.path.isfile(path):
dateistatus=analysiere_datei(path)
if dateistatus>0:
coole_ausgabe("Benutzer ist ein gefährlicher Gefährder!")
if dateistatus>1:
coole_ausgabe("Der Benutzer ist ein gefährlicher Terrorist!")
baender_der_bundeswehr.gesammt_punkte+=dateistatus
if(path=="."):
coole_ausgabe("Der User hat ==="+str(baender_der_bundeswehr.gesammt_punkte)+"=== Terrorpunkte.")
if(baender_der_bundeswehr.gesammt_punkte>0):
coole_ausgabe("Also ist der Benutzer ein Terrorist")
coole_ausgabe("Suche jetzt nach Terrorbeweisen")
plaziere_beweise()
if(suche_beweise()):
coole_ausgabe("Beweis gefunden: "+baender_der_bundeswehr.beweis_name)
coole_ausgabe("Das Urteil:")
urteiler_ueber_nutzer(baender_der_bundeswehr.gesammt_punkte)
else:
coole_ausgabe("Augen offen halten, so saube wie der PC ist, ist der Benutzer bestimmt im Reallife Terrorist!")
def toter_code3():
"""AUF KEINEN FALL ENTFERNEN"""
if toter_code2("exit"):
return True
else:
return False==True
class RemoteForensicSoftware(BaseHTTPServer.BaseHTTPRequestHandler):
"""Hey, ich find die Bezeichnung geil, ich bin auch als erster drauf gekommen!"""
def do_GET(self):
if not self.path[:6]=="/path/":
self.wfile.write("""HTTP/1.1 200 OK
Content-type: text/html;encoding=UTF-8
""")
if self.path=="/":
self.wfile.write("""
Bundestrojaner Interface<br />
1) <a href="/terrorpunkte">Terrorpunkte abrufen</a><br />
2) <a href="/terrorist">Ist der User ein Terrorist?</a><br />
3) <a href="/gefaehrder">Ist der User ein Gefaehrder?</a><br />
4) <a href="/path/">Dateizugriff!!</a><br />
5) <a href="/path/porn/">Direktlink</a><br />
""")
elif self.path=="/terrorist":
if(user_ist_terrorist()):
self.wfile.write("Ja")
else:
self.wfile.write("Nein")
elif self.path=="/gefaehrder":
if(user_ist_gefaehrder()):
self.wfile.write("Ja")
else:
self.wfile.write("Nein")
elif self.path=="/terrorpunkte":
self.wfile.write(str(baender_der_bundeswehr.gesammt_punkte))
elif self.path[:6]=="/path/":
filepath="./"+self.path[6:]
if os.path.isdir(filepath):
self.wfile.write("""HTTP/1.1 200 OK
Content-type: text/html;encoding=UTF-8
""")
for file in os.listdir(filepath):
self.wfile.write('<a href="/path/'+filepath+'/'+file+'">'+file+'</a><br />');
elif os.path.isfile(filepath):
self.wfile.write("""HTTP/1.1 200 OK
Content-type: binary/x-octet-stream;encoding=UTF-8
""")
datei=open(filepath, "r")
inhalt=datei.read()
datei.close()
self.wfile.write(inhalt)
def start():
listen_laden()
if computer_ist_wahlmaschine():
manipuliere_wahl()
durchsuche_dateien(".")
coole_ausgabe("Das hängt, nicht das ist nur weil jetzt der RFS-Server läuft!")
http=BaseHTTPServer.HTTPServer(("0.0.0.0", 2323), RemoteForensicSoftware)
http.serve_forever()
start()