Skip to content

Latest commit

 

History

History
63 lines (48 loc) · 1.51 KB

SecurityRelatedCoding.md

File metadata and controls

63 lines (48 loc) · 1.51 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

    • O(n), but O(n!) when matching.
    • It's useful to be familiar with basic regex syntax, too.
  • Recursion

    • And why it is rarely used.
  • 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