XboxHacker BBS
 
*
Welcome, Guest. Please login or register.
Did you miss your activation email?
February 08, 2010, 06:18:09 PM


Login with username, password and session length


Pages: « 1 2 3 »
  Print  
Author Topic: Serious Ideas on exploiting 4532 without KK  (Read 9063 times)
tmbinc
Global Moderator
Master Hacker
*****
Posts: 285


View Profile
« Reply #20 on: March 11, 2009, 03:15:37 AM »

Sorry for not answering before.

First of, a BIG thanks to SeventhSon for figuring out the "JTAG test disable registers". I'll second your opinion that the 0xe002000x-writes are to blame. Like you, I couldn't find a way to prevent settings those bits. Also a big thanks to your discovery that CPU will stay alive if we are fast enough.

Quote from: tmbinc
basically, this will dump the flash via the GPU jtag. You could also write to the flash, if you really want.
Are you sure about this? I couldn't get NAND writes via GPU JTAG to work. What's more I was unable to generate memory mapped or config space write cycles to any device except the host bridge and GPU. Read cycles work fine to all devices, write cycles have no effect. I was unable to work out why.
Sorry, I was drawing conclusions too quickly. You are right, writing to the external bus doesn't work with the code I've posted.

External PCIe-writes use the 4 upper bits of the 0xE0-register as a writemask, as I just found out. So just set them to 0xF, and writes to the external bus start working.

To test this, the code sequence
Code:

void write32(unsigned long addr, unsigned long data)
{
  jtag36(0xe0, 3 | addr | (0xFULL << 32), 0);
  jtag32(0xe1, data);
  jtagn(0xe4, 1, 1);
}

  while (!(read32(0xea001084) & 4));
  write32(0xea001084, 0x4);
  write32(0xea001080, 0xff0199);
  write32(0xea001084, 0);
will set all the frontpanel leds to orange.
Logged

Please don't copy/quote full text outside this board. Instead, summarize and link to this post. Thanks! This lets me keep information updated and doesn't pull things out of context.
SeventhSon
Global Moderator
Master Hacker
*****
Posts: 270


View Profile WWW
« Reply #21 on: March 15, 2009, 08:15:53 AM »

Sweeeet. And not just because we can now have orange lights Wink

Nice work as always. Thanks for posting.
Logged
SeventhSon
Global Moderator
Master Hacker
*****
Posts: 270


View Profile WWW
« Reply #22 on: March 16, 2009, 06:24:00 PM »

Works nicely Cool

