4 stellige Ziffer knacken mit Hilfe von Code?

2 Antworten

Um mit einem System arbeiten zu können, müsstest du noch irgendwelche Infos von der Pin haben. Z.B. dass zwei gleiche Ziffern vorgekommen sind, oder dass es irgendeine Kombination der Ziffern 5,6,7,8 war. Damit könnte man es auf sehr wenige Möglichkeiten eingrenzen. Ansonsten bleibt wirklich nur Brute-Force.

Je nachdem, wie lange es pro Versuch dauert, dauern 10000 Versuche aber auch nicht sehr lange. Es kann aber z.B. sein, dass du nach drei Fehlversuchen gesperrt wirst

EddyMitY 
Fragesteller
 06.09.2022, 12:27

Tschuldige wollte hilfreich ankreuzen 😘

Ich glaube der Kommentar von sucht00 hat sehr geholfen.

0

Ich kenne mich zwar nicht wirklich mit Python aus aber eigentlich müsste es ja ausreichen, einfach eine Variable in einer For-Schleife von 0-4000 zählen zu lassen.

So, wie ich es gelesen habe, muss der Code aber genau 4 Stellen lang sein, daher kannst du einfach jedes Mal die Variable mit Nullen füllen lassen.

Dafür gibt es anscheinend die Methode zfill(n) in Python. Bei n gibt's du einfach 4 an. Dadurch werden dem String immer soviele Nullen vornheran gestellt bis es vier Stellen sind.

EddyMitY 
Fragesteller
 06.09.2022, 12:28

Hast du da eine Idee wie ich das am besten umsetze? Bin nicht sooo Programmier erfahren.

Lg

0
EddyMitY 
Fragesteller
 06.09.2022, 12:42

Fürs reine zählen hätte ich so getestet.

txt = "0"

i = 0

while i <= 7:

txt = int(i)

print(str(txt).zfill(4))

i += 1

Geht das besser?

0
daCypher  06.09.2022, 14:04
@EddyMitY

Die Zahlen sind das kleinste Problem. Du kannst eine Liste mit allen Zahlen einfach so aufbauen:

liste = [f"{i:04}" for i in range(10000)]

Die Schwierigkeit liegt darin, die Zahlen dahin zu senden, wo sie hin sollen. Vielleicht musst du uns genauer sagen, um was es geht, damit wir dir da auch weiterhelfen können.

1
EddyMitY 
Fragesteller
 06.09.2022, 14:12
@daCypher

Um das Spiel ark, dort habe ich ein Tresor auf den ich mir e zugreifen, dann kann ich 4 zahlen eingeben und entweder ist es richtig und ich gelange ins Inventar des Tresors oder ich werde wie auf die Ausgangs Position zurück gestellt und muss wieder e drücken und wieder 4 zahlen. Es gibt hierbei kein timer oder deerartiges.

Die zahlen so krige ich ja schon hin aber kann ich beispielsweise sagen dass ich die 3. Stelle von i also z. B. 0017 oder so abfagen?

Also quasi die einzelnen Stellen der variable Abfrage und dann ausgebe?

Es gibt ja sehr wahrscheinlich addons für Keyevents oder derartiges.

Lg

0
daCypher  07.09.2022, 14:42
@EddyMitY

Wenn du den Code oben ausführst, dann kriegst du eine Variable namens "liste", in der alle Kombinationen drinstehen. Dann kannst du mit liste[3] natürlich den vierten Eintrag ("0003", weil 0-indiziert) ausgeben. Oder auch mit "for entry in liste:" eine Schleife starten, die jeden Eintrag durchgeht.

Wenn es in dem Spiel reicht, einfach nur bestimmte Tasten zu drücken, kannst du mit pyautogui ziemlich einfach Tastenanschläge simulieren.

1
EddyMitY 
Fragesteller
 07.09.2022, 21:41
@daCypher

Naja das war ja schon so, es geht darum dass ich nicht sagen kann (davon aus gegangen sendKey wäre ein richtiger command) sendKey(liste) also sendKey(1230) sonder ja sagen muss sendKey(erste stelle also 1)

sendKey(zweite stelle also 2)

sendKey(dritte stelle also 3)

sendKey(vierte stelle also 0)

Verstehst du was ich meine? Oder kennst du eine librarie bei der ich (1234) eingeben kann und es wird so auch simuliert?

Lg

0
daCypher  08.09.2022, 09:11
@EddyMitY

Ja. Mit pyautogui kannst du auch ganze Texte auf einmal eingeben lassen. Wenn du z.B. einfach nur die Zahlen und dann Enter drücken willst, geht es so:

import pyautogui as p

liste = [f"{i:04}" for i in range(10000)]
p.countdown(5) # Damit man in ein anderes Programm wechseln kann

for pin in liste:
    p.typewrite(pin)
    p.press('enter')

Damit du pyautogui benutzen kannst, musst du evtl. vorher in cmd oder in powershell die Library installieren mit "pip install pyautogui"

1