Skip to content

What we will need

System requirements

To be able to follow this book, a Linux distribution that supports NPM, Python and clang/gcc/g++ is required, so any major one should suffice (I will be working on a debian machine throughout the book). For the Windows part, Windows 10 is what I will be using. You are free to use older versions of Windows if you want.

Virtual machines are ideal; however, they are not required unless you intend to run malicious applications ;).

Software requirements

For the most part this is what we will need:

  1. Python 3.7 or greater (Still supports Python 2.7 at the time of writing)
  2. Clang (Personal preference, you can use gcc or any other C compiler)
  3. NPM for typescript usage (Not required, but recommended)
  4. (Windows) Visual C++ or GCC.
  5. (MacOS) XCode for Swift/Objective-C.

During this book we will be using Javascript(JS) for instrumentation code (but will show some equivalent examples in TypeScript too) and Python to interface with Frida when needed but, you are free to use a different language (Java, Swift...) to interface with Frida if you wish.

Programming language requirements

Although most information displayed here will be explained in detail, the following knowledge will make this book easier to understand:

  1. General programming concepts.
  2. JavaScript and/or Typescript knowledge.
  3. Basic Python knowledge.
  4. Understanding of C language basics and pointers.

(*) If you want to follow the MacOS part, Objective-C knowledge is recommended.