Mostrando entradas con la etiqueta Assembler. Mostrar todas las entradas
Mostrando entradas con la etiqueta Assembler. Mostrar todas las entradas

domingo, 22 de mayo de 2011

509 Programming Books Pack

509 Programming Books Pack
PDF CHM | English | 2.70Gb


The books cover all major programming languages: Ada, Assembly, Basic, C, C#, C++, CGI, javascript, Perl, Delphi, Pascal, Haskell, Java, Lisp, PHP, Prolog, Python, Ruby, as well as some other languages, game programming...

Booklist :
Absolute BSD The Ultimate Guide to FreeBSD
Absolute OpenBSD UNIX For The Practical Paranoid
Addison-Wesley Professional The dot NET Developers Guide to Windows Security Sep 2004
Addison Wesley A Programmers Guide To Java Certification 2nd Edition
Addison Wesley Advanced CORBA Programming with C++
Addison Wesley Advanced Linux Networking
Addison Wesley Algorithms In Java 3rd Ed Part5 Graph Algorithms
Addison Wesley Applying Enterprise JavaBeans 2nd Edition
Addison Wesley C++ Network Programming,Volume 1
Addison Wesley C++ Network Programming,Volume 2
Addison Wesley C++ Primer, Third Edition
Addison Wesley C++ Standard Library,The A Tutorial and Reference
Addison Wesley C++ Templates-The Complete Guide
Addison Wesley C Sharp Developer's Guide to ASP NET XML and ADO NET
Addison Wesley Designing Components with the C++ STL
Addison Wesley Developing Enterprise Java Applications with J2EE and UML
Addison Wesley Dot NET For Java Developers Migrating To C Sharp
Addison Wesley Dot NET For Java Developers Migrating To C Sharp
Addison Wesley Effcient C++ Programming Techniques
Addison Wesley Effective XML 50 Specific Ways To Improve Your XML
Addison Wesley Efficient C++ Performance Programming Techniques
Addison Wesley Enterprise Java 2 Security Building Secure and Robust J2EE Applications
Addison Wesley Enterprise Java Programming With IBM WebSphere Second Edition
Addison Wesley Essential C++
Addison Wesley Essential XML Quick Reference
Addison Wesley Exceptional C++ - 47 Engineering Puzzles, Programming Problems, and Solutions
Addison Wesley FlashAndXMLADevelopersGuide
Addison Wesley From Java To C Sharp A Developers Guide
Addison Wesley Guerrilla Oracle
Addison Wesley Inside Java 2 Platform Security 2nd Edition
Addison Wesley Inside Windows Server 2003
Addison Wesley Inside the C++ Object Model
Addison Wesley JSP and XML_Integrating XML and Web Services in JSP
Addison Wesley Java Data Objects
Addison Wesley Java Design Patterns A tutorial
Addison Wesley Java Development On PDAs
Addison Wesley Java Look And Feel Design Guidelines - Advanced Topics
Addison Wesley Java Native Interface
Addison Wesley Java Performance And Scalability Volume1 Server-Side Programming Techniques
Addison Wesley Java Tutorial Third Edition A Short Course On The Basics
Addison Wesley Java and JMX-Building Manageable Systems
Addison Wesley Java2 Platform Enterprise Edition Platform And Component Specifications
Addison Wesley JavaServer Pages 2nd Edition
Addison Wesley MIDP Style Guide For The Java 2 Platform Micro Edition
Addison Wesley Managing Linux Systems With Webmin System Administration And Module Development
Addison Wesley Managing Windows with VBScript and WMI
Addison Wesley Microsoft SQL Server 2000-A Guide to Enhancements and New Features
Addison Wesley Modern C++ Design Generic Programming and Design Patterns Applied
Addison Wesley More Exceptional C++
Addison Wesley More Exceptional C++
Addison Wesley Moving To Linux Kiss The Blue Screen Of Death Goodbye
Addison Wesley Multitool Linux - Practical Uses for Open Source Software
Addison Wesley Performance Analysis for Java__ Web Sites
Addison Wesley Perl Debugged
Addison Wesley Perl To Python Migration
Addison Wesley Professional Effective Enterprise Java Aug 2004
Addison Wesley Programming Wireless Devices With The Java 2 Platform Micro Edition 2nd Edition
Addison Wesley Programming for the Java Virtual Machine
Addison Wesley Python Programming with the Java Class Libraries
Addison Wesley SQL Performance Tuning
Addison Wesley Secure XML - The New Syntax for Signatures and Encryption
Addison Wesley Servlets and JavaServer Pages The J2EE Technology Web Tier
Addison Wesley Sun Java Look and Feel Design Guidelines 2e
Addison Wesley Sun Java Look and Feel Design Guidelines Advanced Topics
Addison Wesley TCPIP Illustrated Volume 1
Addison Wesley Text Processing In Python
Addison Wesley The Art Of Unix Programming
Addison Wesley The C++ Standard Library-A Tutorial and Reference
Addison Wesley The Essence of Object Oriented Programming with Java and UML
Addison Wesley The Gurus Guide To SQL Server Architecture And Internals
Addison Wesley The Ultimate Windows Server 2003 System Administrator's Guide
Addison Wesley The XML Schema Complete Reference
Addison Wesley UNIX Network Programming Volume 1 3rd Ed The Sockets Networking API
Addison Wesley Using XML With Legacy Business Applications
Addison Wesley Windows Forms Programming In C Sharp
Addison Wesley Windows Forms Programming In Visual Basic Dot NET
Addison Wesley XForms XML Powered Web Forms
Addison Wesley XML - A Manager's Guide, Second Edition
Addison Wesley XML Schema Complete Reference
Addison Wesley XML Topic Maps Ebook-fly
Addison Wesley XML Topic Maps, Creating and Using Topic Maps for the Web
Addison Wesley XML Topic Maps
Addison Wesley XML and Java Developing Web Applications
Addison Wesley XML and Java-Developing Web Applications 2nd Edition
Addison Wesley XML and SQL Developing Web Applications
Addison Wesley XPath, XLink, XPointer, and XML-A Practical Guide to Web Hyperlinking and Transclusion
Addison Wesley XQuery From The Experts A Guide To The W3C XML Query Language
AddisonWesley-TCP IP Illustrated, Volume 2 The Implementation-fly
Apress Automating UNIX and Linux Administration
Apress Bluetooth For Java
Apress Data Entry and Validation with CSharp and VB Dot NET Windows Forms
Apress Enterprise JavaBeans 2 1
Apress Hardening Windows
Apress Java Regular Expressions Taming the java Dot util Dot regex Engine
Apress Professional PHP4 PROPER
Apress Professional PHP4
Apress SQL Server 2000 Stored Procedures Handbook
Apress SQL Server Security Distilled Second Edition
Apress The Definitive Guide to MySQL Second Edition
Apress The Definitive Guide to Windows Installer
Apress The Programmers Guide to SQL
Apress The Qmail Handbook
Apress Using and Understanding Java Data Objects
Apress Wireless Java Developing with J2ME Second Edition
Artech House A Professionals Guide To Data Communication In A TCPIP World
Auerbach Publications Oracle 11i E-Business Suite From The Front Lines
C++ Primer 3rd Edition CN
C++ Primer Plus Fourth Edition
CMP Books Windows Media 9 Series By Example
CRC Press Oracle 11i E-Business Suite From the Front Lines
Charles River Media Moving from Windows to Linux
Charles River Media Object-Oriented Programming-From Problem Solving to Java
Developing XML Web Services and Server Components with VB NET & VCCharp NET
Digital Press Leveraging WMI Scripting Using Windows Management Instrumentation To Solve Windows Management Problems
Digital Press Oracle Real Application Clusters
Digital Press Oracle9iR2 Data Warehousing
Digital Press UNIX For OpenVMS Users 3rd Edition
Digital Press Windows Server 2003 Security Infrastructures
For Dummies Cleaning Windows XP For Dummies Sep 2004
For Dummies PHP 5 for Dummies Apr 2004
For Dummies Red Hat Fedora Linux 2 All-in-One Desk Reference For Dummies Jul 2004
For Dummies Windows XP All-in-One Desk Reference For Dummies Oct 2004
For Dummies Windows XP for Dummies Quick Reference 2ed Oct 2004
FreeBSD Unleashed
Hentzenwerke Corporation Linux Transfer for Windows Network Admins
Hentzenwerke Publishing Linux Transfer for Windows Power Users Getting Started with Linux for the Desktop
Hungry Minds-Debian GNU-Linux Bible
IBM Oracle to DB2 Udb Conversion Guide Dec 2003
Implementing and Administering Security in a Windows 2000 Network
Java Frameworks And Components Accelerate Your Web Application Development
Java Servlet Programming
Java Servlet Programming
John Wiley And Son More Java Pitfalls
John Wiley And Sons Assembly Language Step-by-Step Programming with DOS and Linux Second Edition iNT
John Wiley And Sons Implementing SSH Strategies For Optimizing The Secure Shell
John Wiley And Sons Implementing SSH Strategies For Optimizing The Secure Shell
John Wiley And Sons More Java Pitfalls
John Wiley And Sons MySQL And Java Developer Guide
John Wiley And Sons MySQL Enterprise Solutions
John Wiley And Sons MySQL PHP Database Applications 2nd Edition
John Wiley And Sons SQL Bible
John Wiley And Sons Windows Server 2003 For Dummies
John Wiley Sons Beginning Linux Programming,Third Edition
John Wiley Sons Unix For Dummies
John Wiley and Sons Hacking Windows XP Jul 2004
John Wiley and Sons Java 2 Enterprise Edition 1 4 J2EE 1 4 Bible
John Wiley and Sons javascript Bible 5th Edition
John Wiley and Sons javascript in 10 Steps or Less
John Wiley and Sons Linux Timesaving Techniques For Dummies Jul 2004
John Wiley and Sons MySQL and Java Developers Guide
John Wiley and Sons Oracle XSQL
John Wiley and Sons PHP and MySQL for Dummies Second Edition Mar 2004
John Wiley and Sons PHP5 and MySQL Bible Apr 2004
John Wiley and Sons Programming Java 2 Micro Edition for Symbian OS Jul 2004
John Wiley and Sons Red Hat Linux Bible Fedora and Enterprise Edition
John Wiley and Sons Red Hat Linux Fedora for Dummies
John Wiley and Sons The Semantic Web A Guide to the Future of XML Web Services and Knowledge Management
John Wiley and Sons Unix for Mac Your visual blueprint to maximizing the foundation of Mac OS X
John Wiley and Sons XML 1 1 Bible
John Wiley and Sons XML Programming Bible May 2004
John Wiley and Sons XML in 60 Minutes a Day
MC Press Building Applications With WebSphere Studio And JavaBeans A Guided Tour
MC Press Qshell for iSeries
MS Press-Inside SQL Server 2000
MS Press Insider Power Techniques For Microsoft Windows XP
MS Press Microsoft Windows Server 2003 Administrators Pocket Consultant
MS Press Microsoft Windows Server 2003 TCP IP Protocols And Services Technical Reference
Manning-Java 2 Micro Edition
Manning Publications Company Programming Mac OS X A Guide for Unix Developers
McGraw-Hill Osborne Oracle Database 10g SQL
McGraw Hill Citrix MetaFrame Access Suite For Windows Server 2003 The Official Guide
McGraw Hill Crystal Reports 9 On Oracle
McGraw Hill HackNotes Linux and Unix Security Portable Reference
McGraw Hill HackNotes Windows Security Portable Reference
McGraw Hill Oracle Application Server 10g Administration Handbook Mar 2004
McGraw Hill Oracle Database 10g High Availability with RAC Flashback and Data Guard Apr 2004
McGraw Hill Osborne Hardening Windows Systems
McGraw Hill Osborne javascript 2 0 The Complete Reference Second Edition
McGraw Hill Osborne Media javascript The Complete Reference Second Edition Jul 2004
McGraw Hill Osborne Media MCSE Windows Server 2003 Planning a Network Infrastructure Certification Passport Exam 70 293
McGraw Hill Osborne Media Red Hat Linux Pocket Administrator
McGraw Hill Osborne Media Windows Server 2003 The Complete Reference
McGraw Hill Osborne Microsoft SQL Server 2000 Reporting Services
McGraw Hill Osborne MySQL Essential Skills
McGraw Hill Osborne Oracle Database 10g XML and SQL Design Build & Manage XML Applications in Java C C Plus Plus and PL SQL
McGraw Hill Osborne Oracle Wait Interface A Practical Guide to Performance Diagnostics and Tuning
McGraw Hill Osborne Portable DBA SQL Server
McGraw Hill Osborne Windows XP and Office 2003 Keyboard Shortcuts
McGraw Hill RHCE Red Hat Certified Engineer Linux Study Guide Exam RH302 4ED Mar 2004
McGraw Hill Red Hat Linux Administration A Beginners Guide
McGraw Hill Red Hat The Complete Reference Enterprise Linux and Fedora Edition
McGraw Hill SQL Server 2000 For Experienced DBAs
McGraw Hill SQL Server 2000 Stored Procedure and XML Programming Second Edition
McGraw Hill Sun Certified Enterprise Architect For J2EE Study Guide Exam 310-051
McGraw Hill Windows 2000 and Windows Server 2003 Clustering and Load Balancing
Microsoft Press Deploying Secure 802 11 Wireless Networks with Microsoft Windows
Microsoft Press The Application Programming Interface for the Next Generation of Microsoft Windows Code Name Longhorn
Microsoft Press Microsoft SQL Server 2000 DTS Step by Step
Microsoft Press Microsoft SQL Server 2000 High Availability
Microsoft Press Microsoft Windows Command-Line Administrators Pocket Consultant Apr 2004
Microsoft Press Microsoft Windows Server 2003 Terminal Services
Microsoft Press Microsoft Windows XP Do Amazing Things
Microsoft Press Programming Microsoft Dot NET XML Web Services
MySQL PHP Database Applications
MySQL Press MySQL Administrators Guide Jun 2004
New Riders Developing Games In Java
New Riders Real World XML
No Starch Press Absolute OpenBSD UNIX For The Practical Paranoid
No Starch Press How Linux Works What Every Super User Should Know
No Starch Press Wicked Cool Shell Scripts-101 Scripts for Linux Mac OS X and Unix Systems
Novell Press Novell Certified Linux Engineer Novell CLE Study Guide Oct 2004
O'Reilly-MySQL Cookbook
O'Reilly-XSLT-Mastering XML Transformations
O'Reilly Building Secure Servers with Linux
O'Reilly PC Hardware in a Nutshell, 2nd Edition
OReilly ASP dotNET in Nutshell
OReilly BSD Hacks May 2004
OReilly Beginning Perl For Bioinformatics
OReilly Better Faster Lighter Java Jun 2004
OReilly Building Java Enterprise Applications Volume I - Archi
OReilly Creating Effective JavaHelp(RoR)
OReilly DNS on Windows 2000 2nd edition
OReilly Database Porgramming With Jdbc And Java 2nd Edition
OReilly Delphi In A Nutshell 1st Ed
OReilly Developing Java Beans
OReilly Dhcp For Windows 2000
OReilly Director In A Nutshell
OReilly Eclipse A Java Developers Guide
OReilly Enterprise Javabeans 3rd Edition
OReilly Exploring the JDS Linux Desktop Sep 2004
OReilly Hardcore Java
OReilly High Performance Linux Clusters With Oscar Rocks openmosix And Mpi Nov 2004
OReilly High Performance MySQL
OReilly J2ME in a Nutshell
OReilly Java & XSLT
OReilly Java 2d Graphics
OReilly Java 3d Programming
OReilly Java And Soap
OReilly Java Cook Book
OReilly Java Cookbook 2nd Edition Jun 30 2004
OReilly Java Cryptography
OReilly Java Management Extension
OReilly Java Message Service
OReilly Java NIO
OReilly Java Network Programming, 2nd Edition
OReilly Java Network Programming Third Edition Oct 2004
OReilly Java Programming With Oracle Jdbc
OReilly Java Programming onlinux
OReilly Java Rmi
OReilly Java Security 2nd Edition
OReilly Java Servlet Programming
OReilly Java Threads 3rd Edition Sep 2004
OReilly Java Web Services
OReilly Java performance tuning
OReilly Java server Pages
OReilly JavaServer Pages 2nd Edition
OReilly JavaServer Pages Pocket Reference
OReilly LINUX admin
OReilly Learning PHP 5 Jul 2004 FIXED
OReilly Learning Perl, Third Edition
OReilly Learning Python
OReilly Learning Red Hat Enterprise Linux and Fedora 4th Edition Apr 2004
OReilly Learning the Unix OS 4th Edition
OReilly Learning the bash Shell - 2nd Edition
OReilly Linux Network Admin Guide 2nd Edition
OReilly Linux Unwired
OReilly Mac OS X For UNIX Geeks
OReilly Mastering Oracle SQL 2nd Edition Jun 2004
OReilly Office 2003 XML Jun 2004
OReilly Oracle 8i Interal Service
OReilly Oracle Application Server 10g Essentials Aug 2004
OReilly Oracle PLSQL Best Practices
OReilly Oracle RMAN Pocket Reference
OReilly Oracle SQL Tuning Pocket Reference
OReilly Oracle sqlloader
OReilly PHP Cookbook
OReilly PHP Pocket Reference - 2nd Edition
OReilly Perl 6 and Parrot Essentials Second Edition Jun 2004
OReilly Perl Cookbook
OReilly Perl Template Toolkit
OReilly Practical PostgreSQL
OReilly Programming Perl
OReilly Programming Perl Dbi
OReilly Programming Python, 2nd Edition
OReilly ProgrammingPHP
OReilly Running Linux 4th Edition
OReilly SELinux NSAs Open Source Security Enhanced Linux Oct 2004
OReilly SQL In Nutshell
OReilly SQL In A Nutshell 2nd Edition Sep 2004
OReilly SSH, The Secure Shell - The Definitive Guide Ebook
OReilly Securing Windows Server 2003 Nov 2004
OReilly Understanding The Linux Kernel 1st Edition
OReilly Understanding the Linux Kernel - 2nd Edition
OReilly Unix for Oracle DBAs Pocket Reference
OReilly Unix in a Nutshell
OReilly Upgrading to PHP 5 Jul 2004
OReilly Vb & Vba Nutshell
OReilly Vb net Language In A Nutshell
OReilly Visual Basic NET Language in a Nutshell
OReilly Web Database Applications With PHP and MySQL
OReilly Web Database Applications with PHP and MySQL 2nd Edition May 2004
OReilly Web Design in a Nutshell
OReilly Windows 2000 Commands Pocket Reference
OReilly Windows Server Hacks
OReilly Windows XP Pocket Reference
OReilly Writing Apache Modules with Perl and C
OReilly XML Hacks Jul 2004
OReilly XML Publishing with AxKit Jan 2004
OReilly XML in a Nutshell Third Edition Sep 2004
OReilly linux_poster
Oreilly ADO Dot Net In A Nutshell
Oreilly ASP Dot NET In A Nutshell 2nd Edition
Oreilly AppleScript In A Nutshell
Oreilly Building Embedded Linux Systems
Oreilly C Sharp In A Nutshell 2nd Edition
Oreilly Cocoa In A Nutshell
Oreilly Cpp In A Nutshell
Oreilly DNS On Windows Server 2003
Oreilly Dot NET And XML
Oreilly Dot NET Windows Forms In A Nutshell
Oreilly Java Data Objects
Oreilly Java Database Best Practices
Oreilly Java Examples In A Nutshell 3rd Edition
Oreilly Java Extreme Programming Cookbook
Oreilly Java Performance Tuning 2nd Edition
Oreilly Java Script And DHTML Cookbook
Oreilly Java Server Pages 3rd Edition
Oreilly Java Servlet And JSP Cookbook
Oreilly javascript Pocket Reference 2nd Edition iNT
Oreilly Learning Perl Objects References And Modules
Oreilly Learning Python 2nd Edition
Oreilly Learning RedHat Linux 3rd Edition
Oreilly Learning Unix For Mac OS X Panther
Oreilly Learning XML 2nd Edition
Oreilly Linux In A Nutshell 4th Edition
Oreilly Linux Security Cookbook
Oreilly Mac OS X In A Nutshell
Oreilly Mac OS X Panther For Unix Geeks
Oreilly MacOSX For Java Geeks
Oreilly Mastering Oracle SQL
Oreilly Mastering Perl For Bioinformatics
Oreilly MySQL Pocket Reference
Oreilly Oracle Essentials Oracle Database 10g 3rd Edition
Oreilly Oracle PL SQL Language Pocket Reference 2nd Edition
Oreilly Oracle Regular Expressions Pocket Reference
Oreilly PC Hardware In A Nutshell 2nd Edition
Oreilly PC Hardware In A Nutshell 3rd Edition
Oreilly Perl 6 Essentials
Oreilly Perl Cookbook 2nd Edition
Oreilly Perl For Oracle DBAs
Oreilly Perl Template Toolkit
Oreilly Postfix The Definitive Guide
Oreilly Practical Mod Perl
Oreilly Practical Unix And Internet Security 3rd Edition
Oreilly Programming Dot NET Windows Applications
Oreilly Python In A Nutshell
Oreilly SQL Tuning
Oreilly Sequence Analysis In A Nutshell
Oreilly TCP IP Network Administration 3rd Edition
Oreilly VB Dot NET Core Classes In A Nutshell
Oreilly VB Dot NET Language In A Nutshell 2nd Edition
Oreilly VBScript In A Nutshell 2nd Edition
Oreilly Windows Server 2003 In A Nutshell
Oreilly Windows XP Hacks
Oreilly Windows XP Pro The Missing Manual
Oreilly Windows XP Unwired
Oreilly qmail
PH - Designing Enterprise Solutions with Sun Cluster 3 0 (2001) [0130084581]
Paraglyph Press Windows Admin Scripting Little Black Book 2nd Edition
Paraglyph Publishing Windows Admin Scripting Little Black Book Second Edition
Planning, Implementing, and Maintaining a Windows Server 2003 Active Directory Infrastructure
Planning and Maintaining a Windows Server 2003 Network Infrastructure
Premier Press Game Programming with Python Lua and Ruby
Premier Press javascript Professional Projects
Premier Press Learn javascript In a Weekend
Premier Press Microsoft Windows Shell Script Programming for the Absolute Beginner
Premier Press Microsoft Windows XP Fast and Easy Media Center Edition
Premier Press Microsoft Windows XP Professional Administrators Guide
Premier Press PHP Essentials 2nd Edition
Premier Press PHP Fast And Easy Web Development 2nd Edition
Premier Press PHP MySQL Programming For The Absolute Beginner
Premier Press Python Programming for the Absolute Beginner
Premier Press SQL Tips And Techniques
Prentice Advanced DBA Certification Guide And Reference For DB2 Universal Database V8 For Linux UNIX And Windows
Prentice Complete Home Wireless Networking Windows XP Edition
Prentice Core Java Data Objects
Prentice Core PHP Programming 3rd Edition
Prentice Core Servlets And Java Server Pages Volume 1 Core Technologies 2nd Edition
Prentice DB2 Universal Database V8 For Linux UNIX And Windows Database Administration Certification Guide 5th Edition
Prentice DB2 Universal Database V8 Handbook For Windows UNIX And Linux
Prentice Getting Started With Sun ONE
Prentice Hall PTR Core JavaServer Faces Jun 2004
Prentice Hall PTR Java Garage Aug 2004
Prentice Hall PTR Java Studio Creator Field Guide Jun 2004
Prentice Hall PTR Just Java 2 6th Edition Jun 2004
Prentice Hall PTR Migrating to the Solaris Operating System The Discipline of UNIX to UNIX Migrations
Prentice Hall PTR Oracle DBA Scripting Quick Reference Apr 2004
Prentice Java Oracle Database Development
Prentice javascript By Example
Prentice Linux On The Mainframe
Prentice Oracle DBA Guide To Data Warehousing And Star Schemas
Prentice Oracle DBA SQL Quick Reference
Prentice Oracle PL SQL By Example 3rd Edition-LiB
Prentice Programming Oracle Triggers And Stored Procedures 3rd Edition
Prentice Sun ONE Messaging Server Practices And Techniques For Enterprise Customers
Prentice Technical Java Developing Scientific And Engineering Applications
Prentice Unix Systems Programming Communication Concurrency And Threads
Programming with Managed Extensions for Visual C++ NET
Que Designing A Windows Server 2003 Active Directory And Network Infrastructure Exam Cram 2
Que Easy Microsoft Windows XP Home Edition 2nd Edition
Que Java 2 Developer Exam Cram 2 Exam CX-310-252A And CX-310-027
Que Java 2 Programmer Exam Cram 2 Exam CX-310-035
Que MCSA MCSE 70-299 Exam Cram 2 Implementing and Administering Security in a Windows 2003 Network May 2004
Que MCSA MCSE Managing And Maintaining A Microsoft Windows Server 2003 Environment Exam Cram 2 Exam 70-290
Que MCSE Training Guide 70-293 Planning And Maintaining Windows Server 2003 Network Infrastructure
Que MCSE Windows 2000 Network Infrastructure Exam Cram 2 Exam 70-216
Que MCSE Windows 2000 Professional Exam Cram 2 Exam 70-210
Que MCSE Windows 2000 Server Exam Cram 2 Exam 70-215
Que Managing And Maintaining A Windows Server 2003 Environment Exam Cram 2 Exam 70-292
Que Microsoft Windows Server 2003 Delta Guide
Que Planning And Maintaining A Windows Server 2003 Network Infrastructure Exam Cram 2 Exam 70-293
Que Planning Implementing And Maintaining A Microsoft Windows Server 2003 Environment Exam Cram 2
Que Show Me Microsoft Windows XP
Que Special Edition Using Enterprise JavaBeans 2 0 internal
Que Special Edition Using Java 2 Standard Edition internal
Que Windows 2000 Active Directory Services Infrastructure Exam Cram 2 Exam 70-217
Que Windows Server 2003 Active Directory Infrastructure Exam Cram 2 Exam 70-294
Que Windows Server 2003 Network Infrastructure Exam Cram 2 Exam 70-291
Rampant Tech Press Oracle Index Management Secrets Top Oracle Experts Discuss Index Management Techniques
Rampant Tech Press Using the Oracle oradebug Utility Debugging Oracle Applications
Rampant TechPress Advanced SQL Database Programmers Handbook
Rampant TechPress Documenting Oracle Databases Complete Oracle Database Schema Auditing
Rampant TechPress Documenting Oracle Databases
Rampant TechPress Oracle DBA Made Simple Oracle Database Administration Techniques
Rampant TechPress Oracle Data Warehouse Management
Rampant TechPress Oracle SQL Internals Handbook
Rampant TechPress Oracle Space Management Handbook
Rampant TechPress Tuning Third-party Vendor Oracle Systems
Rampant TechPress Tuning Third Party Vendor Oracle Systems
Rampant TechPress Using Oracle SQL Stored Outlines and Optimizer Plan Stability
SAMS Sams Teach Yourself SQL in 10 Minutes Third Edition
SANS Institute OpenSSH A Survival Guide for Secure Shell Handling Version 1 0
SANS Institute Securing Linux A Survival Guide for Linux Security Version 1 0
SAS Publishing SAS 9 1 Companion for UNIX Environments
SNA and TCP IP Integration Handbook
Sams Applied XML Solutions
Sams Java Media APIs
Sams MYSQL Certification Study Guide Apr 2004
Sams Microsoft SQL Server 2000 Unleashed 2nd Edition
Sams Microsoft Windows Server 2003 Insider Solutions
Sams MySQL 2nd Edition
Sams MySQL Tutorial
Sams PostgreSQL
Sams Teach Yourself JavaServer Pages 2 0 With Apache Tomcat In 24Hours
Sams Teach Yourself PHP In 24Hours 3rd Edition
Sams Teach Yourself PHP MySQL And Apache In 24Hours
Sams Teach Yourself PHP MySQL and Apache in 24 Hours Second Edition
Sams Teach Yourself TCP IP In 24Hours 3rd Edition
Sams Teach Yourself XML In 21 Days 3rd Edition
Sams Unix Shell Programming 3rd Edition
Sams XPath Navigating XML With XPath 1 0 And 2 0 Kick Start
SitePoint Build Your Own Database Driven Website Using PHP MySQL
SitePoint Pty Ltd Build Your Own Database Driven Website Using PHP and MySQL Second Edition
SkillSoft Java InstantCode Developing JSP and XML Integrated Solutions
SkillSoft Press Integrating PHP and XML
SkillSoft Press Java InstantCode Developing Applications Using JCA
SkillSoft Press Java InstantCode Developing Applications Using Jabber
SkillSoft Press Java InstantCode Developing Applications Using Java NIO
Springer Verlag Database Design Manual Using Mysql for Windows
Sybex Ground-Up Java
Sybex Java Foundations Aug 2004
Sybex Linux Network Servers
Sybex Linux Plus Study Guide Second Edition
Sybex Linux Power Tools
Sybex Linux System Administration
Sybex MCAD MCSD Visual Basic Dot Net XML Web Services And Server Components Study Guide
Sybex MCSA MCSE Windows Server 2003 Network Security Administration Study Guide 70-299 Jul 2004
Sybex MCSA MCSE Windows Xp Professional Fast Pass Sep 2004
Sybex MCSE Windows Server 2003 Network Security Design Study Guide 70 298 May 2004
Sybex Mastering Active Directory for Windows Server 2003
Sybex Mastering MySQL 4
Sybex Oracle Database Foundations Sep 2004
Sybex Oracle9i DBA JumpStart
Sybex Setting Up LAMP Getting Linux Apache MySQL and PHP Working Together Jul 2004
Sybex Solaris 9 Sun Certified System Administrator Study Guide
Sybex TCP IP Foundations Aug 2004
Syngress How to Cheat at Managing Windows Small Business Server 2003 Sep 2004
Syngress MCSE Planning And Maintaining A Windows Server 2003 Network Infrastructure Exam 70-293 Study Guide
Syngress Publishing MCSE Designing Security For A Windows Server 2003 Network Exam 70-298 Study Guide
The MIT Press Beowulf Cluster Computing With Linux Second Edition
TotalRecall Press ExamInsight for Windows XP Professional Certification Exam 70 270
UNIX Administration A Comprehensive Sourcebook for Effective Systems and Network Management
Wiley UNIX Filesystems Evolution Design and Implementation-NLLiB
Windows 2000 Server Administrator's Companion 2nd Edition
Windows Dot NET Server 2003 Domains And Active Directory
Wordware FileMaker Pro 6 Developers Guide To XML XSL
Wordware Java 1 4 Game Programming
Wrox-Beginning Java 2, SDK 1 4 Edition
Beginning red hat linux


