Login Register






[Syndicate] How to make a XBOX 360 save editor using PackageIO filter_list
Author
Message
[Syndicate] How to make a XBOX 360 save editor using PackageIO #1
[Image: ZjIX.png]

In this tutorial I will be teaching you how to make a modification tool similar to the editors in Modio and Horizon.
You will need to download PackageIO.dll there will be a link at the bottom of the thread and it will be attached.

So first we want to create a new project, choose windows application form.
Spoiler:
[Image: 6ba2818d032b0d088622d09e9911c934.png]

Now we will design the form, for this it will be simple, add two buttons two textbox's. (The top textbox is the current value)
It should look something like this.
Spoiler:
[Image: 5d493cf5b023309e9d39e4c1fd58e422.png]

Add PackageIO as a reference and import it.

In Public Class Form1 enter this code.
Spoiler:
[Image: 9e1ac7a1d4bdfe1b41394aa59bbe39c8.png]

Now under that add this code
Spoiler:
[Image: 33026b2a5a072a79f8c8b879b1704d61.png]

And under that add this code.
Spoiler:
[Image: 20945b9559dabc49135013c13e4fae19.png]

Now we will add this code to the open button.
Spoiler:
[Image: 1fa9290b014b832fac0e59a05d954885.png]

Now for the mod button.
Spoiler:
[Image: 377c0703179683c4c801b52058a2d1e1.png]


Making this tutorial I assumed You'd already have the offsets, if you don't you should download a hex editor I use HxD and find them.


PackageIO



If you want the project file post here and I might send it to you.

Reply

RE: [Syndicate] How to make a XBOX 360 save editor using PackageIO #2
[Image: 33026b2a5a072a79f8c8b879b1704d61.png]

You need to be calling the Close() method here to dispose of the underlying streams.

Same thing here:
[Image: 20945b9559dabc49135013c13e4fae19.png]

[Image: 377c0703179683c4c801b52058a2d1e1.png]

ProjectData is not meant to be used directly in the code, so this isn't even your own code, this was a disassembled bit of code that you took from someplace else evidently. Then declaring exception As an Exception which points to the already referenced Exception in the heap by the identifier ex...

Yes, I have .NET Reflector too, and this is added in by that program, it's not part of the original code. So if you're going to use someone else's code, perhaps next time you should be giving credits? Wink

Furthermore:
[Image: 9e1ac7a1d4bdfe1b41394aa59bbe39c8.png]

X will be null, so if Button2 was pressed before Button1 which sets X to a non-null value (because string is a reference type, not a value type)... You will get an exception here, that you handle with a Try Catch, and that's not good at all.

Better way, if you're going to do it this way at all would be to check the reference to Nothing.

Code:
If X IsNot Nothing Then...
-- cxS

[ Haskell/.NET/C/C++ - Software Engineer ]

Reply

RE: [Syndicate] How to make a XBOX 360 save editor using PackageIO #3
I would personally have a function that acts as a wrapper for OpenFileDialog, and internally handles the exceptions otherwise, and returns a null string if no file was selected. Then check the function return value against null to know whether the action was successful or not... OTHERWISE, you can adopt the TryParse() paradigm, and do things that way, which could be clean...

Nice share otherwise..
-- cxS

[ Haskell/.NET/C/C++ - Software Engineer ]

Reply

RE: [Syndicate] How to make a XBOX 360 save editor using PackageIO #4
(03-22-2013, 02:20 AM)cxS Wrote: [Image: 33026b2a5a072a79f8c8b879b1704d61.png]

You need to be calling the Close() method here to dispose of the underlying streams.

Same thing here:
[Image: 20945b9559dabc49135013c13e4fae19.png]

[Image: 377c0703179683c4c801b52058a2d1e1.png]

ProjectData is not meant to be used directly in the code, so this isn't even your own code, this was a disassembled bit of code that you took from someplace else evidently. Then declaring exception As an Exception which points to the already referenced Exception in the heap by the identifier ex...

Yes, I have .NET Reflector too, and this is added in by that program, it's not part of the original code. So if you're going to use someone else's code, perhaps next time you should be giving credits? Wink

Furthermore:
[Image: 9e1ac7a1d4bdfe1b41394aa59bbe39c8.png]

X will be null, so if Button2 was pressed before Button1 which sets X to a non-null value (because string is a reference type, not a value type)... You will get an exception here, that you handle with a Try Catch, and that's not good at all.

Better way, if you're going to do it this way at all would be to check the reference to Nothing.

Code:
If X IsNot Nothing Then...

I did not use .net reflector I don't even know how. I learned how to do this from other tutorials when I started modding XBOX 360 games.

Reply

RE: [Syndicate] How to make a XBOX 360 save editor using PackageIO #5
Well lol, you got it from somebody who used .NET reflector from someone else's code and they didn't realize that they left behind some evidence of a skiddish copy and paste. Wink
-- cxS

[ Haskell/.NET/C/C++ - Software Engineer ]

Reply

RE: [Syndicate] How to make a XBOX 360 save editor using PackageIO #6
(03-22-2013, 12:47 PM)cxS Wrote: Well lol, you got it from somebody who used .NET reflector from someone else's code and they didn't realize that they left behind some evidence of a skiddish copy and paste. Wink

I thought it was crucial to the application since it was in both tutorials I had seen. :-/

Reply

RE: [Syndicate] How to make a XBOX 360 save editor using PackageIO #7
(03-22-2013, 09:48 PM)Three Wrote:
(03-22-2013, 12:47 PM)cxS Wrote: Well lol, you got it from somebody who used .NET reflector from someone else's code and they didn't realize that they left behind some evidence of a skiddish copy and paste. Wink

I thought it was crucial to the application since it was in both tutorials I had seen. :-/

It is a bad use of the Try Catch block anyways. Anywhere there is a Catch, this is the way you will see it in the new .NET reflector. So essentially you got this code from someone who took the code from someone else's decompiled application, that wrote bad code to begin with lol. Kind of a long chain of unfortunate events. It's typical that this happens on youtube though, things just circulate, good or bad code, regardless.
-- cxS

[ Haskell/.NET/C/C++ - Software Engineer ]

Reply

RE: [Syndicate] How to make a XBOX 360 save editor using PackageIO #8
Your writing code won't you. You can't call ReadFile() then WriteFile()

Call it like

WriteFile()
ReadFile()
[Image: 2SY9Y.jpg]

Reply