delphi - 활성화 - 카스퍼 스키 윈도우 10 방화벽




카스퍼 스키 안티 바이러스에 의해 차단 된 델파이 프로그램. workarround 필요 (6)

Kaspersky 고객 인 사용자에게 Kaspersky가 소프트웨어 작동을 방해하고 있으며이를 신고해야한다고 지시해야합니다. 개발자로서 진정한 인간 존재에 접근 할 수 없다는 좌절감을 표현하십시오. 이것이 맬웨어 방지 회사가 반응하는 유일한 방법입니다. 즉 유료 고객과의 나쁜 PR입니다.

하나의 초 안에 많은 파일을 디스크에 쓰려고하는 코드 조각이 있습니다. 그러나 카스퍼 스키 안티 바이러스 2011을 설치하지 않으면 실패합니다.

Stream:= TFileStream.Create(sName, fmCreate); 

이 코드는 카스퍼 스키 2010과 완전히 호환되며 스캐너를 비활성화하면 카스퍼 스키 2011에서도 작동합니다 (제거되지 않은 경우 메모리에서 완전히 언로드 할 수 없음). 이 코드는 (Kaspersky 2011이 실행 중이고) 디스크에 쓰는 경우에도 작동합니다. 따라서 분명히 디스크 요청을 처리 할만큼 빠르지 않습니다.

내가 얻는 오류는 EFCreateError ( 'xxx 파일을 만들 수 없습니다 blablabla')입니다. 오류는 임의적입니다. 대부분의 파일은 디스크에 기록됩니다. 약 10 %가 실패합니다.

나는 지원을 얻으려고했지만 Kaspersky에서 진정한 사람을 찾을 수는 없습니다. 그들의 소위 '지원'은 사실 FAQ 데이터베이스입니다. 물론 제품 및 관련 자료를 설치하는 방법에 대해 설명합니다. 프로그래밍과 관련된 문제는 없습니다. 어떤 아이디어?

추신 : 이것은 전체 델파이 커뮤니티에 대한 반향이 있습니다! 모든 고객은 KIS 2011을 바이러스 백신으로 사용하는 경우 Delphi 소프트웨어를 사용하지 않습니다. 잠시 동안 사용자들에게 안티 바이러스를 사용하지 말 것을 권장하지만 실제 솔루션이 필요합니다.

KIS 2011을 가진 사람이 문제를 확인할 수 있다면 좋을 것입니다. TFileStream을 사용하여 디스크에 200 개의 작은 파일을 작성하는 작은 프로그램을 만드십시오.

최신 정보:

  • 이 문제는 파일이 존재하지 않고 작성된 경우에만 나타납니다 (덮어 쓰지 않고 작성).
  • 비슷한 보고서 : https://forums.embarcadero.com/thread.jspa?threadID=32751&tstart=15
  • 비슷한 보고서 : http://forum.kaspersky.com/index.php?showtopic=120561
  • 가능한 해결책은 KIS가 실행 중인지 여부를 감지하여 디스크에 기록한 후에 지연을 넣는 것입니다. 또는 leat에서 사용자에게 문제가 있음을 알리십시오. 서비스가 실행되고 있는지 감지하는 방법을 아는 사람은 누구입니까?
  • 나는 각 파일 생성 후 650ms의 지연을 추가했으며 버그는 여전히 존재한다. 그래서 얼마나 빨리 디스크에 쓰는 것이 아니라 얼마나 많은 파일을 쓰는지에 관한 것입니다.
  • 방금 KIS 2011을 제거했습니다. 문제가 더 이상 나타나지 않습니다.
  • 단지 오래된 KIS 2010을 다시 설치했습니다. 버그는 여전히 존재하지만 거의 보이지 않습니다 (KIS 2011과 같이 약 30 개가 아닌 300 개의 파일마다).
  • 문제는 두 번째 컴퓨터에서 확인되었습니다.
  • 뉴스 : TFileStream에 크래시가 나타납니다.하지만 이전에 호출 한 함수 TestWriteAccess가 원인 일 수 있습니다. 이 함수를 비활성화하면 TFileStream.Create가 더 이상 실패하지 않습니다. 글쎄,이 일들이 너무 많이 바뀌지는 않아. 어떤 코드 행이 오류를 발생 시키더라도 프로그램은 카스퍼 스키가 실행되는 동안 디스크에 파일을 쓰는 데 여전히 실패합니다 (무작위로).
  • 카스 퍼 스키에서 실제 사람 의 응답을 기다리는 중 ...
  • 카스퍼 스키 지원에서 더 많은 자동 응답을 받았습니다 (여러 국가에서 지원을 요청하는 이메일을 보냈습니다). 모두 FAQ 데이터베이스를 가리 킵니다.
  • Kaspersky 팬 (및 고객)에서 카스퍼 스키 여성에게 나의 신분을 바꿉니다. 카스퍼 스키 지원 부서의 실제 인물로부터 최종 답변을 얻었 기 때문에 "카스 퍼 스키 랩 (Kaspersky Lab BV) Papendorpseweg 77- 79 ". 카스퍼 스키는 실제로 해적판 회사 일 수 있습니다. 그들은 이메일을 받기를 원하지 않습니다. 왜냐하면 그들은 자신의 제품이 너무 수정되어 버그가 있다는 것을 알고 있기 때문입니다.

