Gå til innhold

gjømma programmet mitt i Process lista


Anbefalte innlegg

kossen kan eg gjømma programmet mitt i process listå(task manager)

 

det eg tenkte hva og subclassa process list boksen(SysListView32) og så bare kasta alt som har med mitt programm å gjør, det eg lure på, e kossen kor kan eg sjekka ka som e mitt programm og ka koder eg ska se itte... någen ide?

Endret av Richard87
Lenke til kommentar
Videoannonse
Annonse

Å subclasse denne listen i taskmgr.exe er en mulighet - men det utelukker ikke at programmet kan vises i eksempelvis tasklist eller programmer med samme funksjonalitet som taskmgr.exe. Det er således nokså usikkert om en slik omfattende prosess egentlig vil være umaken verd, men dersom du ønsker å gjøre dette, kan du se nærmere på dette.

 

En annen metode er å registere programmet som en såkalt service. Eksempler på hvorledes å gjøre dette, finner du her:

 

http://www.freevbcode.com/ShowCode.Asp?ID=4317

http://support.microsoft.com/kb/175948/EN-US/

http://www.firedaemon.com/

Lenke til kommentar

dete har eg fått te te nå:

Private Sub Form_Activate()
Ret = FindHwnd(TaskClassName, TaskClassText)
Ret = EnumChild(Ret, "Processes")
Debug.Print Ret
Dim sBuffer As String
sBuffer = "explorer.exe" & vbNull

Dim Info As LVFINDINFO
With Info
   .Flags = 8
   .psz = sBuffer
End With
Ret = SendMessage(Ret, LVM_FINDITEM, ByVal -1, Info)
Print Ret
End Sub

men kver gang eg skjøre koden så crashe task manageren:(

 

her e koden for LVFINDINFO

Private Type LVFINDINFO
   Flags As Long
   psz As Long
   lParam As Long
   pt As Long
   vkDirection As Long
End Type

Endret av Richard87
Lenke til kommentar

I Windows NT kan ikke programmer lese minne allokert av andre programmer direkte - Task Manager får rett og slett ikke tillatelse til å lese variabelen du deklarerte. Det du må gjøre, er å allokere minne innen rekkevidde av Task Manager, eksempelvis i dette programmets minneblokk, og dernest benytte WriteProcessMemory for å skrive informasjonen til minnet. Endelig må du overlevere pointeren til denne minnedelen i lParam.

Lenke til kommentar

eg får aldri WriteProcessMemory te og funka:(

Public Function WriteMemory(ByVal hProcess As Long, ByVal sData As String, ByVal Address As Long) As Long
Dim Ret As Long
Ret = WriteProcessMemory( _
   hProcess, _
   Address, _
   StrPtr(sData), _
   LenB(sData), _
   0&)
WriteMemory = Ret
End Function

alt e sånn det ska ver, og eg får et lang tall fra VirtualAllocEx..(som eg tippe e addressen)

 

Ret e alltid 0

alle de andre verdiene e det de ska vær...

Lenke til kommentar

Sorry, eg fant ut at det va ikkje WriteMemory funksjonen som va feil, men CreateSpace(VirtualAllocEx)

 

når eg testa GetLastError fek eg 0:(

 

Public Function CreateSpace(ByVal hProcess As Long, ByVal lSize As Long) As Long
Dim Ret As Long
Ret = VirtualAllocEx(hProcess, vbNull, lSize, MEM_COMMIT, PAGE_READWRITE)
'Ret = VirtualAllocEx(hProcess,0& , lSize, MEM_COMMIT, PAGE_READWRITE)
CreateSpace = Ret
End Function

 

:no:

Endret av Richard87
Lenke til kommentar

kunne eg lagra variablane i mitt programm som virutellt minne, og så kunne taskmgr henta variablene derifra, eller må eg lagra de i taskmgr sitt minne?

 

[EDIT]

VirtualAllocEx feile ALLTID både med TaskMgr som Pid/hProcess og med mitt eg programm sit Pid/hProcess

Endret av Richard87
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...