Sorry, this page is no longer available
We may earn an affiliate commission when you visit our partners.
Course image
dr Jonas Birch, C programming ninja

8 hours of advanced C projects: Cyber Security

This is an 8 hour composite course (divided in 13 different 40min videos) containing my best content with regards to Cyber Security. You will get an in-depth knowledge in writing encryption tools, connecting to the Tor privacy network, and how to write safe, un-hackable C code by making a safe string library.

Read more

8 hours of advanced C projects: Cyber Security

This is an 8 hour composite course (divided in 13 different 40min videos) containing my best content with regards to Cyber Security. You will get an in-depth knowledge in writing encryption tools, connecting to the Tor privacy network, and how to write safe, un-hackable C code by making a safe string library.

When doing all of this practically, I will explain all the necessary theory while we're coding. So there are no dense sections of heavy theory but you will still learn everything you need in order to fully understand the things we are building. While on this journey, you will also improve your knowledge of some of the more advanced features of the C language. Like how dynamic memory works, how you deal with linked lists, everything about advanced pointers, operating system functions (syscalls) as well as some binary bitwise operations, etc.

You will also learn the basics of Linux file system security and a whole lot more. And, as always, in 1080p resolution. Enjoy.

Best regards,JB

Free previewDo not miss out of the free preview. You can watch the entire first episode (40min. ) for free. That contains the most part of one of my best C projects, the Toralizer. It is a command-line tool which lets you redirect any other Linux command through the Tor network.

Example:bash$ toralize curl http://website-url

This will connect to the Tor privacy network and access the website. This works with any Linux command and we will code this tool from scratch to the finish line, in this course.

PrerequisitesThis is not a beginner course in the C language (I have courses like that too). This is for people who already knows the basics of C and wants to take the next step to intermediate-advanced level knowledge of the C language.

This course is also for C coders who wish to know more about Cyber Security.

The authordr. Jonas Birch has been programming the C language for more than 25 years and he's been teaching for the last 7-8 years. He has a background in the Cyber Security industry and he's a Senior network engineer. His videos are very popular (some are the highest rated courses on Udemy, in its category) and he's got a very soothing voice which is easy for the ears.

Table of Contents00:00:00 Toralizer part 101:27:29 Xor encryption01:39:09 Coding a real encryption library04:05:41 How to install your own C library04:15:13 Learn Linux file system security04:44:51 Coding a file encryptor, part 105:37:21 Coding a file encryptor, part 206:05:00 Write unhackable code (safe string lib)07:19:47 Toralizer part 2

Enroll now

What's inside

Learning objectives

  • Learn to write your own cyber security tools
  • Learn to write tools which utilise network connections.
  • Improve your knowledge in advanced c concepts like pointers and structs etc.
  • Learn about encryption, the tor network, to write unhackable code and so on.
  • Learn about linux filesystem security

Syllabus

Learn to write tools in C with regards to Cyber Security.
Ep 01 - Writing your own Toralizer, part 1...
Ep 02 - ...Part two
Ep 03 - Xor encryption
Read more

Traffic lights

Read about what's good
what should give you pause
and possible dealbreakers
Explores encryption techniques, which are essential for protecting data and systems from unauthorized access and are widely used in cybersecurity
Teaches how to write safe, un-hackable C code by creating a safe string library, which is crucial for preventing vulnerabilities and exploits in software applications
Requires a basic understanding of C, so learners may need to acquire foundational knowledge before taking this course to fully grasp the advanced concepts
Covers advanced C concepts like pointers, structs, and dynamic memory, which are fundamental for efficient and effective programming in C and related languages
Examines Linux file system security, which is vital for protecting sensitive data and preventing unauthorized access in Linux environments, a common platform for servers and development
Uses the Tor network as a practical example, which may be useful for understanding privacy-enhancing technologies, but learners should be aware of the ethical and legal implications of using such tools

Save this course

Create your own learning path. Save this course to your list so you can find it easily later.
Save

Reviews summary

Advanced c for cyber security projects

According to learners, this course offers a deep dive into practical C programming specifically for cyber security applications. Many highlight the hands-on project approach, finding it highly effective for learning advanced C concepts like pointers and memory management while simultaneously building useful security tools. The instructor's clear explanations and calming voice are frequently praised, making complex topics digestible. While the course is explicitly not for beginners, some found the pace challenging if C basics weren't solid. Overall, it's seen as an excellent next step for those with foundational C knowledge aiming for practical cyber security skills.
Not suitable for C language beginners.
"As stated, this course is NOT for beginners. Make sure you know C fundamentals before starting."
"If your basic C isn't solid, you might struggle with the pace and depth."
"It assumes you're comfortable with basic syntax, functions, and compiling."
"You need a good foundation in C to fully grasp the advanced topics covered."
Directly applies C skills to security.
"This course bridges the gap between C programming and actual cyber security tool development effectively."
"I learned how standard C features are used (and misused) in security contexts."
"Covers important security concepts like encryption and writing safe code."
"Understanding Linux filesystem security from a C perspective was very useful."
Strong emphasis on pointers, memory, syscalls.
"The course really solidified my understanding of pointers, dynamic memory allocation, and syscalls in a practical context."
"Before this course, advanced C concepts felt abstract. Now I see how they are essential for security tools."
"It covers crucial C features like linked lists and bitwise operations through relevant examples."
"Excellent explanations of memory management issues critical for writing secure C code."
Clear, knowledgeable instructor with calm voice.
"Jonas Birch is a fantastic instructor. His explanations are clear and his pace is perfect."
"His soothing voice makes even complex topics easy to listen to for extended periods."
"It's clear the instructor has deep expertise in both C and cyber security."
"He breaks down difficult concepts effectively while you code along."
Learn advanced C via real-world projects.
"The best thing about this course is the project approach; you really learn by doing practical tasks."
"I loved building the tools like the Toralizer and file encryptor. It made the learning tangible."
"Focusing on security projects made the advanced C concepts stick better for me than just theoretical exercises."
"Doing the projects step-by-step was very helpful for understanding the application of complex ideas."
May require specific setup, potential issues.
"Getting the environment set up, especially with libraries like Tor, required some troubleshooting outside the course."
"Dependency issues can be a hurdle if you're not familiar with Linux command line and package managers."
"Some external resources or specific versions of tools might be needed that aren't explicitly detailed."

Activities

Be better prepared before your course. Deepen your understanding during and after it. Supplement your coursework and achieve mastery of the topics covered in 8 hours of advanced C projects: Cyber Security with these activities:
Review Dynamic Memory Allocation in C
Reinforce your understanding of dynamic memory allocation in C to better grasp how the Toralizer and encryption library projects manage memory.
Browse courses on Dynamic Memory Allocation
Show steps
  • Read documentation on malloc, calloc, realloc, and free.
  • Write small programs that allocate and free memory.
  • Practice using pointers with dynamically allocated memory.
Read '21st Century C'
Deepen your understanding of modern C practices and techniques to improve your coding skills for the course projects.
View 21st Century C on Amazon
Show steps
  • Read the chapters on memory management and data structures.
  • Experiment with the code examples provided in the book.
  • Apply the concepts learned to your own C projects.
Implement a Simple XOR Encryption Tool
Practice implementing XOR encryption to solidify your understanding of the encryption concepts covered in the course.
Show steps
  • Write a C program that takes a key and a file as input.
  • Implement the XOR encryption algorithm.
  • Test your program with different keys and files.
  • Add error handling and input validation.
Four other activities
Expand to see all activities and additional details
Show all seven activities
Read 'Hacking: The Art of Exploitation'
Gain a deeper understanding of security vulnerabilities and exploitation techniques to write more secure C code.
Show steps
  • Read the chapters on buffer overflows and cryptography.
  • Experiment with the code examples provided in the book.
  • Try to apply the concepts learned to your own C projects.
Write a Blog Post on Linux File System Security
Solidify your understanding of Linux file system security by researching and writing a blog post explaining key concepts and best practices.
Show steps
  • Research Linux file system security concepts.
  • Outline the topics you want to cover in your blog post.
  • Write the blog post, explaining concepts clearly.
  • Edit and proofread your blog post.
  • Publish your blog post online.
Create a Secure String Library Documentation
Document the safe string library you created in the course to reinforce your understanding of its functionality and usage.
Show steps
  • Review the code for your safe string library.
  • Write documentation for each function in the library.
  • Include examples of how to use each function.
  • Format the documentation using a tool like Doxygen.
Contribute to an Open Source Security Project
Apply your C and cybersecurity skills by contributing to an open-source project related to security or encryption.
Show steps
  • Find an open-source security project on GitHub.
  • Read the project's documentation and contribution guidelines.
  • Identify a bug or feature you can work on.
  • Submit a pull request with your changes.

