We may earn an affiliate commission when you visit our partners.
Course image
Ermin Kreponic and Aldin Omerdic

If you want to learn to code at an advanced level in C++ or build your own fully functional advanced keylogger from scratch for learning ethical hacking, I think you might love this course. In thiscourse you will see exactly how to create an advanced keylogger starting from nothing by literally following the steps I take as I make it.

Read more

If you want to learn to code at an advanced level in C++ or build your own fully functional advanced keylogger from scratch for learning ethical hacking, I think you might love this course. In thiscourse you will see exactly how to create an advanced keylogger starting from nothing by literally following the steps I take as I make it.

Thiskeylogger is capable of recording all the keyboard andmouse input. It can even record independent of the language settings because it logs thephysical keys on the keyboard first. Next, by using an arbitrarykeymap with human friendly names, it translates the machine keys tosomething that we can understand. It also possesses mail sendingcapabilities so you can just schedule the logfile to be sent viamail, lets say every 12 hours. In addition to this, it will also keepthe logfile encrypted. Therefore, we will create another programwhich will be able to decrypt the logfile on your end.

For learning C++, this is an ideal course because it is completely hands on learning that provides a functional end product. Some future features that will be added to the keylogger course as I develop them will include but are not limited to taking screenshots, capturing clipboard content (copy-paste), recording website URLs, and so on. Take this course now to get immediate access to the videos and to get answers to every single question you ask in the course.

As an information technology professional myself, I realize what the final product of this course is capable of. I trust in creating this that you will use it for good and for learning. If you choose to use this keylogger for any illegal or immoralpurposes, you risk losing a lot. This is only for educationalpurposes. The keylogger that you are going to see will be able tocause some serious damage, so please use it in a legal andresponsible way.

Thank you very much for reading this and I hope to see you in the course soon. Ifyou have any suggestions in regard to the functionalities of thekeylogger, feel free to send me a message or post your requests here.

Enroll now

Here's a deal for you

We found an offer that may be relevant to this course.
Save money when you learn. All coupon codes, vouchers, and discounts are applied automatically unless otherwise noted.

What's inside

Learning objectives

  • A fully functional keylogger built from scratch in c++!
  • Feel confident in coding similar programs in c++.
  • A custom keylogger made for use in windows compiled in the latest version of c++.
  • Get answers to every question you ask about c++ and about making this keylogger!

Syllabus

General stuff and requirements
Thank you for taking this course! Here is what you get out of it!

Welcome all to this intro. Here I will describe this course/project. My name is Ermin and I will be your instructor for this course. In this course I will teach you how to create an advanced keylogger.

This keylogger is capable of recording more or less all the keyboard and mouse input independent of the language settings as it records the physical keys on the keyboard first, and then, by using an arbitrary keymap with human friendly names, it translates the machine keys to something that we can understand. It also possesses mail sending capabilities so you can just schedule the logfile to be sent via mail, lets say every 12 hours. In addition to this, it will also keep the logfile encrypted. Therefore, we will create another program which will be able to decrypt the logfile on your end. Please do not abuse the knowledge you get from this course as it can get you in a big trouble. Do not use this keylogger for any illegal or immoral purposes. You do not have my permission to do so. In fact, I am explicitly asking you not to do it. This is only for educational purposes. The keylogger that you are going to see will be able to cause some serious damage, so please use it in a legal and responsible way. Some future features that will be added to the keylogger will include but are not limited to taking screenshots, capturing clipboard content (copy-paste), recording website URLs, and so on.

If you have any suggestions in regard to the functionalists of the keylogger, feel free to send me a message or post your requests here.

