Flag: Tornado! Hurricane!

 Forums >>  Target Specific - General  >>  XBOX 360 (.xex) Binary Analysis

Topic created on: January 7, 2006 22:50 CST by Faithless .

Hi,

The release of MS's latest console XBOX 360 (www.xbox360.com) has provided a new platform for win32-esque binary analysis.

I say win32-esque, as the original Xbox was based on commodity hardware and a stripped down Windows 2000 kernel (xboxkrnl.exe). The new Xbox 360 appears to run a G5 PPC system. Details can be found at (http://en.wikipedia.org/wiki/Xbox#Detailed_specifications)

While slightly different to efforts to understand the .xbe/.xex formats, OpenXDK (www.openxdk.org) does provide some good tools for low level PE to XBOX file manipulations.

The original Xbox file format (.xbe) was well documented by Aaron "caustik" Robinson, while developing his emulator Cxbx (caustik.com/cxbx/download/xbe.htm)

The latest Xbox 360 file format (.xex) is still lacking in complete documentation however. Currently, the most complete article on .xex is at from the Free360 group, (www.free60.org/wiki/XEX). I've collected a few sample .xex (XBOX 360) files to use, along with three tools to dump information on the structure of this format. The links to these can be found at www.free60.org/wiki/XEX#Availability_of_XEX_files, and I'm about to begin documenting the complete .xex format.

In particular the xexdump.exe tool has proved useful so far to compare which sections are static across the 3 currently available .xex files and which are variable.

Initially, it looks like there is still a magic first entry (similar to PE's 'MZ') of 'XEX2', that every valid .xex must begin with. Trailing this is a set of OptionalHeaderDescriptions, one of which contain a Type, Size and then Offset to the actual data of each Header.

For example, one common (and I'd assume required :) optional header is type 101 - EntryPoint, whose value appears to be crypted (unlike most other OptionalHeader details).

If there's anyone else doing similar work, or who might be interested post your findings so far here, or contact off list.

  daeken     January 7, 2006 23:04.55 CST
Hello,

The 360 is actually far from commodity hardware, and from what we currently know of the APIs, it is quite unlike Win32.

One of the main things standing in our way in analyzing these files is that the xex files are compressed with a proprietary algorithm, and quite possibly encrypted as well.  Until we know more about how these files are loaded, there's no way we can get much more info out of them.

We're working actively to find more information about the 360, but until we know much more, the xex's won't really help us much.

- Cody Brocious

  aeppert     January 8, 2006 16:42.33 CST
Sounds like a sacrificial XBOX 360 should be obtained.  It will likely be fairly easy to assess and find the bootloader as it is likely only a handful of chips.  The only concern in this scenario comes with potential NVRAM or another non-volatile storage being held within the processor core itself, thus it would make accessing it a bit of a nightmare as it will never be exposed outside of the processor.

All of this is speculative, since I have yet to come within a mile of XBOX 360 hardware itself.

Note: Registration is required to post to the forums.

There are 31,320 total registered users.


Recently Created Topics
[help] Unpacking VMP...
Mar/12
Reverse Engineering ...
Jul/06
hi!
Jul/01
let 'IDAPython' impo...
Sep/24
set 'IDAPython' as t...
Sep/24
GuessType return une...
Sep/20
About retrieving the...
Sep/07
How to find specific...
Aug/15
How to get data depe...
Jul/07
Identify RVA data in...
May/06


Recent Forum Posts
Finding the procedur...
rolEYder
Question about debbu...
rolEYder
Identify RVA data in...
sohlow
let 'IDAPython' impo...
sohlow
How to find specific...
hackgreti
Problem with ollydbg
sh3dow
How can I write olly...
sh3dow
New LoadMAP plugin v...
mefisto...
Intel pin in loaded ...
djnemo
OOP_RE tool available?
Bl4ckm4n


Recent Blog Entries
halsten
Mar/14
Breaking IonCUBE VM

oleavr
Oct/24
Anatomy of a code tracer

hasherezade
Sep/24
IAT Patcher - new tool for ...

oleavr
Aug/27
CryptoShark: code tracer ba...

oleavr
Jun/25
Build a debugger in 5 minutes

More ...


Recent Blog Comments
nieo on:
Mar/22
IAT Patcher - new tool for ...

djnemo on:
Nov/17
Kernel debugger vs user mod...

acel on:
Nov/14
Kernel debugger vs user mod...

pedram on:
Dec/21
frida.github.io: scriptable...

capadleman on:
Jun/19
Using NtCreateThreadEx for ...

More ...


Imagery
SoySauce Blueprint
Jun 6, 2008

[+] expand

View Gallery (11) / Submit