Convert exe file to IL (Intermediate Language) - il

Is there any Command-Line or programmatically way to convert any type of exe file to IL?!
I know it is possible cuz I saw several programs that show me IL codes.
Note : I do this for .Net Framework via ILDASM.EXE (A tool of visual studio) but I'm not able to do the same work for the exe files which don't have CLR header (similarly it is only a way for convert .Net assemblies!).

I know it is possible cuz I saw several programs that show me IL codes.
I mean Hex Rays IDA
From the Hex Rays IDA site:
IDA is a Windows, Linux or Mac OS X hosted multi-processor disassembler and debugger that offers so many features it is hard to describe them all.
And when you look at the screenshots, you will notice the code there is not IL, it's x86 assembly.
If assembly is what you want, then getting that is mostly trivial and there are many programs that can do that.
If you really want IL, then getting that doesn't make much sense and I'm not aware of anything that would do that.

Related

Load Assembly Sources into IDA

I have a large codebase written in assembly that I need to maintain.
Exploring the existing code is tough with text editor's syntax highlighting being the only helping tool.
I was considering to use IDA tool to assist with this task. It has many nice features for exploring assembly code. So I downloaded the free 5.0 version for evaluation.
Unfortunately, I am unable to locate an option that provide the ability to open an assembly source file. All the "open" options do is to dissasmble binaries, but this is useless to me as I already have the source code inclding all the comments and human readable symbols.
It is hard to believe that a tool with so many features lacks this basic capability. So what am I missing here?
IDA, as stated at its website, is a Disassembler. It was developed to find out what a program does WITHOUT the assistance of the source code, not the other way around. Why should anyone try to employ the complex and time-consuming techniques available in IDA to discover what a binary does if all they have to do is take a peek at the original code?
IDA is NOT a development tool, it is a reverse-engineering tool. You should look for an Assembly IDE for the task you seek to complete. Maybe RadASM provides what you are looking for.

Change compiler errors language in Visual Studio 2013

I installed the english version of Visual Studio 2013. The GUI is in English but compiler errors are in French. That's a nightmare when I want to Google an error...
How can I switch C# compiler output language to English ?
You'd have to switch your machine's system locale to English, Control Panel + Language.
That's a rather impactful change since it also changes the locale for every other program on your machine. One thing you can try (but I cannot verify) is to whack the localization file that the C# compiler uses for strings. On your machine it should be located in c:\windows\microsoft.net\framework\v4.0.30319\1036\cscui.dll. Rename the file so the C# compiler can't find it and is forced to fallback to, hopefully, English. Btw, I guessed at 1036, there are lots of French locales. Locale IDs are listed here.
I have solved this as well. Switching language in the IDE did not worked for me, because if the MS compiler was invoked from another program (Qt Creator in my case), the language output was still in the locale language.
Solution: Remove the language you don't want from Visual Studio using the installation tool and leave only English. It's clean, you don't have to mess with the internal files and you even save some disk space.
Just solve same problem with Deutsch:)
Do this: inside of Visual Studio:
Tools-->Options-->Environment-->International Settings. There you need to download an additional language(i.e. English) and install it.

Should we place C code in Static library or Runtime component?

We're moving to Windows Phone 8. But since many good libraries out there are in pure C. So what is the best way for Windows Phone C# application to consume this C library?
Place C code in WP Static library. Then reference it from WP Runtime
component
Place C code in WP Runtime component
What is the best practice ?
There isn't any real difference between the two approaches. A static library is nothing but a collection of .obj files, the exact same kind of .obj files that you'll get from approach #2. After the linker is done, there won't be any difference in the result.
That's when everything is perfect, an ideal that can be very difficult to achieve when you use open source C code. An advantage of a static .lib is that it improves build time, not having to re-generate the .obj files. But that's also their disadvantage, you'll shoot your foot if you use a .lib that was created by somebody else and he didn't use the same compiler version or compile options. The simplest example of such a trap is building your Debug version and the .lib was built for Release. Or if it uses winapi functions that are verboten in a Phone app, pretty common. So #3 is the best way to avoid problems, build the .lib yourself so you can control all the compile and link settings. Do beware however that it can be very difficult to get open source C code to build, it often comes with a very extensive configuration script, designed to deal with the differences between the many architecture and Unix variants.

