Monday, 18 November 2013

LiteDevelop - Creating Visual Studio (MSBuild) Projects + Awesome splash screen

Hey all

Today I would like to let you know I am still working on LiteDevelop . Because most of the time when I make progress on this project, there isn't much to see from a screenshot or whatever.

Anyhow, I have reached a new milestone, which is creating, opening and modifying projects that are using the MSBuild format, which for example Visual Studio does. I also made a splash screen (just because it is awesome to have one!).

Check out this GIF animation:


Thursday, 17 October 2013

LiteDevelop - Creating Forms Applications

Hello guys,

Some more progress. LiteDevelop can now create windows forms applications. Also I am introducing the php language to the application.

Check out the little GIF:



Monday, 7 October 2013

LiteDevelop - Creating and building .NET projects with multiple files

Hello everybody

So again I am making lots of progress with LiteDevelop. I updated the forms designer's code generator a lot, but what's most important is that it now supports creating .NET console application projects with multiple files.

Take a look at this little GIF animation (click to enlarge, sorry if its too fast :)):



Monday, 16 September 2013

Possible .NET framework bug in System.dll?

What I think is wrong:

The VBCodeCompiler defined in Microsoft.VisualBasic namespace in System.dll fails to extract error messages due to parentheses being present in file paths.

The story why I think this:

I was messing with CodeDom today, and using C# I tried to make use of the VBCodeProvider, using this source code:


string workingDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "new folder");
var codeProvider = new VBCodeProvider();

var parameters = new CompilerParameters()
{
    OutputAssembly = Path.Combine(workingDir, "temp.exe"),
    GenerateExecutable = true,
    CompilerOptions = "/target:exe",
    IncludeDebugInformation = true,
};

var results = codeProvider.CompileAssemblyFromFile(parameters, Path.Combine(workingDir, "Program.vb"));

Console.WriteLine("CompilerResults.HasErrors = {0}", results.Errors.HasErrors);
Console.WriteLine(new string('-', 20));

foreach (CompilerError result in results.Errors)
    Console.WriteLine("{0}: {1}", result.Line, result.ErrorText);

Console.ReadKey();


The file Program.vb which gets compiled contains the following source
Imports System
Imports System.Collections.Generic
Imports System.IO
Imports System.Text

Namespace ConsoleApplication1
    Module Program
   
        Public Sub Main(ByVal args() As String)
            Console.WriteLine("lol")
            Console.ReadKey()
        End Sub
   
    End Module
End Namespace


Now here the program works, it generates a file called temp.exe and it works fine. I tried to add a syntax error in the source by adding some gibberish to the end of:

Console.WriteLine("lol")


So it becomes this:


Console.WriteLine("lol") asdf


And yes, the compiler error appears at the CompilerResults.Errors collection.




Now comes the thing. When I try to change the working directory "New Folder" to "New Folder (2)", which is just a copy of the same folder with the Program.vb and the same syntax error in it, the errors disappear magically:




I checked the compiler output by rewriting my C# code to this:


string workingDir = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "new folder (2)");
var codeProvider = new VBCodeProvider();

var parameters = new CompilerParameters()
{
    OutputAssembly = Path.Combine(workingDir, "temp.exe"),
    GenerateExecutable = true,
    CompilerOptions = "/target:exe /verbose /utf8output",
    IncludeDebugInformation = true,
};

var results = codeProvider.CompileAssemblyFromFile(parameters, Path.Combine(workingDir, "Program.vb"));

Console.WriteLine("CompilerResults.HasErrors = {0}", results.Errors.HasErrors);
Console.WriteLine(new string('-', 20));

foreach (CompilerError result in results.Errors)
    Console.WriteLine("{0}: {1}", result.Line, result.ErrorText);

Console.WriteLine(new string('-', 20));

Console.WriteLine("Output of vbc.exe:");
Console.WriteLine(new string('-', 20));

foreach (var message in results.Output)
    Console.WriteLine(message);

Console.WriteLine(new string('-', 20));

Console.ReadKey();


Which gives me


