Build an Advanced Keylogger using C++ for Ethical Hacking!

Take this course to learn how to code a fully functional keylogger in C++ for use in Windows!
4.4 (226 ratings) Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
10,204 students enrolled Bestselling in C++
$19
$195
90% off
Take This Course
  • Lectures 35
  • Length 7.5 hours
  • Skill Level Intermediate Level
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works

Discover

Find online courses made by experts from around the world.

Learn

Take your courses with you and learn anywhere, anytime.

Master

Learn and practice real-world skills and achieve your goals.

About This Course

Published 2/2016 English Closed captions available

Course Description

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 this course you will see exactly how to create an advanced keylogger starting from nothing by literally following the steps I take as I make it!

This keylogger is capable of recording all the keyboard and mouse input! It can even record independent of the language settings because it logs the physical keys on the keyboard first. Next, 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.

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 immoral purposes, you risk losing a lot. 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.

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

What are the requirements?

  • This course will be much easier if you have some prior knowledge of C++.

What am I going to get from this course?

  • 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!

What is the target audience?

  • If you have already taken ethical hacking courses, this course will give you an advanced tool to continue learning with.
  • When you are trying to advance your learning with C++ using hands on tools and coding new programs, this course should be very helpful.

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.

Curriculum

Section 1: Introduction
Thank you for taking this course! Here is what you get out of it!
Preview
01:26
16:33

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.

Section 2: Setting up the development environment.
Set Up part 1
07:44
Set Up part 2
07:27
Section 3: How to hide the keylogger window and prevent it from popping
Hiding the Keylogger window
11:48
Section 4: Mapping physical keys to human friendly names
13:00
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
05:55
Section 5: Creating auxiliary general purpose functions
19:17
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
19:42
Helper Header part 3
06:32
Section 6: Writing the code for custom Encryption
12:18
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
13:41
Encryption part 3
15:22
Section 7: Handling Input Output I/O
14:45

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
15:48
Section 8: Dealing with time intervals ( Timer header )
08:51
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
13:23
Timer Header part 2
18:47
Timer Header part 3
05:56
Section 9: Implementing the Send Mail option
06:58
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
19:46
SendMail PowerShell Script part 2
11:22
SendMail part 3
18:42
SendMail part 4
19:44
SendMail part 5
05:00
SendMail part 6
17:08
Section 10: Setting up Hooks to capture pressed keys on the keyboard and mouse as well
19:03

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
19:17
KeyboardHook part 3
08:32
Main Function
05:03
Section 11: Let us see how it works!
Demo
08:50
Bonus lecture! What next after taking this C++ keylogger course?
02:26
Section 12: Decryption
18:37

Learn how to decrypt the encrypted files

12:46

Part 2 of how to decrypt the encrypted files.

16:20

Part 3 of how to decrypt the encrypted files.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Ermin Kreponic, IT Expert

Strongly motivated young IT expert, Linux enthusiast with a passion for troubleshooting network related problems. With an exceptional eye for details and a sense of urgency when it comes down to problem solving.

Skills
- Advanced knowledge of Linux command line
- Installation, configuration and maintenance of servers that run under Unix/Linux type
operating systems
To name a few: DNS, TFTP, FTP, SSH, APACHE, SMTP, VSFTP and some others
- Troubleshooting a wide range of network related problems. Meaning, digging deep for
packets on any given network.
Using one of my favourite tools for capturing and filtering packets on the network, Wireshark,
and resolving end-user issues
- Good understanding of Cisco routers and IOS operating system
- Configuration and implementation of Linux firewall namely Iptables
- Supervision and filtration of network traffic
- Tightening down security and pen testing networks for possible vulnerabilities
- Good knowledge of network gear brands and their strengths or weaknesses
- Preforming system back up
- Fair knowledge of Bash scripting
- equipment installation, upgrades, patches, and configuration.


Personal note:

I do not sleep much, but that is not only because I work hard, rather instead it is
because I enjoy this line of work,
it is extremely rewarding in every way that matters

Ready to start learning?
Take This Course