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

Search This thread

Poryhack

Senior Member
Jul 22, 2010
145
6
I cannot for the life of me figure out how to actually change anything in this version. I can make changes to the C# code but changes don't take. I can't get into the IL editor window from the last version at all.
 

ash.rain

Member
Sep 27, 2011
26
25
the web
Hi, Pory!
You should be able to compile the C# code by simply saving (ctrl+s). Have you checked the bottom pane for compiler errors? (well, i assume the decompiler is not always perfect).

As for the IL editor, I'made some improvements and will be back on the next beta :) sorry for the inconvinience, please share what the problem seems to be

- ash
 

Poryhack

Senior Member
Jul 22, 2010
145
6
Hi, Pory!
You should be able to compile the C# code by simply saving (ctrl+s). Have you checked the bottom pane for compiler errors? (well, i assume the decompiler is not always perfect).

As for the IL editor, I'made some improvements and will be back on the next beta :) sorry for the inconvinience, please share what the problem seems to be

- ash
Thanks for the response. It seems I was missing the compiler error pane. I do indeed have errors. As a matter of fact they're there before I make any changes so I can only assume it's not decompiling perfectly.
 
  • Like
Reactions: ash.rain

Martin7Pro

Senior Member
Oct 23, 2011
385
363
htc7pro.howto.cz
Hi ash.rain. It is very nice and usable application. I do not know, what I make wrong - when doubleclick to xap contained dll name, all is working. But, when I right click to "open", application everytime crashes. M.
 

ash.rain

Member
Sep 27, 2011
26
25
the web
Hey, Martin

I'm checking it right now and I can't seem to repeat that behaviour :-( Are you, by any chance, trying to open a DLL as text?
By the way, I'd be glad if you use the Issue Tracker, it's a better way to keep track of the problems at hand.

I use the ocasion to apologize for the missed release date (almost a month ago). I've been very busy with my daytime job lately. I have many nice ideas for Rain but unfortunately I lack the time to focus on this project.
Of course, I also want to keep it donateware, so things are moving real slow :)

What do you think of a built-in x86 IL compiler? The idea is to take a .NET executable and make it "standalone", parsing and translating the intermediate language to x86 ASM and then assembling it to native EXE. I'm still thinking on the algorithm, mostly because of the object-oriented stuff, but it would be quite possible.

I'd also like to include as many [de-]obfuscators, but that also takes a lot of time to code. Damn time :)
 

ash.rain

Member
Sep 27, 2011
26
25
the web
Hey guys... since I've been asked a few times already, now I'm explaining Rain's behaviour when opening DLL's:
You would usually be shown a "open file" dialog. In the filter box you can see a file name - SomeAssembly.dll.
This is an assembly that has been referenced in the DLL you are trying to decompile but cannot be found in the same folder as the DLL (or in the XAP package in the case of such) or in the GAC (Global Assembly Cache). So... you have to point the program where is the file located, so it can be loaded and decompiled in its turn :) As for Windows Phone, for example, your needed assembly would usually be located in a path like "C:\Program Files[ (x86)]\Reference Assemblies\Microsoft\Framework\Silverlight\v4.0\Profile\WindowsPhone71".

I've made some imporovements in the RC (yep, there is one coming up) and Rain will remember some common locations for DLL's and will save you the need to point out most assemblies.

Also, I'm making some bigger plans about creating an online depot for hackin... oops, I meant development :))) resources users are willing to share, such as assemblies, cracked pieces of code, resources, ideas, etc. - all integrated inside the program. That would make it a bit more social-oriented, so it can save you more time when possible. It would be great if I can accomplish some integration with XDA at some point. There are many ideas, but there are many things to work on yet and so little time :-(

Sorry once again, hope I've cleared some things up ;-)
 

Martin7Pro

Senior Member
Oct 23, 2011
385
363
htc7pro.howto.cz
Hey, Martin

I'm checking it right now and I can't seem to repeat that behaviour :-( Are you, by any chance, trying to open a DLL as text?
By the way, I'd be glad if you use the Issue Tracker, it's a better way to keep track of the problems at hand.

I use the ocasion to apologize for the missed release date (almost a month ago). I've been very busy with my daytime job lately. I have many nice ideas for Rain but unfortunately I lack the time to focus on this project.
Of course, I also want to keep it donateware, so things are moving real slow :)

What do you think of a built-in x86 IL compiler? The idea is to take a .NET executable and make it "standalone", parsing and translating the intermediate language to x86 ASM and then assembling it to native EXE. I'm still thinking on the algorithm, mostly because of the object-oriented stuff, but it would be quite possible.

I'd also like to include as many [de-]obfuscators, but that also takes a lot of time to code. Damn time :)

Hi ash.rain. I have two big problems - a few of free time and my english ability. I do not understand your post exactly now. Let it be, please. I will study and post more, when a lot of work allow me it. Any dlls (coded C# or native) cause crash everytime. Any other (not coded C# or native), cause crash only vhen I select ANY open option from right-click menu. When doubleclick on dll name (left side, XAP contain list), your applicatioon works without crash. It must contain little difference betwen rightclick and dobleclick opening. Any other dlls not cause crash. M.
 

ash.rain

Member
Sep 27, 2011
26
25
the web
Hi

I noticed a peak in the interest for this small software I wrote as a joke on weed and beer diet for a week a few years ago.
Since I'm a grown a responsible person now (hahahaha) I just can't maintain the project myself.
So I put it on GitHub. Feel free to contribute or take the whole thing and make it into something better if you wish and know how.
It's written in WPF/C# so I'm expecting many many servants to join me on my quest to world domination or whatever.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 13
    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.

    GITHUB

    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!
    2
    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.

    rain1.png


    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!
    2
    Hi, check out the third beta. It contains the functionality to compile back the changes made to decompiled code with a simple Ctrl+S.
    I'm sorry for the long delay and I promise another update within a week with many bugs fixed, a good resource editor (which will allow you to add new resources, so with a bit of side work you'll be able to localize apps in a way), XAP deployer, marketplace search tool and a few surprises.

    The UI needs a lot of improvements as well, I am aware of that. If anyone wishes to help in that (or any other) way, please contact me :)
    2
    Hi, ted973

    As I said in the second post, native assembly support is not yet implemented. However, it's planned and will be there in the release version! Maybe just a resource editor, but it's a start. I want to include a full-featured disassembler for native Win32 code at some point in the future for sure.

    The second issue's been fixed a couple of hours ago. I guess I was in a bit of a hurry to make the build, so I forgot that. I've been adding a lot of neat stuff as well, so Beta3 will feel better. And I'm sure you guys have some ideas of your own I hadn't thought about.

    And as of the third part of your post - the disassembly's been almost completely cutoff in Beta2, since I'm still working on it. Use the IL editor on the right instead until Beta3.

    Thanks for the feedback,
    - Ash
    1
    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.