Warmstart / CPU-Reset über C-Kommando?



  • Alles was man mit der Shutdown.exe machen kann, kann man auch mit der Winapi machen. Stichwort: "ExitWindowsEx"
    Allerdings gibts nichts direkt in C...



  • Nippey schrieb:

    Wisst ihr, ob es eine Möglichkeit zur o.g. Frage gibt?

    welche cpu bzw. welche hardware meinst du denn?
    🙂



  • ich meine eine desktop-cpu wie amd(hauptsächlich) oder intel

    und mit warmstart meine ich nicht die neustarten-routine von windoof, sondern einen CPU-Reset! also entsprechend dem reset-knopf



  • Haust du auf den Reset-Knopf, hast du einen hard reset. Das kannst du per Software so nicht erreichen.
    Einen soft reset kannst du idR. in PCs machen, indem du die CPU auf den RealMode zuruecksetzt und an den Einstiegspunkt des BIOS springst. Das ist nur mit C-Mitteln allerdings AFAIK nicht zu machen, dazu braucht es die ein oder andere Zeile Assembler.
    Eine andere Moeglichkeit, die sich direkt in C realisieren lassen sollte, allerdings etwas unschoen ist, waere zB. einen tripple fault zu provozieren (3 echt unbehandelte Exceptions hintereinander). 🕶

    Wie auch immer, alle diese Moeglichkeiten kannst du innerhalb eines modernen PC Betriebssystems nicht einsetzen, ohne selbiges zuvor gezielt zu sabotieren.
    Da fuehrt kein Weg an der API des Systems vorbei (sollte zumindest).



  • hmm, hab grad mal versucht, folgende kommandos in den inline-assembler zu packen:

    asm ("mov ax,5301h");
    asm ("xor bx,bx");
    asm ("int 15h");

    (von hier kopiert: http://www.c-plusplus.net/forum/viewtopic.php?t=44589)

    aber die vorgehensweise ist wohl nicht so geeignet, Dev-Cpp sträubt sich



  • Wie ich und meine Vorposter bereits andeuteten: Benutz die Funktionen der Betriebssystem-API. Anders geht es in User-Programmen nicht.

    Abgesehen davon, dass dieser Schnippsel, den du da kopiert hast, fuer sich genommen eh nicht viel macht und so AFAIR nicht der Syntax des MinGW-Compilers entspricht, funktionieren BIOS-Aufrufe (was in diesem Schnippsel gemacht wird) in aktuellen Betriebssystemen uebrigens auch nicht.



  • nun, danke für eure hilfe 🙂

    ich werde dann die shutdown.exe benutzen und gelduld mitbringen
    (vllt bau ich mir auch nen relais-schalter, der per serielle schnittstelle den reset-knopf auslöst 😃 )

    mfg nippey



  • Nippey schrieb:

    ich werde dann die shutdown.exe benutzen und gelduld mitbringen

    Wie gesagt: Direkt ueber die WinAPI geht es auch.

    Nippey schrieb:

    (vllt bau ich mir auch nen relais-schalter, der per serielle schnittstelle den reset-knopf auslöst 😃 )

    Was hast du denn vor? Windows o.Ae. mit einem reset zu killen ist idR. keine gute Idee.
    Und Relais sind ja wohl voll oldschool. 😃





  • Nobuo T schrieb:

    Was hast du denn vor? Windows o.Ae. mit einem reset zu killen ist idR. keine gute Idee.
    Und Relais sind ja wohl voll oldschool. 😃

    Mehr hack-value: http://thedailywtf.com/Articles/The-Son-of-ITAPPMONROBOT.aspx



  • "SuperFast Shutdown"
    Jungs, ihr seid klasse! 😉

    "Hack-Value"
    So siehts bei mir aus xD
    nee, µC und elektronik Spielereien sind an der tagesordnung, imo arbeite ich mich an Windows ran



  • Gibt es nicht eine vordefinierte Stelle im Speicher wo man hinspringen muss um einen Neustart zu erreichen???



  • in der firmware der x86-kisten (bios oder so) gibt's irgendwo routinen, die die kiste runterfahren, ausschalten oder neu starten können. musste aber rauskriegen, wie man bios-routinen von windoofs aus aufrufen kann. aus'm user-mode könnte es schwierig sein, es gibt aber sicherlich ein paar backdoors. einfach mal googlen.
    🙂



  • Dieser Thread wurde von Moderator/in rüdiger aus dem Forum ANSI C in das Forum Rund um die Programmierung verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Nippey schrieb:

    (vllt bau ich mir auch nen relais-schalter, der per serielle schnittstelle den reset-knopf auslöst 😃 )

    mfg nippey

    Assembler FAQ/Archiv
    Für die Hardcore-Freaks unter uns... hier wird nur mit Mnemonics und Hexzahlen gearbeitet. Von 80x86 bis PIII und Athlon, aber auch andere Prozessoren werden nicht ignoriert. Lasst aber die Lötkolben stecken!



  • ~fricky schrieb:

    in der firmware der x86-kisten (bios oder so) gibt's irgendwo routinen, die die kiste runterfahren, ausschalten oder neu starten können. musste aber rauskriegen, wie man bios-routinen von windoofs aus aufrufen kann. aus'm user-mode könnte es schwierig sein, es gibt aber sicherlich ein paar backdoors. einfach mal googlen.
    🙂

    Vllt nen treibe schreiben? Zumindest hätte der treiber dann mehr rechte 🙂

    obs funktioniert...kA, kenn mich net aus.
    Unter linux kann man als treiber zumindest mit in() und out() auf die hardware zugreifen. wie es mit dem bios aussieht, weiß ich net mehr, vor allem da es jier unter windows laufen soll 😕



  • lass doch ne message box ausgeben "I CAN HAS REBOOT ? PLEEASSE!!!!"


Anmelden zum Antworten