This question already has answers here:
Is there a Visual Basic 6 decompiler? [closed]
(6 answers)
Closed 8 years ago.
I have an VB6.0 Application designed by a programmer. Unfortunately we are not able to reach this guy and we badly need to do some modifications in the application at the earliest.
The software was designed and complied on Windows XP device. We only have is EXE File.
I would appreciate if anybody could help me in extracting the source code using its EXE file.
Thanks in Advance
No. All MS programs have two compilers. The first is language specific, the second is shared between all languages (C2.exe). So your program is very similar to a C++ program once made.
Compilers strip all names (programs use memory addresses, names are lost once translated).
Also compilers optimise. They throw away unused code, they optimise away functions, they optimise away stack frames. You turn optimisations on after debugging.
Related
This question already has answers here:
System Calls in Windows & Native API?
(5 answers)
How to write hello world in assembly under Windows?
(9 answers)
Make a program using only system-calls not windows dll's [duplicate]
(1 answer)
Closed 11 months ago.
I still coudnt find any hint and hope somebody can usher me to the right pad:
If I want to programm in the pure plattform-indipendent x-86 assembler code without any NASM macros or functions with (), but with push, call and pull. How I can I find the right functions? The translator into opcode does find them. However do their places change in the different versions? Since there are no different versions of the Compiler into opcode, I suppose they do not. I hardly can find any adresses on the internet
What I actually search is something like the dos interrupts for windows 10 or 11
I also struggled finding sources on what to do. Platform independent coding basically means you are writing your own operating system. This is because it requires you to write a boot loader that takes your program, and moves it into the memory. It also requires you to make your own drivers and libraries: VGA driver, stdout (print functions), stdin, etc.
If you like, you can check out my repo here. I already hacked together my own boot-loader, linker script, etc. that handles the boringly complicated things! I also have a library (located in BODY/data.s) that features a ton of functions that I wrote myself. You can use these to help guide you in writing your own drivers if you'd like!
In order to use this development platform however, you need to install:
GNU binutils
GRUB (already included on most linux)
XORRISO
QEMU
This is all meant to run in linux. If you are using macos or windows, I recommend using either WSL or virtual box to install linux on your system! The code might also be slightly different that what you are used to, as it's called GAS assembly, which alters from the intel syntax.
Please reply if you have any issues with this, or need a better tutorial on how to set this up.
Finally, I recommend checking out osdev.org. There's great info on ports (how you communicate with the kb, mouse, etc.) and how the VGA ram works.
Hi I know C++ and I searched and found that windows 10 written in C/C++ & Assembly but I have no idea how windows 10 works, Is it because I don't know the assembly? Do I understand when I learn Assembly?
If you learn assembly, it will help you to better understand the concept of operating system and communicate directly with hardware, but it is not your definitive solution. However, companies like Microsoft usually have their products closed source and you can not easily understand that Exactly which section is written in what language, and finally, if you are thinking of writing an operating system, it is difficult for you as a single person, I suggest you form a team
This question already has answers here:
Find Programming Language Used
(14 answers)
Closed 2 years ago.
The question is simple from a programmer's point of view. How do you know which language / libraries has been used to develop a specific software product.
Say you have average knowledge of computing who can understand by checking product file (.exe, .dll, etc) names / versions that this piece of software has been written using Visual C++ / .Net / QT , etc.
Any solid ideas by which one can know about a programs's programming language?
#baza92
Thanks for the link. It just opened my mind.
I do use ProcessExplorer, ProcessMonitor.
For better investigation even one can use Spy++ utility provided with Visual studio. PEiD can be useful, but these days application program comes with packed method so PEiD is unabled to digg through those files.
So I would strongly suggest anyone who is or will be looking for these things follow the below steps.
Investigate program files - .exe, .dll, .ocx
Check loaded modules into program memory by ProcessExplorer or similar
Use Spy++ to get the window class, try to search that on google
This question already has answers here:
Closed 10 years ago.
Possible Duplicate:
Determine source language from a binary?
There is a compiled application (com, exe, etc.).
I want to ask, whether there is any method to recognize in which programming language the application was developed (c#, Delphi, Visual Basic, Visual C++, etc.)?
You can use PEiD, this tool has been discontinued., but the last version still working.
PEiD detects most common packers, cryptors and compilers for PE files.
It can currently detect more than 600 different signatures in PE
files.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
In recent versions of PE files there is a stub to show for MS DOS users the sentence This program can not be run in DOS mode. Why such message still exists althogh it wastes about 38 bytes? Is there any one still uses MS-DOS?
It's still there because there's no easy way to remove it without breaking the file format, and nobody seems to think 38 bytes per executable is worth the trouble. The requirements on section alignment nearly always "waste" a lot more than that anyway.
Somewhere, someone is still using DOS. And, for backwards compatibility issues, the 38 bytes still need to be there. Even if no one is using DOS.
You would be amazed to know how many hoops the Windows code jumps through to remain backwards compatible.
When the PE format was introduced (year 1994, Windows NT 3.1), DOS was still very much around. The risk that a Windows EXE would be run from DOS by mistake was very real. So they needed to make Windows EXE's superficially compatible with the DOS loader. So that in such a scenario the program would do something (i. e. print a message and quit) instead of crashing randomly.
Obviously, somehow modifying the DOS loader to recognize the Windows EXE's was not an option. And there was no "platform/architecture" identifier in the DOS exe header, like in PE - there was no built-in mechanism for future introduction of incompatibility. Also, "This is a Windows program, please run under Windows" is a much friendlier message that "This program is not compatible with your system".
The DOS stub was also a part of the older 16-bit Windows EXE format ("NE" for "New Executable"). The path to the stub was even a settable linker parameter, so that making a "fat binary" of a sorts was possible - the Windows bits would be your program for Windows, and the DOS stub would be the same program (i. e. same functionality) for DOS. AFAIK, very few people ever took advantage of that.
While Disk Operating System (DOS) is not in use these days, DOS-mode which is basically command line (or console mode) still exists and very popular. By DOS-MODE it probably means commandline mode. Console Application are very popular and used everywhere esp in test and development environment.