Career center

Learners who complete 8 hours of advanced C projects: Cyber Security will develop knowledge and skills that may be useful to these careers:
Security Engineer
A Security Engineer designs, implements, and monitors security measures for computer systems and networks. This role requires a deep understanding of secure coding practices, encryption, and network security, all of which are touched upon in this course. By writing encryption tools and working with the Tor network, learners gain practical experience directly relevant to the daily tasks of a security engineer. This hands-on experience complements theoretical knowledge and allows for a more well-rounded understanding of the field, making the transition to this career smoother. The course's focus on writing secure code, specifically using techniques to create an unhackable string library in C, aligns perfectly with the objectives of creating secure systems. The emphasis on Linux file system security enhances this expertise.
Penetration Tester
A Penetration Tester, sometimes called an ethical hacker, simulates cyberattacks to identify vulnerabilities in systems and networks. The skills developed in this course directly apply to this career path. The course teaches how to create tools for encryption and how to connect to the Tor privacy network. These are tools that could be used offensively by a penetration tester, to probe an organization's defenses. The course's hands-on approach, which includes building command line tools, simulates how a penetration tester performs their work. Learning to write secure code as well as learning how to perform functions such as file encryption is a great foundation for a penetration tester.
Cybersecurity Analyst
A cybersecurity analyst monitors networks and systems for security breaches and vulnerabilities, and then evaluates and suggests changes. Skills developed through this course, such as understanding network connections and writing encryption tools, are directly applicable to this role. Learning how to create an unhackable string library and about Linux file system security helps a cybersecurity analyst to recommend how to secure systems. The hands on experience gained by coding tools from scratch gives the student practical knowledge to understand the root cause of vulnerabilities and make a meaningful impact in their career. This course provides practical insights that many cybersecurity analysts would lack.
Software Developer
A Software Developer designs, develops and tests software. This advanced C projects course helps software developers build a foundation for more advanced projects. In particular the course teaches advanced concepts like dynamic memory allocation and dealing with linked lists while building security software. By taking this course, a software developer will improve their ability to develop secure software. Learning to create a safe string library will make them more competent in creating safe and stable software. The hands-on approach of writing custom tools in C will help the software developer to better understand the underlying concepts.
Network Engineer
A network engineer designs and implements network infrastructure. This course is helpful as it develops skills in network security, particularly in using the Tor network, allowing the network engineer to secure network communications. The course enhances the network engineer's ability to create secure network protocols. By coding tools from scratch, they gain practical experience and a deeper understanding of how systems function. Learning to write secure C code helps network engineers build more reliable and secure systems, which is essential for modern networks. The course also touches on file system security which can help a network engineer secure servers and routers.
Cryptography Engineer
A Cryptography Engineer designs and implements cryptographic systems and algorithms to protect sensitive data. This course directly addresses the requirements of the cryptography engineer by teaching the creation of encryption tools and libraries. The course specifically goes into how to create ciphers. The hands-on nature of the course, which involves building encryption tools in C, gives practical experience that is extremely valuable in this field. The detailed instruction enhances the cryptography engineer's ability to create more robust and secure cryptographic solutions. The experience of implementing a string library in an unhackable way is also essential to cryptography. A course like this may be a good choice for cryptography engineers.
Systems Administrator
A Systems Administrator is responsible for the upkeep, configuration, and reliable operation of computer systems. This course may be useful for those in Systems Administrator positions due to its focus on Linux file system security and writing secure code. These skills are essential for securing servers and operating systems. Learning to code in C, coupled with understanding how to implement secure tools, allows systems administrators to troubleshoot systems more effectively and develop scripts to manage server security. The skills taught in this course help a systems administrator ensure the reliability of systems.
Reverse Engineer
A Reverse Engineer analyzes software for vulnerabilities or to understand how systems work. This course may help in this career through its focus on coding tools in C, and creating encryption libraries, allowing a reverse engineer to better understand how software is built and how it functions. The focus on unhackable code helps a reverse engineer to identify weaknesses in software. The course covers the Tor privacy network which is useful for malware analysis. The emphasis on creating solutions in C from scratch is essential for a reverse engineer.
Security Consultant
A Security Consultant assesses an organization's security posture and offers recommendations to improve it. While this course may be useful, it primarily focuses on technical skills, which may not be the priority for a security consultant. However, the ability to discuss technical vulnerabilities with engineers is a key skill for security consultants. The practical experience gained by creating encryption tools and an understanding of network security can assist a consultant in understanding the real-world implications of various threats. The course covers topics like writing unhackable code and Linux file system security which can assist a security consultant in understanding vulnerabilities.
Technical Support Engineer
A Technical Support Engineer provides assistance to users who are experiencing technical issues. This course may be useful for technical support engineers who need to understand the security aspects of software. The course's focus on low level coding and the C programming language helps them understand technical problems at a deeper level. Understanding how to create secure software and how networks function, such as the use of the Tor network, benefits support engineers when they need to investigate the root cause of issues. This course is most useful for Tier 2 and higher technical support engineers.
IT Project Manager
An IT Project Manager is responsible for overseeing and coordinating technology-related projects. This course does not directly correlate to the core responsibilities of a project manager. However, a project manager who has experience in advanced C and security may be more well equipped to understand the technical challenges and needs of a project. A project manager who understands security concepts, such as how encryption works, can help a project to stay on track by having a better understanding of risk. Although this course may be useful for an IT project manager who requires a background understanding, it is not essential.
Database Administrator
A Database Administrator is responsible for the performance, integrity and security of a database. This course may be helpful to a database administrator in understanding the security aspects of a database. By taking this course, the database administrator may be better able to understand the risks of data breaches and understand how to secure data. The course covers file system security in linux which can be used to help secure databases. Although understanding C may be helpful, it is not core to database maintenance. For this reason this course may be useful for this role.
Data Scientist
A Data Scientist analyzes and interprets complex data. Though this course may be useful, its focus on C programming and cyber security is not within the core skill set of a data scientist. However, if a data scientist works with sensitive information, the understanding of encryption and network security provided by the course may be valuable. The course's use of Linux is beneficial for most data scientists who typically work with servers. This course may be helpful for data scientists who want to learn about data security, but it is not a core requirement of their role.
Technical Writer
A Technical Writer creates documentation for technical products. This course does not closely align to this role but may be useful. The understanding of complex technical topics, such as encryption and network security, may help a technical writer become better at understanding the subject matter with greater depth. The experience of coding tools may also help the writer to explain subject material effectively. Understanding secure coding practices may also help a technical writer to create accurate and comprehensive documentation for security-related products. For this reason, the course may be useful.
Web Developer
A Web Developer creates and maintains websites. While this course may be helpful, its emphasis on C programming and cyber security does not directly fit with the requirements of web development which typically utilize other languages, such as HTML, CSS and Javascript. However, the focus on secure coding can make a web developer more adept at writing web applications. The understanding of network security, along with the use of Linux may also be useful in securing web servers. For those reasons, this course may be useful for web developers.