To make it work during our window of opportunity at boot (so we don't take out the CPU) requires us to do some very minor config of the PCI-PCI bridge and the target device before we can write the target regs. We have to do all this after power on but before POST 0x2E (which gives us ages Smiley) I used POST 0x1B as the trigger again, for no particular reason.

Code:
//detect start of POST sequence to avoid false triggers by noise
while(inb(PP_DATA) != 0x10);
while(inb(PP_DATA) != 0x11);
while(inb(PP_DATA) != 0x12);

// wait for trigger
while(inb(PP_DATA) != 0x1B);

jtag_reset(); // Test-Logic-Reset

// use JTAG to map/enable required PCIe devices
/***************************************************************/
// PCI - PCI bridge
printf("\n");
printf("writing PCI-PCI bridge busses: ");
if(pcie_write32(0x00010100, 0xD0000018)) // set up bus numbers
printf("err\n");
if(pcie_read32(&data32, 0xD0000018))
printf("err\n");
printf("0x%08X\n", data32);


// Dev 0x0A
printf("\n");
printf("writing Dev 0x0A BAR_10: ");
if(pcie_write32(0xEA001000, 0xD0150010)) // map target dev
printf("err\n");
if(pcie_read32(&data32, 0xD0150010))
printf("err\n");
printf("0x%08X\n", data32);

printf("writing Dev 0x0A cmd/stat: ");
if(pcie_write32(0x00000002, 0xD0150004)) // enable target dev
printf("err\n");
if(pcie_read32(&data32, 0xD0150004))
printf("err\n");
printf("0x%08X\n", data32);


/***************************************************************/


// orange!
do {
pcie_read32(&data32, 0xEA001084);
}
while(!data32 & 4);
pcie_write32(0x00000004, 0xEA001084);
pcie_write32(0x00FF0199, 0xEA001080);
pcie_write32(0x00000000, 0xEA001084);

jtag_reset(); // Test-Logic-Reset (this releases the PCIe bus and allows 360 to boot)

all functions the same as before except that pcie_write32() now has the write mask discovered by tmbinc.

360 boots fine but with a nice orange front panel. Next target = DMA regs. Weeee.
« Last Edit: March 16, 2009, 06:27:52 PM by SeventhSon » Logged
Shaun
Master Hacker
****
Posts: 418



View Profile
« Reply #23 on: March 17, 2009, 03:58:18 AM »

interesting stuff Smiley out of interest. how are you applying that code ? via a pic or similar or pc app ?  I also assume your monitoring post as thats something im trying to sort at present.
Logged
SeventhSon
Global Moderator
Master Hacker
*****
Posts: 270


View Profile WWW
« Reply #24 on: March 17, 2009, 04:22:46 AM »

interesting stuff Smiley out of interest. how are you applying that code ? via a pic or similar or pc app ?  I also assume your monitoring post as thats something im trying to sort at present.
I use a linux app. Yep, monitoring POST

It would be best in a uC or FPGA, but definitely easier to work with PC software.
Logged
tmbinc
Global Moderator
Master Hacker
*****
Posts: 285


View Profile
« Reply #25 on: March 17, 2009, 06:47:04 PM »

read32 also requires the read mask, otherwise the most interesting peripheral doesn't work.

On the SMC side, I propose cmd 04 to do the trigger the dma read command. That's just before the flash controller init which would otherwise trash the dma address. We also need to defeat the "bitshifting checksum" unless we want to recalc the pairing data (which would require cpu key).
Logged

Please don't copy/quote full text outside this board. Instead, summarize and link to this post. Thanks! This lets me keep information updated and doesn't pull things out of context.
SeventhSon
Global Moderator
Master Hacker
*****
Posts: 270


View Profile WWW
« Reply #26 on: March 18, 2009, 08:29:26 AM »

read32 also requires the read mask, otherwise the most interesting peripheral doesn't work.

On the SMC side, I propose cmd 04 to do the trigger the dma read command. That's just before the flash controller init which would otherwise trash the dma address
Thanks again Smiley

We also need to defeat the "bitshifting checksum" unless we want to recalc the pairing data (which would require cpu key).
It's enough to just switch between 2 NANDs for now though, right? Or maybe I'll just recalc my pairing data for the time being. But I agree, we need to defeat that ideally.
Logged
jz_5_3
Master Hacker
****
Posts: 107


View Profile
« Reply #27 on: March 26, 2009, 07:05:20 PM »

very interesting.

may I know what specific jtag cable is used here? can I use a xilinx parallel jtag cable?

by the way, what  jtag open source jtag code/library is used to compiled the code?
Logged
SeventhSon
Global Moderator
Master Hacker
*****
Posts: 270


View Profile WWW
« Reply #28 on: March 27, 2009, 05:50:05 AM »

may I know what specific jtag cable is used here? can I use a xilinx parallel jtag cable?

by the way, what  jtag open source jtag code/library is used to compiled the code?
I don't know about tmbinc, but my cable and JTAG lib code are both custom. Fortunately the JTAG spec is pretty simple to implement.
Logged
XeNoN.7
Newbie
*
Posts: 8


View Profile
« Reply #29 on: April 23, 2009, 09:28:51 AM »

Nice on the LED color changing. I'm gonna need to give that a spin..
« Last Edit: April 23, 2009, 09:34:02 AM by XeNoN.7 » Logged
mushy408
Member
**
Posts: 42


View Profile
« Reply #30 on: April 23, 2009, 10:41:17 AM »

In your dreams...

Do you even understand what this involves?
Logged
XeNoN.7
Newbie
*
Posts: 8


View Profile
« Reply #31 on: April 23, 2009, 11:57:53 AM »

In your dreams...
No.
Do you even understand what this involves?
Yes. I'm not a dumbass. And also nowhere did I state I want to do this with a retail. I said I need to give the LED color changing a spin.. As in I'm going to look into changing it on one of my development consoles..

If I remember correctly you could mess with the RF module using HalSendSMCMessage. Though I didn't want to say I'm going to do it on a development console because it derails the topic which isn't about doing this on development consoles..
« Last Edit: April 23, 2009, 12:12:37 PM by XeNoN.7 » Logged
braza
Hacker
***
Posts: 88


View Profile
« Reply #32 on: April 28, 2009, 10:45:09 PM »

Hello for all !

I have this JTAG debug:

http://www.diygadget.com/store/jtag-test-tool/wiggler-buffered-all-in-one-jtag-programmer-version-2/prod_33.html

The question is how to inject the CODES on motheboard ?
Logged
.ISO
Xbox Hacker
*****
Posts: 734


View Profile
« Reply #33 on: April 29, 2009, 12:13:37 AM »

First of all, you are not being specfic. For example, what kind of code are you trying to inject, to where, through which port/bus, and most importantly, what are exactly are you trying to accomplish?
Second, I can guarentee that the JTAG programmer you have will NOT work.
Third, it's not really possible to inject code hardware-wise to the Xbox 360 yet
« Last Edit: April 29, 2009, 12:21:31 AM by .ISO » Logged

you wish gigaturd, as if you even know how to tell the difference between a disassembler and your vagina
Gigabite: A fool who think he is always right, and talk about how useless others are when he is really addressing to himself.
Gigabite agreeing with the statement:
p.s nice comment in your sig
Redline99
Global Moderator
Xbox Hacker
*****
Posts: 767


View Profile
« Reply #34 on: April 29, 2009, 02:07:15 AM »

Any further off topic chatter will be removed.  If you want to continue then start a q. and a. thread in a "general" section.
Logged

Where's Waldo
tmbinc
Global Moderator
Master Hacker
*****
Posts: 285


View Profile
« Reply #35 on: August 11, 2009, 12:57:56 PM »

So, some quick news:

We kept on working on this idea, and it worked out. pretty well. We use JTAG to program the DMA target addr, and then SMC to trigger the DMA read. The exploit itself is based on the old 4532 exploit.

The magic is how we launch 4532 - there is a "backdoor" for manufacturing since CB 1920. We have been able to restore the newer CD versions for all hardware types.

This means:
 - We can boot own code in HV context ~5s after boot, before any video output, right after the kernel runs.
 - we need to reflash the flash, and add 3 resistors for the JTAG (no modchip required! but you might want a dual-nand modchip),
 - 8498 kills this by updating the bootloader - it blacklists 4532/4548. it also does hw init stuff which might interefere with the jtag hack, we don't know yet.
 - we have a proof of concept hack, we will release it SOON (a matter of hours/days, not more - promised.).
 - DON'T UPDATE to summer 09. Did i already say this?
 - you don't need to know your cpu key. You can update to all BUT summer '09. you don't need a dvdrom.
 - It works on all xenon, zephyr, falcon, opus, jasper. Unless you have updated to 849x. Then you're screwed.
Logged

Please don't copy/quote full text outside this board. Instead, summarize and link to this post. Thanks! This lets me keep information updated and doesn't pull things out of context.
jelle2503
Xbox Hacker
*****
Posts: 1240


elitist prick


View Profile
« Reply #36 on: August 11, 2009, 02:08:30 PM »

great news man. good work. especially since everyone thought 360 scene was dead, now the bomb drops even bigger. i thought it never happened, and while reading the news i nearly fainted of happyness

. sad about the new update though, i'm so lucky i did not connect to live yet

hope to see more from your great work =) great man!
« Last Edit: August 11, 2009, 02:28:28 PM by jelle2503 » Logged