코드를 테스트하려면 코드를 루프로 사용하여 1000 개의 파일을 만들어보십시오. 이 프로그램은 많은 수의 파일 (난수)을 생성 한 다음 StreamFile : = TFileStream.Create에서 실패합니다. 업데이트 : 각 파일을 만든 후 약간의 지연을 입력하여 문제를 해결할 수 있습니다.
https://docs.google.com/forms/d/1H3_O1z1iEqfh9ZT9u3B0R1tGEj-Hc9o7rAE0LKPr33Y

2013 업데이트

오늘 오후부터 (업데이트 후) KIS는 Delphi와 충돌합니다. 프로젝트를 컴파일 할 때마다 KIS는 100 % CPU 사용률로 급상승합니다. 나는 그것을 제거해야 할 것이다.

Delphi 7, Win 7 (32), KIS 2011


귀하의 문제를 해결할 대답은 아니지만 카스퍼 스키에 알려야합니다. 아마 델파이 라이브러리와 관련된 바이러스 서명이 있는지 모를 것입니다.

그리고 프로그램이 너무 복잡하지 않다면 Lazarus / FPC를 시도해 볼 수도 있습니다. 델파이만큼 좋지는 않지만 몇 년 동안 사용해 왔으며 Windows / MacOS / Linux에서 좋은 결과를 얻었습니다.


나는 똑같은 문제가 있었다. KIS는 모든 문제를 일으켰습니다. 내가 다시 설치할 때까지. 그래서 설치가 잘못되었습니다.


먼저 파일을 작성하여 쓰기 사용 권한을 테스트해야합니까? 허가를 직접 확인할 수는 없습니까? 그 목적을 위해 파일을 만드는 것은 어떤 경우에도 그것을하는 절름발이 방법이라고 생각합니다.

둘째, 위에서 언급 한 것처럼 파일을 만들고 지우고 나면 카스퍼 스키의 보안 메커니즘에 의한 개입이있을 수 있습니다. 아마 드라이버가 삭제 한 파일의 내용을 확인하려고하고 잠시 동안 그 파일을 유지합니다. 이렇게 :

  1. refcount를 증가시키면서 파일을 작성하여 엽니 다.
  2. 카스퍼 스키 드라이버는 파일을 인식하고 열어줍니다. 공유 모드 거부를 설정하더라도 드라이버로는 어쨌든 여는 권한이 있습니다 (카스퍼 스키가 공유 거부를 피할 수 없으면 모든 바이러스가 동일한 트릭을 사용하여 데이터를 숨길 수 있습니다).
  3. 파일을 닫고 삭제합니다. 파일을 삭제하면 시스템은 "FILE_FLAG_DELETE_ON_CLOSE"으로 표시하지만 파일은 모든 핸들이 닫힐 때까지 계속 남아 있습니다.
  4. 카스 퍼 스키는 파일을 계속 스캔하지만 아직 핸들을 공개하지 않았습니다.
  5. 따라서 파일이 아직 있습니다.
  6. 새 파일을 만들려고하면 이전 파일이 여전히 삭제되지 않으므로 호출이 실패합니다.

