News:

MASM32 SDK Description, downloads and other helpful links
MASM32.com New Forum Link
masmforum WebSite

Finding a character in a string - strchr.

Started by KeepingRealBusy, June 24, 2010, 04:25:24 AM

Previous topic - Next topic

lingo

"The Rich header is used to identify which versions of various MS utilities were used to make the executable."
and
"It seems that the fixed value of the Rich Signature represents the product version, whereas the other entries represent file versions. Of course, this is only a guess. We would have to dig further to be 100% sure. At the end, the value of @comp.id is quite harmless, compared to what other people thought it could be." by Daniel Pistelli

I know this document very well but he (and you) don't know exactly what is inside (what is the product(tool)  name and it's version and subversion
and how MS define the product identifiers and tags used to identify which MS tool built any particular object file)

With other words: He (and you) is unable to translate all the  bytes between  DanS and Rich in readable way exactly... :wink


"You said a way to tell the difference between assemblers is the presence of the Rich header"

Yes, but only for MASM assemblers of MS with different versions.

KeepingRealBusy

Quote from: lingo on June 27, 2010, 07:57:16 PM
"The Rich header is used to identify which versions of various MS utilities were used to make the executable."
and
"It seems that the fixed value of the Rich Signature represents the product version, whereas the other entries represent file versions. Of course, this is only a guess. We would have to dig further to be 100% sure. At the end, the value of @comp.id is quite harmless, compared to what other people thought it could be." by Daniel Pistelli

I know this document very well but he (and you) don't know exactly what is inside (what is the product(tool)  name and it's version and subversion
and how MS define the product identifiers and tags used to identify which MS tool built any particular object file)

With other words: He (and you) is unable to translate all the  bytes between  DanS and Rich in readable way exactly... :wink


"You said a way to tell the difference between assemblers is the presence of the Rich header"

Yes, but only for MASM assemblers of MS with different versions.

Lingo,

Even more restrictive than that:

"undocumented Rich Signature produced by Microsoft compilers. I'm not completely sure when this signature was introduced, I wrongly believed that I had been introduced with Visual Studio 2003, but I was shown that it is present even in VC++ 6 executables."  by Daniel Pistelli.

Just assemblingASM source with MASM does not create a Rich signature in the executable (.exe), it takes the C compiler (examine any of the .exe files in this topic).

Dave.


lingo

"Just assemblingASM source with MASM does not create a Rich signature in the executable (.exe),"

After successfully assembled ASM source with MASM we have .obj file with @comp.id number in it."
Later if we use MS Linker (not patched) we will have  .exe file with Rich signature in it (with masked @comp.id inside). :wink

KeepingRealBusy

You are right, I forgot that the makeit.bat was using PoLink.