Jasper Xbox 360 with Cygnos v2
If you post on Xboxhacker.net you oblige to THIS

Quote from: Blackaddr
There was a time when 'newbie' simply meant that you had not learned yet, not that you would never learn.
Redline99
Global Moderator
Xbox Hacker
*****
Posts: 767


View Profile
« Reply #37 on: August 11, 2009, 02:15:01 PM »

This is a warning, keep all non tech questions comments out of this thread. This is great news but lets keep this thread short and sweet and not grow to 50 pages.  If you don't have anything to contribute then use a different thread.

Thank you.

I'll start a new thread just to head this off.
General Discussion here
http://www.xboxhacker.net/index.php?topic=12178.0

Tech Information can continue in this thread
« Last Edit: August 11, 2009, 06:08:10 PM by Redline99 » Logged

Where's Waldo
tmbinc
Global Moderator
Master Hacker
*****
Posts: 285


View Profile
« Reply #38 on: August 11, 2009, 09:09:46 PM »

So, some more details:

CB1920 and up allow to boot into any kernel version, including 4532, but only in "mfgbootlauncher" mode, which is used in manufacturing. This mode (also called "zero pairing", because you need to zero out the CB pairing data) has been known before, however, previous to CD1920, it was useless, because you could only boot into 1888, not into 4532. It was *also* useless because you couldn't run a game.

Now, we developed a way that uses JTAG+SMC to write into physical memory at any time. I think the idea came even from this thread. Basically a flash sector will be prepared to contain the exploit buffer and the code we want to run. JTAG will be used to program the DMA target address (the only thing you can't do from SMC), and SMC will be used to kick off the read (remember, SMC code can access the nand controller as well - just not the dma addr.).

SMC will be patched so that it kick off the DMA read right when the kernel is loaded. We are using the "read rtc" command for that, which happens pretty early in the kernel, way before GPU init, for example. It also happens before nand controller init, which is important, as that would overwrite the dma addr again.

Basically everything required to assemble this hack was present in this thread already since some months Smiley.
Logged

Please don't copy/quote full text outside this board. Instead, summarize and link to this post. Thanks! This lets me keep information updated and doesn't pull things out of context.
XeNoN.7
Newbie
*
Posts: 8


View Profile
« Reply #39 on: August 11, 2009, 10:34:49 PM »

If an exploit were to kick off.. Would you be able to boot into a newer kernel if hacked up a bit? Because if you were on an older one, and a new game came out, it'd say you need to update your dash.
Logged
Pages: « 1 2 3 »
  Print  
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.11 | SMF © 2006-2009, Simple Machines LLC

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM