Announcement

Collapse
No announcement yet.

Playstation2 ELF DWARF debugging data... what can I actually do with it?

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Playstation2 ELF DWARF debugging data... what can I actually do with it?

    A while back (as in, a couple of years) I started trying to reverse engineer Konami's Dance Dance Revolution titles for the Playstation2 (MAX, MAX2, EXTREME, Party Collection, etc), with the intent of figuring out how the game works. I've learned, from the help of others of course, about the DWARF format for debugging information, on top of the fact that the data remains tacked onto the end of the game's executable. I wonder, however, if I can actually make use of this information in identifying functions, variables, etc - and if so, how can I best go about it? (It'd be a shame if I couldn't, as it would accelerate my understanding of the game engine manyfold).

  • #2
    Without having looked at it, my first thought would be to see if IDA Pro Advanced can digest that data and give you labels, etc out of it.
    I may be lazy, but I can...zzzZZZzzzZZZzzzZZZ...

    Comment


    • #3
      how do you know its DWARF data

      Comment


      • #4
        Originally posted by gamemasterplc View Post
        how do you know its DWARF data
        Well, that's a good point - it could be STABS format, seeing CodeWarrior could produce debugging data in both formats, it was honestly was due to the analysis of another member here who was helping me out.

        Here is a direct link to a dump of the data I am looking at, from the end of the ELF executable

        Here is a piece of our back and forth messages (don't kill me, root!)

        Well upon investigating the symbol table, it looks like a weird variant of DWARF debugging info. It seems to combine characteristics of the 1.1 and 2.0 DWARF standards, which you should read up on here: http://dwarfstd.org/Download.php. Here's what I could figure out from the beginning of the debug table for MAX2:
        Code:
        Code:
            [length]DW_TAG_compile_unit]
                [DW_AT_high_pc]0xEA
                [DW_AT_calling_convention](DW_FORM_addr) -> [DW_CC_program]
                [DW_AT_producer] -> MW MIPS C Compiler
                [DW_AT_name] -> C:\work\ddr7\src\sys\sys_scf.c
        ... a few more tags ...
        Code:
            [length][DW_TAG_member]
                [DW_AT_high_pc]0xBD [AT_fund_type]
                [FT_signed_integer] [AT_location]0x06 (length of block)
                [OP_CONST] -> 0x00000000 (address)
                [OP_ADD][DW_AT_NAME] -> date_notation
        Last edited by travelsonic; 08-27-2017, 07:07:45 PM.

        Comment

        Working...
        X