Ưu đãi trong tuần: Nhập mã UD50 giảm 50k cho đơn từ 300k!
Trang chủ
Menu

Assembly Language Programming for Reverse Engineering

Lập trình Assembly cho Reverse Engineering

Lập trình Assembly cho Reverse Engineering

Hiểu mã assembly và sửa đổi file exe để thêm tính năng mới bằng x64dbg

4.6
(540 đánh giá)
6,967 học viên
Giảng viên
Paul Chin, PhD
Phụ đề Việt chất lượng cao Phụ đề tiếng Anh Bán chạy Đánh giá cao
50.000đ 349.000đ -86%
✓ Xem giỏ hàng và thanh toán
Bao gồm phụ đề tiếng Việt, tiếng Anh
15.0 giờ video
102 bài giảng
Truy cập vĩnh viễn
Học trên mọi thiết bị
Cập nhật: 29/05/2026

Bạn sẽ học được gì

Kiến thức cơ bản về Ngôn ngữ Assembly
Kỹ thuật Reverse Engineering
Cơ bản về gỡ lỗi với xdbg
Sửa đổi chương trình
Tiêm mã vào file exe
Kỹ thuật Hollowing file exe
Thanh ghi CPU
Phép cộng cơ bản
Các lệnh INC, DEC, MUL và DIV
Truy cập bộ nhớ chính (RAM)
Ngăn xếp (Stack)
Lời gọi hàm
Hàm nhập và xuất
Code Caves
Hàm trả về giá trị
Thanh ghi cờ (Flags Register)
Lệnh nhảy
Lệnh so sánh
Lập trình cấu trúc
Phép toán có dấu
và nhiều nội dung khác...

Yêu cầu

Máy tính cá nhân
Biết lập trình C cơ bản sẽ hữu ích nhưng không bắt buộc
Bạn sẽ học mọi kiến thức cần thiết

Đối tượng phù hợp

Nhà nghiên cứu bảo mật và sinh viên
Kỹ sư Reverse Engineering
Bất kỳ ai muốn học Assembly từ góc nhìn của hacker phần mềm

Nội dung khóa học

