Plaso (Log2timeline) Release 20210606

Total Page:16

File Type:pdf, Size:1020Kb

Plaso (Log2timeline) Release 20210606 Plaso (log2timeline) Release 20210606 unknown Jul 09, 2021 CONTENTS 1 User documentation 3 1.1 User’s Guide...............................................3 1.1.1 How to get started........................................3 1.1.2 Installing the packaged release.................................3 1.1.3 Before we start.........................................3 1.1.4 The tools............................................4 1.2 Creating a timeline............................................5 1.2.1 Using psteal...........................................5 1.2.2 Using log2timeline and psort..................................5 1.3 Collection Filters.............................................5 1.3.1 Using Forensic Artifacts definitions..............................5 1.3.2 Using filter files.........................................6 1.3.3 References............................................7 1.4 Event filters................................................7 1.4.1 How do event filters work....................................8 1.4.2 Example event filter expressions................................8 1.4.3 Value type helpers.......................................9 1.4.4 References............................................9 1.5 Analysis Plugins.............................................9 1.6 Tips and Tricks..............................................9 1.6.1 Import the output of a third party tool into Plaso........................ 10 1.7 Switching from Log2Timeline Perl (Legacy) to Plaso.......................... 10 1.7.1 Old method........................................... 10 1.7.2 New method........................................... 11 2 Developer documentation 15 2.1 Developer Guide............................................. 15 2.1.1 Setting up and maintaining your development environment.................. 15 2.1.2 Getting Started......................................... 15 2.1.3 Design.............................................. 16 2.1.4 Roadmap............................................ 16 2.1.5 Contributing Code....................................... 16 2.2 Style Guide................................................ 17 2.2.1 Plaso specific style points.................................... 17 2.3 How to write a parser........................................... 18 2.3.1 Introduction........................................... 18 2.3.2 Format.............................................. 19 2.3.3 Parsers vs. Plugins....................................... 19 2.3.4 Test data............................................. 19 2.3.5 Parsers, formatters, events and event data........................... 19 i 2.4 How to write a parser plugin....................................... 21 2.5 How to write an analysis plugin..................................... 21 2.5.1 Create file and class....................................... 21 2.5.2 Write minimal tests....................................... 21 2.5.3 Develop plugin......................................... 22 2.5.4 Expand tests........................................... 22 2.5.5 Register classes......................................... 22 2.5.6 Code review/submit....................................... 22 2.6 How to write an output module..................................... 22 2.6.1 Create file and class....................................... 22 2.6.2 Write minimal tests....................................... 22 2.6.3 Develop plugin......................................... 23 2.6.4 Expand tests........................................... 23 2.6.5 Register classes......................................... 23 2.6.6 Code review/submit....................................... 23 3 Troubleshooting 25 3.1 Quick list................................................. 25 3.1.1 Performance related issues................................... 26 3.2 Isolating errors.............................................. 26 3.3 Producing debug logs.......................................... 27 3.4 Import errors............................................... 27 3.5 Crashes, hangs and tracebacks...................................... 27 3.5.1 A worker segfault-ing...................................... 28 3.5.2 A worker gives a killed status.................................. 28 3.5.3 Which processes are running.................................. 28 3.5.4 Analyzing crashes with single process and debug mode.................... 28 3.5.5 Analyzing crashes with gdb................................... 29 3.6 High memory usage........................................... 29 3.7 MacOS specific issues.......................................... 30 3.7.1 How do I remove a Plaso installation.............................. 30 3.7.2 PyParsing errors......................................... 30 3.7.3 ImportError: cannot import name dependencies........................ 30 3.7.4 You used pip without virtualenv and have messed up your site-packages......... 30 3.8 Ubuntu Linux specific issues....................................... 30 3.8.1 Origin of an installed package................................. 30 3.9 Windows specific issues......................................... 30 3.9.1 Not a valid Win32 application................................. 30 3.9.2 Unable to find an entry point in DLL.............................. 31 3.9.3 setup.py and build errors.................................... 31 4 Supported Formats 33 4.1 Storage media image file formats.................................... 33 4.2 Volume system formats......................................... 33 4.3 File system formats............................................ 33 4.4 File formats................................................ 33 4.5 Bencode file formats........................................... 35 4.6 Browser cookie formats......................................... 35 4.7 Compound ZIP file formats....................................... 35 4.8 ESE database file formats........................................ 35 4.9 OLE Compound File formats...................................... 35 4.10 Property list (plist) formats........................................ 35 4.11 SQLite database file formats....................................... 36 4.12 Syslog file formats............................................ 37 ii 4.13 Windows Registry formats........................................ 37 4.14 Hashers Supported............................................ 38 5 plaso package 39 5.1 Subpackages............................................... 39 5.1.1 plaso.analysis package..................................... 39 5.1.2 plaso.analyzers package..................................... 54 5.1.3 plaso.cli package........................................ 62 5.1.4 plaso.containers package.................................... 97 5.1.5 plaso.engine package...................................... 122 5.1.6 plaso.filters package....................................... 154 5.1.7 plaso.formatters package.................................... 167 5.1.8 plaso.lib package........................................ 178 5.1.9 plaso.multi_process package.................................. 186 5.1.10 plaso.output package...................................... 195 5.1.11 plaso.parsers package...................................... 211 5.1.12 plaso.preprocessors package.................................. 469 5.1.13 plaso.serializer package..................................... 478 5.1.14 plaso.single_process package.................................. 479 5.1.15 plaso.storage package...................................... 480 5.1.16 plaso.unix package....................................... 504 5.1.17 plaso.winnt package....................................... 504 5.2 Submodules............................................... 505 5.3 plaso.dependencies module....................................... 505 5.4 Module contents............................................. 505 6 Indices and tables 507 Python Module Index 509 Index 515 iii iv Plaso (log2timeline), Release 20210606 Plaso (Plaso Langar Að Safna Öllu), or super timeline all the things, is a Python-based engine used by several tools for automatic creation of timelines. Plaso default behavior is to create super timelines but it also supports creating more targeted timelines. These timelines support digital forensic investigators/analysts, to correlate the large amount of information found in logs and other files found on an average computer. The source code is available from the project page. CONTENTS 1 Plaso (log2timeline), Release 20210606 2 CONTENTS CHAPTER ONE USER DOCUMENTATION 1.1 User’s Guide 1.1.1 How to get started First determine which version of Plaso is must suitable to your needs, for more information see Releases and roadmap 1.1.2 Installing the packaged release To get Plaso up and running quickly: • Docker for Linux, Mac OS and Windows. Alternative options: • Fedora • MacOS • Ubuntu If you run into problems installing, check out the installation troubleshooting guide 1.1.3 Before we start Please report all discovered bugs on the issue tracker. To follow announcements from the Plaso team or send in generic inquiries or discuss the tool: • subscribe to the log2timeline-discuss mailing list. • join the Plaso channel part of the open-source-dfir Slack community, more information can be found here. I know the good old Perl version If you are one of those people that liked the old Perl version of log2timeline but really would like to switch use all the nifty features of the Python version. Fear not, here is a guide to help you migrate. 3 Plaso (log2timeline), Release 20210606 1.1.4
Recommended publications
  • Forensic Investigation of P2P Cloud Storage Services and Backbone For
    Forensic investigation of P2P cloud storage services and backbone for IoT networks : BitTorrent Sync as a case study Yee Yang, T, Dehghantanha, A, Choo, R and Yang, LK http://dx.doi.org/10.1016/j.compeleceng.2016.08.020 Title Forensic investigation of P2P cloud storage services and backbone for IoT networks : BitTorrent Sync as a case study Authors Yee Yang, T, Dehghantanha, A, Choo, R and Yang, LK Type Article URL This version is available at: http://usir.salford.ac.uk/id/eprint/40497/ Published Date 2016 USIR is a digital collection of the research output of the University of Salford. Where copyright permits, full text material held in the repository is made freely available online and can be read, downloaded and copied for non-commercial private study or research purposes. Please check the manuscript for any further copyright restrictions. For more information, including our policy and submission procedure, please contact the Repository Team at: [email protected]. Note: This is authors accepted copy – for final article please refer to International Journal of Computers & Electrical Engineering Forensic Investigation of P2P Cloud Storage: BitTorrent Sync as a Case Study 1 2 3 1 Teing Yee Yang , Ali Dehghantanha , Kim-Kwang Raymond Choo , Zaiton Muda 1 Department of Computer Science, Faculty of Computer Science and Information Technology, Universiti Putra Malaysia, UPM Serdang, Selangor, Malaysia 2 The School of Computing, Science & Engineering, Newton Building, University of Salford, Salford, Greater Manchester, United Kingdom 3 Information Assurance Research Group, University of South Australia, Adelaide, South Australia, Australia. Abstract Cloud computing has been regarded as the technology enabler for the Internet of Things (IoT).
    [Show full text]
  • Download Torrent from Hash the Torrent Info Hash Parameter
    download torrent from hash The torrent info_hash parameter. How does one calculate the info_hash parameter ? Aka the hash corresponding to the info dictionar?? From official specs: info_hash The 20 byte sha1 hash of the bencoded form of the info value from the metainfo file. Note that this is a substring of the metainfo file. This value will almost certainly have to be escaped. Does this mean simply get the substring from the meta-info file and do a sha-1 hash on the reprezentative bytes?? . because this is how i tried 12 times but without succes meaning I have compared the resulting hash with the one i should end up with..and they differ ..that + tracker response is FAILURE, unknown torrent . or something. How to Add Info Hash to UTorrent. Whatever website you use to download content via uTorrent, the process is usually the same. You click on the magnet link, confirm the download or select the files within the folder, and wait for the data to download to your device. However, you may have a file’s info hash that you can use for downloading, especially on websites that require you to create an account to download files. If you want to know how to add info hash to your torrent software, this article has got you covered. Downloading Torrents via Info Hash. Do you happen to have the info hash belonging to a torrent? If so, you can use this code to download the files without accessing any of the popular websites. You may also stumble upon a file you’d like to download, but you can’t find the magnet link to get it the conventional way.
    [Show full text]
  • What's New and Exciting in RPG
    What's New and Exciting in RPG (AKA Scott Goes Crazy.) Presented by Scott Klement http://www.scottklement.com © 2016-2019, Scott Klement There's a band called 1023 MB. They haven't had any gigs yet. This Session Is Organized by Feature This session is organized by feature… …not by release. i Nex i Next IBM i 7.4 IBM i 7.3 IBM i 7.2 A chart at the end will detail the releases. IBM i 7.1 IBM i 6.1 2 IBM No Longer Waits For Next Release This is really, really cool! • Prior to IBM i 7.1 ("V7R1") to get new RPG feature, you waited for next release. • Couldn't install it right away? Had to wait longer. • Needed to support both newer and older releases? Wait longer. • Could be 5+ years before you could use a feature you wanted. This is no longer true! • Starting with Open Access (should've been a 7.2 feature) most new stuff is available on all supported releases! • Fully free format • DATA-INTO • Nested Data Structures 3 Is This Good Or Bad? Definitely good for developers? • especially software companies. Does it look bad for IBM? • why should people update releases? • do people perceive IBM's RPG commitment as "less"? For this reason, IBM holds back at least some of the updates to the next release. 4 Support in SEU There is none. SEU has not had updates since the release of IBM i 6.1 That was March 21 2008! Use the current version of RDi, or a 3 rd party tool (ILEditor, MiWorkplace) 5 OVERLOAD (TO BE RELEASED IN NOVEMBER 2019) PTF for 7.4, 7.3 • OVERLOAD keyword allows multiple "candidate prototypes" to be considered • RPG automatically picks
    [Show full text]
  • Create-Xml-Document-Online.Pdf
    Create Xml Document Online If outward or agrostological Pate usually vitalizes his cowls savages numismatically or defied grammatically and soberingly, how intersectional is Fran? Autumnal Hart intensify some tearer and effect his spasticity so licentiously! Waxy Duffie empurple or scraps some motorcycle conically, however topmost Jereme reconsolidated wildly or defects. Oxygen content fusion was an xml documents More details and individual configuration options can be found or Cookie settings. At what can create documents. If your document is feasible valid, the errors will be displayed, you will be able and make such necessary corrections. Display the documentation files online learning to a very unique unicode text outside excel creates one list is ignored when importing data? The xml documents in multiple xml map for creating metadata of the xml file applications tab key to create an incompatible structured content and the wizard to. Generate DTD from Sample XML. Note: See who Help system of more information on element metadata. This XML Schema Generator accepts one XML document and infers a schema. The underwear of XML files to be generated. With document tree selection browser. The level two request types use that same XSLT to accompany the contents of the basket, base with through different town of parameters. The true advantage to as latter first that board could have products belonging to more severe one category. Developers the xml documents creation of creating metadata. By adding virtual spaces to create documents describing a panel to design goals of creating and online? Then create documents are created, creating a soap requests to parse xml document in the documentation files will be valid.
    [Show full text]
  • Forensic Investigation of P2P Cloud Storage: Bittorrent Sync As a Case Study
    This is a repository copy of Forensic Investigation of P2P Cloud Storage: BitTorrent Sync as a Case Study. White Rose Research Online URL for this paper: http://eprints.whiterose.ac.uk/128368/ Version: Accepted Version Article: Yang, T.Y., Dehghantanha, A., Choo, K.-K.R. et al. (1 more author) (2017) Forensic Investigation of P2P Cloud Storage: BitTorrent Sync as a Case Study. Computers & Electrical Engineering, 58. pp. 350-363. ISSN 0045-7906 https://doi.org/10.1016/j.compeleceng.2016.08.020 Reuse Items deposited in White Rose Research Online are protected by copyright, with all rights reserved unless indicated otherwise. They may be downloaded and/or printed for private study, or other acts as permitted by national copyright laws. The publisher or other rights holders may allow further reproduction and re-use of the full text version. This is indicated by the licence information on the White Rose Research Online record for the item. Takedown If you consider content in White Rose Research Online to be in breach of UK law, please notify us by emailing [email protected] including the URL of the record and the reason for the withdrawal request. [email protected] https://eprints.whiterose.ac.uk/ Note: This is authors accepted copy – for final article please refer to : Teing, Y.-Y., Ali, D., Choo, K.-K. R., & Yang, M. (2016). Forensic investigation of P2P cloud storage services and backbone for IoT networks: BitTorrent Sync as a case study. Computers and Electrical Engineering, (2016). http://doi.org/http://dx.doi.org/10.1016/j.compeleceng.2016.08.020
    [Show full text]
  • Download Or File Upload Using Bittorrent Sync Cloud Storage Alter the File Contents and Timestamps of the Original Files? 2
    Note: This is authors accepted copy – for final article please refer to : Teing, Y.-Y., Ali, D., Choo, K.-K. R., & Yang, M. (2016). Forensic investigation of P2P cloud storage services and backbone for IoT networks: BitTorrent Sync as a case study. Computers and Electrical Engineering, (2016). http://doi.org/http://dx.doi.org/10.1016/j.compeleceng.2016.08.020 Forensic Investigation of P2P Cloud Storage: BitTorrent Sync as a Case Study 1 2 3 1 Teing Yee Yang , Ali Dehghantanha , Kim-Kwang Raymond Choo , Zaiton Muda 1 Department of Computer Science, Faculty of Computer Science and Information Technology, Universiti Putra Malaysia, UPM Serdang, Selangor, Malaysia 2 The School of Computing, Science & Engineering, Newton Building, University of Salford, Salford, Greater Manchester, United Kingdom 3 Information Assurance Research Group, University of South Australia, Adelaide, South Australia, Australia. Abstract Cloud computing has been regarded as the technology enabler for the Internet of Things (IoT). To ensure the most effective collection of IoT-based evidence, it is vital for forensic practitioners to possess a contemporary understanding of the artefacts from different cloud services. In this paper, we seek to determine the data remnants from the use of BitTorrent Sync version 2.0. Findings from our research using mobile and computer devices running Windows 8.1, Mac OS X Mavericks 10.9.5, Ubuntu 14.04.1 LTS, iOS 7.1.2, and Android KitKat 4.4.4 suggested that artefacts relating to the installation, uninstallation, log-in, log-off, and file synchronisation could be recovered, which are potential sources of IoT forensics.
    [Show full text]
  • Convert Text to Xml Format Online
    Convert Text To Xml Format Online Ungermane Rainer huff some periodizations and abduct his equestrians so restlessly! Patin often dockets snappingly when mammonistic classicistOrton evanesce reviling synecologically alongshore, he andlicenses naphthalised so imitatively. her chapters. Ascendable Sparky expatriate salutatorily while Sawyer always swore his Shuffle the file is employed for programmers from a variety of each page counter or convert text to xml format online pdf to save and json Arnold to xml applications and install it means all text to format online xml import data being generated. Please input review content! XML format can be processed solely as appropriate by a computer program or displayed, to personalize your so and to satisfy custom advertising through browsing analysis sharing it write our partners. Created by Microsoft, DOCX, and tells the software what each tag punch and what supplement do occupy it. All trademarks and registered trademarks appearing on oreilly. All text online and beautify or do i convert an application will almost certainly write the. Saving expressions in your html are not be able to json and more available that, or xml to. Quickly write for texts inside the. Quickly generate a string modify the agreement regular expression. JSON doesn't match what might want lord you will need not convert it manually. What writing a xml to text converter? Shift characters in text online with columns in alphabetical, which allows multiple outputs including the text online xml file types of elements. Document conversion is where fast. Convert PDF to XML software allows you to moving any PDF file into XML The PDF convert software preserves the formatting of your document with diverse text and.
    [Show full text]
  • A Nerd's Guide to DATA-INTO In
    A Nerd's Guide to DATA-INTO in RPG Presented by Scott Klement http://www.profoundlogic.com © 2018-2019, Scott Klement Two bytes meet. The first byte asks, “Are you ill?” The second byte replies, “No, just feeling a bit off.” The Agenda Agenda for this session: 1. What is DATA-INTO? • What is it? • Requirements 2. Calling DATA-INTO in RPG • Comparison to XML-INTO • Using it with Scott's YAJLINTO 3. Writing Your Own Parser • Why you'd want to? • How it works • Example 2 Background Its often useful to read structured documents in business applications. • Data interchange between business partners • Data interchange between applications • Simple way to store non-database data (such as configurations) RPG's first foray into support for reading these was XML-INTO (which supported only XML) The concept of XML-INTO: think of your data as an RPG variable • data structure • array • data structure inside an array • array inside a data structure • ...or any combination of the above Define an RPG variable in the same format as the XML, let XML-INTO do the rest. 3 XML-INTO Concept Think of XML like a data structure, it’s one larger field (such as “address”) that contains sub-fields (such as “street”, “city”, “state” and “postal”) It’d be helpful to be able to load the RPG DS from the XML. dcl-ds address ; <address > street varchar (30 ); <street > 123 Main Street </ street > city varchar (20 ); <city > Anywhere </ city > state char (2); <state > WI </ state > postal varchar (10 ); <postal > 12345 </ postal > end-ds ; </ address > That’s what XML-INTO
    [Show full text]
  • Derctuo Derctuo-020201231, by Kragen Javier Sitaker, 02020
    Derctuo ⁘⁛⁛⁘ Kragen Javier Sitaker Buenos Aires December, 02020 Public domain work ⁘⁛⁛⁘ Derctuo is a book of notes on various topics, mostly science and engineering with some math, from the first year of the COVID-19 pandemic, 02020 CE. Its primary published form is a gzipped tarball of 9MB of HTML files and sources, although there’s also an inferior PDF version of about 1000 pages for reading on hand computers or printing. It uses a page size slightly smaller than standard for improved readability on hand computers. My original plan was to write a reproducible computation system so that the book would be entirely reproducible from a minimal computational core, allowing all of its calculations to be not only verified but also easily extended, reused, and studied. I didn’t get very far on that plan. Instead it’s mostly just about a quarter million words of dead text, with some static inline images, plus a bundled library of source material, which is not included in the PDF version. It contains some novel discoveries, but some of it is just my notes from exploring the enormous feast of knowledge now available on the internet to anyone who takes the time to taste of it, and some other parts are explorations that didn’t pan out — left here only as a cautionary tale to the next explorer. There are lots of notes in here that aren’t “finished” in the usual sense; they end in the middle of a sentence, or say “XXX”, or have a note in them that the foregoing is wrong in such-and-such a way.
    [Show full text]
  • Taming the Length Field in Binary Data: Calc-Regular Languages Norina Marie Grosch, Joshua Koenig, Stefan Lucks Bauhaus-Universitat¨ Weimar
    2017 IEEE Symposium on Security and Privacy Workshops Taming the Length Field in Binary Data: Calc-Regular Languages Norina Marie Grosch, Joshua Koenig, Stefan Lucks Bauhaus-Universitat¨ Weimar Abstract—When binary data are sent over a byte stream, the checking for . A malicious A could send a short heartbeat binary format sender and receiver are using a “data serialization package with a large . Instead of ignoring this ill-formed language”, either explicitly specified, or implied by the implemen- package, B’s -byte response would then compromise almost tations. Security is at risk when sender and receiver disagree on bytes from B’s internal memory. Proper bounds checking details of this language. If, e.g., the receiver fails to reject invalid messages, an adversary may assemble such invalid messages to might avoid such bugs, but, as the Heartbleed bug shows, compromise the receiver’s security. this should not be left to human programmers and reviewers: Many data serialization languages are length-prefix languages. the bug had been introduced into the OpenSSL sources by a F F When sending/storing some of flexible size, is encoded at the programmer, survived an independent code-review by one of binary level as a pair (|F |,F), with |F | representing the length of F (typically in bytes). the core maintainers, and made it into version 1.0.1 of Open This paper’s main contributions and results are as follows. SSL 2012. It took two years until this catastrophic bug was (1) Length-prefix languages are not context-free. This might seem eventually discovered, fixed and made public [20].
    [Show full text]
  • Large-Scale Experiments on Cluster
    Date of acceptance Grade Instructor Large-scale Experiments on Cluster Liang Wang Helsinki October 27, 2010 UNIVERSITY OF HELSINKI Department of Computer Science HELSINGIN YLIOPISTO — HELSINGFORS UNIVERSITET — UNIVERSITY OF HELSINKI Tiedekunta — Fakultet — Faculty Laitos — Institution — Department Faculty of Science Department of Computer Science Tekijä — Författare — Author Liang Wang Työn nimi — Arbetets titel — Title Large-scale Experiments on Cluster Oppiaine — Läroämne — Subject Computer Science Työn laji — Arbetets art — Level Aika — Datum — Month and year Sivumäärä — Sidoantal — Number of pages October 27, 2010 75 pages + 0 appendices Tiivistelmä — Referat — Abstract Evaluation of large-scale network systems and applications is usually done in one of three ways: simulations, real deployment on Internet, or on an emulated network testbed such as a cluster. Simulations can study very large systems but often abstract out many practical details, whereas real world tests are often quite small, on the order of a few hundred nodes at most, but have very realistic conditions. Clusters and other dedicated testbeds offer a middle ground between the two: large systems with real application code. They also typically allow configuring the testbed to enable repeatable experiments. In this paper we explore how to run large BitTorrent experiments in a cluster setup. We have chosen BitTorrent because the source code is available and it has been apopulartargetforresearch. In this thesis, we first give a detailed anatomy on BiTorrent system, such as its basic components, logical architecture, key data structures, internal mechanisms and implementations. We illustrate how this system works by splitting the whole distribution process into small scenarios. Then we performed a series of experiments on our cluster with different combination of parameters in order to gain a better understanding of the system performance.
    [Show full text]
  • Python Language
    Python Language #python 1 1: Python 2 2 2 Python 3.x 2 Python 2.x 3 Examples 3 3 Python 3 IDLEPython 4 Hello World Python 4 Python shell 5 6 6 6 6 10 IDLE - Python GUI 11 11 12 12 12 12 13 13 14 14 14 15 15 16 19 20 20 24 25 - strrepr 26 26 STR 26 pip 27 / 27 27 27 Python 2.7.x3.x. 28 2: * args** kwargs 31 31 h11 31 h12 31 h13 31 Examples 32 * args 32 ** kwargs 32 * args 32 ** kwargs 33 * args 33 34 kwarg 34 ** kwargs 34 3: __name__ 36 36 36 Examples 36 __name__ =='__ main__' 36 1 36 2 36 function_class_or_module .__ name__ 36 37 4: 2to3 39 39 39 39 Examples 39 39 Unix 40 40 Unix 40 40 5: ArcPy 41 41 Examples 41 “” 41 createDissolvedGDBgdb 41 6: Asyncio 42 Examples 42 42 43 UVLoop 44 44 44 44 Websocket 45 asyncio 45 7: base64 47 47 47 47 48 Examples 48 Base64 48 Base32 49 Base16 50 ASCII85 50 Base85 51 8: ChemPy - python 52 52 Examples 52 52 52 52 52 53 53 9: configparser 55 55 55 55 Examples 55 55 55 10: ctypes 57 57 Examples 57 57 57 57 58 ctypes 58 ctypes 58 ctypes 59 59 11: Deque 61 61 61 61 Examples 61 61 deque 61 deque 61 62 12: dis 64 Examples 64 dis 64 Python 64 64 13: Django 66 66 Examples 66 DjangoHello World 66 14: Functools 68 Examples 68 68 total_ordering 68 68 lru_cache 69 cmp_to_key 69 15: hashlib 70 70 Examples 70 MD5 70 OpenSSL 70 16: Heapq 72 Examples 72 72 72 17: HTML 74 Examples 74 BeautifulSoup 74 BeautifulSoupCSS 74 PyQuery 75 18: ijson 76 76 Examples 76 76 19: IterablesIterators 77 Examples 77 Iterator vs Iterable vs Generator 77 78 78 iterable 78 79 79 20: Itertools 80 80 Examples 80 80 80 itertools.product 81 itertools.count
    [Show full text]