Skip to main content

Tại sao AutoIt luôn bị “ghét”?

autoit
Tại sao AutoIt luôn bị “ghét”?
"Ghét" ở đây không hẳn là mọi người ghét mà là mình muốn nói tới việc các trình diệt vi-rút "ghét" AutoIt. Tại sao vậy?

Nếu bạn nào chưa biết thì AutoIt là một ngôn ngữ kịch bản (Scripting Language) được viết trên nền C++. Là một người yêu thích ngôn ngữ AutoIt và với kinh nghiệm 2 năm viết những ứng dụng bằng ngôn ngữ AutoIt, mình sẽ viết bài này theo quan điểm cá nhân. Mình thì biết một số ngôn ngữ lập trình và ngôn ngữ kịch bản bao gồm PHP, JS, VB.Net, C#, Python và AutoIt. Trong đó thì mình có khả năng tốt nhất ở 3 ngôn ngữ là PHP/JS/AutoIt (tốt là do mình thường xuyên sử dụng).



Tại sao AutoIt luôn bị "ghét"?

Đúng như tên gọi thì AutoIt thường được sử dụng để viết Auto (phần mềm tự động thực hiện việc nào đó theo nhu cầu, ví dụ như tự tắt máy sau một thời gian người dùng không hoạt động) và đa số là Auto Game - tự động chơi, tự động điều khiển nhân vật làm nhiệm vụ trong trò chơi,... Tuy nhiên AutoIt cũng thường được sử dụng để viết virus/malware (có vụ đã được lên báo là virus phát tán qua Yahoo, đợt 2006 thì phải). Thậm chí có người viết cả Botnet/RAT bằng AutoIt.

Nếu như trên thì chẳng nói làm gì, nhưng ngay cả những ứng dụng hoàn toàn sạch mà vẫn bị các trình diệt vi-rút nhận diện nhầm. Dường như sau một thời gian dài các mã độc, virus/malware viết bằng AutoIt xuất hiện tràn lan khiến các trình diệt chỉ cần nhận diện "chữ ký" của ứng dụng đó là AutoIt thì coi là virus/malware luôn. Nữa là AutoIt khi biên dịch sẽ có tùy chọn sử dụng UPX (một trình nén tập tin thực thi để giảm dung lượng), mà những tập tin nén bằng UPX thường bị nhận diện luôn chứ chưa nói tới ngôn ngữ là gì.

Hãy xem mình viết một "malware" dễ dàng như nào?


Như bạn thấy trong video trên, mình chỉ gọi có một hàm MsgBox (hộp thoại), nhưng đã được 2 trình diệt đánh giá ngay là Trojan/Malware. Đó mới chỉ là 1 hàm thôi nhé, với những đoạn mã dài hơn thì số kết quả sẽ không chỉ là 2/54.

AutoIt "xấu" đến thế sao?

Hừm, mình không nghĩ vậy. Cá nhân mình thấy AutoIt là một ngôn ngữ rất hay, cực kỳ dễ và nhanh học. Bạn có thể chỉ mất một ngày để đọc tập tin Help (Hướng dẫn) đi kèm bộ cài đặt AutoIt là có thể viết ra một vài ứng dụng cơ bản rồi, cá nhân mình đã thấy có bạn viết ra ứng dụng Get link Zing TV chỉ sau 1 ngày làm quen với AutoIt.

Một số điểm "hay ho" của AutoIt theo cá nhân mình thấy:
  • Thích hợp viết những ứng dụng tự động hóa một công việc nào đó.
  • Ngôn ngữ dễ đọc, hiểu (khá giống Javascript vì cùng là ngôn ngữ kịch bản).
  • Có trình tạo giao diện người dùng (GUI) như ứng dụng trên nền .NET
  • Không cần quan tâm đến dấu chấm phẩy (;) ở cuối câu lệnh (mình thích Python cũng ở điểm này). Nhiều lập trình viên thường đau đầu khi gặp lỗi mà nguyên nhân chỉ vì thiếu một dấu chấm phẩy ở đâu đó trong mã nguồn (mà có thể là vài nghìn dòng lệnh).
  • Trình biên tập mã nguồn (editor) nhỏ, nhẹ, khởi động nhanh và tích hợp khá nhiều công cụ giúp phát triển ứng dụng AutoIt.
  • Và rất nhiều điều thú vị khác...

Nhược điểm:
  • Chưa hỗ trợ đa tiểu trình (multi-thread).
  • Chưa hỗ trợ đầy đủ bộ xử lý sự kiện trên control (GUI Event Handled). Ví dụ như sự kiện MouseHover, MouseMove.
  • Dễ bị dịch ngược - tuy nhiên điều này còn tùy thuộc vào cách bảo vệ của bạn và kỹ năng của "người dịch ngược".
  • Thường bị trình diệt vi-rút nhận diện nhầm - cái này là chủ đề chính mà bài viết đang nói tới.

Nếu bạn thấy hứng thú thì hãy truy cập trang chủ AutoIt để đọc thêm thông tin nhé!

Ngoài ra, bạn có thể truy cập nhóm Lập trình AutoIt trên Facebook để được sự hỗ trợ từ cộng đồng AutoIt Việt.

P/S: Bật mí với các bạn là 2 phần mềm phổ biến nhất của mình đều được viết bằng AutoIt là Auto BeepFacebook Inbox Reader. Ngoài ra còn rất nhiều ứng dụng khác mà mình đã đăng trên Blog!

Share this with your friends
Loading...