Download Fileserve
http://www.fileserve.com/file/R2WTJVZ/Programming_Books_Pack_509_books.part01.rar
http://www.fileserve.com/file/fuWRvbv/Programming_Books_Pack_509_books.part02.rar
http://www.fileserve.com/file/djUUaR7/Programming_Books_Pack_509_books.part03.rar
http://www.fileserve.com/file/nU8uHaa/Programming_Books_Pack_509_books.part04.rar
http://www.fileserve.com/file/jVmWn84/Programming_Books_Pack_509_books.part05.rar
http://www.fileserve.com/file/V4jzRvK/Programming_Books_Pack_509_books.part06.rar
http://www.fileserve.com/file/9Cm3Nab/Programming_Books_Pack_509_books.part07.rar
http://www.fileserve.com/file/mTtmK8g/Programming_Books_Pack_509_books.part08.rar
http://www.fileserve.com/file/VZKyn4a/Programming_Books_Pack_509_books.part09.rar
http://www.fileserve.com/file/dcMfWdF/Programming_Books_Pack_509_books.part10.rar
http://www.fileserve.com/file/GWtZjve/Programming_Books_Pack_509_books.part11.rar
http://www.fileserve.com/file/sTY6wD5/Programming_Books_Pack_509_books.part12.rar
http://www.fileserve.com/file/HfSehV9/Programming_Books_Pack_509_books.part13.rar
http://www.fileserve.com/file/3HjKcJG/Programming_Books_Pack_509_books.part14.rar
http://www.fileserve.com/file/yuaaX2e/Programming_Books_Pack_509_books.part15.rar
http://www.fileserve.com/file/F24kzN4/Programming_Books_Pack_509_books.part16.rar
http://www.fileserve.com/file/NMVtHpC/Programming_Books_Pack_509_books.part17.rar
http://www.fileserve.com/file/cQNXXKm/Programming_Books_Pack_509_books.part18.rar
http://www.fileserve.com/file/tDJwtFq/Programming_Books_Pack_509_books.part19.rar
http://www.fileserve.com/file/sc7vBjh/Programming_Books_Pack_509_books.part20.rar
http://www.fileserve.com/file/t5NMfm4/Programming_Books_Pack_509_books.part21.rar
http://www.fileserve.com/file/8QUgngn/Programming_Books_Pack_509_books.part22.rar
http://www.fileserve.com/file/7YFB7uw/Programming_Books_Pack_509_books.part23.rar
http://www.fileserve.com/file/vU7PaQ2/Programming_Books_Pack_509_books.part24.rar
http://www.fileserve.com/file/4hqdwE3/Programming_Books_Pack_509_books.part25.rar
http://www.fileserve.com/file/Pws9N5d/Programming_Books_Pack_509_books.part26.rar
http://www.fileserve.com/file/KWhpA5K/Programming_Books_Pack_509_books.part27.rar

