Search icon CANCEL
Arrow left icon
Explore Products
Best Sellers
New Releases
Books
Videos
Audiobooks
Learning Hub
Conferences
Free Learning
Arrow right icon
Arrow up icon
GO TO TOP
Python Penetration Testing Cookbook

You're reading from   Python Penetration Testing Cookbook Practical recipes on implementing information gathering, network security, intrusion detection, and post-exploitation

Arrow left icon
Product type Paperback
Published in Nov 2017
Publisher Packt
ISBN-13 9781784399771
Length 226 pages
Edition 1st Edition
Languages
Arrow right icon
Author (1):
Arrow left icon
Rejah Rehim Rejah Rehim
Author Profile Icon Rejah Rehim
Rejah Rehim
Arrow right icon
View More author details
Toc

Table of Contents (15) Chapters Close

Preface 1. Why Python in Penetration Testing? FREE CHAPTER 2. Setting Up a Python Environment 3. Web Scraping with Python 4. Data Parsing with Python 5. Web Scraping with Scrapy and BeautifulSoup 6. Network Scanning with Python 7. Network Sniffing with Python 8. Scapy Basics 9. Wi-Fi Sniffing 10. Layer 2 Attacks 11. TCP/IP Attacks 12. Introduction to Exploit Development 13. Windows Exploit Development 14. Linux Exploit Development

Python 3 language basics and differences

Python 3.0 was first released in 2008. Even though Python 3 supposed to be backward incompatible with other old version, many of its features are backported to support older versions. It is better to have an idea of Python versions and its differences for better understanding of our recipes.

Getting ready

If you are new to Python, you might be confused about the different versions that are available. Before looking into the further details, let's have a look at the most recent major releases of Python and the key differences between Python 2 and Python 3.

How to do it...

These are the major Python versions available.

Python 2

Published in late 2000, it has many more programmatic features including a cycle-detecting garbage collector that helps to automate memory management. The increased unicode support that helps to standardize characters, and list comprehensions that help to create a list based on existing lists are other features. In Python version 2.2, the types and classes are consolidated into one hierarchy.

Python 3

Python 3 was released in late 2008, to update and fix the built-in design flaws of the prior versions of Python. The main focus of Python 3 development was to clean up the code base and reduce redundancy.

In the beginning, the adoption of Python 3 was a very slow process due to its backward incompatibility with Python 2. Moreover, many package libraries were only available for Python 2. Later, there was an increased adoption for Python 3 as the development team announced that there will be an end of life for Python 2 support and more libraries have been ported or migrated to Python 3.

Python 2.7

Python 2.7 was published in 2010 and was planned as the last release for 2.x versions. Its intention was to make it easier for Python 2.x users to port their features and libraries over to Python 3 by providing compatibility between the two, which included a unit test to support test automation, argparse for parsing command-line options, and more convenient classes in collections.

Key differences between Python 2.7 and Python 3

Here are some main differences between Python 2.x and Python 3:

  • Print: In Python 2, print is a statement. So, there is no need to wrap the text in parentheses for printing. But in Python 3 print is a function. So, you have to pass the string you need to print to the function in parentheses.
  • Integer division: Python 2 considers numbers without any digits after the decimal point as integers, which may lead to some unexpected results during division.
  • List comprehension loop variables leak: In Python 2, giving the variable that is iterated over in a list comprehension leaks the variable into surrounding scope, this list comprehension loop variable leak bug has been fixed in Python 3.
  • Unicode strings: Python 2 requires you to mark the unicode string explicitly with the u prefix. But, Python 3 stores strings as unicode by default.
  • Raising exceptions: Python 3 requires different syntax for raising exceptions.

The progression from Python 2.x to Python 3.x is happening slowly, but it is underway. It is good to be mindful that there are material differences between Python 2.x and Python 3 as you may need to deal with code that is written in the version with which you are less familiar.

You have been reading a chapter from
Python Penetration Testing Cookbook
Published in: Nov 2017
Publisher: Packt
ISBN-13: 9781784399771
Register for a free Packt account to unlock a world of extra content!
A free Packt account unlocks extra newsletters, articles, discounted offers, and much more. Start advancing your knowledge today.
Unlock this book and the full library FREE for 7 days
Get unlimited access to 7000+ expert-authored eBooks and videos courses covering every tech area you can think of
Renews at €18.99/month. Cancel anytime