Proprietary sofware comes in machine codes according to Wikipedia?

When I open non txt/conf files of proprietary pc games and even of
their mods with notepads/IDEs, I see Gibberish (or something that looks
like it). I don’t see (binary) machine code at all while Wikipedia
declares code in proprietary software comes as machine code — From the
article “Proprietary software”:

Vendors typically distribute proprietary software in compiled
form,usually the machine language understood by the computer’s central
processing unit. They typically retain the source code, or
human-readable version of the software, written in a higher level
programming language.[22]

What is the meaning of “Machine code understood by the computer’s
CPU” — Is it the Gibberish I see when I open the compiled files? Is
this code (that seems similar in all such files) has a special name so I could read about it?

If what I see is not machine code but rather the “obfuscated code”
mentioned further in the article, so where is this aforementioned machine code?

Hi,

What you see is the binary code. The bytes (in decimal 0-255 or hexadecimal 0-FF) are presented as ASCII letters in the text editor and in the typeface it use.

You normally see only the printable letters, but if you are on Windows try to use the “Terminal” font in Notepad to see more of the 255 ASCII letters.

You can actually edit an executable file in Windows Notepad.

I do not recommend it, but as an experiment, scroll to a text you can see when the program is running and replace characters one by one to keep the byte order. The spaces between the text letters are zero bytes you can not type, so don’t touch them. Then save the file by Ctrl+s without opening the Save dialog. This requires that the file isn’t compressed, which it often is.

You better try this on a copy of the original file.

1 Like

Thank you dearly for that answer. It totally answered my question.

I have one small question left regarding this:

Can I say that the machine code in ASCII (or in Unicode) I see on Windows, and even in some rare files in Linux, is actually an “encrypted” version of the code, that could be deciphered by an hex editor and then further by reverse engineering software?

Is the word “encrypted” suitable for me to use here? Or is it wrong to use it?

No, the gibberish is not an encrypted version. (Machine code can of course be encrypted, but then it has to be decrypted in order to run.) It is the machine code you see (if not compressed) in the hex or ascii editor.

The ASCII is a table of 255 symbols representing the set of the different 255 bytes * (CPU understandable letters), usually using a character set like IBM 850 suitable to view the code in. The CPU reads it as binary code. The binary code is machine language translated from the programmers source code by a compiler program to suit the operating system it is meant to work in.

*/ actually 256 bytes if counting the zero byte.

The “reverse engineering software” I think you mean is a “decompiler” trying to read the code and “decompile it” to human readable commands.

Please ask again if there is more questions.

This topic was automatically closed 91 days after the last reply. New replies are no longer allowed.