i386 woes / x86-64

  • Thread starter Thread starter exter_c
  • Start date Start date
E

exter_c

Hello,

I have a few questions that I am trying to find answers for but I seem
to be hitting dead ends each time. With the AMD Opteron processors is
the x86-64 technology JUST the 64bit memory or is there a completely
new 64bit instruction set that is x86 compatible? Or is it just a
new(ish) method of allowing x86 to use the 64bit memory addressing.

Then are the Operton Range of processors vulnerable to the same attacks
that would run on 32bit platforms. For example I have several Alpha
Based servers running FreeBSD, Linux and Tru64 in a corporate
environment. When a new buffer overflow is availible for a given piece
of software the exploit code wont be able to exploit the same version
of software on the Alpha servers as it would on my x86 systems. Would
this be the same for software that has been compiled for x86-64?.


I have read that the Intel processor EM64-T is just an enhanced memory
technology that is meant to be compatable with the Opteron range of
processors. Can anyone feed any light back onto these questions?.

If anyone has any urls or any answers I would be greatly appreciated.

Regards,

J.
 
Hello,

I have a few questions that I am trying to find answers for but I seem
to be hitting dead ends each time. With the AMD Opteron processors is
the x86-64 technology JUST the 64bit memory or is there a completely
new 64bit instruction set that is x86 compatible? Or is it just a
new(ish) method of allowing x86 to use the 64bit memory addressing.

Then are the Operton Range of processors vulnerable to the same attacks
that would run on 32bit platforms. For example I have several Alpha
Based servers running FreeBSD, Linux and Tru64 in a corporate
environment. When a new buffer overflow is availible for a given piece
of software the exploit code wont be able to exploit the same version
of software on the Alpha servers as it would on my x86 systems. Would
this be the same for software that has been compiled for x86-64?.


I have read that the Intel processor EM64-T is just an enhanced memory
technology that is meant to be compatable with the Opteron range of
processors. Can anyone feed any light back onto these questions?.

If anyone has any urls or any answers I would be greatly appreciated.

Regards,

J.


Extending the x86 Architecture to 64-bits
http://www.devx.com/amd/Article/16101
http://www.amd.com/us-en/Processors/DevelopWithAMD/0,,30_2252,00.html
 
I take from the above aritcles that the 64bit platform would still be
vulnerable to the x86 style attacks because of the native 32bit
backwards compatability?.

Is there any way to turn off 32bit backwards compatability or is that
an Operating system related function?
 
I take from the above aritcles that the 64bit platform would still be
vulnerable to the x86 style attacks because of the native 32bit
backwards compatability?.

The so called "security" provided by the page protection is not going
to solve all the world's security problems. It's a really nice
marketing idea though. I'm sure Intel and AMD both hope that everyone
things it will so they will upgrade faster. Turning support for it
on the OS also adds a performance hit. Note that Windows XP (32) SP2
will turn on this support for AMD 64-bit processors, and slow things
down nicely for you there as well. It can be disabled if you aren't
in to trading performance for marketing BS. (see boot.ini)
Is there any way to turn off 32bit backwards compatability or is that
an Operating system related function?

That's not the issue. 64-bit processors that support it can provide
this questionable feature even when running a 32-bit OS as I described
above. It's not worth worrying about. It might prevent a measurable
percentage of the security issues, but it is not a bandaid.
 
I have a few questions that I am trying to find answers for but I seem
to be hitting dead ends each time. With the AMD Opteron processors is
the x86-64 technology JUST the 64bit memory or is there a completely
new 64bit instruction set that is x86 compatible? Or is it just a
new(ish) method of allowing x86 to use the 64bit memory addressing.

It's the same existing x86 32-bit instructions which have been extended
out to use 64-bit registers and addresses. This is just like when x86
used to be 16-bit, so they just extended the 16-bit instructions to use
32-bit registers and addresses. The same instruction codes work for 16-,
32-, or 64-bit now.

They also did a little bit more than just extending the existing
registers out. They also doubled the number of registers available to
64-bit programs. When they went from 16-bit to 32-bit, they didn't
increase the number or registers, they just made them wider. But now
with the move to 64-bit, they not only made them wider, but also gave
more of these registers.
Then are the Operton Range of processors vulnerable to the same attacks
that would run on 32bit platforms. For example I have several Alpha
Based servers running FreeBSD, Linux and Tru64 in a corporate
environment. When a new buffer overflow is availible for a given piece
of software the exploit code wont be able to exploit the same version
of software on the Alpha servers as it would on my x86 systems. Would
this be the same for software that has been compiled for x86-64?.

They created a feature which they placed into the processor's memory
paging system, called NX (No eXecute). This feature prevents a buffer
overflow from placing malicious code into stack, *and* executing it.
They might still be able to place code into the stack, but the stack
page is marked NX, so no instructions will be able to execute from it.
It'll just harmlessly kill the exploited program. Apparently this will
work with 90% of the buffer overflow attacks.

Buffer overflows are very specialized attacks, they only work against a
targetted platform and nothing else. The platform is the combination of
the processor architecture and the OS that it's running. So let's say
we're given a buffer overflow for an x86 Windows system. Now let's say
we have an Alpha-based Windows system, the exploit won't work against it
because the Alpha's processor language is different than x86. Now let's
say we have an x86 Linux system, that above buffer overflow won't work
against this either, because even though the processor language is the
same (x86), but the OS is different. Now if we have an Alpha with Tru64,
then we have both a different language and a different OS, so it's
doubly hard to get a match there.
I have read that the Intel processor EM64-T is just an enhanced memory
technology that is meant to be compatable with the Opteron range of
processors. Can anyone feed any light back onto these questions?.

The Intel EM64T is exactly the same as AMD's AMD64 language, the only
thing different is the name. They will run the same software as each
other. Intel and AMD do this to each other all of the time, they adopt
each other's technology but change the name for marketing purposes. When
AMD implemented Intel's SSE1 language, they called theirs 3DNow!
Professional, but it was the same thing.

Interestingly, because AMD64 was available two years ahead of EM64T
(even longer if you consider the amount of time the specifications were
published), all of the Microsoft operating systems refer to the language
as AMD64 in their programming header files. Even Intel has to use the
words "AMD64" in their headers when they program their own software for
Microsoft. So that pretty much proves that AMD64 and EM64T are the same.

Now, I guess I better point out for the nitpickers out there, that there
are a few small differences between EM64T and AMD64 instruction set.
There's a few small behaviourial differences in some low-level
instructions used to put these processors into their 64-bit mode, these
instructions are only used by Operating Systems and not by regular
programs. The behaviourial difference is tiny, it might result in having
to add one extra line of code for one processor or the other --
insignificant in an OS consisting of millions of lines of code. And
these sort of wierd little variations on the instruction set had existed
even in the 32-bit days, when you could optimize for whether it was an
Intel, AMD, or Cyrix processor that you were running on.

Yousuf Khan
 
Hello,

I have a few questions that I am trying to find answers for but I seem
to be hitting dead ends each time. With the AMD Opteron processors is
the x86-64 technology JUST the 64bit memory or is there a completely
new 64bit instruction set that is x86 compatible? Or is it just a
new(ish) method of allowing x86 to use the 64bit memory addressing.


Double the registors and a stackless FPU are the main differences with
AMD64.
 
Back
Top