sábado, 12 de marzo de 2011

EL JUEGO DE INSTRUCCIONES DEL X86

¿Por qué aprender ensamblador?

A nosotros nos importa bien poco en qué lenguaje de programación se ha compilado una aplicación, sólo en alguna ocasión será interesante saber en qué lengua se ha escrito algún programa (y tampoco será imprescindible averiguarlo). Todos sabéis que se programe en el lenguaje que se programe la compilación traduce las líneas de código al único código que entiende la máquina, éste código es el ensamblador y es la única lengua que necesitamos conocer tanto para añadir como para quitar código a una aplicación. En esta página tenéis la posibilidad de aprender un poco cada una de las instrucciones más habituales y cómo hacer uso de ellas. Al final disponéis del juego de instrucciones completo, de momento está en Ingles pero lo iremos traduciendo al español, como siempre, cuando tengamos un rato.

Comenzaremos con los registros.

De los registros podíamos estar hablando días y días enteros, pero lo que nos interesa saber de ellos es que son lugares donde guardar y conocer datos. Con ellos podemos sumar, restar, multiplicar, guardar un dato, ejecutar una función determinada de una interrupción, en fin, son imprescindibles. Aquí tienes la lista de algunos registros.

AX Acumulador, de uso general. Se puede dividir en AH y AL. Obtendremos el mismo resultado si hacemos "MOV AX , FF00" que si hacemos primero "MOV AH , FF" y después "MOV AL , 00".

