Results 1 to 14 of 14
  1. Default Unpacked Script.pvf


    Disclaimers:
    - The information given in this topic is useless for hacking or creating a private server.
    - The purpose of giving out this information is so that people can be more informed about stats and numbers regarding Dungeon Fighter Online to increase their gameplay experience through legitimate playing of the game.
    - This thread is not affiliated with or sponsored by Nexon or any of its affiliates or Southperry.
    - At no point will I be giving out instructions for how to decrypt, reverse engineer, or repack the game executable or the Script.pvf file.
    - I will be documenting how to parse the files within Script.pvf, but this uses no reverse engineering or decryption. Everything is plaintext.

    Script.pvf unpacked (May 11, 2011):
    ScriptPVF.7z

    Requirements to understand this document:
    - Hexadecimal
    - Parsing binary data
    - Programming experience
    - You're not an idiot.

    Documentation of file format:
    The files within Script.pvf are in binary format. This means you cannot view them with a text editor. However, you can view the files in a hex editor. One could even conceivably translate the binary format into the textual format. However, this is not something I have time, patience, or care to do.

    All binary files in Script.pvf utilize the same format which is as follows:

    Code:
    Bit order: Little-endian
    File Header: 0xB0D0
    
    Until EOF do the following:
    (1) read one 8-bit value and one 32-bit value. 
    (2) Determine what to do with the 32-bit value based upon the 8-bit value.
    
    0x02 - Integer (32-bit)
    0x04 - Float (32-bit)
    0x05 - Integer (32-bit) - Section Name (like `[Name]` or `[Animation]`) - Lookup value in ./stringtable.bin
    0x07 - Integer (32-bit) - File Link - Lookup value in ./stringtable.bin - then read the given file
    0x09 - Integer (32-bit) - File index - Lookup in ./string.usa.lst in PVF root
    0x0A - Integer (32-bit) - Lookup value - in ./stringtable.bin (usually paired with 0x09)
    
    A 0x09 block followed by a 0x0A block is syntactic equivalent to something like <4::chr_equip_1443> where 4 is located in the 0x09 block and the chr_equip_1443 is in the 0x0A block. This is used for string lookups.
    The above list is not exhaustive. There are likely other blocks which I have not found yet. However, these blocks are the most common.

    The following represents python code which can parse stringtable.bin located in the Script.pvf file root.

    Code:
        import CBinaryReader
    
        stringTable = CBinaryReader.BinaryReader('stringtable.bin', 'rb')
    
        numStrings = stringTable.rS32() #rS32 = Read a 32-bit signed integer
        listStrings = [''] * numStrings #Initialize an array of blank strings
        
        baseOffset = stringTable.tell()
        startStringOffset = stringTable.rS32() + baseOffset        
        for eachInt in range(numStrings):
            endStringOffset = stringTable.rS32() + baseOffset
            
            remember = stringTable.tell()
            stringTable.seek(startStringOffset)
            lengthString = endStringOffset - startStringOffset
            stringTableString = stringTable.read(lengthString)
            listStrings[eachInt] = '%d>%s' % (eachInt, stringTableString)
            stringTable.seek(remember)
    
            startStringOffset = endStringOffset
        FileIO.WriteFile('stringtable.txt', '\n'.join(listStrings))
    "CBinaryReader" above is a customized module and is not available with the standard Python distribution. However, the mechanism of reading a binary file should be very easy to comprehend and translate between different programming languages.

    Anyway, when the 0x0A block has the number "123456", for example, you would look up the 123,456th string in stringtable.bin. If you're good at math, you should be able to perform the stringtable.bin lookup in O(1) without needing an array of strings.

    Save for exactly how to decrypt Script.pvf, you now know everything I know about the files inside script.pvf. If you do happen to have the old unpacking of Script.pvf from a year or so ago, it's extremely helpful to compare files between the previous one and the current one. It was the only way I was able to figure out all that I have.

    Happy hunting.
    Last edited by Fiel; 2011-05-12 at 12:24 AM.

  2. Default


    Thanks for the script, Felix. Most of the stuff isn't too useful, but it's a good hunt to see what can be useful and what isn't. Currently trying to do something in Java to somehow output this stuff in a more easily read fashion... but I'm not doing too well. Ah well. :P

  3. Default


    Quoting so you can't change it.

  4. Default


    ...How did I get Fiel and Felix mixed up... brb crying in a corner

    FIEL****************

  5. Default


    Isn't too useful?

    I would love to get a repacker going (I do have the tools necessary to create one) just to see what kind of power could be had.


  6. Default


    I have a rather robust parser for the old (text, non-binary) unpacked format in C#. If you or anyone else would be interested in that, let me know.

  7. Default


    Wow these files really have everything. Thanks Fiel.

    Hopefully we can extract good stuff like skill stats and such from this. I was looking at the Acid Rain file just parsed out based on the info in the first post:
    Code:
    [name]
    File Index: look up in ./string.usa.lst - 12
    Integer - 173111
    [name2]
    File Index: look up in ./string.usa.lst - 12
    Integer - 173112
    [basic explain]
    File Index: look up in ./string.usa.lst - 12
    Integer - 173113
    [explain]
    File Index: look up in ./string.usa.lst - 12
    Integer - 173114
    [purchase cost]
    Integer - 30
    [/purchase cost]
    [pre required skill]
    Integer - 89
    Integer - 3
    [/pre required skill]
    [required level]
    Integer - 30
    [required level range]
    Integer - 2
    [type]
    [active]
    [skill class]
    Integer - 3
    [maximum level]
    Integer - 30
    [growtype maximum level]
    Integer - 0
    Integer - 0
    Integer - 0
    Integer - 0
    Integer - 20
    [skill fitness growtype]
    Integer - 4
    [/skill fitness growtype]
    [consume MP]
    Integer - 80
    Integer - 200
    [casting time]
    Integer - 600
    Integer - 600
    [durability decrease rate]
    Integer - 80
    [icon]
    Character/Mage/Effect/SkillIcon.img
    Integer - 250
    Character/Mage/Effect/SkillIcon.img
    Integer - 251
    [consume item]
    [/consume item]
    [command]
    0x6 - 171499
    0x8 - 114045
    0x6 - 171499
    0x8 - 114045
    0x6 - 171500
    [/command]
    [command key explain]
    File Index: look up in ./string.usa.lst - 12
    Integer - 173116
    [cool time]
    Integer - 20000
    Integer - 20000
    [static data]
    Integer - 300
    Integer - 525
    Integer - 175
    Integer - 0
    Integer - 1
    Integer - 2
    Integer - 600
    Integer - 100
    Integer - 0
    Integer - 200
    Integer - 330
    Integer - 100
    Integer - 1300
    Integer - 650
    [/static data]
    [level info]
    Integer - 9
    Integer - 8000
    Integer - 280
    Integer - 210
    Integer - 234
    Integer - 257
    Integer - 10000
    Integer - 10
    Integer - 504
    Integer - 5
    Integer - 8000
    Integer - 311
    Integer - 233
    Integer - 259
    Integer - 285
    Integer - 10000
    Integer - 11
    Integer - 616
    Integer - 6
    Integer - 8000
    Integer - 344
    Integer - 258
    Integer - 286
    Integer - 315
    Integer - 10000
    Integer - 13
    Integer - 737
    Integer - 7
    Integer - 8000
    Integer - 378
    Integer - 283
    Integer - 315
    Integer - 346
    Integer - 10000
    Integer - 14
    Integer - 867
    Integer - 8
    Integer - 8000
    Integer - 414
    Integer - 310
    Integer - 345
    Integer - 379
    Integer - 10000
    Integer - 16
    Integer - 1005
    Integer - 9
    Integer - 8000
    Integer - 451
    Integer - 338
    Integer - 376
    Integer - 414
    Integer - 10000
    Integer - 17
    Integer - 1152
    Integer - 10
    Integer - 8000
    Integer - 490
    Integer - 368
    Integer - 408
    Integer - 449
    Integer - 10000
    Integer - 19
    Integer - 1309
    Integer - 11
    Integer - 8000
    Integer - 531
    Integer - 398
    Integer - 442
    Integer - 487
    Integer - 10000
    Integer - 21
    Integer - 1474
    Integer - 12
    Integer - 8000
    Integer - 573
    Integer - 430
    Integer - 477
    Integer - 525
    Integer - 10000
    Integer - 23
    Integer - 1648
    Integer - 13
    Integer - 8000
    Integer - 617
    Integer - 463
    Integer - 514
    Integer - 565
    Integer - 10000
    Integer - 24
    Integer - 1830
    Integer - 14
    Integer - 8000
    Integer - 662
    Integer - 497
    Integer - 552
    Integer - 607
    Integer - 10000
    Integer - 26
    Integer - 2022
    Integer - 15
    Integer - 8000
    Integer - 709
    Integer - 532
    Integer - 591
    Integer - 650
    Integer - 10000
    Integer - 29
    Integer - 2222
    Integer - 16
    Integer - 8000
    Integer - 758
    Integer - 569
    Integer - 632
    Integer - 695
    Integer - 10000
    Integer - 31
    Integer - 2432
    Integer - 17
    Integer - 8000
    Integer - 808
    Integer - 606
    Integer - 674
    Integer - 741
    Integer - 10000
    Integer - 33
    Integer - 2650
    Integer - 18
    Integer - 8000
    Integer - 860
    Integer - 645
    Integer - 717
    Integer - 789
    Integer - 10000
    Integer - 35
    Integer - 2877
    Integer - 19
    Integer - 8000
    Integer - 914
    Integer - 685
    Integer - 762
    Integer - 838
    Integer - 10000
    Integer - 38
    Integer - 3112
    Integer - 20
    Integer - 8000
    Integer - 969
    Integer - 727
    Integer - 808
    Integer - 888
    Integer - 10000
    Integer - 40
    Integer - 3357
    Integer - 21
    Integer - 8000
    Integer - 1026
    Integer - 769
    Integer - 855
    Integer - 940
    Integer - 10000
    Integer - 43
    Integer - 3611
    Integer - 22
    Integer - 8000
    Integer - 1084
    Integer - 813
    Integer - 904
    Integer - 994
    Integer - 10000
    Integer - 45
    Integer - 3873
    Integer - 23
    Integer - 8000
    Integer - 1144
    Integer - 858
    Integer - 954
    Integer - 1049
    Integer - 10000
    Integer - 48
    Integer - 4144
    Integer - 24
    Integer - 8000
    Integer - 1206
    Integer - 904
    Integer - 1005
    Integer - 1105
    Integer - 10000
    Integer - 51
    Integer - 4424
    Integer - 25
    Integer - 8000
    Integer - 1269
    Integer - 952
    Integer - 1058
    Integer - 1163
    Integer - 10000
    Integer - 54
    Integer - 4713
    Integer - 26
    Integer - 8000
    Integer - 1334
    Integer - 1001
    Integer - 1112
    Integer - 1223
    Integer - 10000
    Integer - 57
    Integer - 5011
    Integer - 27
    Integer - 8000
    Integer - 1401
    Integer - 1050
    Integer - 1167
    Integer - 1284
    Integer - 10000
    Integer - 60
    Integer - 5317
    Integer - 28
    Integer - 8000
    Integer - 1469
    Integer - 1102
    Integer - 1224
    Integer - 1346
    Integer - 10000
    Integer - 63
    Integer - 5632
    Integer - 29
    Integer - 8000
    Integer - 1538
    Integer - 1154
    Integer - 1282
    Integer - 1410
    Integer - 10000
    Integer - 66
    Integer - 5957
    Integer - 30
    Integer - 8000
    Integer - 1610
    Integer - 1207
    Integer - 1341
    Integer - 1476
    Integer - 10000
    Integer - 69
    Integer - 6290
    Integer - 31
    Integer - 8000
    Integer - 1683
    Integer - 1262
    Integer - 1402
    Integer - 1543
    Integer - 10000
    Integer - 73
    Integer - 6632
    Integer - 32
    Integer - 8000
    Integer - 1757
    Integer - 1318
    Integer - 1464
    Integer - 1611
    Integer - 10000
    Integer - 76
    Integer - 6982
    Integer - 33
    Integer - 8000
    Integer - 1833
    Integer - 1375
    Integer - 1528
    Integer - 1681
    Integer - 10000
    Integer - 80
    Integer - 7342
    Integer - 34
    [/level info]
    [pvp]
    [start cool time]
    Integer - 20000
    Integer - 20000
    [cool time]
    Integer - 30000
    Integer - 30000
    [level info]
    Integer - 9
    Integer - 8000
    Integer - 112
    Integer - 84
    Integer - 93
    Integer - 103
    Integer - 10000
    Integer - 10
    Integer - 504
    Integer - 5
    Integer - 8000
    Integer - 124
    Integer - 93
    Integer - 104
    Integer - 114
    Integer - 10000
    Integer - 11
    Integer - 616
    Integer - 6
    Integer - 8000
    Integer - 138
    Integer - 103
    Integer - 115
    Integer - 126
    Integer - 10000
    Integer - 13
    Integer - 737
    Integer - 7
    Integer - 8000
    Integer - 151
    Integer - 113
    Integer - 126
    Integer - 139
    Integer - 10000
    Integer - 14
    Integer - 867
    Integer - 8
    Integer - 8000
    Integer - 165
    Integer - 124
    Integer - 138
    Integer - 152
    Integer - 10000
    Integer - 16
    Integer - 1005
    Integer - 9
    Integer - 8000
    Integer - 180
    Integer - 135
    Integer - 150
    Integer - 165
    Integer - 10000
    Integer - 17
    Integer - 1152
    Integer - 10
    Integer - 8000
    Integer - 196
    Integer - 147
    Integer - 163
    Integer - 180
    Integer - 10000
    Integer - 19
    Integer - 1309
    Integer - 11
    Integer - 8000
    Integer - 212
    Integer - 159
    Integer - 177
    Integer - 195
    Integer - 10000
    Integer - 21
    Integer - 1474
    Integer - 12
    Integer - 8000
    Integer - 229
    Integer - 172
    Integer - 191
    Integer - 210
    Integer - 10000
    Integer - 23
    Integer - 1648
    Integer - 13
    Integer - 8000
    Integer - 247
    Integer - 185
    Integer - 206
    Integer - 226
    Integer - 10000
    Integer - 24
    Integer - 1830
    Integer - 14
    Integer - 8000
    Integer - 265
    Integer - 199
    Integer - 221
    Integer - 243
    Integer - 10000
    Integer - 26
    Integer - 2022
    Integer - 15
    Integer - 8000
    Integer - 284
    Integer - 213
    Integer - 236
    Integer - 260
    Integer - 10000
    Integer - 29
    Integer - 2222
    Integer - 16
    Integer - 8000
    Integer - 303
    Integer - 227
    Integer - 253
    Integer - 278
    Integer - 10000
    Integer - 31
    Integer - 2432
    Integer - 17
    Integer - 8000
    Integer - 323
    Integer - 243
    Integer - 269
    Integer - 296
    Integer - 10000
    Integer - 33
    Integer - 2650
    Integer - 18
    Integer - 8000
    Integer - 344
    Integer - 258
    Integer - 287
    Integer - 315
    Integer - 10000
    Integer - 35
    Integer - 2877
    Integer - 19
    Integer - 8000
    Integer - 366
    Integer - 274
    Integer - 305
    Integer - 335
    Integer - 10000
    Integer - 38
    Integer - 3112
    Integer - 20
    Integer - 8000
    Integer - 388
    Integer - 291
    Integer - 323
    Integer - 355
    Integer - 10000
    Integer - 40
    Integer - 3357
    Integer - 21
    Integer - 8000
    Integer - 410
    Integer - 308
    Integer - 342
    Integer - 376
    Integer - 10000
    Integer - 43
    Integer - 3611
    Integer - 22
    Integer - 8000
    Integer - 434
    Integer - 325
    Integer - 361
    Integer - 398
    Integer - 10000
    Integer - 45
    Integer - 3873
    Integer - 23
    Integer - 8000
    Integer - 458
    Integer - 343
    Integer - 381
    Integer - 420
    Integer - 10000
    Integer - 48
    Integer - 4144
    Integer - 24
    Integer - 8000
    Integer - 482
    Integer - 362
    Integer - 402
    Integer - 442
    Integer - 10000
    Integer - 51
    Integer - 4424
    Integer - 25
    Integer - 8000
    Integer - 508
    Integer - 381
    Integer - 423
    Integer - 465
    Integer - 10000
    Integer - 54
    Integer - 4713
    Integer - 26
    Integer - 8000
    Integer - 534
    Integer - 400
    Integer - 445
    Integer - 489
    Integer - 10000
    Integer - 57
    Integer - 5011
    Integer - 27
    Integer - 8000
    Integer - 560
    Integer - 420
    Integer - 467
    Integer - 514
    Integer - 10000
    Integer - 60
    Integer - 5317
    Integer - 28
    Integer - 8000
    Integer - 587
    Integer - 441
    Integer - 490
    Integer - 539
    Integer - 10000
    Integer - 63
    Integer - 5632
    Integer - 29
    Integer - 8000
    Integer - 615
    Integer - 462
    Integer - 513
    Integer - 564
    Integer - 10000
    Integer - 66
    Integer - 5957
    Integer - 30
    Integer - 8000
    Integer - 644
    Integer - 483
    Integer - 537
    Integer - 590
    Integer - 10000
    Integer - 69
    Integer - 6290
    Integer - 31
    Integer - 8000
    Integer - 673
    Integer - 505
    Integer - 561
    Integer - 617
    Integer - 10000
    Integer - 73
    Integer - 6632
    Integer - 32
    Integer - 8000
    Integer - 703
    Integer - 527
    Integer - 586
    Integer - 644
    Integer - 10000
    Integer - 76
    Integer - 6982
    Integer - 33
    Integer - 8000
    Integer - 733
    Integer - 550
    Integer - 611
    Integer - 672
    Integer - 10000
    Integer - 80
    Integer - 7342
    Integer - 34
    [/level info]
    [/pvp]
    [level property]
    Integer - 1
    Integer - 99
    File Index: look up in ./string.usa.lst - 12
    Integer - 173117
    Integer - -1
    Integer - 0
    0x4 - 981668463
    Integer - -1
    Integer - 1
    0x4 - 1065353216
    Integer - -1
    Integer - 2
    0x4 - 1065353216
    Integer - -1
    Integer - 3
    0x4 - 1065353216
    Integer - -1
    Integer - 4
    0x4 - 1065353216
    Integer - -1
    Integer - 5
    0x4 - 981668463
    Integer - -1
    Integer - 6
    0x4 - 1065353216
    Integer - -1
    Integer - 7
    0x4 - 1065353216
    Integer - -1
    Integer - 8
    0x4 - 1065353216
    Integer - 13
    Integer - 13
    0x4 - 981668463
    Integer - 0
    Integer - 0
    0x4 - 1036831949
    Integer - 1
    Integer - 1
    0x4 - 1036831949
    Integer - 2
    Integer - 2
    0x4 - 1036831949
    [/level property]
    [skill preloading image]
    Character/Mage/Effect/MpRegenRateUp.img
    [/skill preloading image]
    Still quite a bit of work to get it in a usable state, but at least the info is all here so yay. Interesting that there's a field called durability decrease rate, never knew it depended on skills used.

  8. Default


    Yup, Greg got a bunch of those numbers a while back on an earlier extraction. I think SSA Wiki still has them if it hasn't been greatly remodeled yet.

  9. Default


    @LHC: do you still have the old unpacked archive around?

    @Fiel: are these files from after the 5/11 patch? They look like they do, just wanted to confirm.

    If so, that would confirm what all of us already knew about the chron 2 sets: they're still untranslated in the data.

    I'll upload a textual version of the archive once I have all the string.usa.lst lookups completed. More people looking at it would be great.

  10. Default


    @Kevin - I don't know. I just tried connecting to DFO today and had a whole bunch of files to download. The encryption changed to the version I cannot do. So... that's on hold. The date included with the Script.pvf file I unpacked was 4/22/2011. So yeah, that.

  11. Default


    Yes.

  12. Default


    Ok, here it is: http://www.sendspace.com/file/yfqbq4

    It's a zip file with a lot of text files inside. Only the *.str files (which are normal text files viewable in a text editor) and all the binary files that have a header of 0xB0D0 have been parsed out.

    Folders which I think are of most interest are:
    ./skill/ - skill stats and values
    ./equipment/ - equip stats and values
    ./quest/ - quest text, requirements, rewards
    ./etc/ - misc pieces of data

    Unfortunately there's still some work in decoding what the numbers in each file really mean in terms of the game, but this should be a decent start.

    Ah ok thanks. Then the data's pre-act 9 then. Shame they changed the encryption back, would be nice to continually have up-to-date data.

  13. Default


    As far as the actual game meanings go, I have most of skills, equips, pots, and a couple other things figured out, but I don't have time for that stuff anymore.

  14.  

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •