Friday, January 19, 2007

.NET Object Spy Download

Here you can find version
of the debugger spy.

There is also added support for watches in the spy.
Hook onto a .NET application and add a watch with the context menu on the left-hand treeview.

.NET Object Spy Version

If for one reason the file is not found on the server, don't panic, i will upload it later on today (day of post)


.NET Object Spy

This post is more like the actual reason why that I've set up this blogging thing :)

I've created a .NET Object spy which can be handy in production or acceptance environments.
Actually I've found the base-code on codeproject ( and modified chunks of it, the core injector thing to hookup and the icons come from there.
Thanks to Bjarne Dam Sørensen for this magnificant code.

Where you don't always have the possibility to 'debug' your project, because it's hosted at an end-user's computer or on a server somewhere, and the server/computer does in most cases not have Visual Studio installed.

I'm sure that there are other tools on the market that maybe can do the same job (or better).

But the reason i made this tool is specially for learning purposes, and with this experience also maybe be able to give other developers a tool for debugging that's totally free.

So we will go to the explaining stuff:

.Net Object Spy / Debugger

This project is able to hook on to a handle from another .net application.
The only limitation at the time (which is a pretty big one) is that it will only work on
winforms applications.
Because winforms apps have controls with handles which i can lock into and then show them in a user-friendly gui. (or that's the intention :))

The GUI is pretty straight forward.

You have an icon on the upper left of the window which allows you to drag it over your application to select a control you want to examine.
If you did that, then you can click on 2 buttons.

button 1 = 'Open Spy'
button 2 = 'Open hooked'

if you click 'Open Spy' or 'Open Hooked' then a viewer will open, where you van 'browse' your control and all it's properties and fields etc.

The open hooked, hooks on the application but will not unhook!
For doing that, you have the press a third button -> 'Close Hook'

If you open the debugger in hooked mode, then you can at run time change all the values in
the objects available in the control.

It doesn't matter whether the application is obfuscated or not, or is build in release or debug mode.

View the next post to find the distribution.

Enjoy !



Howdy folks,

I've set up this blog to share my applications with the outer world.
Any contributions are always welcome, and if you like something you find here,
don't hesitate to put a comment or mail, same for remarks on any project you find here :)

I will 'try' to keep this blog updated, i can't guarantee that I'm going to succeed in this operation,
but i will do my best, if i find a little time between all my work, i will surely try to keep it

Best regards,