Autor
|
Tema: [Ayuda] Archivo cifrado (Leído 5,114 veces)
|
MuPiolaa
Desconectado
Mensajes: 5
|
Hay un juego 2D que generalmente contiene una carpeta con todos los graficos enumerados, esos graficos están en formato bmp o png. Pero este servidor tiene esos 'graficos' (son imagenes que contienen los movimientos de todos los objetos del juego) cifrados en un solo archivo que se carga al iniciar el juego y de ahi carga cada grafico en memoria y el cliente lo visualiza. Lo que yo intento hacer es descifrar ese archivo para poder ver esos graficos que contienen los movimientos de los objetos del juego. Lo único que sé es que tanto el juego como el encriptador están hechos en Visual Basic 6. Me podrían guiar por donde arrancar para poder desencriptarlo? Si alguno tiene ganas de probar algo, aca tienen las descargas: Juego completo: http://www.tierras-perdidas.com/d/setup511a.exeArchivo grafico cifrado: http://www.mediafire.com/download/8iiedx5asyx31lt/grh.tpdesde ya muchas gracias.
|
|
|
En línea
|
|
|
|
engel lex
|
como sabes que está cifrado y no solo unido? intentaste analizar la estructura del archivo a ver si conseguías los objetos? sabes que es lo que buscas?
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
MuPiolaa
Desconectado
Mensajes: 5
|
No entiendo completamente lo que decís. CREO que la manera de cifrar las imagenes es similar (no igual) a esta: Private Declare Function compress Lib "zlib.dll" (dest As Any, destlen As Any, Src As Any, ByVal srclen As Long) As Long Private Declare Function uncompress Lib "zlib.dll" (dest As Any, destlen As Any, Src As Any, ByVal srclen As Long) As Long
Public Function Compress_Files(ByRef SourcePath As String, ByRef OutputPath As String, ByVal version As Long, ByRef prgBar As ProgressBar, ByVal NameFile As String, Optional ByRef Extension As String = ".bmp") As Boolean '***************************************************************** 'Author: Nicolas Matias Gonzalez (NIGO) 'Last Modify Date: 08/19/2007 'Compresses all graphic files to a resource file '***************************************************************** Dim SourceFileName As String Dim OutputFilePath As String Dim SourceFile As Long Dim OutputFile As Long Dim SourceData() As Byte Dim FileHead As FILEHEADER Dim InfoHead() As INFOHEADER Dim loopc As Long
'On Local Error GoTo ErrHandler OutputFilePath = OutputPath & NameFile SourceFileName = Dir(SourcePath & "*" & Extension, vbNormal) ' Create list of all files to be compressed While SourceFileName <> "" FileHead.lngNumFiles = FileHead.lngNumFiles + 1 ReDim Preserve InfoHead(FileHead.lngNumFiles - 1) InfoHead(FileHead.lngNumFiles - 1).strFileName = UCase$(SourceFileName) #If SeguridadAlkon Then 'We want the list ordered considering encryption Call Secure_Info_Header(InfoHead(FileHead.lngNumFiles - 1)) #End If 'Search new file SourceFileName = Dir() Wend If FileHead.lngNumFiles = 0 Then MsgBox "No se encontraron archivos de extención " & GRH_SOURCE_FILE_EXT & " en " & SourcePath & ".", , "Error" Exit Function End If If Not prgBar Is Nothing Then prgBar.max = FileHead.lngNumFiles prgBar.Value = 0 End If 'Destroy file if it previuosly existed If Dir(OutputFilePath, vbNormal) <> "" Then Kill OutputFilePath End If 'Finish setting the FileHeader data FileHead.lngFileVersion = version FileHead.lngFileSize = Len(FileHead) + FileHead.lngNumFiles * Len(InfoHead(0)) 'Order the InfoHeads Call Sort_Info_Headers(InfoHead(), 0, FileHead.lngNumFiles - 1) 'Open a new file OutputFile = FreeFile() Open OutputFilePath For Binary Access Read Write As OutputFile ' Move to the end of the headers, where the file data will actually start Seek OutputFile, FileHead.lngFileSize + 1 ' Process every file! For loopc = 0 To FileHead.lngNumFiles - 1 #If SeguridadAlkon Then Call Secure_Info_Header(InfoHead(loopc)) #End If SourceFile = FreeFile() Open SourcePath & InfoHead(loopc).strFileName For Binary Access Read Lock Write As SourceFile 'Find out how large the file is and resize the data array appropriately InfoHead(loopc).lngFileSizeUncompressed = LOF(SourceFile) ReDim SourceData(LOF(SourceFile) - 1) 'Get the data from the file Get SourceFile, , SourceData 'Compress it Call Compress_Data(SourceData) 'Store it in the resource file Put OutputFile, , SourceData With InfoHead(loopc) 'Set up the info headers .lngFileSize = UBound(SourceData) + 1 .lngFileStart = FileHead.lngFileSize + 1 'Update the file header FileHead.lngFileSize = FileHead.lngFileSize + .lngFileSize End With #If SeguridadAlkon Then Call Secure_Info_Header(InfoHead(loopc)) #End If Erase SourceData Close SourceFile 'Update progress bar If Not prgBar Is Nothing Then prgBar.Value = prgBar.Value + 1 DoEvents Next loopc #If SeguridadAlkon Then Call Secure_File_Header(FileHead) #End If 'Store the headers in the file Seek OutputFile, 1 Put OutputFile, , FileHead Put OutputFile, , InfoHead 'Close the file Close OutputFile Erase InfoHead Erase SourceData Compress_Files = True Exit Function
ErrHandler: Erase SourceData Erase InfoHead Close OutputFile Call MsgBox("No se pudo crear el archivo binario. Razón: " & Err.Number & " : " & Err.Description, vbOKOnly, "Error") End Function
Private Sub Compress_Data(ByRef data() As Byte) '***************************************************************** 'Author: Juan Martín Dotuyo Dodero 'Last Modify Date: 10/13/2004 'Compresses binary data avoiding data loses '***************************************************************** Dim Dimensions As Long Dim DimBuffer As Long Dim BufTemp() As Byte Dim loopc As Long Dimensions = UBound(data) + 1 ' The worst case scenario, compressed info is 1.06 times the original - see zlib's doc for more info. DimBuffer = Dimensions * 1.06 ReDim BufTemp(DimBuffer) Call compress(BufTemp(0), DimBuffer, data(0), Dimensions) Erase data ReDim data(DimBuffer - 1) ReDim Preserve BufTemp(DimBuffer - 1) Call EncriptacionMaTeO(BufTemp) data = BufTemp Erase BufTemp #If SeguridadAlkon Then Call Secure_Compressed_Data(data) #End If End Sub El juego debe hacer la carga del grafico, que son imagenes separadas. este es un movimiento de los cientos que tiene el juego para cada objeto: Lo que yo intento hacer es 'extraer' digamos, de ese archivo comprimido, las imagenes que se utilizan adentro del juego.
|
|
|
En línea
|
|
|
|
tincopasan
Desconectado
Mensajes: 1.286
No es lo mismo conocer el camino que recorrerlo.
|
los creadores pueden usar cualquier método de cifrado, pero ya que es un vb, tendrías que ver el archivo exe y mirarlo con vbdecompiler por si encontras en donde hace referencia al archivo que buscas revertir y ver como lo hace.
|
|
|
En línea
|
|
|
|
MuPiolaa
Desconectado
Mensajes: 5
|
Dudo poder encontrar la forma de revertirlo solo con vbdecompiler.. supuestamente me dijeron que haga algo con hxd pero no me dieron detalles
|
|
|
En línea
|
|
|
|
engel lex
|
según muestras el código, esto no está cifrado... está simplemente comprimido...
|
|
|
En línea
|
El problema con la sociedad actualmente radica en que todos creen que tienen el derecho de tener una opinión, y que esa opinión sea validada por todos, cuando lo correcto es que todos tengan derecho a una opinión, siempre y cuando esa opinión pueda ser ignorada, cuestionada, e incluso ser sujeta a burla, particularmente cuando no tiene sentido alguno.
|
|
|
|
|