How to determine programs that require .net on XP?

0

000-111-000

Ken Blake said:
Sorry, but that is not at all correct. Neither Windows XP (SP3 or not)
nor any other version of Windows needs .net.

The .net framework (note its full correct name) is needed by some
*application* programs (again, not operating systems). And what
version of the .net framework the application program needs depends on
what version of .net it was written with.

You not a good Professional when it came to Microsoft...

So you do not run Microsoft Office,
on a XP... Do you ....
..net framework 1,2 and 3 is need by Windows XP operating systems,
to run, Microsoft Office, Microsoft Silverlight, and Visual Studio..

If the .net framework is on a [OP] operating systems,
it need by his XP, to run his Microsoft Windows XP Softwares,

If it is not On you operating systems it not needed,
if it on your operating systems do not F**k.
with it, [if it working in good Order].....

Sorry, to correct you!
 
M

Mayayana

| The thing is, I'm not confident if I used a hacker approach
| to this, my coverage would extend to 100% (i.e. using a hex
| editor and making my own recipe). I'd likely get it wrong,
| unless I use the docs for parsing PE and Net assemblies.
| I may not have enough code samples here, to get all the
| variations right.
|

Also, one can't always depend on online information.
The articles I was seeing last night seemed to be from
people who half-understood PE structure and only knew
rumors of .Net addititions to the PE format.

The PE file format is dependable, but it's not all at
predictable offsets. There are a lot of pointers used:
4 bytes at offset XYZ might tell you the offset of the
4 bytes that tells you the offset of the beginning of the
table you're looking for.... That kind of thing. And in some
cases offsets are listed for the loaded image in memory
rather than as file offsets.

Documentation of PE format is out there, but one
would also need dependable information about how
the CLR Header is set up. In the pages I saw there
wasn't even agreement about what the header is
called. ... I began to see myself digging in for 2 days
on a project that I have no personal interest in... and
that very few people are ever likely to use. Vista/7
has .Net pre-installed, and most people have no
interest in, or even concept of, a clean system. So
the audience would be tech-sophisticated XP users
who do not typically install the sort of fluff shareware
that is likely to be .Net. (Jo-anne wanted to keep .Net
so that she could have FileHippo!) ...Who want their
PC lean... and who also don't allow Microsoft to pile on
updates willy nilly. Sounds like a small group.

I myself don't even have access to a PC with .Net
software on it.
 
0

000-111-000

Mayayana said:
|
| For old software needs Old .NET,
| like the old Games software you have,
| New Software like XP Sp3 and up,
| need new .NET to run!
|

It doesn't work that way. There is no .Net needed
by XP SP3. .Net has no direct connection to Windows.
(Though some framework comes pre-installed on Vista/7,
so it's possible that Microsoft has installed a .Net applet
or two on Vista/7.)

When .Net came out there was v. 1 and 1.1.
.Net v. 2, which is already 10 years old now, eventually
became the standard version because later versions
are very big and therefore difficult to distribute. So a lot
of .Net software written now is .Net v. 2. Some is v. 3 or
later.


So it a For Microsoft Office,
v. 1 is for old VS6,
v. 2 is for old VS7,8

do I need to go on..............
 
M

Mayayana

| So it a For Microsoft Office,
| v. 1 is for old VS6,
| v. 2 is for old VS7,8
|
| do I need to go on..............
|

Suit yourself. I can't make any sense out of
what you're saying.

| It's people like Ken Blake, Microsoft MVP,
| Why Microsoft do not do NNTP,
| News Groups no more,

There's no need to make it personal. Microsoft
doesn't do newsgroups anymore because they
can't control it. They switched to web forums
staffed by MS employees, where people get "medals"
for giving approved answers -- like small children in
a classroom being awarded cute animal stickers in
exchange for good behavior.

If you look at the list of web forums you'll see that
MS didn't just move to forums. They actually
restructured the whole thing in order to create a
marketing venue and block open discussion
where criticism or unapproved ideas might crop up.

