Thực hành Lỗ hổng Buffer Overflow
Thí nghiệm này được thực hiện trên hệ điều hành Ubuntu Linux 64-bit, trong môi trường đám mây của实验楼 (Shiyanlou).
Giới thiệu
Lỗ hổng bộ đệm tràn (Buffer Overflow) xảy ra khi một chương trình cố gắng ghi dữ liệu vào một bộ đệm (buffer) vượt quá kích thước đã được cấp phát cố định. Lỗ hổng này có thể bị kẻ tấn công lợi dụng để thay đổi luồng ...
Đăng vào ngày 12 tháng 6 lúc 04:48
Gói tất cả các thư viện JAR thành một file JAR duy nhất bằng Maven
Sử dụng maven-shade-plugin
======================
(1) Thêm plugin sau vào file pom.xml của dự án:
<build>
<plugins>
<!-- Maven Shade Plugin -->
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</ar ...
Đăng vào ngày 5 tháng 6 lúc 20:14
Hướng dẫn sử dụng lệnh TEST trong Assembly
Trong lập trình assembly và lập trình mức thấp, lệnh TEST là một chỉ thị quan trọng dùng để thực hiện phép AND bitwise (AND từng bit), nhưng với một đặc điểm đặc biệt: lệnh này chỉ cập nhật cờ trạng thái (Flags) mà không lưu trữ kết quả phép tính.
Nói một cách đơn giản, TEST dùng để kiểm tra trạng thái của một số bit nhất định (bằng 0 hay bằng ...
Đăng vào ngày 2 tháng 6 lúc 02:36
Phân Tích Mã Nguồn Bộ Khởi Động Hệ Điều Hành 64-bit
Giới thiệu
Để hiểu rõ cơ chế hoạt động của bộ khởi động (boot sector), chúng ta cần nắm vững quy trình khởi động từ BIOS. Khi máy tính được bật nguồn, BIOS sẽ thực hiện kiểm tra phần cứng, sau đó đọc boot sector (512 byte) từ thiết bị khởi động và nạp nó vào địa chỉ bộ nhớ 0x7C00. Nhiệm vụ chính của đoạn mã này là tìm và tải kernel vào bộ nhớ, ...
Đăng vào ngày 1 tháng 6 lúc 13:44
Từ mã nguồn đến tập lệnh: Hành trình chuyển đổi qua các giai đoạn biên dịch
Khi thực thi lệnh gcc main.c -o program và chạy ./program, hệ thống trải qua quy trình biến đổi phức tạp từ mã nguồn sang lệnh máy. Dưới đây là phân tích chi tiết về từng giai đoạn.
main.c mẫu:
#define PI 3.14159
#include <stdio.h>
int main() {
double radius = 5.0;
double area = PI * radius * radius;
printf("Area: %.2f\n ...
Đăng vào ngày 27 tháng 5 lúc 11:46