Hallo,
ich bin vollkommen unwissend, wie man mit dieser Programmierung umgeht. Ich habe versucht mich auf die Schnelle einzulesen, aber festgestellt, dass es mit der "auf die Schnelle" nicht ganz so klappt
Jedenfalls habe ich im Netz nach einer Möglichkeit gesucht Battle Eye Guid's in Steam ID's zu konvertieren.
Ich weiss nicht, ob es jemanden was sagt, bei Fragen kann ich gerne näher drauf eingehen.
Kurzfassung: Aus einer Guid wie z.B.: 27aeaaf284448bb0ebb5526726e5ac1e soll eine Stem ID generiert werden: 76561197989462866
Nun hab ich jemanden gefunden, der dazu ein Script (python 2.7) geschrieben hatte: https://www.dropbox.com/s/xy51e05hhtbwc ... 64.py?dl=0
Leider weiss ich damit gar nichts anzufangen
Sagt vielleicht jemandem dies etwas? Wie kann ich es benutzen? Irgendwo müsste ich die eine GUID eintippen und eine ID müsste raus kommen.
Wie aber??
Danke im Voraus und Gruß
M4rty
Bräuchte Hilfe ein Script zu verstehen
@m4rty: Der Autor war doch so freundlich seine E-Mail-Adresse in den Quelltext zu schreiben. Da hättest Du nachfragen können wie man sein Programm verwendet.
Da es aus Pythonista-Sicht ziemlich gruselig aussieht habe ich es mal in ”echtem” Python neu geschrieben:
Die GUIDs müssen in einer Datei mit dem Namen `GUIDs.txt` stehen. Eine pro Zeile. Hinter der GUID darf auf der Zeile noch Text stehen, zum Beispiel ein Benutzername oder eine Notiz.
Da es aus Pythonista-Sicht ziemlich gruselig aussieht habe ich es mal in ”echtem” Python neu geschrieben:
Code: Alles auswählen
#!/usr/bin/env python
# coding: utf-8
from __future__ import absolute_import, division, print_function
from collections import namedtuple
from datetime import datetime as DateTime
from hashlib import md5
def reversed_long_range(start, end):
while start < end:
end -= 1
yield end
class Player(namedtuple('Player', 'guid steam_id note')):
def __str__(self):
return '{0.guid} {0.steam_id} {0.note}'.format(self)
def log(prefix, suffix=''):
#
# TODO: Replace with `logging`.
#
print(
'{0} {1:%Y-%m-%d %H:%M:%S} {2}'.format(prefix, DateTime.now(), suffix)
)
def steam_id_to_guid(steam_id):
temp = ['BE']
for _ in xrange(8):
temp.append(chr(steam_id & 0xFF))
steam_id >>= 8
return md5(''.join(temp)).hexdigest()
def iter_players(filename):
with open(filename) as lines:
for line in lines:
yield Player(line[:32], None, line[32:])
def brute_force(guid2player, first_steam_id, last_steam_id):
for steam_id in reversed_long_range(first_steam_id, last_steam_id + 1):
guid = steam_id_to_guid(steam_id)
try:
player = guid2player.pop(guid)
except KeyError:
pass
else:
log('Found at:', ' {0} {1}'.format(guid, steam_id))
yield player._replace(steam_id=steam_id)
if not guid2player:
break
def print_players(players, label):
print(label)
for player in players:
print(player)
def main():
first_steam_id = 76561197900000000
last_steam_id = 76561198300000000
log('Start:')
# File must contain one or more GUIDs. One guid per line
guid2player = dict(
(player.guid, player)
for player in iter_players('GUIDs.txt')
)
decoded_players = sorted(
brute_force(guid2player, first_steam_id, last_steam_id)
)
log('End:')
print_players(sorted(guid2player.itervalues()), 'Coded list:')
print_players(decoded_players, 'Decoded list:')
if __name__ == '__main__':
main()
Vielen Dank für das bereinigen des Scripts und die Hilfe
Problem ist mit der direkten Kontaktaufnahme, dass ich dieses Script von einem Mod über ein Forum bekommen habe. Er selber hat es von einem Kollegen aus USA, der es ihm geschrieben hatte. Bei meinen Englischkenntnissen würde ich nicht sehr weit bei ihm kommen
Habe nun eine GUIDs.txt Datei mit einer GUID erstellt und mit der .Scriptdatei (.py) in einen Ordner gepackt.
Dann das Script über die Python Shell gestartet:
Dies wird ausgegeben:
Python 2.7 (r27:82525, Jul 4 2010, 07:43:08) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
Start: 2016-01-04 23:10:32
Hmm, wo sollte denn nun die ID ausgegeben werden?
Danke im Voraus.
Problem ist mit der direkten Kontaktaufnahme, dass ich dieses Script von einem Mod über ein Forum bekommen habe. Er selber hat es von einem Kollegen aus USA, der es ihm geschrieben hatte. Bei meinen Englischkenntnissen würde ich nicht sehr weit bei ihm kommen
Habe nun eine GUIDs.txt Datei mit einer GUID erstellt und mit der .Scriptdatei (.py) in einen Ordner gepackt.
Dann das Script über die Python Shell gestartet:
Dies wird ausgegeben:
Python 2.7 (r27:82525, Jul 4 2010, 07:43:08) [MSC v.1500 64 bit (AMD64)] on win32
Type "copyright", "credits" or "license()" for more information.
>>> ================================ RESTART ================================
>>>
Start: 2016-01-04 23:10:32
Hmm, wo sollte denn nun die ID ausgegeben werden?
Danke im Voraus.
@m4rty: Auch dort. Du musst Geduld haben, da werden ja stur Möglichkeiten durchprobiert in der Hoffnung dass die richtige dabei ist. „Brute force“ halt.