Can you please have a look into this files? (Unpacker QuickBMS Script would be nice)
And one Question whats the XTX-Textures any way to open them?
I attach you some BFF Files .. and they from title 1 update
http://uploaded.to/file/aqzhkh

Code: Select all
IDString 0 "PAK " ;
Get D Long 0 ;
Get FN Long 0 ;
ReverseLong FN ;
Get DHigh Long 0 ;
ReverseLong High ;
Get DLow Long 0 ;
ReverseLong Low ;
Get PadSize Long 0 ;
ReverseLong PadSize ;
GetDString PAKNAME 256 0 ;
Get EXTOffset Long 0 ;
ReverseLong EXTOffset ;
Get EXTSH Long 0 ;
ReverseLong EXTSH ;
Get EXTSL Long 0 ;
ReverseLong EXTSL ;
Get D Long 0 ;
Get D Long 0 ;
Get D Long 0 ;
SavePos FIS 0 ;
SavePos D 0 ;
Math D += EXTOffset ;
GoTo D 0 ;
GetDString EX 4 0 ;
Get EXSIZE Long 0 ;
ReverseLong EXSIZE ;
GetDString EXNAME 256 0 ;
GetDString EXPath 256 0 ;
GetDString EXPlatform 256 0 ;
SavePos NIS 0 ;
Set J Long 16 ;
Math J *= FN ;
Math NIS += J ;
For T = 1 To FN ;
Math FIS += 12 ;
GoTo FIS 0 ;
Get OFF Long 0 ;
ReverseLong OFF ;
Get SIZE Long 0 ;
ReverseLong SIZE ;
SavePos FIS 0 ;
Math FIS += 22 ;
GoTo NIS 0 ;
Get NS Byte 0 ;
GetDString FName NS 0 ;
SavePos NIS 0 ;
Set PAD String PAKNAME ;
String PAD += "\" ;
String PAD += FName ;
Log PAD OFF SIZE 0 0 ;
Next T ;
Code: Select all
# Need for Speed: Shift
# script for QuickBMS http://aluigi.org/papers.htm#quickbms
comtype XMemDecompress
idstring " KAP"
get DUMMY long
get FILES long
goto 0x118
get X118 long
goto 0x120
get X120 long
math X120 -= 0x308
goto 0x12d
get X12d byte
if X12d == 1
print "X12d equal to %X12d% has not been tested, contact me"
cleanexit
endif
callfunction X12dset
log MEMORY_FILE 0x130 X118
callfunction X12dset
set X120OFFSET long 0x438
math X120OFFSET += X118
log MEMORY_FILE2 X120OFFSET X120
for i = 0 < FILES
encryption "" "" # reset here instead to do it after each *log
get CRC1 long MEMORY_FILE
get CRC2 long MEMORY_FILE
get OFFSET long MEMORY_FILE
get DUMMY1 long MEMORY_FILE
get ZSIZE long MEMORY_FILE
get SIZE long MEMORY_FILE
get DUMMY long MEMORY_FILE
get DUMMY long MEMORY_FILE
get TYPE byte MEMORY_FILE
get DUMMY byte MEMORY_FILE
get DUMMY long MEMORY_FILE
get DUMMY3 long MEMORY_FILE
get NAMEOFF long MEMORY_FILE2
get DUMMY long MEMORY_FILE2
get DUMMY long MEMORY_FILE2
get DUMMY long MEMORY_FILE2
savepos TMP MEMORY_FILE2
math NAMEOFF -= X120OFFSET
goto NAMEOFF MEMORY_FILE2
get NAMESZ byte MEMORY_FILE2
getdstring NAME NAMESZ MEMORY_FILE2
goto TMP MEMORY_FILE2
callfunction X12dset
if TYPE == 0
log NAME OFFSET SIZE
else if TYPE == 2
clog NAME OFFSET ZSIZE SIZE
else
print "TYPE equal to %TYPE% has not been tested, contact me"
cleanexit
endif
next i
startfunction X12dset
if X12d == 1 # ignored at the moment
math TMPSZ += 0xf
math TMPSZ &= 0xfffffff0
endif
if X12d == 2
encryption rc4 "@lLy0urRaC3ar3bE"
endif
endfunction