BX Registro base, de uso general. Se puede dividir en BH y BL.

CX Registro contador, de uso general. Se puede dividir en CH y CL.

DX Registro de datos, de uso general. Se puede dividir en DH y DL.

DS Registro del segmento de datos. Utilizado para apuntar a un segmento.

ES Registro del segmento extra. Lo mismo que DS.

SS Registro del segmento de pila. Nos indica el segmento donde se encuentra la pila (mas abajo hablaremos de ella).

CS Registro del segmento de código. Nos indica el segmento donde se encuentra el código que se está ejecutando.

BP Registro de apuntadores base. Digamos que este registro se utiliza para apuntar donde guardamos datos.

SI Registro índice fuente.

DI Registro índice destino.

SP Registro del apuntador de la pila. Este registro nos indica dónde está la pila en la que se guardan los datos que introducimos en ella.

IP Registro que apunta a la siguiente instrucción que se tiene que ejecutar.

F Registro de flags. Este registro es necesario leerlo en binario. Cada bit representa el resultado de alguna operación, por ejemplo si comparamos dos números este en este registro encontramos información sobre si uno es menor o mayor que el otro o si son iguales, etc. Los flags (o banderas) son los siguientes CF, PF, AF, ZF, SF, TF, IF y OF.

Antes de continuar hablaremos de la instrucción NOP. Esta instrucción es nula, o sea que no hace absolutamente nada. Es utilizada para provocar un retraso en la CPU y nosotros la utilizamos PARA ELIMINAR EL CODIGO QUE NO QUEREMOS QUE SE EJECUTE (una forma de parchear) cambiando el código que existe por tantos nop's como bytes queremos eliminar.

