Zum Inhalt springen

Guybrush Threepwood

Mitglieder
  • Gesamte Inhalte

    4909
  • Benutzer seit

  • Letzter Besuch

  • Tagessiege

    6

Beiträge von Guybrush Threepwood

  1. Jep seh ich auch so, wenn zu Hause mal was nicht läuft finde ich das immer mehr als nervig. Wobei ich schon seid Wochen mal die Batterie am Mainbord meines PCs wechseln müsste, aber da ich meistens eh das Notebook benutze ist das nicht so schlimm :rolleyes:

    Ansonsten staplen sich höchstens langsam die USB Festplatten, wobei 3 eigentlich auch noch nicht so viel ist...

  2. Ich würde dafür auch keinen Hash nehmen weil der einfach keinen Vorteil bringt. Es sei denn der wäre aus irgendeinem Grund schon vorhanden, aber das alle "Dateien einen hash haben" wäre mir neu bzw. das man da einfach dran kommt.

    Auch am Dateiende kann man es imho nicht unbedingt fest machen denn manchmal wird ja für Backups einfach ein .bak drangehangen oder so und dann hat man evtl. 2 Dateien die gleich sind aber unterschiedliche Endungen haben.

    Letzten Endes kommt man um einen Zeichenweisen vergleich nicht drum herum wenn man zwei Dateien mit der gleichen Größe findet. Da aber wohl nur wichtig ist ob zwei Dateien unterschiedlich sind kann man den ja beim ersten Unterschied abbrechen.

  3. Ha! Jetzt klappts :)

    Ich hab mich mal an diesen Artikel Reading and Filtering Debugging Messages géhalten auch wenn ich ihn nicht 100% verstanden habe und einfach wie im Beispiel in der Registry unter Debug Print Filter den Wert IHVDRIVER 0x7ff eingetragen.

    Die DbgPrintEx Aufrufe sehen jetzt so aus:

    DbgPrintEx(DPFLTR_IHVDRIVER_ID, DPFLTR_MASK | 0x10, "DriverEntry Called \r\n");

    und im DebugViewer werden alle angezeigt.

    Außerdem lässt sich der Treiber jetzt auch dynamisch entladen nachdem ich den Rückgabetyp der Unload Funktion von void in VOID geändert habe. Ich dachte eigentlich das wär das Selbe, aber wohl doch nicht.

  4. Danke hat aber leider nicht geholfen. Ich hab jetzt mal DbgPrint durch DbgPrintEx ersetzt, aber leider funktioniert das entladen des Treibers nicht so richtig.

    Das heißt wenn ich DeleteService aufrufe klappt das zwar, beim nächsten Aufruf von CreateService schlägt dieser aber fehl und der alte Service wird wieder per OpenService geöffnet bis ich neu gestartet habe.

    Hab aber keine Lust jetzt dauernd neu zu starten also muss ich erstmal das Problem lösen...

  5. DevCpp ist eine total veralte Entwicklungsumgebung mit vielen Fehlern an der schon lange nicht mehr gearbeitet wird.

    Leider wird er aber immer wieder in Tutorials oder ähnlichem von Leuten die oft selbst noch Anfänger sind empfohlen.

    Den solltest du schnellst möglich ersetzten. Empfehlungen findest du hier im Forum über die Suchfunktion ;)

  6. Ich hab mir einen kleinen Testtreiber nach einer Anleitung geschrieben welcher in allen Funktion eine Debugausgabe per DbgPrint macht, zum Beispiel auch im DriverEntry Point.

    Den Treiber hab ich dann mit dem WDK gebaut und mit folgendem Code geladen:

    int main()
    {
    SC_HANDLE hSCManager;
    SC_HANDLE hService;
    SERVICE_STATUS ss;

    hSCManager = OpenSCManager(NULL, NULL, SC_MANAGER_CREATE_SERVICE);

    printf("Load Driver\n");

    if(hSCManager)
    {
    printf("Create Service\n");

    hService = CreateService(hSCManager, "Driver1",
    "Example Driver",
    SERVICE_START | DELETE | SERVICE_STOP,
    SERVICE_KERNEL_DRIVER,
    SERVICE_DEMAND_START,
    SERVICE_ERROR_IGNORE,
    "C:\\driver1.sys",
    NULL, NULL, NULL, NULL, NULL);

    if(!hService)
    {
    hService = OpenService(hSCManager, "Driver1",
    SERVICE_START | DELETE | SERVICE_STOP);
    }

    if(hService)
    {
    printf("Start Service\n");

    StartService(hService, 0, NULL);
    printf("Press Enter to close service\r\n");
    getchar();
    ControlService(hService, SERVICE_CONTROL_STOP, &ss);

    DeleteService(hService);

    CloseServiceHandle(hService);

    }

    CloseServiceHandle(hSCManager);
    }

    return 0;
    }[/PHP]

    Obwohl der Treiber wohl geladen wird kann ich im Tool DebugView von Sysinternals keine Debugausgaben sehen.

    Auch wenn ich in meinem Testprogramm den Treiber verwende erscheinen keine Debugausgaben.

    [PHP]int main()
    {
    HANDLE hFile;
    DWORD dwReturn;

    hFile = CreateFile("\\\\.\\Driver1",
    GENERIC_READ | GENERIC_WRITE, 0, NULL,
    OPEN_EXISTING, 0, NULL);

    if(hFile)
    {
    WriteFile(hFile, "Hello from user mode!",
    sizeof("Hello from user mode!"), &dwReturn, NULL);
    CloseHandle(hFile);
    }

    return 0;
    }

    Weiß jemand woran das liegen könnte?

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...