Skip to content

Latest commit

 

History

History
63 lines (48 loc) · 1.59 KB

File metadata and controls

63 lines (48 loc) · 1.59 KB

Security Related Coding & algorithms

  • The basics

    • Conditions (if, else)
    • Loops (for loops, while loops)
    • Dictionaries
    • Slices/lists/arrays
    • String/array operations (split, contaings, length, regular expressions)
    • Pseudo code (concisely describing your approach to a problem)
  • Data structures

    • Dictionaries / hash tables (array of linked lists, or sometimes a BST)
    • Arrays
    • Stacks
    • SQL/tables
    • Bigtables
  • Sorting

    • Quicksort, merge sort
  • Searching

    • Binary vs linear
  • Big O

    • For space and time
  • Regular expressions

    • Typically O(n) to match, but backtracking engines can hit exponential O(2^n) worst case (catastrophic backtracking)
    • It's useful to be familiar with basic regex syntax, too
  • Recursion

    • And when to prefer iteration instead (stack depth / performance)
  • Python

    • List comprehensions and generators [ x for x in range() ]
    • Iterators and generators
    • Slicing [start:stop:step]
    • Regular expressions
    • Types (dynamic types), data structures
    • Pros and cons of Python vs C, Java, etc.
    • Understand common functions very well, be comfortable in the language

Security themed coding challenges

  • Cyphers / encryption algorithms

    • Be able to implement basic cyphers
  • Parse arbitrary logs

    • Practice text parsing
  • Web scrapers

    • Another way to practice text parsing
  • Port scanners

    • Practice parsing network information
  • Botnets

    • How would you build ssh botnet
  • Password bruteforcer

  • Scrape meta data from PDFs

  • Script to recover deleted items

  • A program that looks for malware signatures in binaries / code samples