How to generate SWF from FLA using command line on Ubuntu Server?

I have a situation where I need to generate SWF from the FLA that user uploads on to the server. We use python and bash scripts, and work on Ubuntu Server 10.04 (64bit), any help on how to generate the SWF would be a great help.
Thanks.
Flash needs Flash IDE for compilation.
You probably can compile code using flex AS3 compiler on linux, but if there are graphical elements in Flash, you cannot compile them.
However, we had a similar situation, which we fixed by installing Flash in a MAC OS X Snow Leopard(10.6) and then wrote some php, some shell script, some applescript and made a command line compilation mechanism for AS3.
Mac OS X is a unix based os, so the command line is similar to any other unix. it comes with built in php, so you don't have to install anything.
Basically using script we dynamically generate something called .jsfl file. the jsfl contains the details of the .fla that needs to be compiled. these jsfl files can be executed by Flash IDE. so we invoke the flash IDE and pass on the generated .jsfl file. (http://gskinner.com/blog/archives/2004/08/jsfl_fla_batch.html)
This gskinner process works in windows also, but using mac we can make it command line. so that users can just ssh to the mac and execute the command to build the file.
FLA file format has changed significantly in the latest version of Flash. New FLAs are archives containing source files and assets, so you might be able to write a script unpacking a FLA and assembling an SWF from it. Prior versions of FLA contained proprietary format, not documented and there were no tools to process it in an automatic fashion, not on Linux for certain.
Depending on ActionScript version and your requirement to resource handling (by resources I mean images, fonts, sound tracks, videos etc) there are several options available:
Flex SDK, the material found in the blog post #ntidote refers to is somewhat dated, but it's OK / should work. You would need to consult MXMLC usage documentation to find out all available options (and some new required ones, not covered in the blog post). This is what you can do, if your goal is to compile AS3. This does not include video transcoding and you might find it challenging to embed vector graphics. MXMLC is, however, capable of compiling a large subset of SVG. It can also compile FXG - a new interchange graphic format that can describe vector shapes and text.
ActionScript 2 can also be compiled, but Flex doesn't offer a compiler for that. There is a very good, in fact a much better than the one written by Adobe, compiler for AS2: http://tech.motion-twin.com/mtasc.html .
There are other tools that are capable of generating SWFs - all depends on what exactly you need to do. Here's a good collection of different utilities: http://www.swftools.org/
Haxe is a whole other programming language that can compile to SWF. It also has its own linkers and ways of managing resources. http://haxe.org/
There is this project, which allows you to compile complex vector graphics and even animations from XML descriptions: http://code.google.com/p/hxswfml/

How to identify the Programming Language used to Develop a Software? [duplicate]

This question already has answers here:
Closed 12 years ago.
Possible Duplicate:
Find Programming Language Used
So, I have an application consisting of an executable (exe) file and a DLL. Is there a way I can find out the specific language used to develop this software. I tried opening it in a disassembler but the contents seems garbled. Any ideas?
In principle, the answer is no. In practice, however, there are only a few choices:
If the .dll name looks like something.dll, it's probably a native dll image, which means it was probably written in C or C++.
If the dll name looks like Namespace.Something.dll, it's probably a managed dll, which means it was written in some .NET language (C#, VB.NET, etc.)
You can check the dll imports for more information. If the dll uses mscoree.dll then it's a .NET dll (even if it doesn't follow standard .NET naming conventions). It may also use other language-specific dlls that provide additional clues.
Open the .dll or .exe in a hex editor and search for the word "copyright". Most compilers put the copyright message of the runtime library into the executable in clear text.
Get IDA pro. http://www.hex-rays.com/idapro/ That is the tool to work with binaries or do reverse engineering. It will be able to find out the runtime library and maybe also the language.
Evaulation and freeware versions of the tool can be found here: https://www.hex-rays.com/products/ida/support/download.shtml
Unlikely, unless it has a significant runtime library that gives it away. e.g. VB apps used to require a huge DLL with VB in the name, Visual C++ apps usually require the C++ runtime to be installed. But modern languages target language-independent runtimes. Even Java .class files may have come from a wide variety of source languages.