26 phần • 102 bài giảng
1 Cài đặt công cụ
2 Hệ thống số nhị phân và thập lục phân
1 Giới thiệu trình gỡ lỗi xdbg
2 Cơ bản về từng bước gỡ lỗi
3 Cách hollowing file exe
1 Giới thiệu thanh ghi CPU
2 Lệnh MOV
1 Phép cộng sử dụng thanh ghi đầy đủ
2 Phép cộng với thanh ghi một phần
3 Phép trừ
1 Lệnh INC và DEC
2 Lệnh MUL
3 Lệnh DIV
4 Bài tập về DIV
1 Từ thanh ghi vào bộ nhớ và ngược lại
2 Kỹ thuật MOV vào bộ nhớ và sửa bộ nhớ trực tiếp
3 Bài tập về bộ nhớ
1 Đẩy giá trị thanh ghi vào stack
2 Lấy giá trị từ stack vào thanh ghi
3 Cách đẩy hằng số và chuỗi vào stack
1 Giới thiệu lời gọi hàm
2 Lời gọi hàm với 2 tham số
3 Bài tập: Lời gọi hàm với 2 tham số
4 Bài tập: Lời gọi hàm với 3 tham số
1 Giới thiệu nhập/xuất trong assembly
2 Cách đọc số và xuất lại
3 Cách đọc chuỗi và xuất lại cho người dùng
1 Giới thiệu Code Caves
2 Một code cave đơn giản
3 Code Cave Hello
4 Bài tập: Lấy Firstname, Lastname
1 Mô tả dự án
2 Thiết kế giải pháp
3 Viết mã cho máy tính
1 Giới thiệu hàm trả về giá trị
2 Bài tập về hàm strlen()
1 Giới thiệu thanh ghi cờ và cờ ZF
2 Cờ SF
3 Cờ CF
4 Cờ OF
5 Nên xem cờ nào: OF hay CF?
1 Giới thiệu lệnh nhảy và JZ
2 Lệnh nhảy JNZ
3 Vòng lặp JZ
4 Vòng lặp JNZ
5 Các lệnh nhảy có điều kiện khác
1 Giới thiệu lệnh so sánh
2 Thực hành lệnh CMP
3 So sánh số không dấu và có dấu
1 Giới thiệu lập trình cấu trúc và câu lệnh If-Else
2 Vòng lặp For
3 Vòng lặp While
4 Thoát khỏi vòng lặp
5 Chế độ xem đồ thị, Trace Animate và nguyên tắc nhảy
1 Lệnh NEG
2 Mở rộng có dấu và không dấu
3 Thực hành mở rộng có dấu và không dấu
4 Chuyển đổi Byte và Word dùng CBW và CWDE
5 Chuyển đổi Byte và Word dùng CWD và CDQ
6 IMUL và IDIV
7 Ví dụ về IDIV
1 Giới thiệu đại số Boolean
2 Các lệnh thao tác bit
3 Dịch bit số học
4 Lệnh xoay bit
5 Bài tập về phép toán bit
1 Giới thiệu mảng trong bộ nhớ
2 Thực hành mảng trong bộ nhớ
3 Giới thiệu lệnh LEA
4 Triển khai LEA đơn giản
5 LEA với bộ đếm
6 LEA với vòng lặp
1 Giới thiệu cấu trúc dữ liệu
2 Thực hành cấu trúc dữ liệu
1 Giới thiệu lệnh chuỗi
2 Cờ hướng (DF flag)
3 Lệnh LODS
4 Bài tập: LODS Adder
5 Lệnh MOVS
6 Lệnh REP
7 Lệnh SCAS
8 Lệnh CMPS
1 Giới thiệu CALL và RET
2 Tầm quan trọng của việc lưu trạng thái thanh ghi
3 Lời gọi hàm lồng nhau
4 Quy ước gọi hàm: dùng thanh ghi để truyền tham số
5 Truyền tham số qua Heap (Dữ liệu toàn cục)
6 Truyền tham số qua Stack
7 Dọn dẹp Stack
8 Khung stack (Stack Frames)
9 Thực hành khung stack
1 Giới thiệu Call Stack
2 Thực hành duyệt Call Stack
1 Giới thiệu WinAPI
2 ReadFile và WriteFile - Lý thuyết
3 ReadFile và WriteFile - Thực hành
4 Lý thuyết về win32 API CreateFile
5 Thực hành win32 API CreateFile
1 Hiểu về hàm ngoại
2 Thực hành hàm ngoại
1 Bài giảng bổ sung
2 CẬP NHẬT: Tiếp tục hành trình với assembly x64 (64-bit)

Giới thiệu khóa học

If you have been using debuggers to reverse engineer programs but wished you had more understanding of Assembly Language, then this course is for you. We will cover enough assembly language to allow you to understand how to modify exe files to insert your own code or, to modify existing exe files to do things which it was not intended to do.

Traditionally, assembly language programming is taught using an assemblers like NASM or FASM. But learning it that way will not give you the skills to understand reverse engineered programs. There is a missing link (knowledge gap) of how to apply your assembly knowledge to modify programs. This course fills that knowledge gap.

Instead of using an assembler, we will directly use the x64dbg debugger to learn assembly language. That is right, we will write our own assembly code inside the x64dbg debugger itself.  You will learn Assembly Language from the ground up with zero knowledge as a complete beginner.

We will use techniques that allow you to:

 

  1. modify existing code

  2. overwrite existing code

  3. modify memory segments to insert data

  4. create new functions

  5. exploit code caves

  6. add new functionality to existing programs

  7. and more...

 

This black art is not widely taught and there are no existing courses elsewhere that puts together coherently all the knowledge of assembly and reverse engineering. Mostly what you will find are separate courses on Assembly and Reverse Engineering. Many courses on Reverse Engineering don't cover the background assembly language from a software hacker's perspective. And almost all Assembly Language courses teach you how to write programs from scratch, instead of how to modify existing programs to add new functionality with your own code using a debugger like x64dbg.

 

The knowledge you gain will be your added advantage either as a security researcher, or, malware analyst, or student of software security. It will also benefit programmers who want to know how programs run internally and how to extend program functionality if you do not have the source code.

 

Go ahead and enroll now and I will see you inside!

Khóa học liên quan

Khám phá thêm các khoá học cùng chủ đề

Hiển thị tất cả khoá học Assembly Language
Hiển thị tất cả khoá học Low Level Programming
Hiển thị tất cả khoá học Reverse Engineering
Hiển thị tất cả khoá học X86 Architecture
Zalo
Tôi có thể tư vấn khoá học cho bạn 😊