Microsoft is trying to gradually move away from the
scenario where they provide a platform for use by
programmers, and move into something more like
what Apple does: Provide a product that is tightly
controlled, with limited, controlled access by only
a few programmers who will play along with Microsoft's
commercial plans and give them a cut of software proceeds.
(Metro apps for Windows 8 are sandboxed trinket software,
like phone apps, from which MS takes a 30% cut of sales.)

One part of that transition was to take control of the
discussion between programmers, corporate administrators,
etc.
 
K

Ken Blake, MVP

You not a good Professional when it came to Microsoft...

So you do not run Microsoft Office,
on a XP... Do you ....
.net framework 1,2 and 3 is need by Windows XP operating systems,
to run, Microsoft Office, Microsoft Silverlight, and Visual Studio..


Microsoft Office, Microsoft Silverlight, and Visual Studio are
*application* programs. They are *not* part of Windows XP.
 
0

000-222-000

Ken Blake said:
Microsoft Office, Microsoft Silverlight, and Visual Studio are
*application* programs. They are *not* part of Windows XP.

Look if a OP put the *application* on his Windows XP,
it become part of his Windows XP..

Maybe not you XP but His............................
 
0

000-222-000

Mr. aeroloose

if you are running

Microsoft Windows XP
Media Center Edition

it have to have all the .NET
the run right!

For know one here ask you,
the Software you are running,
and that do not seen care!
 
K

Ken Blake, MVP

Look if a OP put the *application* on his Windows XP,
it become part of his Windows XP..

Maybe not you XP but His............................


So you apparently have no idea what the words "application" and
"operating system" mean.

Or are you just trying to excuse your obvious error by misusing the
terms?
 
M

Mayayana

Curiosity got the better of me and I ended up writing
a VBScript to test for .Net. For anyone who's curious,
it's here:

http://www.jsware.net/jsware/test/dotnetv.zip

Drop any file onto the script and if it's .Net the version
required will be reported. I've tested a number of files
and this script seems to be dependable. It parses the
PE file header directly, thus not requiring .Net or any
other software. (As is typical, the script wasn't so hard
to write, but finding accurate information was difficult.)

I'll package it up into an HTA, so that people who want
to scan their systems can just enter a path and have all
EXEs, DLLs on that path checked.
 
P

Paul

Mayayana said:
Curiosity got the better of me and I ended up writing
a VBScript to test for .Net. For anyone who's curious,
it's here:

http://www.jsware.net/jsware/test/dotnetv.zip

Drop any file onto the script and if it's .Net the version
required will be reported. I've tested a number of files
and this script seems to be dependable. It parses the
PE file header directly, thus not requiring .Net or any
other software. (As is typical, the script wasn't so hard
to write, but finding accurate information was difficult.)

I'll package it up into an HTA, so that people who want
to scan their systems can just enter a path and have all
EXEs, DLLs on that path checked.

I altered my script, to call "ildasm.exe", an official MS tool
from one of their SDKs.

