Source Code Recovery

Have you lost your source code? Was it an accident, hardware failure or a human mistake? I can help you to recover source code from the binary files of your applications.

Recovering programming projects

I can help you to recover source code, algorithms & resources from the compiled binary applications written in:

C/C++ Programming Language

C & C++

Recover source code and software algorithms from C/C++ compiled binaries, including Windows EXE, Linux ELF executables & DLL libraries created in Visual C++, Intel C++ Compiler, GCC, MinGW, G++, Clang, C++Builder, Watcom C++, LCC, Pelles C, Digital Mars and other compilers.

Java Programming Language

Java

Recover source code from Java and J2EE / JEE applications & applets, restore source code from *.class files, JAR & WAR packages. Restore code from Android APK packages & DEX files. Recover sources from encrypted & obfuscated Java packages.

C# aka C Sharp Programming Language

C# aka C Sharp

Recover full source code from C# applications, also from protected apps, including those created using WinForms, WPF, WCF, ASP.NET.

Visual Basic Programming Language

Visual Basic & VB.NET

Restore source code from Visual Basic executables compiled to native or p-code output. Restore sources for the latest VB.NET applications created for the .NET Framework.

Delphi and Pascal Programming Language

Delphi & Pascal

Source code and algorithm recovery from Delphi applications and any other Pascal based tool & compiler like Lazarus, FreePascal etc.

Visual FoxPro Programming Language

Visual FoxPro

Recover source code, databases, queries and other resources from Visual FoxPro, FoxBASE+, FoxPro 1.*- 2.6, Visual FoxPro 3.0, 5.0, 6.0, 7.0, 8.0 and 9.0 applications.

AutoIt Programming Language

AutoIt

Recover *.au3 script source codes from compiled AutoIt applications. Restore obfuscated script sources to the original form.

Flash SWF ActionScript

Flash SWF ActionScript

Recover flash script sources in the ActionScript language and other binary resources from compiled Flash SWF files and standalone Flash applications in EXE format.

* Quick note: in proper conditions it's also possible to recover source code in other programming language than the software was written in

How is source code recovery done?

Source code recovery isn't an easy task and takes time, specialized tools and reverse engineering skills.

First of all, software has to be analyzed to determine the compiler and the programming language it was written in. At this stage I know what libraries were used, what technologies has been involved (like database drivers, graphical libraries etc.).

IDA Interactive Disassembler

Another step is software disassembling and decompilation (if possible). At this point I know what the compiled code looks like and the work can continue. With the proper knowledge of code structure, reverse engineering and programming, each function is analyzed and its binary code is translated by hand or by the decompiler to the desired output high level programming language.

Source code recovery example

Here is the sample C++ output code in x86 assembler :

Compiled code. Simple function, disassembled to x86 code

.text:00401000 ; int __cdecl main(int argc, const char **argv, const char **envp)
.text:00401000 _main	proc near		; CODE XREF: ___tmainCRTStartup+F8p
.text:00401000		push	40h		; uType
.text:00401002		push	offset Caption  ; "Hi!"
.text:00401007		push	offset Text	; "Hello World!"
.text:0040100C		push	0		; hWnd
.text:0040100E		call	ds:MessageBoxW
.text:00401014		xor	eax, eax
.text:00401016		retn
.text:00401016 _main	endp

Restored source. C++ code from the x86 output

int __cdecl main(int argc, char *argv[], char *envp[])
{
	MessageBox(NULL, L"Hello World!", L"Hi!", MB_ICONINFORMATION);

	return 0;
}

This is only a simple example, in real life and real world applications everything is more complex.

What can be recovered?

Source code recovery is tedious work and can take as much time as one day, but in some cases it can take even a few months, depending on the project size and its complexity. So what can be recovered?

  • entire code base
  • application resources (files, images, databases) from encrypted or compressed containers
  • specific functions and algorithms
  • encryption and compression algorithms
  • encryption keys
  • login passwords (for databases connections etc.)

Questions?

If you have any questions about source code recovery or about pricing, please contact me. Please describe your problem with as much technical information as you can. I'll be happy to answer all of your questions.