Build an Advanced Keylogger using C++ for Ethical Hacking!
4.4 (497 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.
24,737 students enrolled
Wishlisted Wishlist

Please confirm that you want to add Build an Advanced Keylogger using C++ for Ethical Hacking! to your Wishlist.

Add to Wishlist

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!
Bestselling
4.4 (497 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.
24,737 students enrolled
Created by Ermin Kreponic
Last updated 9/2016
English
English
Current price: $10 Original price: $195 Discount: 95% off
1 day left at this price!
30-Day Money-Back Guarantee
Includes:
  • 7.5 hours on-demand video
  • 4 Supplemental Resources
  • Full lifetime access
  • Access on mobile and TV
  • Certificate of Completion
What Will I Learn?
  • 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!
View Curriculum
Requirements
  • This course will be much easier if you have some prior knowledge of C++.
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.

Who 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.
Students Who Viewed This Course Also Viewed
Curriculum For This Course
35 Lectures
07:17:49
+
Introduction
2 Lectures 17:59

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.

Preview 16:33
+
Setting up the development environment.
2 Lectures 15:11
Set Up part 1
07:44

Set Up part 2
07:27
+
How to hide the keylogger window and prevent it from popping
1 Lecture 11:48
Hiding the Keylogger window
11:48
+
Mapping physical keys to human friendly names
2 Lectures 18:55
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 1
13:00

KeyConstants part 2
05:55
+
Creating auxiliary general purpose functions
3 Lectures 45:31
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 1
19:17

Helper Header part 2
19:42

Helper Header part 3
06:32
+
Writing the code for custom Encryption
3 Lectures 41:21
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 1
12:18

Encryption part 2
13:41

Encryption part 3
15:22
+
Handling Input Output I/O
2 Lectures 30:33

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 1
14:45

IO Header part 2
15:48
+
Dealing with time intervals ( Timer header )
4 Lectures 46:57
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 Intro
08:51

Timer Header part 1
13:23

Timer Header part 2
18:47

Timer Header part 3
05:56
+
Implementing the Send Mail option
7 Lectures 01:38:40
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 intro
06:58

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
+
Setting up Hooks to capture pressed keys on the keyboard and mouse as well
4 Lectures 51:55

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 1
19:03

KeyboardHook part 2
19:17

KeyboardHook part 3
08:32

Main Function
05:03
2 More Sections
About the Instructor
Ermin Kreponic
4.3 Average rating
20,548 Reviews
276,957 Students
13 Courses
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