Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Klatsch und Tratsch (https://www.delphipraxis.net/34-klatsch-und-tratsch/)
-   -   Avira erlaubt seit heute Debugger+Wininet.dll nicht mehr (https://www.delphipraxis.net/156600-avira-erlaubt-seit-heute-debugger-wininet-dll-nicht-mehr.html)

jbg 8. Dez 2010 14:00

Avira erlaubt seit heute Debugger+Wininet.dll nicht mehr
 
Avira erlaubt es seit heute (Virendef. 7.10.14.224, Guard 10.00.01.56) nicht mehr, dass Programme, die debugged werden, auf die Registry schreibend zugreifen. Und genau das macht z.B. Wininet.dll wenn man sie lädt, was durch "WebBrowser.Navigate('about:blank');" geschieht.

Delphi-Quellcode:
program Test;
{$APPTYPE CONSOLE}
uses
  Windows, SysUtils;
var
  Disposition: DWORD;
  ResKey: HKEY;
  Err: Integer;
begin
  ResKey := 0;
  try
    Err := RegCreateKeyEx(HKEY_CURRENT_USER, 'SOFTWARE\Microsoftx\Windows\CurrentVersion\Internet Settings', 0,
      nil, 0, KEY_READ {or KEY_WRITE}, nil, ResKey, @Disposition);
    if Err <> ERROR_SUCCESS then
      RaiseLastOSError(Err)
    else
      RegCloseKey(ResKey);
    ReadLn;

    if Disposition <> 0 then ;
  except
    on E: Exception do
      WriteLn(ErrOutput, 'Error: ', E.Message);
  end;
  ReadLn;
end.
Und nicht nur der Delphi-Debugger ist betroffen. Auch Visual Studio hat mit dem Avira Update das selbe Problem:
Code:
#include "stdafx.h"

int _tmain(int argc, _TCHAR* argv[])
{
   HKEY resKey;
   DWORD disposition;

   int err = RegCreateKeyEx(HKEY_CURRENT_USER, L"SOFTWARE\Microsoftx\Windows\CurrentVersion\Internet Settings", 0,
      NULL, 0, KEY_READ /*| KEY_WRITE*/, NULL, &resKey, &disposition);
    if (err == ERROR_INVALID_HANDLE)
   {
      MessageBox(0, L"ERROR_INVALID_HANDLE: 0xC0000235: NtClose wurde für ein Handle aufgerufen, das mit NtSetInformationObject gegen Schließen geschützt wurde.", L"Error", MB_OK);
      return 1;
   }
    else
      RegCloseKey(resKey);
   return 0;
}
Ohne Debugger funktioniert das ganze ohne Probleme. Leider bringt einem das recht wenig, wenn man gerade debuggen muss.

himitsu 8. Dez 2010 14:16

AW: Avira erlaubt seit heute Debugger+Wininet.dll nicht mehr
 
Mir ist schon seit letzem Jahr klar, daß man Avira nicht auf einem Entwicklersystem einsetzen kann.

Dank der neuen und nicht deaktivierbaren Automatiken und nutzte derzeit noch eine 8er Searchengine.

PS: Auf eine Beschwerde, letztes Jahr im deutschen Avira-Forum, bekam ich als Antwort, daß ich selber Schuld bin, wenn ich einen Virenscanner auf einem Entwicklungssystem einsetze.

Sir Rufo 8. Dez 2010 14:27

AW: Avira erlaubt seit heute Debugger+Wininet.dll nicht mehr
 
Nimm doch einen Virenscanner und tausche diese Behelfslösung aus :mrgreen:

Meine Virenscanner-Historie sieht grob wie folgt aus:

Norton AV (lange Zeit, bis kein Arbeiten mehr möglich war, weil nur noch gescannt wurde und trotzdem Viren durchgingen)
Diverse Freeware-Scanner (Avira, etc.) (bis die mir nicht mehr sicher genug waren - subjektive Entscheidung meinerseits)
Bitdefender (bis die Windows-Updates nicht mehr durchführbar waren, wenn der aktiv war)
ESET NOD32 bis dato (schnell und zuverlässig mit teilweise mehreren Updates pro Tag)

Bislang habe ich keine False-Positives (z.B. bei von mir entwickelter Software) erhalten
(obwohl ich nicht weiß ob das gut oder schlecht ist, tut der überhaupt was?)
oder irgendwelche Störungen entdecken können.

Ein Kunde von mir hat den auf meine Empfehlung angeschafft (600 Lizenzen im Einsatz) und seitdem sind alle glücklich (vorher Norton AV), weil jetzt auch die älteren Systeme wieder Luft zum Arbeiten haben.

Anhand der Logs auf dem AV-Server kann ich auch sehen, dass da auch Viren abgefangen werden (aha, er tut also doch was :) )

Somit finde ich die Investition (2-stellig pro Jahr) sehr gut angelegt und erspare mir (bis jetzt auf jeden Fall) dadurch eine Menge Ärger (gibt ja ein paar Beiträge dazu hier im Forum)

himitsu 8. Dez 2010 14:33

AW: Avira erlaubt seit heute Debugger+Wininet.dll nicht mehr
 
Zitat:

Anhand der Logs auf dem AV-Server kann ich auch sehen, dass da auch Viren abgefangen werden (aha, er tut also doch was )
Das ist ein Problem bei mir.

Avira macht nun auch vieles automatisch und fragt nicht mehr.
Es sit ganz nett, wenn eine Datei einfach so gelockt wird, ohne mich zu fragen.
Vorallem bei Dateien wo ich weiß, daß diese False-Positive sind oder wo berechtigt gemeckert wird ... beim Backup passiert es dann auch malnchmal, daß diese Dateien fehlerhaft gelockt werden, so daß die Programme dann statt einer Zugriffsverletzung (ReadFile liefert dennoch true) zu bekommen, nur noch Nullen auslesen und das nichtmal merken.

Früher frage Avira noch "Hab was gefunden, was soll ich machen?" oder man stellte eine Automatik ein ... nur gibt es nur noch diese nicht deaktivierbare Automatik.

jbg 8. Dez 2010 14:34

AW: Avira erlaubt seit heute Debugger+Wininet.dll nicht mehr
 
Private wäre das ja kein Problem. Auf meinem Firmenrechner bin ich, bzw. ist unser Team gezwungen, Antivir zu nutzen. Wir können den nicht mal ohne Passwort abschalten.

charles 8. Dez 2010 15:34

AW: Avira erlaubt seit heute Debugger+Wininet.dll nicht mehr
 
Ich nutze MCAfee seit Jahren auch auf Entwicklungssystemen und bin total zufrieden, keinerlei Probleme mit Falschmeldungen und keine Viren!

Als freie Alternative bietet sich für private Nutzung sonst noch Avast an... deutlich besser als Avira und für private Nutzung nach Registrierung frei.

jbg 8. Dez 2010 19:28

AW: Avira erlaubt seit heute Debugger+Wininet.dll nicht mehr
 
Das ist ein Anti-Debugger Trick, den Avira da eingebaut hat. Nur dumm, dass Softwareentwickler auch einen Debugger einsetzen.

Zitat:

2.1.4 CloseHandle
As with an invalid handle, if a protected handle is passed
to the kernel32 CloseHandle() function (or directly to
the ntdll NtClose() function) and no debugger is present,
then an error code is returned. However, if a debugger is
present, an EXCEPTION_HANDLE_NOT_CLOSABLE
(0xC0000235) exception will be raised. This exception can
be intercepted by an exception handler, and is an indication
that a debugger is running.
Example code looks like this:

xor eax, eax
push offset being_debugged
push d fs:[eax]
mov fs:[eax], esp
push eax
push eax
push 3 ;OPEN_EXISTING
push eax
push eax
push 80000000h ;GENERIC_READ
push offset l1
call CreateFileA
push eax
;HANDLE_FLAG_PROTECT_FROM_CLOSE
push 2
push -1
xchg ebx, eax
call SetHandleInformation
push ebx
call CloseHandle
...
l1: db “myfile”, 0

Defeating this method is easiest on Windows XP, where a
FirstHandler Vectored Exception Handler can be registered
by the debugger to hide the exception and silently resume
execution. Of course, there is the problem of hooking
the kernel32 AddVectoredExceptionHandler() function
transparently, in order to prevent another handler from
registering as the fi rst handler. However, it is still easier
than the transparently hooking the ntdll NtClose() function
on Windows NT and Windows 2000 in order to register a
Structured Exception Handler to hide the exception. This
method has been disclosed publicly [4].
Quelle

Bernhard Geyer 8. Dez 2010 19:46

AW: Avira erlaubt seit heute Debugger+Wininet.dll nicht mehr
 
Zitat:

Zitat von jbg (Beitrag 1067103)
Private wäre das ja kein Problem. Auf meinem Firmenrechner bin ich, bzw. ist unser Team gezwungen, Antivir zu nutzen. Wir können den nicht mal ohne Passwort abschalten.

Dann würde ich sagen: IT benachrichtigen und um schnellstmögliche Abhilfe bitten. Entsprechend auch Vorgesetzte/Projektleiter informieren das von IT eingesetzte/vorgeschriebene SW produktives Entwickeln verhindert da essentielle SW-Tätigkeiten nicht mehr möglich sind.

Mal schauen ob da die IT nicht schnell eine Lösung findet (Avira abschaltbar oder ander Virenscanner-Lösung für Entwicklungsabteilung).

jbg 8. Dez 2010 19:54

AW: Avira erlaubt seit heute Debugger+Wininet.dll nicht mehr
 
Zitat:

Zitat von Bernhard Geyer (Beitrag 1067193)
IT benachrichtigen und um schnellstmögliche Abhilfe bitten.

Das war das erste was wir noch vor der Mittagspause angeleiert haben. Leider ist die einzige (vernünftige) Lösung, das Deinstallieren des Virenscanners.
Jetzt, da ich weiß, dass es sich hierbei um einen Anti-Debugger Trick handelt und im oben Zitierten steht, wie man den Umgehen kann, wäre es mir sogar möglich das Problem zu "beheben". Aber Avira sollte den Bug trotzdem beheben. Denn für das Beheben bzw. Umgehen derer Bugs werde ich weder bezahlt noch habe ich Zeit dafür. Es ist schon schlimm genug, dass Avira einen Teil der Delphi RTL als Viren-Pattern führt.


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:39 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz