XboxHacker BBS
 
*
Welcome, Guest. Please login or register.
Did you miss your activation email?
May 24, 2013, 10:28:26 AM


Login with username, password and session length


Pages: 1 2 »
  Print  
Author Topic: Recursive "Yaris-trick" Patcher  (Read 12760 times)
TeamZebra
Member
**
Posts: 10


View Profile
« on: December 05, 2009, 11:59:11 PM »

Hey guys. I decided to make a patcher that uses the Yaris swap trick that takes a folder as input and recursively goes through that folder and every subfolder and patches the files. Zouzz's tool is very nice, but its folder select function only works on that folder, it's not recursive. So I whipped up a quick solution for it.

PLEASE make sure to read the readme, it explains a few things you'll need to know before using it.

Download here.

EDIT: I improved the efficiency of it by a lot, read more about C# file handling and realized I can edit the file without having to load the whole thing into a byte array lol. Here's a way faster version that I don't think will give any memory errors.

Download here or here.

EDIT 2: New version (again, I know). This one has an output window and also does header filtering so it only patches LIVE/PIRS files. Thanks to free60.org for container file information. Hopefully this will be the last version.

Download here.
« Last Edit: December 06, 2009, 06:14:29 PM by TeamZebra » Logged
jester
Master Hacker
****
Posts: 192


View Profile
« Reply #1 on: December 06, 2009, 03:10:40 AM »

Cool stuff.

I bet this works great for that big pack that was posted?
Logged
MagnusHydra
Hacker
***
Posts: 85


View Profile
« Reply #2 on: December 06, 2009, 04:16:28 AM »

Cool stuff.

I bet this works great for that big pack that was posted?
where?

I've got 89 arcade games I tried using the program and I keep getting an error
Quote
See the end of this message for details on invoking
just-in-time (JIT) debugging instead of this dialog box.

