1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. meisterlampe00

Beiträge von meisterlampe00

  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • meisterlampe00
    • 5. Mai 2016 um 02:41

    Guten Tag,

    Ich versuche gerade eine möglichkeit zu finden meine .ply datei die ASCII verschlüsselt ist zu verarbeiten.
    Gibt es eine möglichkeit zu sagen slot1=02 00 00 00 00 00 00 00 00 00 00 liegt bei Offset=000000310 von 05-0F = $slot1

    Mein erster Lösungsansatz war den Datensatz mit _StringBetween($file,"02","02") auszulesen und wenn wert der zwischen 02 02 genau 20 Zeichen hat ist es ein Inventarslot! Klappt super bis auf das Problem wenn in dem Stringbetween(02,02) eine 02 zwischen den 20 Zeichen liegt splittet er nochmal auf. Somit keine 20 Zeichen mehr und ein Inventarslot fehlt.

    Deswegen muss ich glaube ich die Datei in Hex einlesen und die Inventar Slots per Offset festlegen die frage ist nur wie....
    Ist das möglich?

    Ich habe ein bild hochgeladen vieleicht erklärt es das etwas besser.
    02 00 00 00 00 00 00 00 00 00 00 = 1 Inventarslot

    AutoIt
    Func test()
    	$steamid = "76561197990256655"
    	$filetest = FileOpen($savepath & "\" & $steamid & ".ply")
    	$file1 = FileRead($filetest)
    	$erg = Hex($file1)
    $temp=_StringBetween($erg,"02","02")
    Dim $Ergebnis[1]
    For $i=0 to _UBound($temp)
    	$test=StringLen($temp[$i])
    	$test=String($test)
    	if ($test=20) Then
    		_ArrayAdd($Ergebnis,$temp[$i])
    		$Ergebnis[0] += 1
    	Else
    		ContinueLoop
    	EndIf
    Next
    _ArrayDisplay($Ergebnis)
    Alles anzeigen

    Kann mir jemand folgen?

    Dateien

    hilfe.jpg 542,35 kB – 0 Downloads
  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • meisterlampe00
    • 4. Mai 2016 um 14:21

    Aber wo ist dann mein Fehler?

    Bei mir steht dort nur der Hexcode ;(
    Hab mich etwas schlauer gemacht ;). Der Code in der Original datei ist Ascii kannst du damit etwas anfangen?

    AutoIt
    Func test()
    $steamid = "76561197990256655"
    $filetest = FileOpen($savepath & "\" & $steamid & ".ply")
    $file1 = FileRead($filetest)
    $erg = Hex($file1)
    $anfangread = _StringBetween($erg, "", "0A0002")
    $inv = FileOpen($savepath & "\Saves\inventory.txt")
    $invread = StringStripWS(FileRead($inv), 8)
    FileClose($inv)
    $enderead = _StringBetween($erg, "7D0B47", "")
    $endstring = $anfangread[0] & $invread & $enderead[0]
    $endstring = Binary("0x" & $endstring)
    Alles anzeigen

    Habe es jetzt so angepasst aber irgendwo ist der wurm drinnen...

    Die datei sieht gleich aus, allerdings geht er hin und packt die inventorydatei zwei mal rein so wie es aussieht

  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • meisterlampe00
    • 4. Mai 2016 um 02:01

    Dankesehr wieder etwas schlauer ;),
    gibt es den irgendein programm das die dateien konvertieren kann?

    Oder hat jemand einen anderen lösungsvorschlag

  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • meisterlampe00
    • 4. Mai 2016 um 00:13

    Danke, ich werde es gerne mal ausprobieren ;)
    darf ich fragen für was das Binary("0x") steht?

    und sehe ich das richtig du nimmst die StingBetween direkt aus dem Array.
    StringStripWS?

    Vielen Dank

    Error :(
    Der Output der geänderten Datei=

    Code
    3078343235323934373830334531413530313030303434313642373536313034343136423735363130314531413530313030303130313030303030303031303030333841374430423437313336323331373236343539334332303343333332303533373736353635373435393230334133333030303046464646464646463030303030303030303030303030303030303
    
    
    
    
    OriginalDatei
    
    
    BR”xᥠAkuaAkuaᥠ    Š}Gb1rdY< <3 SweetY :3  ÿÿÿÿ                 ᥠÿÿ?·xÅ_ÕîA$·CM3@Ê\SCH4C    Åxv?    Óbо     úC          úC  úC  úC    
                                     úC          úC  úC  úC
  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • meisterlampe00
    • 3. Mai 2016 um 18:16

    Hexwerte schon per Hand geändert und hat funktioniert. Die Einzelnen Id´s usw muss ich mir dann später zusammen Doktoren.
    Das spiel ist eine Weltraum Simulation mit XYZ werten ich denke es wird eine richtige .ply Datei sein.
    Die Datei die ich hochgeladen habe ist von meinem Spieler Leer, also kann sie gerne angeschaut werden:)

    Jetzt geht es erstmal darum es editieren zu können.

    Code
    nehmen wir den wert: 02 00 00 00 00 00 00 00 00 00 ; wäre z.b Ein Leerer Inventarslot.
    
    
    02 00 00 00 00 00 38 07 98 00   150 einheiten .50 Kaliber munition
                     { ^  } { ^ }
                       |      |Anzahl der Items
                       | ItemId
  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • meisterlampe00
    • 3. Mai 2016 um 16:50

    Danke, ich versuche mir das ganze anzueignen komme aber echt auf keinen grünen zweig aua

    wie bekomme ich die definierten offsets`?


    Kann man eventuell alle unnötigen beiträge löschen damit es wieder etwas übersichtlicher ist?

  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • meisterlampe00
    • 3. Mai 2016 um 15:20

    Ich bin ServerHoster von Galaxy9.de es geht darum die .ply dateien die NUR auf dem Server liegen auszuwerten und gegebenenfalls zu editieren.
    Die .ply Dateien sind Serverseitig abgespeichert. Es gibt in dem Spiel keinerlei möglichkeit das inventar des Spielers einzusehen. Und da das spiel noch Alpha ist lassen die Hacker nicht auf sich warten...

    Da mir schon öfters von Spielern berichtet worden ist das andere Spiele die sie Getötet haben ein item x9999 verloren haben z.b ist es mir langsam echt zu wieder sowas zu tollerieren.
    Es muss eine möglichkeit geben diese daten abzufangen auszulesen und so leute bannen zu können.

    Im endeffekt möchte ich mit diesem Tool .ply auswerten wenn er zuviel von einer xmenge hat seine ID markieren usw das ist aber nicht das problem.

    Mein ServerManagertool ist schon voll funktionsfähig und läuft nur Serverseite auf dem Root. Interagiert per Telnet mit dem Lokalen Server

  • Profis-Bitte. Datei auslesen, Hexwerte vergleichen und ändern.

    • meisterlampe00
    • 3. Mai 2016 um 15:04

    Guten Tag,
    Meine überschrift dürfte nicht viel helfen, ich hoffe dennoch das sich jemand erbarmt mir zu helfen :(.
    Es geht um eine möglichkeit das Inventar von einem spieler Serverseitig zu Editieren

    Sprich .ply Datei auslesen bis zum punkt X = Variable=X
    inventory.txt auslesen wo ich die HEXwerte eingetragen habe Variable=Y
    .ply Datei auslesen ab punkt Z-ende Variable=Z

    Datei einlesen als Binary somit kann ich die hexwerte suchen oder nicht?

    am ende aus den 3 Variablen wieder eine korrekte .ply datei bauen
    Eine .ply lade ich anbei mir hoch genauso wie die inventory.txt


    AutoIt
    $steamid="76561197990256655"
    				  sleep(200)
    				  $filetest=FileOpen($savepath&"/"&$steamid&".ply")
    				  $file1=FileRead($filetest);datei einlesen Output=Binary
    				  ;-------------------------------------
    				  $anfangread=_StringBetween($file1,"42 52 94”","0A 00 02");BR" - 0A 00 02
    				  $anfang=_ArrayToString($anfangread)
    				  ;-----------------------------------------
    				  $inv=FileOpen(@ScriptDir&"/Saves/inventory.txt",16)
    				  $invread=FileRead($inv)
    				  ;-----------------------------------------
    				  $enderead=_StringBetween($file1,"E5 08 5E","3D 95 AF DB");E5 08 5E - ende 3D 95 AF DB;
    				  $ende=_ArrayToString($enderead)
    				  ;-----------------------------------------
    		 sleep(1000)
    		FileClose($filetest)
    	        FileDelete($savepath&"/"&$steamid&".ply")
    		Sleep(1000)
    		FileWrite($savepath&"/"&$steamid&".ply","Was hier eintragen?")<----- da hänge ich jetzt
    Alles anzeigen

    Was muss ich jetzt tun? nochmal von BinarytoString ändern? oder gibt es die möglichkeit

    die eingelesenen Array´s direkt als Binary abzuspeichern? z.b _arraytobinary? oder etwas in der Art?

    Hat irgendjemand eine Idee wie ich das umsetzen kann?

    Dateien

    76561197990256655.ply.txt 1,77 kB – 275 Downloads inventory.txt 1,66 kB – 296 Downloads

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™