Telling me the CompilerResults.HasErrors = false, but the compiler clearly returned a syntax error message.

I found this very weird, so I fired up Reflector and checked out the Microsoft.VisualBasic.VBCodeGenerator (the class that actually compiles the VB source) and compared that with the Microsoft.CSharp.CSharpCodeGenerator, and checked the following method which is present in both classes, and processes output lines to check for errors and warnings.

private void ProcessCompilerOutputLine(CompilerResults results, string line)

ProcessCompilerOutputLine in the VBCodeGenerator class:



And the one in CSharpCodeGenerator:




Notice the difference in the Regex. I tried the regex patterns in Expresso and the pattern used in the VBCodeGenerator didn't work for me. So I believe this is causing the error. In the CSharpCodeProvider this is not the case, because it works just fine. Am I missing something, is my .NET framework broken, or is it really a bug and doesn't VBCodeGenerator support parentheses? in file paths.


Wednesday, 28 August 2013

LiteDevelop - UI Changes

Hello everyone

I am making much progress on LiteDevelop, and I would like to share with you the new UI that LiteDevelop has. It now supports dockable windows (thanks to DockPanel Suite <3), which allows you to reposition and resize every toolbar, properties window, and documents being opened. Take a look at this screenshot:
 


Thursday, 1 August 2013

LiteDevelop Code Editor

Hello everybody,

With LiteDevelop as one of the running projects currently, I would like to show you some progress I have made with the code editor. It becomes really convenient to work with because of the auto-completion system getting updated. It now supports a little more complex type recognition, such as getting type by it's name by using the namespaces defined by the user on top of the source, and getting members from sub-members from sub-members and so on.... Also some snippets are being added to speed up development.

Have a look at this little GIF animation I made, and let me know what you think.


Tuesday, 9 July 2013

Announcement: LiteDevelop, a Visual Studio alternative

Today I would like to announce there is a new Integrated Development Environment (IDE) called LiteDevelop upcoming! This application serves as a free, light-weight and open-source alternative to Visual Studio and is able to be launched from a removable drive such as USB sticks or SD-cards.

LiteDevelop will support languages such as C# and VB.Net, but it won't focus on these only. Soon there will be support for creating complex websites in Html, Php, Javascript and Css, and maybe other programming and/or scripting languages.

Here are some screenshots of the first versions. Please note this is far from a release version and the interface will be improved a lot (e.g. including icons in the forms designer).

C# code editor
Forms Designer


Monday, 17 June 2013

DotNet Resolver 3.2.0.6

I just updated the program to version 3.2.0.6. Hope you like it:

Key updates:
  • Else statement added
  • Loop conditions fixes.
  • MSIL Editor fixes.
  • Search bar fixes.
  • Analyser bug fixes.
  • Updater program bug fixes.
  • Notification bar added.

Sunday, 16 June 2013

Are you getting this error?


Are you encountering this error when opening DotNet Resolver? I am trying to find out why this error occurs, simply because it does work on some computers and on some it doesn't. If you want to help me out, please reply to this post or send an e-mail to theunknownprogrammer@hotmail.com containing your computer specs and installed .NET framework versions.

Thanks

Thursday, 6 June 2013

Manually update to 3.2.0.4

Hey guys,

Today I've released DotNet Resolver 3.2.0.4. Unfortunately, because the original website is down (I am working on a new website), you'll need to update manually from the mirror website http://www.dotnetresolver.eu5.org. This is due to the fact that the updater program only connects to the original website. So please update the application for one time by hand and you'll never experience any problems with the updater any more (I hope).

Key features
  • Search bar
  • Xml Documentation in decompiled source code
  • Assembly information added


Sunday, 26 May 2013

DotNet Resolver site problems

Hello everybody.

There are some issues with the official DotNet Resolver website, and therefore it is down for a while. If you still want to access the website, try the mirror http://dotnetresolver.eu5.org. I am sorry for the inconvenience.

Please stay tuned for the latest versions of DotNet Resolver because the updater program needs to be updated with this mirror website :D.

Regards
TUP

Saturday, 18 May 2013

Anonymous methods and Plugin Documentation

