Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 04/02/22 in all areas

  1. import sys import argparse import os.path import netstruct #parseaza un string in format binar lungime+caractere, to UTF-8 def unpackString(d): return str(netstruct.unpack(b"b$",d)[0],'UTF-8',errors="ignore") #parseaza itemii de raspuns def unpackItems(d): items = [] num = netstruct.unpack(b"b",d[:1]) for n in range(num[0]): items.append(unpackString(d[256*n+1:])) return items #parseaza ultimul byte, numarul intrebarii corecte def unpackCorrectAnswer(d): return netstruct.unpack(b"b",d) #deschide fisierul with open("test internet9.tst", "rb") as f: #fiecare intrebare are 1589 byte b = f.read(1589) while b: #parsam fiecare intrebare in bloc de 1588 bytes #primii 51b sunt numele testului numetest = unpackString(b[:51]) #urmatorii 255b sunt textul intrebarii intrebare = unpackString(b[51:51+255]) #urmeaza un vecor de itemi de raspuns (parsat caz special) items = unpackItems(b[307:-1]) #ultimul byte e numarul intrebarii corecte answer = unpackCorrectAnswer(b[1588:]) print(numetest) print(intrebare) print(items) print(answer[0]) print("=================") b = f.read(1589) Nu ma pricep la python structs asa ca am folosit netstruct. Il iei easy cu pip install netstruct Scriptul e cam spaghetti dar face si afisarea intrebarilor si raspunsurilor. "unpackItems" e cea mai complexa, in rest implementarea e foarte directa
    2 points
  2. Salut. Am aruncat o privire. Nu e mare chestie. fisierul TST stocheaza si intrebarile si raspunsurile in format binar. (HEX) Raspunsurile sunt stocate la finalul fiecarei intrebari, dupa itemi: Formatul e de genul: nume test intrebare item1 item2 ... raspuns(in format binar) nume test intrebare2 item ... Toata teoria sta in a parsa fisierul TST, nu stiu exact ce format are, stringurile sunt precedate de 2 byte pentru lungimea stringului. Mi se pare ca intrebarile/itemii su un offset fix unele fata de altele, deci ar fi trivial sa imparti TST-ul un chunks ca sa extragi intrebarile. Zi in ce limbaj de programare te pricepi, si daca te incurci undeva in parsarea fisierului.
    1 point
  3. de ce nu posteaza mai nimeni azi?
    1 point
  4. Salut, Delphi compileaza direct in assembler. Prim pas poti incerca "detect iti easy" sa fii sigur ca e scris cu delphi. Apoi mai erau dede si idr (interactive delphi reconstructor), dar acolo vezi putin gui si codul recuperat e bineinteles asm. Succes!
    1 point
×
×
  • Create New...