Làm thế nào để đánh sập máy tính với Python?
Mặc dù đã có rất nhiều nỗ lực khiến trình thông dịch Python gặp khó khăn hoặc không thể làm hỏng trình thông dịch trong cách sử dụng thông thường, nhưng có rất nhiều cách khá dễ dàng để làm hỏng trình thông dịch. BDFL được phát âm gần đây trên danh sách gửi thư python-dev Show I'm not saying it's uncrashable. I'm saying that if you crash it, it's a bug unless proven harebrained. Tôi nghĩ rằng có thể đáng để ghi lại một số cách trình thông dịch có thể bị lỗi - mặc dù hầu hết những cách này rất khó xảy ra trong mã thực Ngoài ra còn có một thư mục trong kho lưu trữ SVN trình bày các cách đã biết để đánh sập Python ctypesdef crash(): '''\ crash the Python interpreter... ''' i = ctypes.c_char('a') j = ctypes.pointer(i) c = 0 while True: j[c] = 'a' c += 1 j từ pyl đầu vào không có thậtThông qua Python 2. 4, bạn có thể làm hỏng trình thông dịch bằng cách chuyển hướng stdin từ một thư mục % python2.4 -c 'import sys ; print sys.version' 2.4.1 (#3, Jul 28 2005, 22:08:40) [GCC 3.3 20030304 (Apple Computer, Inc. build 1671)] % python2.4 < . Bus error Bắt đầu với 2. 5 thông dịch viên thông báo và hủy bỏ % python2.5 -c 'import sys ; print sys.version' 2.5a0 (41847M, Dec 29 2005, 22:21:03) [GCC 3.3 20030304 (Apple Computer, Inc. build 1671)] % python2.5 < . Fatal Python error: is a directory Abort trap Một số mô-đun cũng không thực hiện kiểm tra nghiêm ngặt dữ liệu mà chúng hoạt động trên đó. Mô-đun soái ca có thể khiến nó làm hỏng trình thông dịch khi được cung cấp một số chuỗi nhất định $ python Python 2.4.2 (#2, Sep 30 2005, 21:19:01) [GCC 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu8)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> import os, marshal >>> while True: .. try: .. marshal.loads(os.urandom(16)) .. except: .. pass .. Segmentation fault Thực thi mã ngẫu nhiên, do trình thông dịch không xác minh tính đúng định dạng của đối tượng mã (opcodes không hợp lệ, kích thước ngăn xếp sai, v.v. ). Đoạn mã sau được biết là làm sập python 2. 4. 3 trên Windows XP cũng như trên Linux from types import CodeType as code exec code(0, 5, 8, 0, "hello moshe", (), (), (), "", "", 0, "") Cạn kiệt tài nguyênCó một số lĩnh vực cạn kiệt tài nguyên có thể làm hỏng trình thông dịch. Đây là một cách khá dễ dàng để chứng minh để làm điều đó mặc dù % python Python 2.5a0 (41847M, Dec 29 2005, 22:21:03) [GCC 3.3 20030304 (Apple Computer, Inc. build 1671)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import sys >>> sys.setrecursionlimit(1<<30) >>> f = lambda f:f(f) >>> f(f) Segmentation fault Một ví dụ phức tạp hơn một chút liên quan đến việc yêu cầu trình thông dịch sử dụng hết một số tài nguyên bên trong khi thực hiện một thao tác đơn lẻ $ python Python 2.4.2 (#2, Sep 30 2005, 21:19:01) [GCC 4.0.2 20050808 (prerelease) (Ubuntu 4.0.1-4ubuntu8)] on linux2 Type "help", "copyright", "credits" or "license" for more information. >>> f = lambda: None >>> for i in xrange(1000000): .. f = f.__call__ .. >>> del f Segmentation fault Tương tác GC/weakrefTương tác giữa hai hệ thống này trong lịch sử là một điểm khó đối với CPython. Vẫn còn ít nhất một vấn đề trong Python 2. 4. 2 ________số 8_______Mô-đun nguy hiểmMột số mô-đun được thiết kế để cho phép các lập trình viên truy cập vào ruột của mọi thứ. Đương nhiên, chúng cũng tạo cơ hội cho các lập trình viên tự bắn vào chân mình. Ở đây có một ít
đa luồngMột số mô-đun (hay đúng hơn là các đối tượng trong chúng) có thể gây ra sự cố nếu chúng được sử dụng không đúng cách trong nhiều luồng; * Đề cập đến cùng một kết nối MySQLdb, có thể gây ra lỗi Phân đoạn KhácTôi có cách khác Tôi đã viết trình soạn thảo Tkinter GUI [được gọi là "GWiz"] để giúp tôi tạo và duy trì Tk GUI cho các dự án của riêng mình. [Bản thân trình soạn thảo cũng là một dự án GWiz. ] Trong một số trường hợp, tôi đã quên đóng GUI do GWiz tạo trước khi thoát. D. L. E. và Python [always?] gặp sự cố khi thoát với trình yêu cầu lỗi "ứng dụng đã yêu cầu chấm dứt bất thường". Khi tôi nhớ đóng ứng dụng của mình trước khi đóng, tôi. D. L. E. , mọi thứ biến mất sạch sẽ. Tôi nên thêm mã vào GWiz để làm sys. atexit() dọn dẹp, nhưng tôi không biết cách hủy đăng ký các cuộc gọi lại của atexit; . Tôi có thể đăng các sửa đổi cho mô-đun thư viện, nếu ai đó sẽ cho tôi biết nơi đăng chúng Làm cách nào để đánh sập PC bằng Python?Để tắt máy tính/PC/máy tính xách tay bằng tập lệnh Python, bạn phải sử dụng hệ điều hành. hàm system() với mã “ shutdown /s /t 1 ” . Ghi chú. Để làm việc này, bạn phải nhập thư viện os trong ide. Nếu bạn không có nó, thì ' pip install os ' thông qua Dấu nhắc Lệnh.
Sự cố trong Python là gì?crash-python là trình gỡ lỗi ngữ nghĩa cho nhân Linux . Nó có nghĩa là tạo cảm giác quen thuộc cho người dùng trình gỡ lỗi sự cố cổ điển nhưng cho phép truy cập tượng trưng mạnh mẽ hơn nhiều vào các kết xuất sự cố cũng như bật API để viết các tiện ích mở rộng, lệnh và tập lệnh phân tích đặc biệt.
Làm cách nào để làm hỏng máy tính với tệp hàng loạt?Mở sổ tay. Hầu hết các máy tính đều có sẵn chương trình này Nhập @echo Tắt. Bạn cần nhấn enter sau mỗi dòng mã Bước 3. 3. Nhập vào dòng thứ hai. tai nạn. Điều này tạo ra một điểm vòng lặp cho mã Nhập Bắt đầu trên Dòng thứ ba. . Nhập Goto Crash. . Lưu tệp văn bản của bạn dưới dạng tệp hàng loạt. . Đặt tên cho tệp của bạn. . lưu nó Bạn có thể viết phần mềm độc hại bằng Python không?Xét cho cùng, phần mềm độc hại được viết bằng Python phổ biến trong thế giới hoang dã này và nhiều phần mềm chống vi-rút không phát hiện ra nó. Python thường được sử dụng để tạo các cửa hậu cho phép kẻ tấn công tải lên và thực thi mã tùy ý trên máy bị nhiễm. |