ExitWindowsEx

Hier könnt ihr sowohl zur x86 Architektur als auch zu Win32ASM Fragen stellen.

Moderatoren: crack, Krüsty, Marwin

Beitragvon TRiPLEX » Mittwoch 31. März 2004, 20:48

Tjoa, ich hab da n Problem: ich bin noch ein echter ASM - Coding "Neuling"
und folgende Zeile funktioniert einfach nicht: "invoke ExitWindowsEx, 1, 0"!! :blink:
"invoke ExitWindowsEx, 0, 0" funktioniert, "invoke ExitWindowsEx, 1, 0" und
"invoke ExitWindowsEx, 2, 0" nicht!! :blink:
Was kann ich tun??
Benutzeravatar
TRiPLEX
Member
 
Beiträge: 16
Registriert: Mittwoch 31. März 2004, 20:42

Beitragvon CDW » Mittwoch 31. März 2004, 23:03

hm, wahrscheinlihc hast du XP/2000 und wunderst dich warum man nicht herunterfahren kann ;) ... das ist leider bei NT Systemen nicht so einfach,
wenn man die Doku durchliest, dann steht da dass der Process erstmal die Rechte dafür erringen muss...
ich habs vor ein paar Jahren mal gemacht (einen MS beispielcode von C nach asm übersetzt):
http://www.cdw.de.vu/Tutorial1.zip
das wichtigste ist:
Code: Alles auswählen
      LOCAL tkp:TOKEN_PRIVILEGES
      LOCAL hToken: HANDLE      
       call GetCurrentProcess  ;das bracuchen wir jetzt für NT/2000/XP
       mov dwCurrentProcess,eax;die Process ID
 
 lea eax,hToken              ;hToken adresse ins eax laden
 push eax                    ; argument auf Stack
 push 28h ; TOKEN_ADJUST_PRIVILEGES(0x0020) xor TOKEN_QUERY(0x008)=28 => siehe WINNT.h      
       push dwCurrentProcess           ; unsere ProcessID
       call OpenProcessToken                        
       
       lea eax,tkp.Privileges[0].Luid
       push eax
       push offset shutdown            ; wir wollen einen shutdown machen <=shutdown ist ein string "SeShutdownPrivilege"
       push 0
       call LookupPrivilegeValue       ;und wir kriegen die doch
                               ;wer es hier nicht so ganz durchblickt, sollte
                               ;in die winAPIdoku schauen...z.b MSDN
             
       
       mov tkp.PrivilegeCount,1  
       mov tkp.Privileges[0].Attributes,SE_PRIVILEGE_ENABLED;enable dies! (wenn der benutzer keine Berechtigung dazu hat
                                                                            ; wird trotzdem nix daraus!
       push 0
       push 0
       push 0
       lea eax,tkp
       push eax
       push 0;False
       push hToken
       
       call AdjustTokenPrivileges
     
       
       push 0;wird nicht beachtet, da noch reserviert
       push dwParam1; unseren Parameter
       call ExitWindowsEx                          
       

wobei ich inzwichen einen komplett anderen Programmierstil drauf habe, aber egal ;)
CDW
Alter Hase
 
Beiträge: 62
Registriert: Donnerstag 2. Oktober 2003, 17:17

Beitragvon TRiPLEX » Donnerstag 1. April 2004, 18:07

Joa, großes Danke an CDW!! :)
Das Problem ist behoben, s lag also doch an WinXP.
DANKE!!
Benutzeravatar
TRiPLEX
Member
 
Beiträge: 16
Registriert: Mittwoch 31. März 2004, 20:42


Zurück zu Assembler


Social Bookmarking
Bookmark bei: Mr. Wong Bookmark bei: Del.icio.us Bookmark bei: Webnews Bookmark bei: Icio Bookmark bei: Oneview Bookmark bei: Linkarena Bookmark bei: Newskick Bookmark bei: Folkd Bookmark bei: Yigg Bookmark bei: Digg Bookmark bei: Reddit Bookmark bei: Simpy Bookmark bei: StumbleUpon Bookmark bei: Slashdot Bookmark bei: Netscape Bookmark bei: Furl Bookmark bei: Yahoo Bookmark bei: Spurl Bookmark bei: Google Bookmark bei: Blinklist Bookmark bei: Blogmarks Bookmark bei: Diigo Bookmark bei: Technorati Bookmark bei: Newsvine Bookmark bei: Blinkbits Bookmark bei: Ma.Gnolia Bookmark bei: Smarking Bookmark bei: Netvouz

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder