1. What is a hacker?
Originally refers to computer experts who are enthusiastic about computer technology and have a high level, especially programmers. But later, the term hacker has been used to refer to those who specialize in using computer networks to cause damage or mischief.
2. Reasons for learning hacking techniques
In fact, network information space security has become the fourth largest battlefield after sea, land and air. In addition to the game between countries, there are also obvious competitions between domestic enterprises and enterprises.
Network security hacking technology is one of the capabilities that both countries and enterprises are paying more and more attention to.
3. How hackers learn
A. First of all, your technical ability must meet the standard
The following is a brief summary after I learned how to become a hacker, you can follow the steps below to learn;
1. First thing you should learn how to program, I suggest to learn python first, then java.
2. (Not required) Next, it is helpful to learn some algorithms and data structures, which will help you program better.
3. Once you learn how to program, you should learn how to program in c. Focus on the following topics:
structure
Arithmetic operations on pointers
call by value and call by reference
String IO Basics
macro
conditional compilation
program structure
4. Learn the basics of the UNIX operating system:
Unix shells
shell variables
File system
Common Unix commands
Shell scripting
Unix shell environment
5. (Optional) Learn assembly language. Understand how assembly language is converted into machine code and then into programs that can be executed by computer hardware
sequence. And you should learn how to analyze assembler, it's useful for reverse engineering.
6. Understand computer operating system and architecture
process management
memory management
File system interface and implementation
IO system, distributed system
computer network
java network programming
Protection and Safety
. Understanding Sysadmins
Basic composition of computer system
major computer components
structure has a macroscopic understanding
Process management: processes, threads, process synchronization, CPU scheduling, java multi-threaded programming, and deadlocks. Memory management: main memory and virtual memory.
Experience different operating systems such as win unix linux command line and GUI mode.
7. (Optional) It is also useful to learn cryptography, and the mathematics in cryptography is very useful.
traditional symmetric key
modern symmetric key
RSA
digital signature etc.
Application Layer Security
PGP
S/MIME
8. Understand computer network and Internet
Application layer: Web, HTTP, FTP, DNS and socket communication
Transport layer: UDP, TCP, and congestion control, etc.
Some other good topics: Network Administration
WireShark network traffic analysis
Penetration Testing and Network Security
In-Depth Computer and Network Forensics
Vulnerability and malware analysis
Low-level protocol packet analysis
9. Understand software engineering. Understand the phases of software development, including requirements, documentation, design, coding, testing, and maintenance, and the strengths and weaknesses of software development models.
I have also planned the complete entry learning route
There are also supporting resources for the above-mentioned various knowledge points (pay attention to automatic sending)
B. The actual combat ability has to be improved
In addition to academics, after learning the theory and some skills, it is very necessary to practice in actual combat:
take part in capture the flag
Participate in security meetings with a certain basis
Frequently Visit Safe Sites
try to dig holes
Try to build your own website
wait
Four, finally
The process of becoming a hacker is not easy
When you want to become a hacker or a penetration testing expert, these technical points are absolutely necessary. Behind the glamorous success is sweating and studying hard day and night!