Bộ nhớ tham nhũngTừ Wikipedia tiếng ViệtBộ nhớ tham nhũng xảy ra trong một chương trình máy tính khi nội dung của vị trí bộ nhớ được vô ý sửa đổi do lỗi lập trình; Điều này được gọi là vi phạm bộ nhớ an toàn. Khi nội dung bị hỏng bộ nhớ được sử dụng sau này trong chương trình đó, nó dẫn đến tai nạn chương trình hoặc đến hành vi của chương trình kỳ lạ và kỳ lạ. Gần 10% của ứng dụng treo trên Windows Hệ thống là do heap tham nhũng.[1]Ngôn ngữ lập trình hiện đại như C và c + + có các tính năng mạnh mẽ của quản lý bộ nhớ rõ ràng và con trỏ số học. Các tính năng này được thiết kế để phát triển các ứng dụng hiệu quả và hệ thống phần mềm. Tuy nhiên, bằng cách sử dụng các tính năng này không đúng có thể dẫn đến bộ nhớ tham nhũng lỗi.Bộ nhớ tham nhũng là một trong các lớp học đặt intractable lập trình lỗi, 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ó khăn để tương quan nguyên nhân và hiệu quả.Triệu chứng xuất hiện trong các điều kiện bất thường, làm cho nó khó khăn để luôn tái sản xuất lỗi.Bộ nhớ tham nhũng lỗi có thể được rộng rãi phân loại thành bốn loại:Bằng cách sử dụng bộ nhớ uninitialized: nội dung của bộ nhớ uninitialized được đối xử như rác giá trị. Bằng cách sử dụng giá trị như vậy có thể dẫn đến hành vi của chương trình không thể đoán trước.Bằng cách sử dụng bộ nhớ không thuộc sở hữu: nó là phổ biến để sử dụng con trỏ để truy cập và sửa đổi bộ nhớ. Nếu một con trỏ chỉ là một con trỏ null, tòn ten pointer (chỉ vào bộ nhớ đã được giải phóng), hoặc một vị trí bộ nhớ bên ngoài hiện tại ngăn xếp hoặc đống giới hạn, nó đề cập đến bộ nhớ không phải là sau đó sở hữu bởi chương trình. Sử dụng con trỏ như vậy là một lỗ hổng nghiêm trọng lập trình. Truy cập vào bộ nhớ như vậy thường gây ra trường hợp ngoại lệ hệ điều hành, rằng hầu hết thường dẫn đến một vụ tai nạn chương trình (trừ khi bộ nhớ phù hợp bảo vệ phần mềm đang được sử dụng).Bằng cách sử dụng bộ nhớ ở xa bộ nhớ được cấp phát (lỗi tràn bộ đệm): nếu một mảng được sử dụng trong một vòng lặp, với điều kiện chấm dứt không chính xác, bộ nhớ vượt ra ngoài giới hạn mảng có thể được chế tác vô tình. Lỗi tràn bộ đệm là một trong những thiếu sót trong lập trình phổ biến nhất được khai thác bởi virus máy tính, gây ra vấn đề bảo mật máy tính nghiêm trọng (ví dụ như trở lại-để-libc tấn công, đập ngăn xếp bảo vệ) trong các chương trình được sử dụng rộng rãi. Trong một số trường hợp chương trình cũng không chính xác có thể truy cập vào bộ nhớ trước khi bắt đầu một bộ đệm.Bị lỗi đống quản lý bộ nhớ: bộ nhớ rò rỉ và giải phóng bộ nhớ-đống hoặc bỏ được phân bổ là các lỗi thường xuyên nhất do quản lý bộ nhớ bị lỗi đống.Nhiều bộ nhớ debuggers chẳng hạn như Purify, Valgrind, bảo hiểm c++, các AddressSanitizer có sẵn để phát hiện lỗi tham nhũng bộ nhớ. Trong thế giới IBMmainframe, OLIVER cung cấp bảo vệ bộ nhớ cho các giao dịch CIVICS (trước khi các phiên bản an toàn hơn của CIVICS đã được phát hành - nhiều như 20 năm sau đó). OLIVER xác định chính xác các chỉ 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..