************** Exception Text **************
System.OutOfMemoryException: Exception of type 'System.OutOfMemoryException' was thrown.
   at System.IO.File.ReadAllBytes(String path)
   at Xbox_Live_File_Patcher.Form1.PatchFiles()
   at Xbox_Live_File_Patcher.Form1.btnPatch_Click(Object sender, EventArgs e)
   at System.Windows.Forms.Control.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnClick(EventArgs e)
   at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
   at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
   at System.Windows.Forms.Control.WndProc(Message& m)
   at System.Windows.Forms.ButtonBase.WndProc(Message& m)
   at System.Windows.Forms.Button.WndProc(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
   at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
   at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


************** Loaded Assemblies **************
mscorlib
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3603 (GDR.050727-3600)
    CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/mscorlib.dll
----------------------------------------
Xbox Live File Patcher
    Assembly Version: 1.0.0.0
    Win32 Version: 1.0.0.0
    CodeBase: file:///C:/Documents%20and%20Settings/Magnus/Desktop/hombrew/Xbox%20Live%20File%20Patcher%20v1.0/Xbox%20Live%20File%20Patcher.exe
----------------------------------------
System.Windows.Forms
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
----------------------------------------
System
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
----------------------------------------
System.Drawing
    Assembly Version: 2.0.0.0
    Win32 Version: 2.0.50727.3053 (netfxsp.050727-3000)
    CodeBase: file:///C:/WINDOWS/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
----------------------------------------

************** JIT Debugging **************
To enable just-in-time (JIT) debugging, the .config file for this
application or computer (machine.config) must have the
jitDebugging value set in the system.windows.forms section.
The application must also be compiled with debugging
enabled.

For example:

<configuration>
    <system.windows.forms jitDebugging="true" />
</configuration>

When JIT debugging is enabled, any unhandled exception
will be sent to the JIT debugger registered on the computer
rather than be handled by this dialog box.



Edit: I tried 40 at a time and it works fine.
« Last Edit: December 06, 2009, 04:54:50 AM by MagnusHydra » Logged

If you need to get up with me I am always on aim and over at www.360haven.com. If u don't have aim I do have msn but you will have to ask me to get on.
My dual nand rgh showing retail nand online then switching the rgh nand auto launching freestyle dash
TeamZebra
Member
**
Posts: 10


View Profile
« Reply #3 on: December 06, 2009, 12:33:03 PM »

Hmm. I coded a newer version. Late-night coding should not be done, keep that in mind. I much improved the way it handles files, should only take a second or so to patch now, and I don't think you'll be getting any more errors. Mind testing it with the 89 files again and posting the results?

Download here or here.
« Last Edit: December 06, 2009, 12:37:45 PM by TeamZebra » Logged
jimmy2x2x
Member
**
Posts: 11


View Profile
« Reply #4 on: December 06, 2009, 03:09:20 PM »

Just tried it on 218 games - worked great, thanks!
Logged
Starspin
Member
**
Posts: 28


View Profile
« Reply #5 on: December 06, 2009, 04:07:23 PM »

Thanks, It works great! Smiley
Logged
TeamZebra
Member
**
Posts: 10


View Profile
« Reply #6 on: December 06, 2009, 06:14:48 PM »

New (and hopefully last) release in the first post. Enjoy.
Logged
slasherking823
Master Hacker
****
Posts: 222


View Profile
« Reply #7 on: December 06, 2009, 11:29:59 PM »

Late-night coding should not be done
here or here.

i found that out when i woke up and my linux fatx driver had support for all features but the last 5 user commands didn't work
Logged

If that gamerscore or tenth prestige is so important to you that you absolutely need a pointless number - get it legit
If you are just trying to show off - throw a party(real party, not nerd party, some of you would miss that point)
If you like to be a fagot and go by "Jtags are for Mw2" - GTFO
MagnusHydra
Hacker
***
Posts: 85


View Profile
« Reply #8 on: December 07, 2009, 03:14:59 AM »

Hmm. I coded a newer version. Late-night coding should not be done, keep that in mind. I much improved the way it handles files, should only take a second or so to patch now, and I don't think you'll be getting any more errors. Mind testing it with the 89 files again and posting the results?

Download here or here.
Sorry I was sleeping or at work The newest version on ur main post works fine thank you! you should upload to xbins now  Wink
Logged

If you need to get up with me I am always on aim and over at www.360haven.com. If u don't have aim I do have msn but you will have to ask me to get on.
My dual nand rgh showing retail nand online then switching the rgh nand auto launching freestyle dash
ReverseAffect
Xbox Hacker
*****
Posts: 1345

360Reball


View Profile WWW
« Reply #9 on: December 07, 2009, 04:26:11 AM »

NiCe thanks much  Wink give that man some rest  Shocked
Logged

sick like a mofo..not reballing for a while...
TeamZebra
Member
**
Posts: 10


View Profile
« Reply #10 on: December 07, 2009, 09:47:18 AM »

I don't know how to get things onto Xbins. Besides, I doubt they would allow something like this, it only has one real purpose...
Logged
damox
Master Hacker
****
Posts: 484


View Profile
« Reply #11 on: December 07, 2009, 10:26:37 AM »

I don't know how to get things onto Xbins. Besides, I doubt they would allow something like this, it only has one real purpose...

You have completely missed the point of xbins then.

I'm assuming the point of this is to make your legit bought arcade games work on more than 1 console that you own right ?
Logged
zefyx
Member
**
Posts: 11


View Profile
« Reply #12 on: December 08, 2009, 03:24:16 PM »

Thank you TeamZebra.
Logged
MastaG
Master Hacker
****
Posts: 343


What have you done for me lately?


View Profile
« Reply #13 on: December 13, 2009, 11:39:37 AM »

It doesn't seem to work for me.
I tried this on de Content folder of my old hdd that came from a banned console.
The profiles are showing up as corrupted but the memory tab shows the optional media update is there.
So I copied the complete Content folder to my fat32 formatted usb-stick and ran the patcher on it.
Then I copied everything back to my hdd, and stuck it on my freeBOOT 0.2 console.
The profile still show up as corrupted and when attempting to play divx or mp4 it still tells me I need the media update.
Any ideas?
Logged

I understand. You found paradise in America, you had a good trade, you made a good living.
The police protected you and there were courts of law.
And you didn't need a friend like me.
But, uh, now you come to me, and you say: "Don Corleone, give me justice."
But you don't ask with respect.
You don't offer friendship.
You don't even think to call me Godfather.
Instead, you come into my house on the day my daughter is to be married, and you ask me to do murder for money.
TeamZebra
Member
**
Posts: 10


View Profile
« Reply #14 on: December 13, 2009, 01:11:45 PM »

Well this doesn't uncorrupt profiles, it just unlocks DLC and Arcade games. If you're using a profile from a banned console, you'll have to uncorrupt it using CON Flag Remover. Google around for it.
Logged
NotMe
Hacker
***
Posts: 52


View Profile
« Reply #15 on: January 23, 2010, 01:43:04 AM »

Xbox Live File Patchver v1.2m - By TeamZebra/ZFB8 - Patched by NotMe

v1.2m - Patches by NotMe
 -Added removal of console ID.  Credits to zouzzz for the idea from his Yarisswap application.
 -Changed handling of the license slots.  Should now parse through all 16 license slots more correctly.
  This should fix any instances of DLC that does not work or show as full version when done via Yaris
  Swap method.  Note: this will not fix files that have been YarisSwapped as the Content & Flags get lost.
  Credits to Fatum for DLC Patcher and documenting out why Yaris Swap method worked more clearly

http://www.megaupload.com/?d=PYK227YX

Sources for update included of course.  Thank you TeamZebra for publishing your sources.

--

EDIT:  Noticed a bug that exists in both the original 1.2 and the 1.2m edits I did.
If the folders containing the content to be modified also contain a 0byte file the program will try to modify (and crash on) that 0byte file.

This can be corrected but I don't feel like doing a complete compile and package at the moment so just make sure your folders have no 0byte files.

If you wish to compile the fix yourself search for this code and then replace with code below:
Code:
               // read in each file header
                fs.Read(fileHeader, 0, 4);

FIXED CODE HERE to replace above code:
Code:
               // read in each file header
                for (int i = 0; i <= 3; i++)
                {
                    fileHeader[i] = 0x00;
                }
                fs.Read(fileHeader, 0, 4);

« Last Edit: January 23, 2010, 04:34:49 AM by NotMe » Logged
zouzzz
Master Hacker
****
Posts: 326


View Profile
« Reply #16 on: January 23, 2010, 08:00:47 AM »

Hi and thanks.

I think this version has an "error" :
Code:
int[] OffsetsLic = { 0x23C, 0x24C, 0x25C, 0x26C, 0x27C, 0x28C, 0x29C
                                  , 0x2AC, 0x2BC, 0x2CC, 0x2DC, 0x2EC, 0x2FC, 0x30C, 0x31C };
          
15 bytes

Code:
           byte[] emptyL = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
16 bytes



---------

A new version of Yaris Swap coming soon...
« Last Edit: January 23, 2010, 08:30:27 AM by zouzzz » Logged

NotMe
Hacker
***
Posts: 52


View Profile
« Reply #17 on: January 23, 2010, 11:46:31 AM »

Hi and thanks.

I think this version has an "error" :
Code:
int[] OffsetsLic = { 0x23C, 0x24C, 0x25C, 0x26C, 0x27C, 0x28C, 0x29C
                                  , 0x2AC, 0x2BC, 0x2CC, 0x2DC, 0x2EC, 0x2FC, 0x30C, 0x31C };
          
15 bytes -- 15 elements for this array is correct.  These are the offsets into the file used to find License Slots 1-15 as Slot 0 starting at 0x22C always gets patched since everything has at least one license

Code:
           byte[] emptyL = { 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
                                0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };
16 bytes -- 16 elements in this array is correct. Used for compares only to see if we should patch or skip the slot.  If slot is empty we do not need to patch.




---------

A new version of Yaris Swap coming soon...

See my comments above in blue.  

OffsetsLic is 15 elements in length because we always patch License Slot 0's  (0x22C) License field to FFFFFFFFFFFFFFFF since everything has at least 1 slot used.  The code then compares the Content segment of Slot 0 to see if there is a value or not.  If Slot 0 content segment is 00 00 00 00 we patch to 00 00 00 01 otherwise we don't touch it.  I never touch the flags segment of the license slot.  After that we move into the loop which is where the remaining 15 license slots are patched using the above list of Offsets.  Since we always check the Content segment of License Slot 0 that is why OffsetsCT is also only 15 elements in length.

emptyL is used for compares to see if the License slot needs patching.  If there is no License, no Content, and no Flags we don't need to patch.  If the license slot does not match emptyL we will patch the License portion to FFFFFFFFFFFFFFFF then check the content segment. If the content segment is 00 00 00 00 we patch to 00 00 00 01 otherwise we don't touch it.  Again for slots 1 to 15 just as with slot 0 we never touch the flags field.

 Smiley

« Last Edit: January 23, 2010, 03:31:54 PM by NotMe » Logged
NotMe
Hacker
***
Posts: 52


View Profile
« Reply #18 on: January 23, 2010, 03:51:29 PM »

Basically,  this always patches the license for Slot 0.  If there is no value for Content for Slot 0 it sets it.  It never touches Flags for Slot 0
For Slot 1 to Slot 15 it checks if License/Content/Flags has any value.  If any of those fields has a value it then patches that Slot license.  It also checks to see if the Content field is set.  If Content field has no value then it sets it, otherwise it leaves content alone.  It never touches any of the Flags fields.

I hope that makes it clearer as to how this works.  This fixes instances like some DLC for games that have both a free option and a paid option only show as free because the Content settings get erased with original swapping method.  As do the Slot 1, Slot2, and Part of Slot 3 License and Content Fields.

Here are the offsets for each slot:
Code:
License Slot | License Offset | Content Offset | Flags Offset
-------------------------------------------------------------
   Slot 0    |     0x22C      |     0x234      |    0x238    
   Slot 1    |     0x23C      |     0x244      |    0x248    
   Slot 2    |     0x24C      |     0x254      |    0x258    
   Slot 3    |     0x25C      |     0x264      |    0x268    
   Slot 4    |     0x26C      |     0x274      |    0x278    
   Slot 5    |     0x27C      |     0x284      |    0x288    
   Slot 6    |     0x28C      |     0x294      |    0x298    
   Slot 7    |     0x29C      |     0x2A4      |    0x2A8    
   Slot 8    |     0x2AC      |     0x2B4      |    0x2B8    
   Slot 9    |     0x2BC      |     0x2C4      |    0x2C8    
   Slot 10   |     0x2CC      |     0x2D4      |    0x2D8    
   Slot 11   |     0x2DC      |     0x2E4      |    0x2E8    
   Slot 12   |     0x2EC      |     0x2E4      |    0x2F8    
   Slot 13   |     0x2FC      |     0x304      |    0x308    
   Slot 14   |     0x30C      |     0x314      |    0x318    
   Slot 15   |     0x31C      |     0x324      |    0x328    

Logged
zouzzz
Master Hacker
****
Posts: 326


View Profile
« Reply #19 on: January 25, 2010, 07:56:32 AM »

Thanks a lot.
Can i use your code to update YS, please ?
Logged

Pages: 1 2 »
  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