Welcome to XDA

Search to go directly to your device's forum

Register an account

Unlock full posting privileges

Ask a question

No registration required
Post Reply

RAIN: .NET/WP7 Applications Hacking (+Dis/Assembler)

OP ash.rain

13th January 2012, 04:04 PM   |  #1  
ash.rain's Avatar
OP Junior Member
the web
Thanks Meter: 23
 
23 posts
Join Date:Joined: Sep 2011
Donate to Me
What the TOOL actually does is unpack a xap file, show its content and let you edit them.
As simple as that. It includes some internal editors.

DOWNLOAD

Here are the features of .NET Rain:
- Unpack/Pack a valid WP7/Silverlight XAP file.
- Integrated binary and text editors.
- Integrated image viewer.
- Integrated .NET DLL disassembler/assembler and editor, allowing you to edit the types, methods, properties, resources and each method's set of IL instructions in an assembly.
- Ability to edit assemblies directly in C# and then compile it back directly from the program UI.
- Of course, giving you the freedom to open each XAP entry with an external editor. Editing is intuitive and simple.
- Besides working in the context of a XAP package, you can also edit single files.
- You can manually edit the contents of the XAP by adding, removing or swapping files, besides in-place editing.

I'm planning to add a few more features.
I know about Reflector but it's way too overpriced... I don't find it user-friendly as well.
I will keep Rain donateware. Once I release a stable version, its development would pretty much depend on your feedback and donations.

Here are some cool resources I've found on the net for those of you who are interested in something more than the end result:

Open-source alternatives to Reflector:
Other resources:
  • TypeView.cs
  • Jason Haley's notes on disassembling .NET
  • Adrian Bank's recent blog post summarising a number of Reflector alternatives, including several options not mentioned below.
  • Mark Lichtenberg's detailed blog post comparing several of the open source alternatives (DILE, ILSpy and Mono Cecil using MonoDevelop) to Reflector.

Keep an eye on the second post for updates!
Last edited by ash.rain; 15th May 2012 at 02:20 PM.
The Following 13 Users Say Thank You to ash.rain For This Useful Post: [ View ]
13th January 2012, 04:07 PM   |  #2  
ash.rain's Avatar
OP Junior Member
the web
Thanks Meter: 23
 
23 posts
Join Date:Joined: Sep 2011
Donate to Me
UPDATES

After quite a while, I announce that
Beta 3 is out!
You'll need the .NET Framework
Download: You can either download from the Google Code project or from the project's website.



There are still things I'm working on, expect another update in about a week!



Please use Google Code's Issue Tracker for any feedback or feature requests. Any kind of support, be it a donation, suggestion, feature request or bug report, is highly appreciated.

Thanks!
Last edited by ash.rain; 17th April 2012 at 10:33 AM.
The Following 2 Users Say Thank You to ash.rain For This Useful Post: [ View ]
13th January 2012, 05:13 PM   |  #3  
Senior Member
Thanks Meter: 10
 
169 posts
Join Date:Joined: Oct 2010
More
Amazing... Was hoping that someone make this... Great work buddy...
Let me get my hands dirty with the beta version
14th January 2012, 03:11 AM   |  #4  
Member
Thanks Meter: 6
 
76 posts
Join Date:Joined: Mar 2011
More
Thumbs up
Nice work. Will this work on unsigned /sideloaded apps also?
14th January 2012, 05:02 AM   |  #5  
derausgewanderte's Avatar
Senior Member
Thanks Meter: 294
 
1,158 posts
Join Date:Joined: Aug 2009
More
sounds very cool. I am surprised this hasn't been out there already. cool
14th January 2012, 07:22 AM   |  #6  
Member
Flag Riyadh
Thanks Meter: 9
 
84 posts
Join Date:Joined: Dec 2008
More
perfect.

i am sure that this tool will help.

actually i am trying to modify some xap's

thanks.
14th January 2012, 09:23 AM   |  #7  
Recognized Developer
Flag Seattle
Thanks Meter: 2,782
 
5,870 posts
Join Date:Joined: Jan 2011
More
Looks very cool!

Basic decompilation / recompilation of the IL would be neat, but IL isn't terribly hard to read or write (especially for people who already know some assembly).

One thing that would be useful (can't tell if it's there yet or not) would be to support adding folders called .. and files under them (allows path traversal to put files almost anywhere on the system). For bonus points, show the phone's filesystem as it would be after installation (the contents of the XAP unpacked with the root at \Applications\Install\<GUID>\Install\) so people can very easily put files where they want them.

A quick manifest tweaker (things like add/remove ID_CAP_INTEROPSERVICES) would also be cool, though exiting XML is easy by hand anyhow.

All in all, looks very cool. A very convenient all-in-one tool, aside from perhaps a decompiler.
The Following User Says Thank You to GoodDayToDie For This Useful Post: [ View ]
14th January 2012, 09:44 AM   |  #8  
ash.rain's Avatar
OP Junior Member
the web
Thanks Meter: 23
 
23 posts
Join Date:Joined: Sep 2011
Donate to Me
Thanks for the positive replies so far, guys, I appreciate it! However, I'm more into suggestions and when I release a download - some critic. I've made a simple vote for the means of counting the interest, please use that.

Quote:
Originally Posted by GoodDayToDie

Basic decompilation / recompilation of the IL would be neat, but IL isn't terribly hard to read or write (especially for people who already know some assembly).

One thing that would be useful (can't tell if it's there yet or not) would be to support adding folders called .. and files under them (allows path traversal to put files almost anywhere on the system). For bonus points, show the phone's filesystem as it would be after installation (the contents of the XAP unpacked with the root at \Applications\Install\<GUID>\Install\) so people can very easily put files where they want them.

A quick manifest tweaker (things like add/remove ID_CAP_INTEROPSERVICES) would also be cool, though exiting XML is easy by hand anyhow.

First of all, thanks for the post - you raised a few very good points.
I've already implemented a IL instructions edit form. I'm thinking about IL to C# conversion, but so far I've only made a C# to IL form. The other way around is a bit tricky, but is in my todo list for sure. And after all, yeah - IL is pretty easy to understand, and I've even implemented a simple "instruction description" field for every instruction for the sake of refference.

That second suggestion concerning file path tweaks is a very good idea and hadn't crossed my mind so far. I'll surely put that on the todo list as well!

The "manifest tweaker" is already on that list but I need to figure out the signing algorithm first, since it seems to be related to some data from the manifest.

Quote:
Originally Posted by gentry33

Nice work. Will this work on unsigned /sideloaded apps also?

Umm... no, not really :) As I said, I've got some things on my todo list and on the end of that list is spending a while trying to figure out the signing algorithm. If anyone can save me some time, that'd be cool.
Last edited by ash.rain; 14th January 2012 at 10:08 AM.
14th January 2012, 11:38 AM   |  #9  
contable's Avatar
Senior Member
Thanks Meter: 958
 
1,692 posts
Join Date:Joined: Oct 2009
Donate to Me
Indeed such a tool would be very interesting...
14th January 2012, 02:29 PM   |  #10  
ahmedfikry's Avatar
Senior Member
Thanks Meter: 62
 
1,417 posts
Join Date:Joined: Jun 2007
Donate to Me
great idea...makes it easier than the workaround that I have been trying all along

i am interested in testing / beta ... & will be happy to help

Post Reply Subscribe to Thread
Previous Thread Next Thread
Thread Tools Search this Thread
Search this Thread:

Advanced Search
Display Modes