System-Meldungen "hooken" (IP address conflict, file or directory is corrupt)



  • @Mechanics
    Ach was, ich bin für Tips durchaus dankbar.
    Meine Kenntnisse was diverse Techniken angeht die man grob in die Ecke "Hacking" stecken kann sind doch sehr begrenzt. (Oder sagen wir besser meine Erfahrung, theoretische Kenntnisse sind z.T. vorhanden.)

    Nur müsste ich halt wie gesagt wissen welche Funktion man hooken müsste.

    Natürlich könnte man es einfach mal mit "MessageBoxW" probieren.

    Allerdings hatte ich gehofft dass es hier eine API bzw. einen Mechanismus von Windows gibt wo man sich etwas "offizieller" einklinken kann.
    So wie man bei Windows z.B., wenn man WER nicht verwenden will, einfach über ein paar Registry Keys einen Post-Mortem Debugger registrieren kann um Application Crashes zu behandeln.



  • EOP schrieb:

    Hab schon ganz schräge dll-injections bei crackmes gesehen.
    Mal mit ollydbg nach strings suchen?

    IDA geht auch:
    http://www.chip.de/downloads/IDA-Pro-Free-Letzte-Freeware-Version_29744270.html

    Die Idee nach Strings zu suchen ist mir auch schon gekommen. Hab' ich dann allerdings wieder verworfen, da Windows Strings üblicherweise in Resourcen speichert. Und mich da so weit mit nem Disassembler reinzukämpfen dass ich Stellen finden würde wo auf bestimmte Resourcen zugegriffen wird... der Aufwand steht einfach nicht dafür.

    Das ganze ist nicht SO wichtig.
    Es wäre gut wenn es mit relativ geringem Aufwand ginge, aber es ist nicht wirklich sehr wichtig. Wie ich Mechanics gerade schon geantwortet habe hatte ich einfach gehofft dass es da einen Punkt gibt wo man sich ohne grossen Aufwand einhängen kann.

    ps: Gerade weil MS ja immer wieder Embedded Varianten von Windows macht, und auf Embedded Systems könnte es ja durchaus interessant sein solche Dinge programmatisch zu erfassen und evtl. auch die Message Box zu unterdrücken (oder durch eine eigene Meldung zu ersetzen). Von daher die Hoffnung dass es da einen mehr oder weniger offiziellen Weg gibt.



  • hustbaer schrieb:

    Aber was die "file corrupt" Meldung angeht bin ich einigermassen ratlos, da ich nicht weiss wie ich diese provozieren kann.
    Eine Möglichkeit an die ich gedacht hatte wäre nen USB Stick zu opfern (einfach immer wieder den selben Block überschreiben, dann sollte der Block nach ein paar tausend Schreibzugriffen hin sein).
    Dummerweise haben billige USB Stick, also die bei denen man davon ausgehen kann dass sie kein Wear-Leveling haben, auch keine brauchbare Fehlererkennung. Und liefern dann beim Lesen von kaputten Flash Blöcken einfach einen Block voll mit 0xFF zurück statt einen Fehler ans OS zu melden.

    Keine Ahnung ob dir das was hilft, aber laut Microsoft (How do I prevent files from becoming corrupted?) passiert das üblicherweise nur während dem speichern?

    Also vielleicht einfach eine sehr große Datei speichern (die halt lange für den Speichervorgang braucht) und währenddessen den Stecker ziehen. Ka ob das funktioniert, aber dabei dürfte (bis auf die Datei) zumindest nichts kaputt gehen 😃



  • hola

    wenn bei diesen systemfehlern auch logs in der ereignisanzeige erstellt werden, dann koenntest du dich zu mindest da mal reinhaengen.
    hier sowas in der art auf codeproject: http://www.codeproject.com/Articles/4857/A-realtime-event-log-monitoring-tool

    Meep Meep



  • @happystudent
    Da geht's um eine andere Definition von "corrputed files".
    Ich meine welche wo Windows den von mir zitierten Dialog bringt, und der kommt AFAIK nur wenn die Disk einen Lesefehler meldet.

    In dem von dir beschriebenen Artikel geht's einfach um Files mit blödsinnigem Inhalt (die aber von der Disk noch korrekt gelesen werden können). Wie man diese erzeugt ist mir schon klar, bringt mir nur nix.

    @Meep Meep
    Ja, wenn du mir sagst wie & wo ich das umstellen kann so dass die Meldung selbst dann nicht mehr angezeigt wird...

    hustbaer schrieb:

    Einfach nur einen Eventlog Eintrag Schreiben wäre auch eine akzeptable Lösung - dann müssten wir halt das Eventlog überwachen.



  • die idee dahinter war jetzt nicht die message zu unterdruecken,
    sondern das du ei einem bestimmen ereigniss dann was starten kannst.
    naja bissl am thema vorbei 🙂

    Meep Meep



  • Meep Meep schrieb:

    die idee dahinter war jetzt nicht die message zu unterdruecken

    Das ist aber leider das was ich brauche 😉
    Ich will ja nicht zusätzlich 'was anzeigen sondern die Message ersetzen.



  • Kannst du den Fehler bzw. die Meldungen denn reproduzieren wann du willst? Dann könntest du dich eventuell mal mit Ollydebug einklinken und dir den Callstack anzeigen lassen wenn die Nachricht angezeigt wird. Vielleicht hast du ja Glück und da findet sich eine Funktion die du hooken kannst. Brauchst aber eventuell Debugsymbole und wirklich wenig Aufwand ist auch das nicht. 😕
    Was für eine Meldung wird denn ausgegeben? MessageBox oder was anderes?
    Zumindest wäre das gerade das einzige was mir zu dem Thema einfällt.



  • Die Symbole müsste man eigentlich schon bekommen... Müsste eigentlich WinDbg reichen.



  • @DarkShadow44

    DarkShadow44 schrieb:

    Kannst du den Fehler bzw. die Meldungen denn reproduzieren wann du willst?

    Naja eben nicht, das ist ja u.A. das Problem 😉

    hustbaer schrieb:

    @TopKekJa, hooking wäre vermutlich ne gute Idee. Nur welche Funktion?
    Was die "IP address conflict" Meldung angeht liesse sich das vermutlich noch relativ leicht feststellen, da diese sehr einfach zu reproduzieren ist.
    Zumindest wenn, wie ich hoffe, der Thread dem dieses Fenster gehört nicht zum "System" Prozess gehört.

    Aber was die "file corrupt" Meldung angeht bin ich einigermassen ratlos, da ich nicht weiss wie ich diese provozieren kann. (...)

    Und ja, Symbols sind kein Problem -- sind ja über den MS Symbol-Server verfügbar.



  • Diese Funktionalität steht bei den Embedded-Windows-Versionen zur Verfügung:
    Meldung automatisch wegklicken:
    XP: https://msdn.microsoft.com/en-us/library/aa940743(v=winembedded.5).aspx
    WES7: https://msdn.microsoft.com/en-us/library/ff794009(v=winembedded.60).aspx

    Eigene Aktion ausführen bei MessageBox:
    WES7: https://msdn.microsoft.com/en-US/library/ff794863(v=winembedded.60).aspx
    Ob es das bei XP auch schon gibt, weiss ich nicht.



  • Für WES7 werden wir uns vermutlich den Dialog Box Filter mal genauer ansehen.

    Die bei XP verfügbare Option ist aber als Werkzeug leider viel zu breit/stumpf, da wir nicht einfach alle Messageboxen automatisiert wegklicken lassen können.

    Trotzdem danke! 🙂



  • Meep Meeps idee war doch garnicht so schlecht

    Wenn man die Dateien im Prozess kennt kann man diese auch am ausführen hindern, oder denke ich da zu einfach?

    ansonsten:
    Windows: Problem- und Fehlerberichte abschalten
    http://praxistipps.chip.de/windows-problem-und-fehlerberichte-abschalten_27141

    Start -> Einstellungen -> Systemsteuerung -> System -> Erweitert -> Fehlerberichterstattung

    Gehe stark davon aus, dass bis zu einem "gewissen" Punkt, im System, das Gleiche passiert. Da ansetzen..



  • essio schrieb:

    Meep Meeps idee war doch garnicht so schlecht

    Wenn man die Dateien im Prozess kennt kann man diese auch am ausführen hindern, oder denke ich da zu einfach?

    Was für Dateien? Ich hab keine Ahnung wovon du sprichst.

    essio schrieb:

    ansonsten:
    Windows: Problem- und Fehlerberichte abschalten
    http://praxistipps.chip.de/windows-problem-und-fehlerberichte-abschalten_27141

    Start -> Einstellungen -> Systemsteuerung -> System -> Erweitert -> Fehlerberichterstattung

    Gehe stark davon aus, dass bis zu einem "gewissen" Punkt, im System, das Gleiche passiert. Da ansetzen..

    Dass man WER (Windows Error Reporting) konfigurieren kann weiss ich. Bringt mir aber nix, da die von mir erwähnten Meldungen keine Crashes sind.



  • Mh siehst du den Prozess im Taskmanager? Wenn ja dann kannst du mal in die datei reinschauen bzw nach Zusammenhang checken..
    Falls der Prozess zu schnell geht um ihn zuzuordnen kannst du auch deinen Desktop aufnehmen.
    Sobald du die Datei hast, kannst du im netz gucken welcher Struktur sie folgt.

    Zwar sehr theoretisch ich weiß, so gehe ich auch ungefähr bei viren etc vor..
    Habe mal bei freunden ausgeholfen wenn sie Probleme hatten 🙄



  • http://www.youtube.com/watch?v=kJcuFwVMzH4
    Erster Fehler wird so verursacht, siehe link.

    2er Fähler ist etwas komplexer, denke aber dass du den Grund des Auftretens hier finden kannst.

    ...................

    the theoretical possibilities of Event ID 55 error messages. In exact 
    experience, there some possibilities caused such issue: 
    1. Purely file corruption. In most time, it was caused by some inconsistent 
    operation on file system. Eg, when disk is in reading/writing status, an 
    unexpected reboot was triggered.

    2. Microsoft known issue at NTFS.sys. The latest hotfix is 913034.

    3. H/W issue. (Some H/W components that connected to the disk. Eg. SCSI 
    controller.)

    Dated driver/firmware of the disk controller
    --Incorrect hardware configuration (For example, disk write back caching, 
    and so on)
    --Bad hardware (Disk controller and disk drive)
    --Third-party application running in the background. For example, 
    Anti-Virus software (Symantec anti-virus version 8, etc., Quota Software 
    (StorageCeNTral 4.1, QuotaAdvisor 4.1, etc.), Quest Consolidator, Power 
    Path driver, backup exec and so on.



  • Ich bin echt sprachlos.. . Solche idiotischen "Lösungsvorschläge" habe ich ja noch nie gelesen. Gehirn einschalten und suchen statt wahllos irgendwelche Ideen in den Raum zu werfen.

    @hustbaer bitteschön:

    [ntstatus.h]

    //
    // MessageId: STATUS_FILE_CORRUPT_ERROR
    //
    // MessageText:
    //
    // {Corrupt File}
    // The file or directory %hs is corrupt and unreadable.
    // Please run the Chkdsk utility.
    //
    #define STATUS_FILE_CORRUPT_ERROR        ((NTSTATUS)0xC0000102L)
    
    //
    // MessageId: STATUS_IP_ADDRESS_CONFLICT1
    //
    // MessageText:
    //
    // There is an IP address conflict with another system on the network
    //
    #define STATUS_IP_ADDRESS_CONFLICT1      ((NTSTATUS)0xC0000254L)
    

    Ein Ansatz bezüglich des Hookings lässt sich in der "%SystemRoot%\System32\IoLogMsg.dll"-File finden. Zwar aus dem User Mode heraus nicht unbedingt trivial,- aber möglich.



  • @Chopper
    Danke für deinen Beitrag. Leider muss ich sagen dass ich nicht verstehe was du meinst.

    Die NTSTATUS Codes sind gut, danke dafür, vielleicht lässt sich damit irgendwas anfangen.

    Was die IoLogMsg.dll angeht weiss ich aber nicht was du meinst. Das scheint ne reine Resource-DLL zu sein (hat keinerlei Exporte).
    Keine Ahnung wie ich damit die Anzeige der beiden Meldungen abfangen/verhindern soll.



  • geht's hier noch weiter hustbaer?



  • Nö, geht nicht wirklich weiter.
    Da es keine wirklich einfache Lösung zu geben scheint, ist das Ticket erstmal zurückgestuft. SO wichtig ist es wie gesagt nicht.


Anmelden zum Antworten