Remote Exploit Forums

Go Back   Remote Exploit Forums > Specialist Topics > Programming


Programming A place for our community to discuss their own security related coding projects.

   

Reply
 
LinkBack Thread Tools Display Modes
  #1 (permalink)  
Old 09-04-2009, 01:13 AM
Dissident85's Avatar
Senior Member
 
Join Date: Jun 2008
Location: Sydney
Posts: 127
Default Assembly for the x86-64 architecture?

Hi all, I'm looking for some information on x86-64 architecture more specifically programming in assembly for the AMD64 processers. I brought a book on assembly about a year ago and only just picked it up and started to read it only to find out that it is for the x86 32bit processers. Now as that information is still relevant I don't own a computer that has a 32bit processor. Well not one that is plugged in. And since 64bit computing in the way of the future I might as well start on that.

So my question is, does anyone know of any good books/online references that I can get started with?
Reply With Quote
  #2 (permalink)  
Old 09-04-2009, 05:22 AM
ColForbin's Avatar
Member
 
Join Date: Dec 2007
Posts: 54
Default

Don't know if this fits the bill, but...

Amazon.com: x64 Windows Debugging: Practical Foundations (9781906717568): Dmitry Vostokov: Books

Quote:
This book can also be used as AMD64 and Intel EM64T assembly language and x64 Windows debugging supplement for relevant undergraduate level courses.
I'm tackling Learning Python right now. After that it's Gray Hat Python. Also picked up Gray Hat Hacking. Trying to prepare for ctp. These books may all be crap (or not), but I'm tryin'.
__________________
"Whatever happened to playing a hunch, Scully? The element of surprise, random acts of unpredictability? If we fail to anticipate the unforeseen or expect the unexpected in a universe of infinite possibilities, we may find ourselves at the mercy of anyone or anything that cannot be programmed, categorized or easily referenced."
Reply With Quote
  #3 (permalink)  
Old 09-04-2009, 10:01 AM
Member
 
Join Date: May 2009
Posts: 86
Default

Assembly on x64 is fundamentaly the same as 32 bit. I suggest learning 32 bit, even if only the concepts. For that, Art Of Assembly is nice. Try to read over the instruction set a few times as well, just to get it residing in your mnd, god only knows how many times ive written a hge 50 byte subprogram, only to fnd out I could shave 45 bytes off with some freaky instructions.

This looks nice for 64 bit knowlege: Amazon.com: 32/64-Bit 80x86 Assembly Language Architecture (9781598220025): James Leiterman: Books
Reply With Quote
  #4 (permalink)  
Old 10-03-2009, 06:46 AM
Virchanza's Avatar
Senior Member
 
Join Date: Sep 2008
Location: I am not living
Posts: 809
Default

The 64-Bit assembly is exactly the same as the 32-Bit assembly, they've just added a few more instructions for dealing with 64-Bit integers.

All programs written for 32-Bit will run on a 64-Bit because the instruction set of the 64-Bit is a superset of the instruction set of the 32-Bit.
__________________
Ask questions on the open forums, that way everybody benefits from the solution, and everybody can be corrected when they make mistakes. Don't send me private messages asking questions that should be asked on the open forums, I won't respond. I decline all "Friend Requests".
Reply With Quote
  #5 (permalink)  
Old 12-13-2009, 05:33 PM
Jase21's Avatar
Junior Member
 
Join Date: Oct 2007
Location: in front of computer
Posts: 23
Default

You need to learn how to programming in 32 bit first. 64 bit is the extension of 32 bit. The register can hold more bits.. etc..
Get the amd64 developer's manual. They are awsome!

Quote:
Now as that information is still relevant I don't own a computer that has a 32bit processor.
You can program in 32 bit mode if you use eax ebx etc, 16 bit mode if you use ax, bx and in 8 bit mode ah,al; bh, bl..
Having a 64 bit processor alone isn't of much use. You need to have a 64 bit OS and a 64 bit assembler inorder to program 64 bit asm.
__________________
..lost in silence™
Reply With Quote
  #6 (permalink)  
Old 12-14-2009, 10:20 PM
Junior Member
 
Join Date: Sep 2009
Posts: 7
Default

As I understand it, all x86 machines boot as an 8086 and have to be massaged to run with the latest features through some wacky operations. It's a computer version of "phylogeny recapitulates ontogeny."

Heck, you don't need a 64-bit kernel to run 64-bit apps, just need to have access to 64-bit libraries. Snow Leopard runs as a 32-bit kernel with a 64-bit userspace.

Oh Intel
Reply With Quote
  #7 (permalink)  
Old 12-15-2009, 08:02 PM
Member
 
Join Date: Jul 2009
Location: 1337 h4x0r str337
Posts: 32
Send a message via AIM to b3r00tb4ck
Default

Most programs are still only 32 bit even when we run them on a 64bit OS, so if you only learn 64 bit, what about 5% of programs out there are, what are you going to do when you encounter the other 95%?
Reply With Quote
  #8 (permalink)  
Old 12-15-2009, 10:06 PM
Gitsnik's Avatar
Senior Member
 
Join Date: Jun 2009
Location: The Crystal Wind
Posts: 637
Default

Quote:
Originally Posted by b3r00tb4ck View Post
Most programs are still only 32 bit even when we run them on a 64bit OS, so if you only learn 64 bit, what about 5% of programs out there are, what are you going to do when you encounter the other 95%?
The same could have been said about any function that makes use of E(A|B|C|D)X a few years ago you realise. I learned assembly when 32 bit registers were just coming in to fashion (16 bit FTW!), but they were rare and slow and nobody was really sure if we would go that way when other architectures were there as well.

I realise that this is a bit fluffy considering we are quite solidly moving toward 64 bit architecture, but then again, if that was realised by everyone else as well we wouldn't be having this discussion.
__________________
Never underestimate the power of human stupidity - it is like a force of nature, capable of destroying even the most well laid plans.
Reply With Quote
  #9 (permalink)  
Old 12-18-2009, 09:45 AM
B@Rz-'s Avatar
Member
 
Join Date: Jun 2009
Posts: 56
Default

Hi, this link will probably help you

AMD Developer Central - Developer Guides and Manuals
Reply With Quote
Reply

Bookmarks

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are On



All times are GMT. The time now is 04:16 PM.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2