
Cách sửa lỗi "An error has occurred" khi dùng Undo trong 3ds Max
Tổng quan
Khi nhấn Ctrl+Z (Undo) trong 3ds Max khiến phần mềm báo lỗi "Application Error" rồi crash, nguyên nhân gần như luôn là do nhiễm một MAXScript độc hại của bên thứ ba có tên ALC. Script này âm thầm làm hỏng cài đặt và dữ liệu scene của 3ds Max, khiến các thao tác cơ bản như Undo trở nên không ổn định hoặc không thể dùng được.
ALC không phải là virus truyền thống. Đây là một MAXScript lây lan qua các file scene .max bị nhiễm. Khi bạn mở một file bị nhiễm, script sẽ tự cài vào thư mục startup của 3ds Max, rồi nhúng chính nó vào mọi scene bạn lưu về sau. Điều này đặc biệt nguy hiểm trong môi trường làm việc nhóm, nơi các artist thường xuyên chia sẻ file scene.
ALC lây nhiễm vào hệ thống của bạn như thế nào
Quá trình lây nhiễm diễn ra qua hai giai đoạn:
Giai đoạn 1 — Nhiễm scene: Bạn nhận một file .max từ đồng nghiệp, khách hàng hoặc thư viện asset. Bạn không hề biết rằng file đó chứa một script ALC được nhúng sẵn. Khi 3ds Max mở file, script tự động chạy và sao chép chính nó vào thư mục startup scripts của 3ds Max.
Giai đoạn 2 — Nhiễm hệ thống: Khi đã nằm trong thư mục startup, script ALC chạy mỗi lần 3ds Max khởi động. Sau đó nó nhúng chính nó vào mọi file scene bạn lưu, lây nhiễm sang bất kỳ ai mở file của bạn. Script cũng can thiệp vào các script controller nội bộ của 3ds Max, và đây chính là nguyên nhân gây crash khi Undo.
Script được thiết kế để không lộ diện: ban đầu nó không hiển thị triệu chứng rõ ràng nào. Theo thời gian, nó làm hỏng dữ liệu script controller, phá vỡ Undo stack, gây crash ngắt quãng và có thể ảnh hưởng đến kết quả render.
Triệu chứng
Nhiễm ALC biểu hiện qua nhiều triệu chứng, và không phải triệu chứng nào cũng xuất hiện ngay:
- Undo làm 3ds Max crash kèm hộp thoại "Application Error"
- Lỗi Script Controller xuất hiện bất ngờ ("No 'Get' function for undefined")
- Scene ngày càng kém ổn định — thao tác hôm qua còn chạy tốt thì hôm nay đã crash
- Dung lượng file tăng lên do dữ liệu ALC tích tụ
- Các artist khác báo lỗi sau khi mở file bạn đã lưu — đây là dấu hiệu nhiễm đang lây lan
Phát hiện
Kiểm tra startup scripts
Mở thư mục startup scripts của 3ds Max:
C:\Users\[username]\AppData\Local\Autodesk\3dsMax\[version]\ENU\scripts\startup\
Hãy tìm các file .ms hoặc .mse lạ. Script ALC thường được đặt tên chung chung để tránh bị phát hiện. Nếu bạn thấy những script mình không hề cài, đó có thể là ALC hoặc một loại malware tương tự.
Dùng Security Tools của Autodesk
Autodesk cung cấp plugin 3ds Max Security Tools, được thiết kế riêng để phát hiện và loại bỏ ALC cùng các loại script lây nhiễm tương tự. Hãy tải về từ trang web chính thức của Autodesk:
- Cài đặt plugin Security Tools
- Mở 3ds Max
- Công cụ tự động chạy và quét các script độc hại đã biết
- Làm theo hướng dẫn trên màn hình để cách ly hoặc xóa các script nhiễm được phát hiện
Đây là bước đầu tiên được khuyến nghị và xử lý được phần lớn các biến thể của ALC.
Kiểm tra MAXScript Listener
Mở MAXScript > MAXScript Listener (F11) và quan sát đầu ra khi 3ds Max khởi động. Các dấu hiệu đáng ngờ gồm những dòng nhắc đến script lạ chạy lúc khởi động, hoặc thông báo lỗi liên quan đến script controller.
Quy trình dọn dẹp
Bước 1: Chạy Autodesk Security Tools
Cài đặt và chạy Security Tools như đã mô tả ở trên. Công cụ này tự động phát hiện và loại bỏ các biến thể ALC đã biết khỏi cả ứng dụng lẫn các file scene đang mở.
Bước 2: Dọn thư mục startup
Kiểm tra thủ công thư mục startup scripts và xóa mọi file .ms/.mse lạ. Nếu có thể, hãy so sánh với một bản cài 3ds Max sạch. Thư mục startup chỉ nên chứa những script bạn nhận ra (script khởi tạo plugin, các công cụ tùy chỉnh bạn đã cài).
Bước 3: Reset preferences của 3ds Max
Giữ Ctrl+Shift khi khởi động 3ds Max để reset toàn bộ preferences. ALC sửa đổi dữ liệu preferences, và dữ liệu này có thể tồn tại ngay cả sau khi script đã bị xóa. Reset preferences giúp đưa phần mềm về trạng thái sạch.
Bước 4: Làm sạch các file scene bị nhiễm
Mở từng file scene gần đây khi đã cài Security Tools. Công cụ sẽ phát hiện và loại bỏ dữ liệu ALC nhúng trong scene. Hãy lưu file đã làm sạch dưới tên mới để giữ lại file gốc làm bằng chứng.
Nếu Security Tools không thể làm sạch một scene bị hỏng nặng:
- Mở scene bị nhiễm (với Security Tools đang hoạt động để tránh tái nhiễm)
- Chọn toàn bộ geometry
- Export sang FBX
- Tạo một scene mới, sạch
- Import geometry từ file FBX
- Dựng lại material và render settings
Cách này làm mất dữ liệu, bạn sẽ mất render settings và các material V-Ray/Corona, nhưng đảm bảo cho ra một file scene sạch.
Bước 5: Thông báo cho nhóm của bạn
Nếu bạn đã chia sẻ bất kỳ file scene nào sau thời điểm bị nhiễm, hãy thông báo cho tất cả những người đã nhận chúng. Họ cần chạy cùng quy trình dọn dẹp để ngăn việc nhiễm quay lại pipeline của bạn qua file của họ.
Phòng ngừa
- Luôn chạy Autodesk Security Tools — hãy cài sẵn và để hoạt động thường trực
- Cẩn trọng với các file .max từ bên ngoài, như file từ khách hàng, freelancer hoặc chợ asset
- Quét file scene trước khi mở nếu chúng đến từ nguồn không đáng tin
- Dùng FBX để trao đổi asset thay vì file .max khi có thể — FBX không mang theo được MAXScript nhiễm
- Luôn cập nhật 3ds Max — Autodesk đã bổ sung cơ chế kiểm soát thực thi script từ 3ds Max 2021 và tiếp tục siết chặt trong các bản sau, trong đó có việc hiển thị cảnh báo nghiêm ngặt hơn trước khi chạy script nhúng từ nguồn không đáng tin
Nhiễm ALC cũng có thể gây ra tình trạng 3ds Max bị đơ và chạy chậm nói chung, vì script độc hại tích tụ dữ liệu theo thời gian.
Ảnh hưởng đến việc gửi file lên render farm
Các file scene nhiễm ALC cũng có thể gây sự cố trên render farm (hệ thống máy tính kết xuất). Script độc hại có thể chạy trên các render node (tùy theo cấu hình bảo mật của farm), có khả năng làm hỏng bản cài 3ds Max của node hoặc gây lỗi render.
Trên render farm của chúng tôi, mọi file scene gửi lên đều được quét bảo mật. Tuy vậy, chúng tôi khuyến nghị bạn làm sạch các file bị nhiễm trước khi gửi để có kết quả render nhất quán.
FAQ
Q: ALC là gì và nó xâm nhập vào 3ds Max của tôi bằng cách nào? A: ALC là một MAXScript độc hại lây lan qua các file scene .max bị nhiễm. Khi bạn mở một file bị nhiễm, script sẽ tự sao chép vào thư mục startup và nhúng chính nó vào mọi scene bạn lưu sau đó. Nó không phải virus truyền thống, vì hoạt động hoàn toàn bên trong môi trường scripting của 3ds Max. Bạn có thể bị nhiễm khi mở file scene từ đồng nghiệp, khách hàng hoặc chợ asset.
Q: ALC có thể làm hỏng kết quả render hoặc file đầu ra của tôi không? A: ALC chủ yếu làm hỏng dữ liệu scene và script controller, và điều này có thể ảnh hưởng gián tiếp đến kết quả render. Material có thể không được tính đúng, animation có thể hoạt động khó đoán, và các tham số do script điều khiển có thể cho giá trị sai. Crash khi Undo là triệu chứng dễ thấy nhất, nhưng dữ liệu bị hỏng có thể ảnh hưởng đến mọi khía cạnh của scene.
Q: Cả máy tính của tôi bị nhiễm, hay chỉ 3ds Max? A: Chỉ 3ds Max. ALC hoạt động trong môi trường MAXScript và không ảnh hưởng đến hệ điều hành, các ứng dụng khác hay những file nằm ngoài scene và cài đặt của 3ds Max. Tuy nhiên, mọi file .max bạn lưu khi đang bị nhiễm đều chứa script ALC, nên các file đó có thể lây nhiễm sang những bản cài 3ds Max khác.
Q: Làm sao biết file scene của tôi đã sạch sau khi chạy Security Tools? A: Sau khi chạy Security Tools trên một scene, hãy mở lại và kiểm tra MAXScript Listener xem có đầu ra đáng ngờ nào không. Thử chức năng Undo với một thao tác đơn giản (di chuyển một object, undo, rồi redo). Nếu Undo hoạt động không bị crash và Listener không hiển thị hoạt động script lạ, scene đã sạch. Hãy lưu scene đã làm sạch dưới tên file mới cho an toàn.
Q: Các phiên bản 3ds Max mới hơn có miễn nhiễm với ALC không? A: Không miễn nhiễm, nhưng được bảo vệ tốt hơn. Bắt đầu từ 3ds Max 2021, Autodesk đã bổ sung cơ chế kiểm soát thực thi script, hiển thị thông báo hỏi người dùng trước khi chạy script nhúng từ nguồn không đáng tin. 3ds Max 2025 và các phiên bản sau tiếp tục siết chặt các cơ chế này. Tuy nhiên, nếu artist nhấn "Allow" khi được hỏi, việc nhiễm vẫn có thể xảy ra. Hãy luôn cài sẵn plugin Security Tools như một lớp bảo vệ bổ sung.
Cập nhật lần cuối: 17 tháng 3 năm 2026



