Search This Blog

Download CEHv9 Study Guide PDF || Certified Ethical Hacker V9 Book

Download CEHv9 Study Guide PDF

This book will be a great journey for our users in the field of cyber security. This book contains in depth knowledge of cyber security. It was officially published by EC-Council, which is again a well known firm. 

So all thanks to these guys, and this book is totally free only on this website, I (faizan) got personally a lot of messages from my followers on my Instagram, That they needed something to read in this cyber security field, So here it is.

Download link is at the end.

Make Sure to Stay updated with this Website. 



Writing acknowledgements is probably the toughest part of writing a book in my opinion
as I always feel that I have forgotten someone who had to deal with my hijinks over the
past few months. Anyway, here goes.
First of all, I want to thank my Mom and Dad for all of your support over the years as well
as being your favorite son. That’s right, I said it.
I would also like to take a moment to thank all the men and women I have served with
over the years. It is an honor for this Chief Warrant Officer to serve with each of you. I
would also like to extend a special thanks to my own unit for all the work you do, you are
each a credit to the uniform. Finally, thanks to my Commander for your mentorship,
support, and faith in my abilities.
To my friends I want to say thanks for tearing me away from my computer now and then
when you knew I needed to let my brain cool off a bit. Mark, Jason, Jennifer, Fred, Misty,
Arnold, Shelly, and especially Lisa, you all helped me put my focus elsewhere for a while
before I went crazy(er).
I would also like to thank Shigeru Miyamoto for bringing the Legend of Zelda into reality.
Finally, on a more serious note, I would like to dedicate this book to Medal of Honor
recipient (and personal hero) Sgt. Maj. (USA) Jon R. Cavaiani who passed away some
time before this book was written. Thank you for giving me the honor to shake your hand.
—Sean-Philip Oriyano
Duty, Service, Honor

Table of Content 

Exam 312-50 Exam Objectives
Assessment Test
Answers to Assessment Test

Chapter 1: Introduction to Ethical Hacking
Hacking: the Evolution
So, What Is an Ethical Hacker?
Exam Essentials
Review Questions

Chapter 2: System Fundamentals
Exploring Network Topologies
Working with the Open Systems Interconnection Model
Dissecting the TCP/IP Suite
IP Subnetting
Hexadecimal vs. Binary
Exploring TCP/IP Ports
Understanding Network Devices

Chapter 3: Cryptography
Cryptography: Early Applications and Examples
Cryptography in Action
Understanding Hashing
Issues with Cryptography
Applications of Cryptography 

Chapter 4: Footprinting
Understanding the Steps of Ethical Hacking
What Is Footprinting?
Terminology in Footprinting
Threats Introduced by Footprinting
The Footprinting Process

Chapter 5: Scanning
What Is Scanning?
Checking for Live Systems
Checking the Status of Ports
The Family Tree of Scans
OS Fingerprinting
Vulnerability Scanning
Mapping the Network
Using Proxies
Exam Essentials
Review Questions
Chapter 6: Enumeration
A Quick Review
What Is Enumeration?
About Windows Enumeration
Linux Basic
Enumeration with SNMP
Unix and Linux Enumeration
LDAP and Directory Service Enumeration
Enumeration Using NTP
SMTP Enumeration
Exam Essentials
Review Questions
Chapter 7: System Hacking
Up to This Point
System Hacking
Exam Essentials
Review Questions
Chapter 8: Malware
Overt and Covert Channels
Exam Essentials
Review Questions
 & many more.


C Programming Strings

WELCOME BACK TO , In this article, you'll learn to handle strings and its operations in C programming. You'll learn to declare them, initialize them and use them for various I/O operations.

Table of Contents
C strings
How to declare a string?
How to initialize strings?
Read string from the user
Example: scanf() to read string
Example: gets() and puts()
Passing strings to a function
Example: Passing strings to a function
Strings and pointers
Example: Strings and pointers
Commonly used string functions
In C programming, a string is an array of characters terminated with a null character \0.

For example:

"c string"
When compiler encounters a sequence of characters enclosed in the double quotation marks, it appends a null character \0 at the end.

Memory diagram of strings in C programming

How to declare a string?
Before you can work with strings, you need to declare them first. Since string is an array of characters. You declare strings in a similar way like you do with arrays.

If you don't know what arrays are, we recommend you to check C arrays.

Here's how you declare a string:

char s[5];
string declaration in C programming

How to initialize strings?
You can initialize strings in a number of ways.

char c[] = "abcd";

char c[50] = "abcd";

char c[] = {'a', 'b', 'c', 'd', '\0'};

char c[5] = {'a', 'b', 'c', 'd', '\0'};
Initialization of strings in C programming

Read String from the user
You can use the scanf() function to read a string.