Reading list

We've selected two books that we think will supplement your learning. Use these to develop background knowledge, enrich your coursework, and gain a deeper understanding of the topics covered in 8 hours of advanced C projects: Cyber Security.
Provides a deep dive into the technical aspects of hacking and security vulnerabilities. It covers topics like buffer overflows, network sniffing, and cryptography. While it's more advanced than the course material, it offers valuable insights into the mindset of attackers and how to write more secure code. This book is best used for additional reading to expand your knowledge of cybersecurity.
Provides a modern perspective on C programming, covering topics like memory management, data structures, and system programming. It's particularly useful for understanding the advanced C concepts used in the course projects. While not a prerequisite, it offers valuable insights and best practices for writing robust and secure C code. It can be used as a reference or for additional reading to deepen your understanding.

Share

Help others find this course page by sharing it with your friends and followers:

Similar courses

Similar courses are unavailable at this time. Please try again later.
Our mission

OpenCourser helps millions of learners each year. People visit us to learn workspace skills, ace their exams, and nurture their curiosity.

Our extensive catalog contains over 50,000 courses and twice as many books. Browse by search, by topic, or even by career interests. We'll match you to the right resources quickly.

Find this site helpful? Tell a friend about us.

Affiliate disclosure

We're supported by our community of learners. When you purchase or subscribe to courses and programs or purchase books, we may earn a commission from our partners.

Your purchases help us maintain our catalog and keep our servers humming without ads.

Thank you for supporting OpenCourser.

© 2016 - 2025 OpenCourser