Learn in-demand software security skills

At ADA Logics we are proud to offer training courses that future-proof our students with skills to solve real world problems.

Our courses equip students and professionals with capabilities that are in demand here and now as well as the fundamental understanding of computing that they can build future skills upon. As a student you also become a self-learner, as you will get acquainted with the core elements of the topic of study and can use that level to ask critical and specific questions from the existing community to dive deeper into to the topic on your own.

software security topics

Online courses

Would you like to take our courses at your own pace and at any time that fits your schedule? Online training is a great way to study advanced software security topics around a daytime job or university classes. With our online-based courses you get the same value as instructor-led courses with all material available whenever and wherever. You can go through every part as many times you want and you can skip through and refresh parts. If you put in the time with your course, you will graduate with a strong knowledge of the subject and well equipped to solve problems that the world is facing right now.

Lecture notes

Foundations Of Reverse Engineering

In this foundational course you dive into the fundamentals of computer systems and the principles on which software is designed and executed on computers. With this knowledge you are introduced to the toolchain used to reverse engineer binary applications. The theoretical material in this course opens up a lot of doors for you in the world of software security, and you will be capable of utilizing this in other disciplines in software security as well.

Skills and concepts you will learn
x86-64 Assembly Language Assembly instructions Debuggers Linux debugging Windows debugging Disassemblers Ghidra Binary analysis Bits and bytes Hexademical Hex-viewers Programs represented as data

Applied Source Code Fuzzing

This technique is gaining massive popularity in the security community for one simple reason: Fuzzing has proven itself to be very effective in discovering bugs and vulnerabilities in software systems. In this course you will not only learn to use the technique, but you will be introduced to the latest methods as well. Having finished this course, you will be able to start finding bugs using fuzzing and go deeper into the topic all on your own.

Skills and concepts you will learn
LibFuzzer Sanitizers Coverage-guided fuzzing Mutation-based fuzzing Generational fuzzing In-memory fuzzing Instrumentation Coverage visualisation Structure-aware fuzzing Grammar-based fuzzing Chromium-fuzzing Real-world fuzzing Vulnerability analysis Memory corruption Vulnerability analysis

Understanding Code Injections From Beginner To Advanced

Code injection is a technique that is becoming increasingly prevalent in attacks and data breaches. Both malware writers and dedicated penetration teams rely on these techniques to bypass defenses and achieve persistence. This course gives a comprehensive coverage of code injection techniques and will teach the student how to analyse, reverse engineer and write applications that use code injections. As such, this course is focused on both defensive and offensive techniques as well as development and code analysis.

Skills and concepts you will learn
Process injection evasion full-system propagation AV-bypass Code-reuse attacks ROP Reverse engineering Malware unpacking Import table destruction Dynamic analysis End-point protection Red-teaming

On-premise courses

Would you like a training course delivered on your own premises? We offer technical software security classroom courses held at a location of your choosing. Our instructor will go through the material with the students and assist with the practical training exercises.
All your students have to bring is laptop with sufficient computing power to run the necessary tools, and ADA Logics will make sure every student has access to all necessary material to learn.

LLVM In-Depth For Security Engineering And Program Analysis

LLVM is a collection of modules and software packages for program analysis and compiler technologies that is used to write security-aware compilers, sophisticated fuzzers, large-scale vulnerability discovery techniques, symbolic executors and much more. This course is centred around two core parts. First, it will cover the internals of LLVM and how to write applications that use LLVM to solve program analysis problems. Second, it will introduce the student to several important open-source security tools that use LLVM and are already deployed by many enterprises.

Skills and concepts you will learn
Clang Program transformation Full-system propagation Abstract-syntax tree Intermediate-representation LLVM IR Exploit mitigation Software hardening Software analysis Program analysis

Automating RE With Outside-The-Box Full-System Dynamic Analysis

This is an advanced course that teaches the student how to automate reverse engineering tasks using full-system analysis by way of emulation. This course teaches powerful techniques that are at the forefront of security research and is relevant for all domains in software analysis, e.g. malware analysis, reverse engineering, vulnerability discovery, root-cause analysis and much more.

Skills and concepts you will learn
Full-system emulation Reverse engineering Malware analysis Root-cause analysis Record-and-replay QEMU PANDA Dynamic taint analysis Intermediate representations Program analysis Dynamic analysis Static analysis

Have a question about our training?

Let us know if you need any further information on our technical cyber security training.