The scanf() function reads the sequence of characters until it encounters a whitespace (space, newline, tab etc.).

Example 1:

 scanf() to read a string
#include <stdio.h>
int main()
    char name[20];
    printf("Enter name: ");
    scanf("%s", name);
    printf("Your name is %s.", name);
    return 0;


Enter name: Dennis Ritchie
Your name is Dennis.
Even though Dennis Ritchie was entered in the above program, only "Ritchie" was stored in the name string. It's because there was a space after Ritche.

How to read a line of text?
You can use gets() function to read a line of string. And, you can use puts() to display the string.

Example 2:

 gets() and puts()
#include <stdio.h>
int main()
    char name[30];
    printf("Enter name: ");
    gets(name);     // read string
    printf("Name: ");
    puts(name);    // display string
    return 0;
When you run the program, the output will be:

Enter name: Tom Hanks
Name: Tom Hanks
Passing Strings to Function
Strings can be passed to a function in a similar way as arrays. Learn more about passing array to a function.

Example 3:

 Passing string to a Function
#include <stdio.h>
void displayString(char str[]);

int main()
    char str[50];
    printf("Enter string: ");
    displayString(str);     // Passing string to a function.   
    return 0;
void displayString(char str[])
    printf("String Output: ");

Strings and Pointers
Similar like arrays, string names are "decayed" to pointers. Hence, you can use pointer with the same name as string to manipulate elements of the string. We recommended you to check C Arrays and Pointers before you check this example:

Example 4: 

Strings and Pointers
#include <stdio.h>