Hello everyone.

Today I published DotNet Resolver 3.2.0.3, and I am pretty excited to announce DotNet Resolver is able to detect anonymous methods.
Anonymous methods

Together with this release, I created a documentation file about how to create Plugin applications. It can be found at http://www.dotnetresolver.com/tutorials.html.

Updated website with documentation.


Friday, 10 May 2013

Analysing member usage on the fly with DotNet Resolver 3.2.0.2

Today I released an update of DotNet Resolver containing a new feature called the Analyser. This analyser is able to detect where a certain member is being used in all loaded assemblies. Download is available as usual on http://www.dotnetresolver.com/

Sunday, 7 April 2013

Mirror dotnetresolver.com

Hello everybody

I would like to announce that there is a mirror of dotnetresolver.com up and running. If you ever find yourself struggling with the original website because of any reason, go to dotnetresolver.eu5.org and you'll find a perfect mirror.

Best regards
TUP

Sunday, 31 March 2013

DotNet Resolver 3.1

Check out the new version of DotNet Resolver! This version consists of the following updates:
Download it here

New Featuers:
  • Extracting *.resources files
  • View Assembly and Module References
  • Edit instructions with member references
Decompiler Fixes 
  • Character numbers are being displayed as a correct character string
  • Html formatting errors fixed
  • Problems with member specifications (arrays, pointers etc.) fixed
  • Switched try and if statements fixed
  • Default (T) keyword added
  • Generic type fixes, need work though.
 Minor bug fixes
  • Resolution nested members fixed.
  • Closing assemblies caused problems, fixed now
  • Patched updater program

Extracting resources


Editing instructions with member references.

Sunday, 17 March 2013

DotNet Resolver 3.0.0.8 and String Searcher plugin

Hey guys

DotNet Resolver is already at it's 8th version, and has made some awesome bug fixes. Be sure you check it out!

Also I made a little preview plugin; the String Searcher. This will add a tab page to DotNet Resolver containing a button that will scan the current assembly for strings that are being used. Once it's finished you can view them in the list below and navigate to the methods by double clicking on the item.

You can download the latest version of DotNet Resolver and the plugin at http://www.dotnetresolver.com/

Check out the screenshot:


Sunday, 24 February 2013

Mayor updates to AsmResolver

Hey guys,

So I made some mayor changes to AsmResolver again.

I started working on the PE Rebuilder, which will eventually allow you to insert or remove sections, methods, types, instructions, resources and such. As far as I got now it will only rewrite them and you are not able to insert anything. But after I got the rebuilding process done, I will work on the offset fixer class.

You can check out everything on the Github page:
https://github.com/TheUnknownProgrammer/AsmResolver

See ya

Thursday, 21 February 2013

DotNet Resolver 3 is published!

Hello everybody

I've released DotNet Resolver together with AsmResolver. You can download it at http://www.dotnetresolver.com/. AsmResolver is open source, you can check it out at the official GitHub page by clicking here.

Here is a preview video of DotNet Resolver 3:

Friday, 15 February 2013

DotNet Resolver Beta 3 almost finished!

Hello everybody

So DotNet Resolver is about to finish! Here are some updates:

For loops.
Properties And Metadata Row Editor

MSIL Editor


Saturday, 26 January 2013

Suggest a DotNet Resolver Plugin Function!

Hey guys.


So DotNet Resolver Beta 3, my decompiler for .net applications, is about to finish, I just need some good ideas for the plug-in system. The new plug-in system will have a lot more functions to use, there should be just a little bit more. So I'm asking you if you have any idea of a function, please post a reply!

So far I have things like adding and removing controls such as menu items and tab pages. I also have functions that will get the current object and decompilation and language.


I got some suggestions already from other people asking for an interface that allows you to make your own decompilation language or syntax highlighting styles.


Keep in mind when you are posting a reply, don't say things that will conclude an entire program like a deobfuscator. This would be something for the plug-in itself. I'm asking for functions that might come handy for the plug-ins, and not an entire plug-in.

So please post and I might add your suggestion!

See ya
TUP.