Aktuelle Zeit: 05.12.2020 07:28

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]




Ein neues Thema erstellen Auf das Thema antworten  [ 32 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4
Autor Nachricht
 Betreff des Beitrags:
BeitragVerfasst: 27.05.2007 11:12 
Offline
Benutzeravatar

Registriert: 12.06.2005 11:15
Wohnort: Germany
Kaeru Gaman hat geschrieben:
Thorium hat geschrieben:
hardfalcon hat geschrieben:
Ich glaube, er hat den andern Thread gemeint, Thorium... :wink:


Ah, jetzt ja.
:)

Eine Insel? :?

Leisure Suit Larry 8)

_________________
Zu mir kommen behinderte Delphine um mit mir zu schwimmen.

Wir fordern mehr Aufmerksamkeit für umfallende Reissäcke! Bild


Nach oben
 Profil  
Mit Zitat antworten  
 Betreff des Beitrags: Re: CTRL+ALT+DEL Disable und DLL Injection
BeitragVerfasst: 13.11.2020 15:38 
Offline

Registriert: 11.03.2020 13:39
Hab nach ewigem rumprobieren mal eine Version auf Stand gebracht.
x64 PureBasic 5.72 (Windows - x64)


Code:
#PROCESS32LIB = 9999

Procedure GetPidByName(p_name$)

NewList Process32.PROCESSENTRY32 ()

If OpenLibrary (#PROCESS32LIB, "kernel32.dll")
    snap = CallFunction (#PROCESS32LIB, "CreateToolhelp32Snapshot", #TH32CS_SNAPPROCESS, 0)
    If snap
        Define.PROCESSENTRY32 Proc32
        Proc32\dwSize = SizeOf (PROCESSENTRY32)
        If CallFunction (#PROCESS32LIB, "Process32First", snap, @Proc32)
            AddElement (Process32 ())
            CopyMemory (@Proc32, @Process32 (), SizeOf (PROCESSENTRY32))
            If PeekS (@Process32 ()\szExeFile,-1,#PB_UTF8) = p_name$
              ProcedureReturn Proc32\th32ProcessID
            EndIf
            While CallFunction (#PROCESS32LIB, "Process32Next", snap, @Proc32)
              AddElement (Process32 ())
              CopyMemory (@Proc32, @Process32 (), SizeOf (PROCESSENTRY32))
              If PeekS (@Process32 ()\szExeFile,-1,#PB_UTF8) = p_name$
                ProcedureReturn Proc32\th32ProcessID
              EndIf
            Wend
        EndIf   
        CloseHandle_ (snap)
    EndIf
    CloseLibrary (#PROCESS32LIB)
EndIf
 
EndProcedure

; Both DLL and process must be unicode
; For ASCII: change LoadLibraryW > LoadLibraryA, and modify strings related to pszLibFile$
Procedure InjectLibW(dwProcessId, pszLibFile$)
   Protected hProcess, hThread, lzLibFileRemote, endSize, lsThreadRtn
   
   hProcess = OpenProcess_(#PROCESS_QUERY_INFORMATION | #PROCESS_CREATE_THREAD | #PROCESS_VM_OPERATION | #PROCESS_VM_WRITE, 0, dwProcessId)
   
   If hProcess = 0 : Goto ErrHandle : EndIf
   endSize = 1 + StringByteLength(pszLibFile$)
   
   lzLibFileRemote = VirtualAllocEx_(hProcess, #Null, endSize, #MEM_COMMIT, #PAGE_READWRITE)
   
   If lzLibFileRemote = 0 : Goto ErrHandle : EndIf
   
   If (WriteProcessMemory_(hProcess, lzLibFileRemote, pszLibFile$, endSize, #Null) = 0) : Goto ErrHandle : EndIf
   
   OpenLibrary(0, "Kernel32.dll") : lsThreadRtn = GetFunction(0, "LoadLibraryW") : CloseLibrary(0)
   
   If lsThreadRtn = 0 : Goto ErrHandle : EndIf
   
   hThread = CreateRemoteThread_(hProcess, #Null, #Null, lsThreadRtn, lzLibFileRemote, #Null, #Null)
   
   If (hThread = 0) : Goto ErrHandle : EndIf
   
   WaitForSingleObject_(hThread, #INFINITE)
   
   If lzLibFileRemote<>0
      VirtualFreeEx_(hProcess, lzLibFileRemote, 0, #MEM_RELEASE)
      MessageRequester("Inject Status", "Injection Suceeded", 0)
   Else
      VirtualFreeEx_(hProcess, lzLibFileRemote, 0, #MEM_RELEASE)
      MessageRequester("Inject Status", "Injection Failed !!!", 0)
   EndIf
   End
   
   ErrHandle:
   CloseHandle_(hThread)
   CloseHandle_(hProcess)
EndProcedure


;------------------------------------

InjectLibW( GetPidByName("notepad.exe"), "64.dll")


dll code:
ProcedureDLL AttachProcess(Instance)
MessageRequester("aha","YEY")
EndProcedure

Läuft nur unter x64 mit x64 DLL.
Bekanntes Problem ist dass es nur einmal klappt. Vor dem Neustart muss der Prozess neugestartet werden. Geht übrigens ohne Adminrechte :lurk:


Nach oben
 Profil  
Mit Zitat antworten  
Beiträge der letzten Zeit anzeigen:  Sortiere nach  
Ein neues Thema erstellen Auf das Thema antworten  [ 32 Beiträge ]  Gehe zu Seite Vorherige  1, 2, 3, 4

Alle Zeiten sind UTC + 1 Stunde [ Sommerzeit ]


Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 10 Gäste


Sie dürfen keine neuen Themen in diesem Forum erstellen.
Sie dürfen keine Antworten zu Themen in diesem Forum erstellen.
Sie dürfen Ihre Beiträge in diesem Forum nicht ändern.
Sie dürfen Ihre Beiträge in diesem Forum nicht löschen.

Suche nach:
Gehe zu:  

 


Powered by phpBB © 2008 phpBB Group | Deutsche Übersetzung durch phpBB.de
subSilver+ theme by Canver Software, sponsor Sanal Modifiye