2010-08-27 17 views
5

Khi phần mềm diệt vi-rút đang chạy trong khi cài đặt phần mềm của tôi, một số thành phần nhất định không được cài đặt đúng cách. Tôi luôn yêu cầu người dùng tắt TẮT trước. Nhưng, họ quên mất và sau đó tôi đang cố gắng tìm ra những gì đã xảy ra. Có một chức năng Delphi mà bất cứ ai biết về điều đó có thể phát hiện xem phần mềm AntiVirus có đang chạy hay không, vì vậy tôi có thể cảnh báo cho người dùng trước khi cài đặt bắt đầu?Delphi - Làm thế nào tôi có thể phát hiện sự hiện diện của Phần mềm chống vi-rút?

+0

Thú vị vấn đề - những loại phần mềm bạn đang viết? –

+1

Nếu đây là một vấn đề định kỳ, tôi muốn nói vấn đề có lẽ là trình cài đặt của bạn. Lưu ý rằng vì sự tuyệt vời của Delphi khi tạo ra exe độc ​​lập mà không cần thời gian chạy cồng kềnh, rất nhiều virii và phần mềm độc hại được viết trong đó. Vì vậy, nó khá thường xuyên mà phần mềm chống virus dấu vân tay một số phần của một vi rút thats cũng được tìm thấy trong các chương trình delphi khác. Chỉ đơn giản là tắt tính năng chống vi-rút của bạn sẽ không giúp ích gì - nó chỉ can thiệp ngay khi nó được bật lại. – GrandmasterB

+1

@GrandmasterB: ... thay vì dựa vào thời gian chạy cồng kềnh, delphi tạo ra các tập tin thực thi cá nhân --ber-bloated - tất nhiên là tuyệt vời hơn nhiều so với một thời gian chạy lớn và các tệp thực thi riêng lẻ nhỏ. – snemarch

Trả lời

3

Vì XPsp2, có trung tâm bảo mật đăng ký nếu có một chương trình chống vi-rút đã biết.

Afaik chức năng này trên api WMI, có thể được truy cập thông qua Winapi. (và Jedi có tiêu đề cho nó).

Tôi đã tìm thấy một số VBScript đây: http://blogs.msdn.com/b/alejacma/archive/2008/05/12/how-to-get-antivirus-information-with-wmi-vbscript.aspx

Một mẹo: cố gắng giao tiếp với người dùng của bạn trong bất kỳ cách có thể để tắt quét dựa trên kinh nghiệm càng nhiều càng tốt. Đây thường là nguyên nhân dẫn đến sai tích cực, và nó có thể là một thông điệp dễ dàng hơn mang lại hơn là giết chết tất cả các phần mềm diệt virus.

+0

Đảm bảo bạn đọc nhận xét, vì đoạn mã chính xác đó sẽ không hoạt động như Vista SP1 - chúng đã xóa không gian tên bạn cần. –

+0

Có các lựa chọn thay thế trong các nhận xét. Không ai trong số họ là đẹp, nhưng toàn bộ tình huống này không phải. (như tôi đã nói, cài đặt và "trên" cũng là những thứ khác nhau) –

+0

Tôi phải công khai thừa nhận rằng tôi đã downvoted nó. Đó là một ý tưởng kinh khủng, khủng khiếp để đưa người dùng giảm lượng bảo vệ mà họ cung cấp. Hãy nhớ rằng: 100 sai tích cực vẫn tốt hơn một âm tính giả, và thường, heuristics là * tốt *. –

0

Chúng tôi đã thành công bằng cách kiểm tra các quy trình đang chạy cho bất kỳ quy trình nào mà chúng tôi đã xác định trước đó là chương trình AV. (Bạn có thể liệt kê một danh sách các quá trình sử dụng một số mã đơn giản mà bạn có thể tìm thấy bằng cách googling Processes một cái gì đó Danh sách Chạy Delphi)

Nếu chúng ta tìm thấy một, chúng tôi nói với người sử dụng và từ chối tiếp tục ...

Xây dựng danh sách các quy trình mà chúng tôi biết là AV, chúng tôi cài đặt các phiên bản dùng thử của các chương trình AV và sau đó xem danh sách các quy trình (trong trình quản lý tác vụ hoặc sử dụng mã quy trình liệt kê của chúng tôi.) Không khó để phát hiện ra chúng .. và bạn có thể tắt các chương trình AV và xem liệu các quy trình bạn nhận dạng có biến mất hay không. (Process Explorer là hữu ích: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx)

Ví dụ, một số quá trình chúng tôi hiện đang tìm kiếm bao gồm MCShield (McCaffe), nProtect (Norton), PCCNTMON (Trend Micro) vv

Rõ ràng won này' t bắt TẤT CẢ các chương trình AV, nhưng nếu bạn làm như vậy với các nhà cung cấp chính (Norton, McCaffe, Trend Micro, ZA, vv), bạn sẽ có một tỷ lệ lớn các chương trình AV trong lĩnh vực được bảo hiểm.

Một điều đó là tốt đẹp về này là nó rất dễ dàng để thực hiện và không đòi hỏi bất kỳ cấp độ cuộc gọi Windows API thực sự thấp, ngoại trừ để liệt kê các tiến trình đang chạy ...

+0

Darn dễ vỡ - bạn nên tắt * luôn * hiển thị màn hình giật gân (* không * trông giống như EULA hoặc bất kỳ điều gì) cho người dùng biết rằng đang chạy chương trình diệt vi-rút phần mềm có thể có vấn đề trong khi cài đặt. – snemarch

1

thành phần nhất định không được cài đặt chính xác

Giải thích những thành phần bạn đang cài đặt, cách bạn cài đặt các thành phần đó và cách cài đặt của chúng không thành công và sẽ dễ dàng đề xuất giải pháp hơn. Ngoài ra, bạn có đang sử dụng sản phẩm cài đặt hay mã cài đặt của riêng mình không? Nếu đó là trình cài đặt của riêng bạn, hoặc nếu bạn có thể tự động chạy mã của riêng mình sau trình cài đặt, bạn có thể thực hiện kiểm tra có lập trình của riêng mình để xác nhận cài đặt của mình là 100% OK và nếu không thì hãy báo cáo lỗi nào và nhắc người dùng tắt chương trình diệt vi-rút và thử cài đặt lại.

1

tôi thấy rằng đây là một "cũ" câu hỏi, nhưng ... tôi tìm thấy nó Retreive Antivirus Information using WMI

+1

Trong khi điều này về lý thuyết có thể trả lời câu hỏi, [nó sẽ là thích hợp hơn] (http://meta.stackexchange.com/q/8259) để bao gồm các phần thiết yếu của câu trả lời ở đây, và cung cấp liên kết để tham khảo. – Jack

Các vấn đề liên quan