¿Qué es la pila?

Ahora que sabemos como guardar un dato determinado usando los registros, nos damos cuenta de que en ocasiones necesitaremos guardar mas datos que registros tenemos. ¿Como solucionamos esto? pues con el uso de la pila. Supongamos que debemos de guardar 10 números y solo disponemos de 4 registros de uso general, la solución es hacer los siguiente:

MOV AX , PRIMER_NUMERO..... <= cargamos en ax el número

PUSH AX ....................................... <= y lo dejamos caer en la pila

MOV AX , SEGUNDO_NUMERO. <= cargamos en ax el siguiente nº

PUSH AX........................................ <= y también lo descargamos en la pila.

.... así hasta terminar de descargar nuestros datos. ¿Donde se han guardado? pues en SS:SP.

Para recuperar lo introducido en la pila, hay que saber que siempre sale primero el último dato que entra, este es el motivo de que se le llame pila, se apilan los datos. Imagina que amontonas platos uno encima de otro... para sacar el primer plato que has puesto debes de sacarlos TODOS. Este es el concepto de la pila.

POP AX <= Recupera de la pila EL ULTIMO DATO INTRODUCIDO y lo deposita en el registro AX.

Bien... Ya hemos visto que son los registro, ahora vamos a ver como los guardamos en la pila y como los recuperamos de ella...