int main(void) {
  char name[] = "Harry Potter";

  printf("%c", *name);     // Output: H
  printf("%c", *(name+1));   // Output: a
  printf("%c", *(name+7));   // Output: o

  char *namePtr;

  namePtr = name;
  printf("%c", *namePtr);     // Output: H
  printf("%c", *(namePtr+1));   // Output: a
  printf("%c", *(namePtr+7));   // Output: o

C Programming Arrays

In this article, you will learn to work with arrays. You will learn to declare, initialize and, access array elements with the help of examples.

Table of Contents

C Arrays
How to declate arrays?
How to access array elements?
How to initialize an array?
How to insert elements to an array?
Initialize array during declaration
Example: Arrays
Be careful while using arrays in C
C arrays

An array is a collection of a fixed number of values of a single type. For example: if you want to store 100 integers in sequence, you can create an array for it.

int data[100];
The size and type of arrays cannot be changed after its declaration.

Arrays are of two types:

One-dimensional arrays
Multidimensional arrays (will be discussed in next chapter)

How to declare arrays?

data_type array_name[array_size];
For example,

float mark[5];
Here, we declared an array, mark, of floating-point type and size 5. Meaning, it can hold 5 floating-point values.

Elements of an Array and How to access them?
You can access elements of an array by indices.

Suppose you declared an array mark as above. The first element is mark[0], second element is mark[1] and so on.

C Array declaration 

Few key notes:
Arrays have 0 as the first index not 1. In this example, mark[0]
If the size of an array is n, to access the last element, (n-1) index is used. In this example, mark[4]
Suppose the starting address of mark[0] is 2120d. Then, the next address, a[1], will be 2124d, address of a[2] will be 2128d and so on. It's because the size of a float is 4 bytes.
How to initialize an array?
It's possible to initialize an array during declaration. For example,

int mark[5] = {19, 10, 8, 17, 9};

Another method to initialize array during declaration:

int mark[] = {19, 10, 8, 17, 9};

Initialize an array in C programming


mark[0] is equal to 19
mark[1] is equal to 10
mark[2] is equal to 8
mark[3] is equal to 17
mark[4] is equal to 9
How to insert and print array elements?
int mark[5] = {19, 10, 8, 17, 9}

// insert different value to third element
mark[3] = 9;

// take input from the user and insert in third element
​scanf("%d", &mark[2]);

// take input from the user and insert in (i+1)th element
scanf("%d", &mark[i]);

// print first element of an array
printf("%d", mark[0]);

// print ith element of an array
printf("%d", mark[i-1]);
Example: C Arrays
// Program to find the average of n (n < 10) numbers using arrays


#include <stdio.h>
int main()
     int marks[10], i, n, sum = 0, average;
     printf("Enter n: ");
     scanf("%d", &n);
     for(i=0; i<n; ++i)
          printf("Enter number%d: ",i+1);
          scanf("%d", &marks[i]);
          sum += marks[i];
     average = sum/n;

     printf("Average = %d", average);

     return 0;


Enter n: 5
Enter number1: 45
Enter number2: 35
Enter number3: 38
Enter number4: 31
Enter number5: 49
Average = 39

Important thing to remember when working with C arrays
Suppose you declared an array of 10 elements. Let's say,

int testArray[10];
You can use the array members from testArray[0] to testArray[9].

If you try to access array elements outside of its bound, let's say testArray[12], the compiler may not show any error. However, this may cause unexpected output (undefined behavior).

C Program to Copy String Without Using strcpy()

WELCOME BACK TO , In this article, you'll learn to copy string without using the library function strcpy().

To understand this example, you should have the knowledge of following C programming topics:

C Programming Arrays
C Programming Strings
C Programming for Loop

You can use the strcpy() function to copy the content of one string to another but, this program copies the content of one string to another manually without using strcpy() function.

Example: Copy String Manually Without Using strcpy()


#include <stdio.h>
int main()
    char s1[100], s2[100], i;

    printf("Enter string s1: ");

    for(i = 0; s1[i] != '\0'; ++i)
        s2[i] = s1[i];

    s2[i] = '\0';
    printf("String s2: %s", s2);

    return 0;


What is DOS/DDOS Attack || Explained With Example 2019

Practical Video

 What is DOS/DDOS Attack || Explained With Example 2019

ddos attack practical 2019

The safety incident of a service denial occurs when the attacker prevents the legitimate user from entering certain computer systems, devices, services or other IT resources. Services (DoS) typically invade flood servers, systems, or networks by destroying victims' resources and making it difficult or impossible to access legitimate users.

My Youtube Channel Link:

Attacking a server can usually be successfully dealt with by rebooting the system, and flood attacks can be more difficult to recover. Assault traffic comes from a large number of sources, by rescuing attacks from the DDoS, which is more difficult.

Networking protocols DoS and DDoS attacks often use vulnerability to handle network traffic; For example, by transmitting large numbers of packets to a weak network service from various Internet Protocol (IP) addresses to destroy services and not be available to legitimate users.
Signs of the Dose Attack

The United States Computer Emergency Readiness Team (US-CERT) provides some guidelines to determine when a dose attack is on. The US-CERT states that such attacks may include:

    Decline in network performance, especially when attempting to open files stored on the network or accessing websites;
    Inability to reach a particular website;
    The website is difficult to access; And
    Increased amount of spam email.

Preventing a DoS attack

In addition to preparing an event feedback plan, DoS and DDoS recommend several strategies to protect against attacks.

When an industry suspects DoS attacks, it should contact its Internet Service Provider (ISP) to determine if the event is a decline in performance due to actual DOS attacks or other factors. The ISP helps reduce the DoS and DDoS by using load balancers to reset or throw malicious traffic and reduce the impact of the attack.

Businesses may want to explore the possibility of using detection products that deny the DoS protection service; Some intrusion detection systems, intrusion prevention systems and firewalls provide DoS detection functions. Other strategies are contracted with backup ISP and use anti-cloud anti-DoS

In cases where the DOS or Didos stand to end the attack if attackers are required to pay off the victims, financial gain is not usually the backward intent of this type of attack. In many cases, attackers may cause a person to be harmed or attacked by the organization. In other cases, attackers are trying to ruin the victim by causing the greatest damage or disadvantage to a large number of victims. When the dose is detected by the attacker, the causes of the attack may be revealed.

Many high-profile DoS attacks actually deliver attacks, which means attack traffic is directed by many attack systems. DOS attacks may be easier to reduce when it originates from a single source or IP address, due to restricting network traffic from the armor source, and attacks that are directed by multiple attack systems are more difficult to detect and protect. Malicious traffic is difficult to distinguish between legitimate traffic and filtering malicious packets when packets are sent from IP addresses on the Internet.
Types of DoS attacks

DoS attacks can be categorized by methods used in the attack, except for a single-source negation-service attack and the DDoS attack.

Enhanced Domain Name System (DNS) Service Denial - In service attack, the attacker creates DNS requests created, which originate from the IP address on the victim's network and sends it to incorrectly configured DNS servers managed by third parties. Enhancement occurs as intermediate DNS servers respond to fake DNS requests. Response to attack requests created by intermediate DNS servers may contain more data than ordinary DNS responses, which require more resources to be processed. This may result in the rejection of access to the service to legitimate users.

Application layer attacks can cause fake traffic to Internet application servers, especially DNS servers or HTTP servers. Some application layer rejection-service attacks simply relied on flooding application servers with network data, while others misuse the weaknesses or vulnerabilities themselves on the victim's application server or atrocities.

Castal is a buffer overflow attack that usually applies to missions, which sends more traffic to a network resource than the developers and is designed to be expected. An example of such an invasion is to receive using Netscape or Microsoft Email

Download CEHv9 Study Guide PDF || Certified Ethical Hacker V9 Book

Download CEHv9 Study Guide PDF This book will be a great journey for our users in the field of cyber security . This book contains in ...