lá cờ được lưu trữ trong bộ nhớ tiếp giáp với các bộ đệm đánh dấu. Loại phổ biến nhất của ngăn xếp tràn liên quan đến việc ghi đè lên con trỏ chức năng có thể được sử dụng để thay đổi chương trình dòng chảy hoặc đạt được các đặc quyền cao trong môi trường điều hành hệ thống. Overrun đống phức tạp hơn liên quan đến việc cấp phát bộ nhớ năng động, hoặc bộ nhớ được cấp phát tại thời gian chạy bởi một ứng dụng.
trong nghiên cứu này, chúng tôi sẽ đặt chúng tôi tập trung vào ngăn xếp bộ đệm tràn. Tuy nhiên, trong cả hai trường hợp, một trong những phải có một sự hiểu biết tốt như thế nào hệ điều hành
phân bổ bộ nhớ, và làm thế nào các ứng dụng sử dụng phân bổ này. Ngoài ra,
.
Điều này có thể là thận trọng cơ hội để xác định và chứng minh những gì ngăn xếp
và heap được và làm thế nào họ làm việc trong các ứng dụng thực tế. quyền
Cấu trúc và quản lý bộ nhớ chương trình
bất kỳ ứng dụng hoặc chương trình một cách hợp lý có thể được chia thành hai phần cơ bản của
văn bản và dữ liệu. Văn bản là fullcode thực tế chỉ đọc các chương trình trong máy có thể đọc định dạng, và dữ liệu là thông tin mà các văn bản hoạt động trên như nó thực hiện
hướng dẫn. Dữ liệu văn bản nằm trong các khu vực thấp của một quá trình cấp phát bộ nhớ. Một số trường hợp của cùng một chương trình có thể chia sẻ này bộ nhớ area.
dữ liệu, lần lượt, có thể được chia thành ba phần hợp lý của tĩnh, ngăn xếp, và đống
dữ liệu. Sự khác biệt giữa các loại là giữ lại
phụ thuộc vào khi và làm thế nào bộ nhớ là
phân bổ, và nơi nó được lưu trữ hoặc nằm.
Khi thực thi một lần đầu tiên được nạp bởi các
hệ điều hành, segmentAuthoris văn bản
tải vào bộ nhớ lần đầu tiên. Dữ liệu
phân đoạn theo sau đó. Hình 1
chứng tỏ các mối quan hệ.
2002,
dữ liệu tĩnh, nằm ở trên và tiếp giáp với
dữ liệu văn bản, trước khi được biết đến thông tin
có dung lượng lưu trữ được biên dịch vào các
chương trình. Khu vực bộ nhớ này là bình thường
dành riêng cho toàn cầu variablesInstitute và tĩnh C
lớp thành viên. Dữ liệu tĩnh có thể trong một trong hai
một nhà nước khởi tạo hoặc uninitialized. Đống
dữ liệu, nằm ở trên và tiếp giáp với tĩnh
dữ liệu, là allocatedSANS tại thời gian chạy của C
©
ngôn ngữ chức năng malloc() và calloc(), và bởi các nhà điều hành mới C. Heap lớn lên từ một địa chỉ bộ nhớ thấp đến một địa chỉ bộ nhớ cao.
đang được dịch, vui lòng đợi..