PUSH REGISTRO..... <= Guarda en la pila un registro.

PUSH NUMERO........ <= Guarda en la pila un número.

PUSHF....................... <= Guarda en la pila los flag.

PUSHA...................... <= Guarda en la pila los registros AX, CX, DX, BX, SP, BP, SI y DI en este mismo orden.

POPA........................ <= Recupera de la pila los registros DI, SI, PB, SP, BX, DX, CX y AX en este mismo orden.

POPF......................... <= Recupera de la pila los flags.

POP REGISTRO....... <= recupera un dato de la pila y lo deposita en "REGISTRO".

Instrucciones de salto

Si has programado alguna vez en cualquier Básic, sabrás que las instrucciones de salto tales como goto y gosub son la madre de cualquier programa. En ensamblador es lo mismo, solo que tenemos muchisimas más posibilidades.

JMP DIRECCION.... <= Hace que el programa salte a dirección. Sería como el goto del Básic.

CALL DIRECCION. <= Hace que el programa salte a dirección para ejecutar un fragmento de código y cuando termina retorna a la siguiente instrucción despues de call con RET. Sería como el gosub del Básic.

Después de una instrucción de comparación de 2 números podemos hacer saltos condicionados:

CMP AX , BX............ <= Compara el registro ax con bx.

JE DIRECCION......... <= Salta a dirección si los registros son iguales.

CMP AX , NUMERO. <= Compara ax con número.

JA DIRECCION......... <= Salta si ax es mayor que número.

JAE DIRECCION....... <= Salta si ax es mayor o igual que número.

JB DIRECCION.......... <= Salta si ax es menor que número.

JBE DIRECCION....... <= Salta si ax es menor o igual que número.

JA DIRECCION.......... <= Salta si ax es mayor o igual que número.

JNE DIRECCION....... <= Salta si no son iguales.

JCXZ DIRECCION..... <= Salta si CX es cero.


Instrucción nula

¿para qué sirve una instrucción que no hace nada? NOP es una instrucción cuya misión es la de provocar un retraso en la CPU, es frecuente verla en fragmentos de código donde se hacen operaciones de lectura/escritura en puertos para darle tiempo a aceptar otra instrucción al periferico al que se le hace la solicitud. Esta instrucción es muy útil a la hora de parchear un programa, cuando hay un fragmento de código que no queremos que se ejecute simplemente NOPEAMOS los bytes que nos interesa y eliminamos lo que no nos interesa.

Instrucciones aritméticas

Hay muchas instrucciones que nos permiten sumar, restar, multiplicar, dividir etc. pero solo mencionaré las de uso mas frecuente.

ADD AX , BX................. <= Esta instrucción la leeremos como "súmale a ax el contenido de bx y depositalo en ax". Sería como a=a+b en Básic.

SUB AX , NUMERO........ <= Es lo mismo que la instrucción anterior pero restando.

INC BX............................ <= Incrementa en uno el contenido de bx.

DEC CX........................... <= Decrementa en uno el contenido de cx.

MUL BX.......................... <= Atención, para multiplicar un número pondremos en el registro ax uno de los números a multiplicar, a continuación hacemos mul destino donde destino ha de ser bx, cx ó dx y además contendrá el otro número por el que hay que multiplicar ax. En Básic A=A*B.

DIV BX........................... <= Funciona igual mul pero para dividir.

Instrucciones de bucle

Si necesitamos repetir un fragmento de código cualquier cantidad de veces usaremos los bucles que son como los for-next del Básic.

MOV CX , REPETICION...<= Carga en cx la cantidad de veces que se repetirá el bucle.

bucle:...........................<= Esto es una etiqueta.

... ................................<= Instrucciones a ejecutar.

... ................................<= Instrucciones a ejecutar.

LOOP bucle.....................<= Reduce el valor de cx en uno y salta a bucle mientras cx sea mayor que cero.

Instrucciones de lectura/escritura de puertos

Cada dispositivo que está conectado a nuestro ordenador se comunica con él a través de un puerto. Habras oido hablar del puerto serie o el paralelo. Piensa en los puertos como en lugares a donde ha de llegar un dato o donde podremos encontrar un dato. Para enviar un dato a un puerto se utilizan las siguientes instrucciones:

MOV DX , NUMERO_DE_PUERTO


MOV AX , NUMERO_A_ENVIAR


OUT DX , AX

Y para leer un dato de un puerto:

MOV DX , NUMERO_DE_PUERTO


IN AX , DX

Juego completo (con tiempo iremos traduciendo y comentando todas las instrucciones)

AAA - Ascii Adjust for Addition

AAD - Ascii Adjust for Division

AAM - Ascii Adjust for Multiplication

AAS - Ascii Adjust for Subtraction

ADC - Add With Carry

ADD - Arithmetic Addition

AND - Logical And

ARPL - Adjusted Requested Privilege Level of Selector (286+ PM)

BOUND - Array Index Bound Check (80188+)

BSF - Bit Scan Forward (386+)

BSR - Bit Scan Reverse (386+)

BSWAP - Byte Swap (486+)

BT - Bit Test (386+)

BTC - Bit Test with Compliment (386+)

BTR - Bit Test with Reset (386+)

BTS - Bit Test and Set (386+)

CALL - Procedure Call

CBW - Convert Byte to Word

CDQ - Convert Double to Quad (386+)

CLC - Clear Carry

CLD - Clear Direction Flag

CLI - Clear Interrupt Flag (disable)

CLTS - Clear Task Switched Flag (286+ privileged)

CMC - Complement Carry Flag

CMP - Compare

CMPS - Compare String (Byte, Word or Doubleword)

CMPXCHG - Compare and Exchange

CWD - Convert Word to Doubleword

CWDE - Convert Word to Extended Doubleword (386+)

DAA - Decimal Adjust for Addition

DAS - Decimal Adjust for Subtraction

DEC - Decrement

DIV - Divide

ENTER - Make Stack Frame (80188+)

ESC - Escape

HLT - Halt CPU

IDIV - Signed Integer Division

IMUL - Signed Multiply

IN - Input Byte or Word From Port

INC - Increment

INS - Input String from Port (80188+)

INT - Interrupt

INTO - Interrupt on Overflow

INVD - Invalidate Cache (486+)

INVLPG - Invalidate Translation Look-Aside Buffer Entry (486+)

IRET/IRETD - Interrupt Return

Jxx - Jump Instructions Table

JCXZ/JECXZ - Jump if Register (E)CX is Zero

JMP - Unconditional Jump

