Memory tham nhũng
từ Wikipedia, bách khoa toàn thư miễn phí
tham nhũng bộ nhớ xảy ra trong một chương trình máy tính khi nội dung của một vị trí bộ nhớ được vô tình sửa đổi do lỗi lập trình; này được gọi là vi phạm an toàn bộ nhớ. Khi nội dung bộ nhớ bị hỏng được sử dụng sau này trong chương trình đó, nó dẫn đến tai nạn hoặc chương trình hoặc chương trình hành vi kỳ lạ và kỳ quái. Gần 10% số ứng dụng bị treo trên hệ thống Windows là do đống tham nhũng. [1] ngôn ngữ lập trình hiện đại như C và C ++ có tính năng mạnh mẽ của quản lý bộ nhớ rõ ràng và số học con trỏ. Những tính năng này được thiết kế để phát triển các ứng dụng hiệu quả và phần mềm hệ thống. Tuy nhiên, sử dụng các tính năng này không đúng có thể dẫn đến tham nhũng lỗi bộ nhớ. Bộ nhớ tham nhũng là một trong những lớp khó chữa hầu hết các lỗi lập trình, vì hai lý do: Nguồn gốc của tham nhũng bộ nhớ và biểu hiện của nó có thể xa nhau, làm cho nó khó để tương quan gây ra và hiệu quả. Các triệu chứng xuất hiện trong điều kiện không bình thường, làm cho nó khó khăn để liên tục sao chép các lỗi. lỗi tham nhũng bộ nhớ có thể được phân loại thành bốn loại: Sử dụng bộ nhớ uninitialized: Nội dung của bộ nhớ chưa được khởi tạo được coi là giá trị rác. Sử dụng các giá trị như vậy có thể dẫn đến hành vi chương trình không thể đoán trước. Sử dụng bộ nhớ không có nước: Người ta thường sử dụng con trỏ để truy cập và sửa đổi bộ nhớ. Nếu một con trỏ như là một con trỏ null, con trỏ tòn ten (chỉ vào bộ nhớ đã được giải phóng), hoặc đến một vị trí bộ nhớ bên ngoài của stack hay heap giới hạn hiện tại, nó được đề cập đến bộ nhớ được không sau đó sở hữu bởi chương trình. Sử dụng con trỏ như là một lỗ hổng lập trình nghiêm trọng. Truy cập bộ nhớ như vậy thường gây ra trường hợp ngoại lệ hệ điều hành, mà phổ biến nhất dẫn đến một vụ tai nạn chương trình (trừ khi phần mềm bảo vệ bộ nhớ phù hợp đang được sử dụng). Sử dụng bộ nhớ ngoài bộ nhớ đã được phân bổ (tràn bộ đệm): Nếu một mảng được sử dụng trong vòng một, với điều kiện chấm dứt không đúng, bộ nhớ vượt quá giới hạn mảng có thể vô tình được chế tác. Tràn bộ đệm là một trong những lỗ hổng chương trình phổ biến nhất khai thác bởi virus máy tính, gây ra các vấn đề bảo mật máy tính nghiêm trọng (ví dụ như trở lại-to-libc tấn công, ngăn xếp đập bảo vệ) trong các chương trình sử dụng rộng rãi. Trong một số trường hợp chương trình cũng có thể không đúng cách truy cập vào bộ nhớ trước khi bắt đầu một bộ đệm. Lỗi quản lý bộ nhớ heap: rò rỉ bộ nhớ và giải phóng không đống hoặc bộ nhớ chưa phân bổ được các lỗi thường gặp nhất gây ra bởi lỗi quản lý bộ nhớ heap. Nhiều gỡ rối bộ nhớ như vậy như làm sạch, Valgrind, Bảo đảm ++, AddressSanitizer có sẵn để phát hiện tham nhũng lỗi bộ nhớ. Trong thế giới IBMmainframe, OLIVER cung cấp bảo vệ bộ nhớ cho các giao dịch CICS (trước khi phiên bản an toàn hơn của CICS đã được phát hành - nhiều như 20 năm sau). OLIVER xác định chính xác hướng dẫn vi phạm chính xác trước khi bất kỳ tham nhũng có thể xảy ra.
đang được dịch, vui lòng đợi..