After my test run, the ildasm.exe threw five runtime errors
(versus the twenty using CLRver.exe off the 'net). So
the damn script wouldn't run, without dismissing error
dialogs on the screen. I'm going to work on that in a bit.

Using CLRver, my scan got

"V1.0.3705 occurred 13 times
V2.0.50727 occurred 156 times
-2 occurred 21 times"

Using ildasm, the latest scan got

'v4.0.30319' Version String occurred 2 times
'v2.0.50727' Version String occurred 215 times
'v1.0.3705' Version String occurred 13 times

so it would appear the CLRver approach of loading the assembly,
will also fail when a program has a version of dotnet, which
is not installed on the machine. Apparently I have two programs
which call for .net 4.0 and I don't have that version installed.
ildasm is capable of reading that out, without throwing a wobbly.

It's also a bit puzzling, how the MS tools got 215 of the .net 2.0
executables, while the CLRver got 156. That might correspond to
x64 executables that would not load in CLRver (on my x32 OS).

In all cases, the ildasm program detected

Metadata Header Storage Signature: 0x424a5342

which is hex for "BSJB" (only backwards due to endianness).
So that appears to be a pretty consistent theme. The gnuwin32
"file" program, logged a couple things it identified as dotnet,
and there was no BSJB string present. The ildasm never seemed
to log anything that didn't have that present.

This is the ildasm output blob which I used for logging the strings.
There didn't seem to be variation in this, and only the Version
String line is the one that changes from instance to instance.

// Metadata Header
// Storage Signature:
// 0x424a5342 Signature
// 0x0001 Major Version
// 0x0001 Minor Version
// 0x00000000 Extra Data Offset
// 0x0000000c Version String Length
// 'v2.0.50727' Version String
// Storage Header:

The "Version String Length" was still 0c or decimal 12, even for
the short string v1.0.3705. It almost seems like a "max length" of
some sort.

Anyway, good fun for a "something to do" kinda project.

Paul
 
M

Mayayana

|
| so it would appear the CLRver approach of loading the assembly,
| will also fail when a program has a version of dotnet, which
| is not installed on the machine.

Interesting point. It's typical of .Net that one has to
build a Rube Goldberg automated shovel to scoop a
spoonful of ice cream. Loading the runtime just to parse
file headers is not ideal, even if it did work well.


| In all cases, the ildasm program detected
|
| Metadata Header Storage Signature: 0x424a5342
|

Yes. It's all documented. There's a CLR Header, AKA
CLI Header, which has a pointer to the metadata, which
starts with BSJB. Once one knows the system it's very
dependable because the header has to be set up correctly
to work. But it's hard to find this kind of info. and it's
tricky dealing with offsets and pointers because most of
them are meant to be applied to a file loaded into memory.

| // Metadata Header
| // Storage Signature:
| // 0x424a5342 Signature
| // 0x0001 Major Version
| // 0x0001 Minor Version
| // 0x00000000 Extra Data Offset
| // 0x0000000c Version String Length
| // 'v2.0.50727' Version String
| // Storage Header:
|
| The "Version String Length" was still 0c or decimal 12, even for
| the short string v1.0.3705. It almost seems like a "max length" of
| some sort.

It's padded to a 4-byte multiple. It's not important,
anyway. The string starts at offset 16 (17th byte) in
the metadata and goes until one hits a null. So there's
no need to have the string length.

I'm curious about one thing: If you or anyone else reading
this has a chance to try my script on win64 I'd be interested
to know the results. I don't have easy access to a 64-bit
system, and it's hard to prevent Explorer crashing on XP32
if I let it "look" at a 64-bit file.
 
P

Paul

Mayayana said:
|
| so it would appear the CLRver approach of loading the assembly,
| will also fail when a program has a version of dotnet, which
| is not installed on the machine.

Interesting point. It's typical of .Net that one has to
build a Rube Goldberg automated shovel to scoop a
spoonful of ice cream. Loading the runtime just to parse
file headers is not ideal, even if it did work well.


| In all cases, the ildasm program detected
|
| Metadata Header Storage Signature: 0x424a5342
|

Yes. It's all documented. There's a CLR Header, AKA
CLI Header, which has a pointer to the metadata, which
starts with BSJB. Once one knows the system it's very
dependable because the header has to be set up correctly
to work. But it's hard to find this kind of info. and it's
tricky dealing with offsets and pointers because most of
them are meant to be applied to a file loaded into memory.

| // Metadata Header
| // Storage Signature:
| // 0x424a5342 Signature
| // 0x0001 Major Version
| // 0x0001 Minor Version
| // 0x00000000 Extra Data Offset
| // 0x0000000c Version String Length
| // 'v2.0.50727' Version String
| // Storage Header:
|
| The "Version String Length" was still 0c or decimal 12, even for
| the short string v1.0.3705. It almost seems like a "max length" of
| some sort.

It's padded to a 4-byte multiple. It's not important,
anyway. The string starts at offset 16 (17th byte) in
the metadata and goes until one hits a null. So there's
no need to have the string length.

I'm curious about one thing: If you or anyone else reading
this has a chance to try my script on win64 I'd be interested
to know the results. I don't have easy access to a 64-bit
system, and it's hard to prevent Explorer crashing on XP32
if I let it "look" at a 64-bit file.

I may get around to running yours eventually.

Right now, I've extracted a file from the "paint.net" package
(PaintDotNet.Native.x64.dll), which appears to be 64 bit native
(is reported as PE32+) and yet it doesn't have BSJB in the file.
I tested on the 64 bit laptop, and it fails on ildasm and clrver
programs. And yet the gnuwin32 "file" program, says the
file is dotnet. And I have no reason to suspect it isn't,
as paint.net is a "poster child" for dotnet usage.

I'm still very much at the "mysteries" stage here.

Right now, I'm off, to shovel snow...

Paul
 
M

Mayayana

|
| I may get around to running yours eventually.
|
| Right now, I've extracted a file from the "paint.net" package
| (PaintDotNet.Native.x64.dll), which appears to be 64 bit native
| (is reported as PE32+) and yet it doesn't have BSJB in the file.

I tried downloading Paint.Net as a test sample,
and I unpacked the installer. But I don't think
anything in there is actually the program. It seems
to be a "oneclick" installer package, designed to
go online and download the real program.

| I tested on the 64 bit laptop, and it fails on ildasm and clrver
| programs. And yet the gnuwin32 "file" program, says the
| file is dotnet.

I downloaded the gnuwin32 source but it's a lot more
code than I want to deal with on a wild goose chase.
You don't need any of that stuff. It's all explained in
the comments of my code. (You don't have to trust me.
It's a VBScript. The code is plain text.) If you prefer to
research it yourself you can find a lot at these links:

http://www.simple-talk.com/community/blogs/simonc/archive/2011/03/15/100802.aspx
http://www.thehackerslibrary.com/?p=377
http://www.vijaymukhi.com/documents/books/metadata/chap1.htm
 
0

000-222-000

Ken Blake said:
So you apparently have no idea what the words "application" and
"operating system" mean.

Application software,
also known as an application or an "app",
is computer software designed to
help the user to perform specific tasks.

An operating system (OS) is a set of programs
that manage computer hardware resources
and provide common services for application software.

Or are you just trying to excuse your obvious error by misusing the
terms?

No it you that is a 404 Error,
and know not the the 500 that you excuse,
You need to stop playing gives good info,

Do you know that is the Application,
that ask for the Add on, [Plug-in]
to the operating system,
so that the Application software,
can run a task,
up on ones operating system..

The .NET framework is a [Plug-in],
a add on to the Windows O.S.,

Windows start to update it,
Add On call .NET framework,
to remove it,
you have to remove the updates,
one at a time,
as the up date your made,

For ones at Plug-in is add,
to your operating system,
Microsoft enjoy sewing it in place..

You need to give out of the Lexus Box,
and thank Microsoft!
 
C

Char Jackson

No it you that is a 404 Error,
and know not the the 500 that you excuse,
You need to stop playing gives good info,

Do you know that is the Application,
that ask for the Add on, [Plug-in]
to the operating system,
so that the Application software,
can run a task,
up on ones operating system..

The .NET framework is a [Plug-in],
a add on to the Windows O.S.,

Windows start to update it,
Add On call .NET framework,
to remove it,
you have to remove the updates,
one at a time,
as the up date your made,

For ones at Plug-in is add,
to your operating system,
Microsoft enjoy sewing it in place..

You need to give out of the Lexus Box,
and thank Microsoft!

What language is that? I wanted to run it through Google Translate to
get English, but I'm not sure how to proceed.
 
M

Mayayana

Here's an easy, simple tool to check for .Net software.
It's an HTA. (VBScript that runs in an IE webpage.)
The tool is not dangerous and does not itself require
..Net or any other additional software. You just give it
a folder path and it will check all EXEs and DLLs,
reporting the full path and .Net version for any file that
requires .Net. It doesn't run or write to any files it finds.
It works by just reading the file header to get data
stored there.

Download:
http://www.jsware.net/jsware/test/dotnetv.zip

Here's a picture:
http://www.jsware.net/jsware/test/dncheck.gif

There are directions in the HTA webpage interface.
And the generated list can be copied. .Net software
can be identified by the file paths. It's very simple.

This still hasn't been tested on Win64. It should
work, but I'm not certain that Win64 EXE headers
are exactly the same format as Win32 EXEs. I would
appreciate any reports.

Interesting side note: The sample image shows a test
running on XP with no .Net installed. Some of the list
is software I downloaded for testing. But one item on
there is the Microsoft Management Console. MMC is
something that seems to be designed for corporate
admins. I've never used it. Strangely, MS seems to
have converted that to .Net in XP, as a default install,
even though XP does not have .Net by default!
 
0

000-222-000

Char Jackson said:
No it you that is a 404 Error,
and know not the the 500 that you excuse,
You need to stop playing gives good info,

Do you know that is the Application,
that ask for the Add on, [Plug-in]
to the operating system,
so that the Application software,
can run a task,
up on ones operating system..

The .NET framework is a [Plug-in],
a add on to the Windows O.S.,

Windows start to update it,
Add On call .NET framework,
to remove it,
you have to remove the updates,
one at a time,
as the up date your made,

For ones at Plug-in is add,
to your operating system,
Microsoft enjoy sewing it in place..

You need to give out of the Lexus Box,
and thank Microsoft!

What language is that? I wanted to run it through Google Translate to
get English, but I'm not sure how to proceed.

Thank Microsoft and try Bing Translate... and it not in English,
but old U.S.A language...
 
0

000-222-000

Char Jackson said:
I give up. I guess we can't communicate. No common language.

You need too,
for there is no Translator,
for old U.S.A language..
But English will get you 85%,
of the Translation,
with no understanding,
of the meaning thereof.

But you all,
will not be able,
to put a foot,
in to the meaning,
of language,
that is in USA English,
Dam Translate.
;0

Vous devez aussi,
Il n'y a aucun traducteur,
pour les vieux U.S.A langue...
Mais l'anglais vous obtiendrez 85 %,
de la traduction,
sans aucune compréhension,
le sens celui-ci.


Mais vous tous,
ne sera pas en mesure du faire,
pour mettre un pied,
dans le sens,
de la langue,
C'est en anglais USA,
Barrage de traduire.
 
0

000-222-000

..NET Development, Here How to Determine......
If a Software add it was made by one of thee
..NET Framework and it to run.

..NET Framework 1.1
The .NET Framework version that was released with Visual Studio .NET
[VS6 have to have it].....

NET Framework 2.0
The .NET Framework version that was released with Visual Studio 2005.

..NET Framework 3.0
The .NET Framework version that was released with the Windows SDK for Windows Vista.
This version includes the .NET Framework 2.0 and added technologies such as WPF, WCF, WF, and Windows CardSpace.

..NET Framework 3.5
The .NET Framework version that was released with Visual Studio 2008.

+++++++++++++++++++++++++++++++++
NOT FOR XP

..NET Framework 4
The version of the .NET Framework that was released with Visual Studio 2010.

[But Visual Studio 2010 will run on .NET Framework 3.5]

NET Framework 4.5 Developer Preview
The pre-release version of the .NET Framework 4.5,
which is available with Visual Studio 11 Developer Preview.
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top