LAHF - Load Register AH From Flags

LAR - Load Access Rights (286+ protected)

LDS - Load Pointer Using DS

LEA - Load Effective Address

LEAVE - Restore Stack for Procedure Exit (80188+)

LES - Load Pointer Using ES

LFS - Load Pointer Using FS (386+)

LGDT - Load Global Descriptor Table (286+ privileged)

LIDT - Load Interrupt Descriptor Table (286+ privileged)

LGS - Load Pointer Using GS (386+)

LLDT - Load Local Descriptor Table (286+ privileged)

LMSW - Load Machine Status Word (286+ privileged)

LOCK - Lock Bus

LODS - Load String (Byte, Word or Double)

LOOP - Decrement CX and Loop if CX Not Zero

LOOPE/LOOPZ - Loop While Equal / Loop While Zero

LOOPNZ/LOOPNE - Loop While Not Zero / Loop While Not Equal

LSL - Load Segment Limit (286+ protected)

LSS - Load Pointer Using SS (386+)

LTR - Load Task Register (286+ privileged)

MOV - Move Byte or Word

MOVS - Move String (Byte or Word)

MOVSX - Move with Sign Extend (386+)

MOVZX - Move with Zero Extend (386+)

MUL - Unsigned Multiply

NEG - Two's Complement Negation

NOP - No Operation (90h)

NOT - One's Compliment Negation (Logical NOT)

OR - Inclusive Logical OR

OUT - Output Data to Port

OUTS - Output String to Port (80188+)

POP - Pop Word off Stack

POPA/POPAD - Pop All Registers onto Stack (80188+)

POPF/POPFD - Pop Flags off Stack

PUSH - Push Word onto Stack

PUSHA/PUSHAD - Push All Registers onto Stack (80188+)

PUSHF/PUSHFD - Push Flags onto Stack

RCL - Rotate Through Carry Left

RCR - Rotate Through Carry Right

REP - Repeat String Operation

REPE/REPZ - Repeat Equal / Repeat Zero

REPNE/REPNZ - Repeat Not Equal / Repeat Not Zero

RET/RETF - Return From Procedure

ROL - Rotate Left

ROR - Rotate Right

SAHF - Store AH Register into FLAGS

SAL/SHL - Shift Arithmetic Left / Shift Logical Left

SAR - Shift Arithmetic Right

SBB - Subtract with Borrow/Carry

SCAS - Scan String (Byte, Word or Doubleword)

SETAE/SETNB - Set if Above or Equal / Set if Not Below (386+)

SETB/SETNAE - Set if Below / Set if Not Above or Equal (386+)

SETBE/SETNA - Set if Below or Equal / Set if Not Above (386+)

SETE/SETZ - Set if Equal / Set if Zero (386+)

SETNE/SETNZ - Set if Not Equal / Set if Not Zero (386+)

SETL/SETNGE - Set if Less / Set if Not Greater or Equal (386+)

SETGE/SETNL - Set if Greater or Equal / Set if Not Less (386+)

SETLE/SETNG - Set if Less or Equal / Set if Not greater or Equal

SETG/SETNLE - Set if Greater / Set if Not Less or Equal (386+)

SETS - Set if Signed (386+)

SETNS - Set if Not Signed (386+)

SETC - Set if Carry (386+)

SETNC - Set if Not Carry (386+)

SETO - Set if Overflow (386+)

SETNO - Set if Not Overflow (386+)

SETP/SETPE - Set if Parity / Set if Parity Even (386+)

SETNP/SETPO - Set if No Parity / Set if Parity Odd (386+)

SGDT - Store Global Descriptor Table (286+ privileged)

SIDT - Store Interrupt Descriptor Table (286+ privileged)

SHL - Shift Logical Left

SHR - Shift Logical Right

SHLD/SHRD - Double Precision Shift (386+)

SLDT - Store Local Descriptor Table (286+ privileged)

SMSW - Store Machine Status Word (286+ privileged)

STC - Set Carry

STD - Set Direction Flag

STI - Set Interrupt Flag (Enable Interrupts)

STOS - Store String (Byte, Word or Doubleword)

STR - Store Task Register (286+ privileged)

SUB - Subtract

TEST - Test For Bit Pattern

VERR - Verify Read (286+ protected)

VERW - Verify Write (286+ protected)

WAIT/FWAIT - Event Wait

WBINVD - Write-Back and Invalidate Cache (486+)

XCHG - Exchange

XLAT/XLATB - Translate

XOR - Exclusive OR

sábado, 5 de marzo de 2011

ENSAMBLADOR & DESENSAMBLADO

ENSAMBLADOR


A la hora de crackear hay que tener unos conocimientos basicos de ASM, mientras mas mejor. Los programas son un listado de ordenes que se reproducen en lenguaje maquina, pero que para poder realizarlos tenemos este lenguaje que consiste en una serie de mnemotecnicos que facilitan su interpretacion, cada una de las instrucciones se codifican en una serie de numeros binarios, a traves de un compilador, que lo que hace es traducir una serie de instrucciones dando igual si se programaron en C, C++, pascal, a unos y ceros.... Espero que te hayas bajado los tutoriales que te recomende en el primer capitulo, porque lo que voy a hacer aqui es una breve introduccion a la forma de trabajo y a sus principales instrucciones.

Este lenguaje consta de una instruccion y dos operandos llamados registros en los que se almacenan las cosas, osea que un registro es igual a una variable en otro lenguaje.

Los registros


- AX BX CX DX

Voy a explicar el primero por que los otros tres, quitando algunas particularidades que sirven a la hora de programar son basicamente igual.AX: AX es un registro de 16 bits (16 unos o ceros, o dos bytes) se divide a su vez en otros dos de ocho AL (Low) y AH (High), esto era principalmente en ordenadores anteriores al 386 ya que a partir de estos se expandio creando el registro EAX (Extended) de tamaño 32 bits (Ademas, hoy en dia ¿quien tiene menos de un 486?). Veamoslo graficamente:

Creo que se entiende.


La funcion basica de AX es la de ACUMULADOR en diversas operaciones como MUL o DIV

Hay otras funciones, como la de indicar la funcion de cada interrupcion, pero esto no nos interesa para nuestro proposito ya que es para la programacion en DOS

BX Tambien se divide en EBX, BX, BH y BL y el nombre del registro es BASE

CX Se divide igual que los anteriores, el interes de este radica en que se usa como el numero de repeticiones en los contadores.

DX Uno de los usos mas comunes del registro de Datos, es cuando al realizar un MUL o un DIV el resultado no cabe en AX y se guarda en DX:AX

Ahora vamos a ver los Registros Indices:

          SI           DI           BP           SP.


SI Source Index, Indice Fuente

DI Indice Destino

BP Base pointer, Puntero Base

SP Stack Pointer, puntero de la pila

Los 4 son registros de 16 bits y no se dividen en una parte alta y otra baja


Registros de Segmento:

          CS           DS           SS           ES.

CS: Code segment, o segmento de Codigo, indica donde se halla el programa que se esta ejecutando

DS: Data Segment, o segmento de datos, indica donde lee y escribe el programa los datos por defecto

SS: Stack Segment, segmento de la pila, indica el lugar de la pila

ES: Extra Segment, segmento extra. Es una extension de DS.

Puntero de instruccion: IP (16 bits)

Instruction Pointer, Indica la siguiente instruccion a ejecutar, se encuentra en el segmento especificado por CS

CS e IP en Forman la direcci¢n real de la siguiente instruccion

FLAGS

