Intro to ACTP
An introductory class establishing the base for both 10-week CNO courses (Windows & Linux).
Course Description
This class will familiarize students with some of the computing concepts to help build a clear picture of how to interact with the machine. This course was specially crafted by ACTP instructors to build and strengthen the core skills that will be the foundation of our other ACTP offerings. The concentrated material will provide essential understanding that will be helpful for any student looking to start with systems engineering and reverse engineering.
Prerequisites
- Students should have a solid understanding of programming in a systems programming language.
Program Highlights
Relevant Today
Develops core skills that are widely applicable to modern systems and forms a firm foundation for CNO development.
Inclusive Approach
Builds a cohesive base for better understanding for both the Windows and Linux 10-week CNO programmer courses.
Core Topics
Introduces C programming, x86 assembly, debugging techniques, and reverse engineering skills.
What You Will Learn
- Understand computer architecture and the context around your code to better root-cause bugs and mistakes.
- Navigate system documentation for unfamiliar APIs and tools to become more self-reliant in development.
- Read and write basic x86 Assembly and understand the connection between C code patterns and their associated assembly.
- Use a variety of debugging tools and modern reverse engineering tools to practice your skills against increasingly difficult targets.
Daily Agenda
-
Day 1: Computer Architecture & Coding Environments
A look at how computing takes place from an architectural level, giving a better understanding of the context around code. Also introduces compilers, linkers, and other pieces of the build toolchain.
Day 2: Documentation & C Programming
Introduces system documentation to feel comfortable navigating unfamiliar APIs and tools. Also covers common pitfalls, frustrations, and design patterns in the C programming language.
Day 3: Introduction to x86 Assembly
A basic introduction to assembly, allowing students to grow comfortable reading and writing assembly, as well as understanding the connection between C code and its associated assembly.
Day 4: Debugging
Gain experience using a debugger, finding bugs, and eliminating them. Students will also use a variety of debugging tools that provide specialized views into a process.
Day 5: Reverse Engineering & Final Exam
Combined with debugging exposure, students are introduced to modern reverse engineering tools and will practice their skills against increasingly difficult targets, followed by the final exam.