Guys, let's say I downloaded a software, like say, Adobe Reader 8.0. Is there any way to know which programming language it's written in?
Thanks.
Guys, let's say I downloaded a software, like say, Adobe Reader 8.0. Is there any way to know which programming language it's written in?
Thanks.
It's possible to make some educated guesses, based on say things like the format of some error messages say, but there's no sure-fire way which works for every program.
Some programs are written in more than one language.
If you dance barefoot on the broken glass of undefined behaviour, you've got to expect the occasional cut.
If at first you don't succeed, try writing your phone number on the exam paper.
If you disassemble the program you can normally tell from the output, e.g Visual basic looks very different to C/C++ disassembly, same with virtual machine code i.e Java/C# cant be spotted easily enough.
TNT
You Can Stop Me, But You Cant Stop Us All
One way I often is use using the Spy++ tool on the windows the application creates. From the window class names you can often guess the development environment used to create the programs. (E.g. MFC has very distinctive names. Borland Builder, too, but it uses the same for Delphi and C++ programs.)
All the buzzt!
CornedBee
"There is not now, nor has there ever been, nor will there ever be, any programming language in which it is the least bit difficult to write bad code."
- Flon's Law
There was a program that would analyze the opcodes in an executable and tell you not only what language, but specifically what compiler, and even in some cases, which version of the compiler. This was back in the days of Turbo C, so im sure the program is outdated, but the technique is still valid im sure. It basically operates on teh assumption that not all compilers produce fully optimized code, and that certain instructions are always handled the same way by the compiler, but differently by other compilers. It then looks for the fingerprint of the executable, and checks an internal database to see fi it matches any known compiler profile.Back in the day...
Hmm, that would be a nice tool to have handy. Not sure I would use it, but it sounds like something very spy-like that should be in the movies.
"We got the identity of the hacker now. Nobody else writes a worm with this compiler these days."
yeah, its odd sometimes having 30 years of experience in computers, some of the tools that I have lying around on 5 1/4 (or cassete) did some pretty amazing stuff back in the day. I make jaws drop all the time when people see what I can do with 2k of memory
There're recognition tools; probably one of the most well known for Win32 is PEiD.
operating systems: mac os 10.6, debian 5.0, windows 7
editor: back to emacs because it's more awesomer!!
version control: git
website: http://0xff.ath.cx/~as/
According to some people, you can identify the langiage according to the number of bug reports a program gets :P
Yes, there are ways. I have an app named TestExe. I tried to find the webpage but its down, as well as an older site that hosted it previously. You may find it out there somewhere though but you'll need to test your google skills as testexe is a well used name.
Heres the readme:
Code:Originally made by Nild Productions Re-released by Personified IT TESTEXE is a program that will tell you the compiler a program was made in. Drag an executable file onto the TestEXE program to find out what compiler was used to make it. This version of TESTEXE can detect a total of 15 different types of files: 1. Microsoft Visual C++ (may support all versions - hasn't been tested) 2. Microsoft Visual Basic 3,4,5,6 3. Visual Basic for DOS 4. Borland C++ 5. Borland Delphi 6. Borland Turbo Pascal (may support all versions - hasn't been tested) 7. DJGPP 8. Qbasic 9. gcc 10. Tasm 11. Files compressed with PKLite 12. WinRAR Self Extracting Archives E-mail - [email protected] Homepage - http://www.personifiedit.com
"There's always another way"
-lightatdawn (lightatdawn.cprogramming.com)