이 모든 혼란에 대한 이유는 부분적으로 카스퍼 스키의 점검 기술이지만, 여기서 특히 잘못된 것은 없습니다. 카스퍼 스키는 어쨌든 파일을 검사해야합니다. 바이러스 백신을 사용하여 큰 소리로 울부 짖는 일은 거의 없습니다. 반면에, 파일을 생성 한 다음 삭제함으로써 권한을 확인하는 것은 (아마도) 매우 잘못되었습니다. 그래서 나는 여기에서 잘못한 사람이라고 생각합니다.


엄청난 양의 파일을 만드는 것은 반드시 좋은 것만은 아닌 것처럼 들리지만, 아마도 당신의 이유가있을 것입니다 :)

Delphi에서 오류 코드를 가져 오면 KAV는 휴리스틱 경고를 팝업합니까, 아니면 완전히 침묵합니까? 휴리스틱 "omg를 얻는 것은 이상하지 않을 것입니다. 그 앱은 나쁜 것을하고 있습니다!" KAV가 침묵하다면 버그라고 말할 수 있습니다.

벌레를 재생산하는 코드가 가장 적은 델파이 실행 파일을 게시 할 수 있습니까? 그리고 동일한 단계를 수행하지만 하나의 파일 만 생성하는 버전은 SysInternals의 ProcMon으로 추적하는 것이 흥미로울 수 있습니다.


카스 퍼 스키 = 해적 회사? 어쩌면 예, 아마도 아닐 수도 있습니다. 어쩌면 나쁜 제품과 존재하지 않는 지원을 가진 또 다른 회사 일 수 있습니다. 그들의 "지원"은 FAQ 데이터베이스와 자동 이메일 응답 프로그램으로 구성됩니다. 전화도 자동 응답기에 연결됩니다. 자동 응답을 통해 KIS "예외"데이터베이스에서 내 프로그램을 추가하는 방법을 계속 설명합니다. 나는 개인적으로 집에있는 모든 고객에게 가서 "예외"데이터베이스에 프로그램을 넣을 수 없으며 버그를 수정하는 것이 더 낫다는 어리석은 이메일에 계속 회신합니다.

마침내 비 자동 응답 (단 하나)을 얻었을 때, 지원 녀석은 가능한 한 무례합니다.

Delphi 프로그래머를위한 가능한 솔루션 :
* 사용자가 파일에 대한 쓰기 권한을 가지고 있는지 확인하지 마십시오 (카스퍼 스키 프로그램을 실행하지 않기 위해서)
* 사용자에게 쓰기 권한이 있는지 확인하십시오. 버그가 나타나면 Kaspersky에서 문제가 있음을 사용자에게 알리고 일시적으로 사용하지 않도록 설정해야합니다 (프로그램이 실행되는 동안). TRY EXCEPT 블록을 사용하여이를 수행하십시오.

조언 (과거 경험을 바탕으로) :
프로그램이 디스크에 쓰려고 할 때 사용자로부터 이상한 버그 보고서를받은 경우 항상 코드를 비난하지는 마십시오. 외부 요인 (카스퍼 스키 안티 바이러스의 존재 여부)도 확인하십시오.

최신 정보:
방금 환불을 신청했습니다. 돈을 환불하지 않으면 환불을 위해 갈 것입니다 (나는 강하게 느끼지 않을 것입니다).

결론
에 게시했을 때 문제의 심각성을 알지 못했고 초기 과정에서 너무 많이 벗어날 것임을 깨닫지 못했습니다. 아직도 나는 그것이 의 목적에 맞다고 생각한다. 우리는 때로는 아웃 프로그램의 문제가 잘못된 코드로 인해 야기되지 않을 수도 있고, 우리가 이러한 문제의 근원을 제어 할 수도 없다는 것을 배웠습니다. (21 명이이 질문을했습니다. 이는 다른 많은 사람들이 KIS에 문제가 있음을 의미합니다). 매우 낮은 수준 (예 : KIS 바이러스 백신 프로그램)에서 사용자 시스템과 상호 작용하는 가난한 디자인 프로그램이 곧 수정되어 판매가 크게 어려울 수 있기를 바랍니다.

프로그램에 "버그가있다"고 표시되고 그것에 대해 많은 것을 할 수 없을 때 실망합니다.





delphi