Read more
Setting up the development environment.
Set Up part 1
Set Up part 2
How to hide the keylogger window and prevent it from popping
Hiding the Keylogger window
Mapping physical keys to human friendly names
We will use this header in order to map the system names of the physical keys of the keyboard to human friendly names. In essence, we are just doing some translation here. At the moment, it is configured to US keyboard if I am not mistaken. If you are wondering why I am uncertain of this, it is primarily because I am too lazy to check which keymap does the current version contain because I have tested it out with different keyboards and different keymaps to make sure that it does function. This doesn't matter that much because you can translate system names for the keys pretty much any way you want so that it can fit more or less any language configuration.
KeyConstants part 2
Creating auxiliary general purpose functions
Nothing much to say here except that this header is a dumping ground for everything that we couldn't figure out where to put. All the functions and variables that couldn't be placed anywhere else are placed in the Helper header. There are no technical reasons for this, only logical ones.
Helper Header part 2
Helper Header part 3
Writing the code for custom Encryption
We will use the Base64 header in order to encrypt the keylogger's logfiles. The header contains a list of functions used for encrypting logfiles. We use our own custom encryption in conjunction with Base64 encoding. There is one function for Base64 encoding and another for the encryption of data. We are obscuring Base64 encoding with arbitrary salts to make the decoding process pretty much impossible. Without knowing the exact positions of salts and the exact arbitrary salts it is pretty much not possible to reverse the procedure. The encryption process is also arbitrary and can easily be modified, but the modifications have to match the decryption procedure as well. Please feel free to attempt to break this encryption and please let us know if you manage to do it. Now you might ask yourselves for what we are using encryption here. Well, for two reasons: first, if the user by some chance manages to find the file on the system, they won't be able to see what is in the file – they will only junk. Secondly, since the file is going to be sent via mail, nobody should be able to read it aside from you.
Encryption part 2
Encryption part 3
Handling Input Output I/O

This header will be used for all of our input/output operations. It is also used for the creation of the file where the keylogger will store recorded keystrokes. In order to achieve this, it works in conjunction with functions from Base64 and Helper headers. It creates a string of characters which contains keystrokes and then outputs them to a file. In the process of outputting, it uses the functions from Base64 header in order to encrypt the contents of the string. Since we need to create a path for the file, there are failsafe mechanisms which ensure the creation of the path with all its subdirectories.

IO Header part 2
Dealing with time intervals ( Timer header )
We will use the Timer header in order to determine the precise time intervals for the execution of our threads. We will use a good amount of things from c++ 11 in order to achieve precise time measurements. This header will also be used in future for various sorts of triggers and at the moment it is also used for the send mail intervals.
Timer Header part 1
Timer Header part 2
Timer Header part 3
Implementing the Send Mail option
The SendMail header is used for sending emails. It achieves this by possessing a hardcoded powershell script in the form of a string which it uses to create a file by outputting this string to a file and creating that powershell script. That script is then invoked in order to send an email. This is one of the main reasons why this program will not work to an extent on XP and Vista. It primarily works on Windows 7, 8, 8.1, and 10. There was an idea of creating our own mail client, but due to the fact that all the email service providers out there use one encryption or another, the implementation of those encryption procedures would consume too much time and not to mention that the code would be significantly longer!
SendMail PowerShell Script part 1
SendMail PowerShell Script part 2
SendMail part 3
SendMail part 4
SendMail part 5
SendMail part 6
Setting up Hooks to capture pressed keys on the keyboard and mouse as well

This header is used for capturing keystrokes. It uses hooks in order to capture physical keys on the keyboard. Due to this fact, it is not relevant which keyboard does a user use. It will always be able to record the physical buttons that are pressed. The awesome thing about it is that we are able to record all the special characters and keys like shift, space, enter, alt, sleep button, mouse clicks, etc. We wont need to record all of these, but we will use them as triggers later on for certain actions like taking screenshots. Due to the nature of the hooks in Windows and what they are used for, the keylogger does not do anything out of the ordinary when compared to most of the other programs on the system.

KeyboardHook part 2
KeyboardHook part 3
Main Function
Let us see how it works!
Demo
Bonus lecture! What next after taking this C++ keylogger course?
Decryption

Learn how to decrypt the encrypted files

Part 2 of how to decrypt the encrypted files.

Part 3 of how to decrypt the encrypted files.

Good to know

Know what's good
, what to watch for
, and possible dealbreakers
Creates a fully functional keylogger!
Teaches essential C++ coding concepts and practices
May require self-motivation to complete
Uses the latest C++ version for compilation
Provides hands-on learning with a practical end product
Customizable for advanced users

Save this course

Save Build an Advanced Keylogger using C++ for Ethical Hacking! to your list so you can find it easily later:
Save

Reviews summary

Keylogger course: ethical hacking

According to students, this course offers a great learning experience as learners say it is fun and well-organized. Keylogger programming skills and ethical hacking are taught in this course.
Course is well-organized with clear explanations.
Keylogger and ethical hacking concepts clearly taught.
Positive feedback on overall learning experience.
"cool"

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 Build an Advanced Keylogger using C++ for Ethical Hacking! with these activities:
Organize and review course materials
Improve your understanding of the course material by organizing and reviewing it regularly.
Show steps
  • Gather all of the course materials, including notes, slides, assignments, and quizzes.
  • Organize the materials in a logical way that makes sense to you.
  • Review the materials regularly, focusing on understanding the key concepts and ideas.
Volunteer to test keylogging software
Gain hands-on experience with keylogging by volunteering to test software for companies or organizations.
Show steps
  • Identify companies or organizations that develop or use keylogging software.
  • Contact these companies or organizations and inquire about volunteer opportunities.
  • If selected, test the keylogging software according to the instructions provided.
  • Provide feedback on the software's functionality, usability, and accuracy.
Practice C++ coding exercises
Strengthen your C++ skills by practicing coding exercises on a regular basis.
Browse courses on C++
Show steps
  • Find online resources or books that provide C++ coding exercises.
  • Choose exercises that are appropriate for your skill level.
  • Solve the exercises on your own, without looking at the solutions.
  • Check your solutions against the provided answers to identify any errors.
Five other activities
Expand to see all activities and additional details
Show all eight activities
Practice keylogging techniques
Reinforce your understanding of the keylogging techniques covered in the course by practicing them on your own.
Show steps
  • Set up a test environment where you can practice keylogging without affecting your regular work.
  • Use the keylogger to record keystrokes on your own computer and analyze the results.
  • Experiment with different keylogging techniques to see how they work.
Join a study group or participate in online discussions
Engage with other learners to discuss course material, share insights, and ask questions.
Show steps
  • Find a study group or online forum that is relevant to the course.
  • Participate actively in the discussions, sharing your thoughts and ideas.
  • Ask questions when you need clarification or have doubts.
  • Help other learners by answering their questions.
Create a tutorial on how to use the keylogger
Solidify your understanding of the keylogger by creating a tutorial that explains how to use it effectively.
Browse courses on Keylogger
Show steps
  • Identify the key features and capabilities of the keylogger.
  • Plan out the structure and content of your tutorial.
  • Write clear and concise instructions on how to use the keylogger.
  • Create screenshots or videos to illustrate your instructions.
  • Publish your tutorial online or share it with others.
Develop a keylogging solution for a specific problem
Apply your keylogging skills to develop a solution for a specific problem or challenge.
Show steps
  • Identify a problem or challenge that can be solved using keylogging techniques.
  • Design and develop a keylogging solution that addresses the problem or challenge.
  • Test and evaluate your solution to ensure that it works effectively.
Participate in a keylogging competition
Challenge yourself and test your skills by participating in a keylogging competition.
Show steps
  • Find a keylogging competition that is relevant to your interests and skill level.
  • Prepare for the competition by practicing your keylogging techniques.
  • Participate in the competition and try your best to win.

Career center

Learners who complete Build an Advanced Keylogger using C++ for Ethical Hacking! will develop knowledge and skills that may be useful to these careers:
Software Developer
A software developer is responsible for the design, development, and maintenance of software systems. This course provides a strong foundation in C++, which is a popular programming language used in software development. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for software developers. Taking this course will help you develop the skills and knowledge needed to succeed as a software developer.
Cybersecurity Analyst
A cybersecurity analyst is responsible for protecting computer systems from unauthorized access, use, disclosure, disruption, modification, or destruction. This course provides a strong foundation in C++, which is a popular programming language used in cybersecurity. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for cybersecurity analysts. Taking this course will help you develop the skills and knowledge needed to succeed as a cybersecurity analyst.
Security Analyst
A security analyst is responsible for identifying and mitigating security risks. This course provides a strong foundation in C++, which is a popular programming language used in security analysis. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for security analysts. Taking this course will help you develop the skills and knowledge needed to succeed as a security analyst.
Information Security Analyst
An information security analyst is responsible for protecting an organization's information assets from unauthorized access, use, disclosure, disruption, modification, or destruction. This course provides a strong foundation in C++, which is a popular programming language used in information security. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for information security analysts. Taking this course will help you develop the skills and knowledge needed to succeed as an information security analyst.
Network Security Engineer
A network security engineer is responsible for designing, implementing, and maintaining network security systems. This course provides a strong foundation in C++, which is a popular programming language used in network security. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for network security engineers. Taking this course will help you develop the skills and knowledge needed to succeed as a network security engineer.
Computer Forensics Analyst
A computer forensics analyst is responsible for investigating computer crimes and recovering evidence from computer systems. This course provides a strong foundation in C++, which is a popular programming language used in computer forensics. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for computer forensics analysts. Taking this course will help you develop the skills and knowledge needed to succeed as a computer forensics analyst.
Penetration Tester
A penetration tester is responsible for identifying and exploiting security vulnerabilities in computer systems. This course provides a strong foundation in C++, which is a popular programming language used in penetration testing. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for penetration testers. Taking this course will help you develop the skills and knowledge needed to succeed as a penetration tester.
Malware Analyst
A malware analyst is responsible for analyzing malware and developing countermeasures to protect computer systems from malware attacks. This course provides a strong foundation in C++, which is a popular programming language used in malware analysis. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for malware analysts. Taking this course will help you develop the skills and knowledge needed to succeed as a malware analyst.
Forensic Investigator
A forensic investigator is responsible for investigating crimes and recovering evidence from crime scenes. This course provides a strong foundation in C++, which is a popular programming language used in forensic investigations. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for forensic investigators. Taking this course will help you develop the skills and knowledge needed to succeed as a forensic investigator.
Systems Administrator
A systems administrator is responsible for maintaining and troubleshooting computer systems. This course provides a strong foundation in C++, which is a popular programming language used in systems administration. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for systems administrators. Taking this course will help you develop the skills and knowledge needed to succeed as a systems administrator.
Cloud Engineer
A cloud engineer is responsible for designing, implementing, and maintaining cloud computing systems. This course provides a strong foundation in C++, which is a popular programming language used in cloud computing. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for cloud engineers. Taking this course will help you develop the skills and knowledge needed to succeed as a cloud engineer.
Data Engineer
A data engineer is responsible for designing, implementing, and maintaining data systems. This course provides a strong foundation in C++, which is a popular programming language used in data engineering. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for data engineers. Taking this course will help you develop the skills and knowledge needed to succeed as a data engineer.
Database Administrator
A database administrator is responsible for maintaining and troubleshooting database systems. This course provides a strong foundation in C++, which is a popular programming language used in database administration. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for database administrators. Taking this course will help you develop the skills and knowledge needed to succeed as a database administrator.
IT Manager
An IT manager is responsible for managing the IT department of an organization. This course provides a strong foundation in C++, which is a popular programming language used in IT management. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for IT managers. Taking this course will help you develop the skills and knowledge needed to succeed as an IT manager.
Software Architect
A software architect is responsible for designing and developing software systems. This course provides a strong foundation in C++, which is a popular programming language used in software architecture. The course also covers topics such as encryption, keylogger development, and input/output operations, which are all essential skills for software architects. Taking this course will help you develop the skills and knowledge needed to succeed as a software architect.

Reading list

We've selected 11 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 Build an Advanced Keylogger using C++ for Ethical Hacking!.
Comprehensive guide to C++ programming, providing an in-depth look at the language's features and capabilities.
Covers best practices and idioms for writing efficient and maintainable C++ code, which would be valuable for anyone developing the keylogger.
Provides a strong foundation in the fundamental principles of computer security and provides a thorough understanding of the latest techniques for protecting systems and networks.
Suitable for programmers of all experience levels to learn and better understand the C programming language.
Provides a full overview of cryptographic theory and engineering and helps learners appreciate cryptographic topics beyond the abstract level
Covers the basics of the C++ programming language, which would provide a solid foundation for understanding the concepts and techniques used in the keylogger course.
Offers a comprehensive and modern approach to computer networks and is suitable for a variety of learners.
Helps you to understand cyber security in a comprehensive and practical manner and assists learners in developing ethical hacking skills.
Serves as a hands-on, step-by-step guide to penetration testing, providing real-world examples and case studies that make learning more engaging and enjoyable.

Share

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

Similar courses

Here are nine courses similar to Build an Advanced Keylogger using C++ for Ethical Hacking!.
Software testing and Automation of APIs with UFT/QTP
Functional Analysis: University Level Course in Metric...
Java Streams API Developer Guide
Introduction to web programming for GIS applications
The Complete Apache Groovy Developer Course
Scala 2: The Big Picture
The Complete Ethical Hacking Course for 2016/2017!
Web Development
The 10 Day iPhone App Bootcamp - NEW iOS 12 and Xcode 10
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 - 2024 OpenCourser