Bueno, yo creo que con esto andamos sobrados de registros :)

Ahora vamos a ver otra de las cosas importantes y mas sencillas, los FLAGS o BANDERAS. Existe un regitro de 16 bits de tamaño de los cuales 7 no se usan

y que guardan todos los flags

* * * * * * * O D I T S Z A C

Estas son las iniciales, quedate con que cada uno de ellos puede tener un valor, segun la logica booleana un 1 o un 0 y que en funcion de este se produciran distintos eventos.

LA PILA

La pila es un lugar donde se almacenan variables para poder usarlas posteriormente, su modo de funcionamiento corresponde a las siglas inglesas LIFO (Last Input First Output, o lo que es lo mismo ultima entrada primera salida, pero UEPS no queda muy bien ;)) Para entenderlo piensa en lo siguiente, una pila de platos, no puedes sacar el de abajo del todo, que es el primero que hemos puesto porque se romperia todo, tendremos que coger el ultimo que hemos puesto. Los comandos para usar la pila son

PUSH registro

POP registro

Simplemente PUSH pone un valor y POP lo saca

Bueno pues ahora vamos a ver las Ordenes rapidamente, para empezar cuanto antes a desensamblar:

MOV


Sintaxis MOV destino, fuente

El proposito de esta orden es obviamente el de mover un valor de sitio a otro, se copia el termino de mas a la derecha sobre el del centro

Vamos a ver unos ejemplos:

mov ax,bx           ;copia el valor de bx en ax

mov ax,5           ;copia el valor 5 decimal en ax

mov ax,05h           ;copia el valor 5 hexadecimal en ax (5 decimal = 5 hexadecimal)

mov ax,0Eh           ;copia el valor E hexadecimal en ax (E = 14)

mov ax,[bx]           ;copia el valor del offset de bx a ax

CALL


Un call simplemente "llama" a una direccion para continuar con la ejecucion del programa desde alli y hasta encontrar un ret en el que se regresaria al punto anterior:

Se puede hacer un call a una etiqueta o a una direccion, a la hora de crackear nos vamos a encontrar con lo segundo, un ejemplo:

111:110           mov ax, 08h

111:111           call 116

saltariamos a

111:116           mov bx, 0f9H

111:117           ret

ahora continuarimos en

111:112           lo que fuera

Espero que se entienda. Un call lo que hace es romper la ejecucion lineal del programa dando un salto a otro lado.

LOOP


Esto es un bucle, repite un numero de veces (Especificado en CX) una serie de operaciones.

ejemplo:

mov ax,01h           ;AX = 1

mov cx,05h           ;CX = 5 numero de veces a repetir el bucle

XX:

cmp ax,04h           ;Compara AX con 4

je end                   ;Si AX es igual a 4 saltara a END

inc ax                    ;Sino le sumamos uno

LOOP XX           ;y volvemos a realizar el bucle

JUMP (Salto Incondicional)


Esto es un salto, simplemente, como un goto en otros lenguajes

Se puede usar como un salto a una etiqueta o a una direccion, tambien hay saltos lejanos y cercanos, pero no nos interesa mucho.

SALTOS CONDICIONALES

Si no habiais entendido bien el sentido de los FLAGS ahora lo hareis

A diferencia de un JUMP aqui se solo se produce el salto si se cumple una determinada condicion, seria algo asi como un IF... THE ... ELSE en PASCAL

Hay una gran cantidad de saltos y en muchos casos dos o mas son equivalentes aqui va una lista de ellos

JA, JAE JB JBE JNA JNAE JNB JNBE JZ JE JNZ JNE JG JGE JL JLE JNG JNGE

JNL JNLE JC JNC JO JNO JP JNP JPE JPO JS JNS

Bueno, he contado unos 30 pero quedaros de momento con estos dos basicamente


- JZ jump zero, salta cuando el resultado de una operacion es igual

- JNZ jump not zero Lo contrario a lo anterior

- JE igual a JZ

- JNZ jeje, tu mismo :)


MUL

Esta operacion realiza una multiplicacion de un operando por AX y lo guarda aqui, o si excede de tamaño en DX:AX

ejemplo

Tomamos AX con valor 4 y CX con valor 2

pues un MUL CX daria como resultado AX = 8


DIV Similar a MUL pero con la division

IMUL Multiplicacion con signo

IDIV Division con signo

ADD

Su funcion es la de sumar dos terminos,

Si bx = 11010111

y cx = 00110100 un haria esto ADD bx,cx

-----------

100001011 y lo almacenaria en bx

SUB Igual a ADD pero con la resta

DEC

El proposito es el de restar una unidad a un registro

si cx = 09h un DEC CX dejaria las cosas asi: CX=08h

INC

Igual que DEC pero en lugar de restar 1 ud. sumandola

NOP

Esta es la mejor de todas :) Simplemente, no hace nada NO OPERATING

XCHG

Esto intercambia el contenido de dos registros

Tenemos ax=2 y bx=4

XCHG ax,bx ahora ax=4 y bx=2. Facil ¿no?

CMP

Otra de las ordenes principales para nuestro proposito, compara dos registros o un registro y un valor o dos valores....

NOT

Niega el contenido de un registro

Si AX = 01010101 NOT AX => 10101010

AND

Una de las operaciones logicas, actuaria según la siguiente tabla de la verdad

The Art of Assembly Language Programming

Welcome! The Art of Assembly Language Programming is now available in a special edition for Windows. This edition employs the HLA (High Level Assembler) language that makes learning assembly language easier than ever before. If you're comfortable with C/C++ or Pascal, you'll be writing assembly in no time.
The document is available in several forms:
  • The entire text is available as a single PDF/ZIP file for download optimized for printing at 600 DPI.
  • Individual chapters are available for on-line viewing or download. 96-DPI screen resolution versions are available.
Hopefully, one of these formats is perfect for you. If you intend to print all or part of the text, you should download a printer resolution version. It will display on the screen just fine (maybe a little slower). The screen-optimized version, on the other hand, produces a low-resolution print-out and is generally not acceptable for printer output; however, it downloads a bit faster when you're interested in looking at an individual chapter.

Download the book:
Click aqui

EL UNIVERSO DIGITAL DEL IBM PC, AT Y PS/2 Edición 4.0



El Universo Digital del IBM PC, AT y PS/2. (4ª Edición)

Spanish | PDF | Ciriaco García de Celis | 1997 | 371 Páginas | 6.76 MB | No ISBN


Descripción

Este libro pretende cubrir una importante laguna en la bibliografía disponible sobre la programación a nivel de sistemas de los ordenadores compatibles.

El libro quiere reunir en una sola obra la mayoría de la información necesaria para el programador de sistemas, exponiendo toda la información y no sólo lo imprescindible, sin olvidos ni omisiones; también se pretende explicar las técnicas más avanzadas de creación de programas residentes.

Contenido

Prólogo de la edición 4.0 electrónica

0 Prólogo de la tercera edición (1994)

1 Introducción

2 Arquitectura e historia de los microordenadores

3 Microprocesadores 8086/88, 286, 386, 486 y Pentium

4 Juego de instrucciones 80x86

5 El lenguaje ensamblador del 80x86

6 El ensamblador en entorno DOS

7 Arquitectura del PC, AT y PS/2 bajo DOS

8 La gestión de memoria del DOS

9 Subprocesos, recubrimientos y filtros

10 Programas residentes

11 Controladores de dispositivo

12 El hardware de apoyo al microprocesador

13 El ensamblador y el lenguaje C

Descargar aqui