Something aboutIA-32 Intel Architecture Software Developers Manual

Something aboutIA-32 Intel Architecture Software Developers Manual

Hi all:
I am reading materials of intel's IA-32 Intel Architecture Software Developers Manual
In Volume 1:Basic Architecture->6.2.4.2. RETURN INSTRUCTION POINTER ,it is described:

"The processor does not require that the return instruction pointer point back to the calling procedure.Prior to executing the RET instruction, the return instruction pointer can be manipulated in software to point to any address in the current code segment (near return) or another code segment (far return). Performing such an operation, however, should be undertaken very cautiously, using only well defined code entry points."

Is there any circumstance that any software manipulate the return instruction pointer?At least I have never met such case except overflow which is used by hacker.

So,since there are mechanism of page protect,segment protect,Why stack protect mechanism dosen't exist?

And without this machanism,the overflow will happen and will result in great damage as RPC worm did.To prevent this case,the programmer need to do lot of work to check the argument,or the new compiler insert lot of rubbish code to the executable files.

We all knowoverflow happend just becausethat thebasic architecture of the chips are designedonNeumann's theroy.I do not investigate in the theroy.Is it unchangeble?

I am a programmer,and I do not familiar with hardware design.So it is just a free talk.

Message Edited by pll on 04-29-2004 11:31 PM

3 posts / 0 new
Last post
For more complete information about compiler optimizations, see our Optimization Notice.

We are forwarding your question to our engineering contacts and will let you know how they respond.

Regards,

Lexi S.

IntelSoftware NetworkSupport

http://www.intel.com/software

Contact us

Message Edited by intel.software.network.support on 12-02-2005 08:27 PM

Our engineering team responded as follows:

The ability to directly modify the return address can be used to enhance the efficiency of an application by eliminating unneeded branching logic that would otherwise be required in order to branch to the correct location. Restricting this ability would indeed reduce the opportunity for viruses to exploit this, but it would also force developers to change their existing programs, making them less efficient. This is a trade-off between efficiency and security. For the time being, the default mode is to allow this functionality in the name of improved efficiency.

We hope this helps.

Regards,

Lexi S.

IntelSoftware NetworkSupport

http://www.intel.com/software

Contact us

Message Edited by intel.software.network.support on 12-02-2005 08:28 PM

Leave a Comment

Please sign in to add a comment. Not a member? Join today