Richard87 Skrevet 12. mars 2005 Del Skrevet 12. mars 2005 (endret) 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 12. mars 2005 av Richard87 Lenke til kommentar
aadnk Skrevet 12. mars 2005 Del Skrevet 12. mars 2005 Å 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
Richard87 Skrevet 12. mars 2005 Forfatter Del Skrevet 12. mars 2005 e DLL injection einaste mulighet for og subclassa noge i et annet program? isåfall, kossen kan eg finna index verdien te mitt programm i task mgr'en's process list? og dereter sletta den linjå? Lenke til kommentar
Gronz Skrevet 12. mars 2005 Del Skrevet 12. mars 2005 Hvorfor vil du gjøre det? Virker litt "suspekt"... Lenke til kommentar
Richard87 Skrevet 12. mars 2005 Forfatter Del Skrevet 12. mars 2005 koffor? kunn for løye, bruke ett eksempel som mange kansje kan "føla seg hjemma i", for og se kossen te kan gjørs... poenget e og læra og brukka sendmessage samen med strings... Lenke til kommentar
Richard87 Skrevet 12. mars 2005 Forfatter Del Skrevet 12. mars 2005 (endret) 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 12. mars 2005 av Richard87 Lenke til kommentar
aadnk Skrevet 12. mars 2005 Del Skrevet 12. mars 2005 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
Richard87 Skrevet 12. mars 2005 Forfatter Del Skrevet 12. mars 2005 (endret) Kossen vett eg kor i minne eg ska skriva te? Endret 12. mars 2005 av Richard87 Lenke til kommentar
aadnk Skrevet 12. mars 2005 Del Skrevet 12. mars 2005 Kossen vett eg kor i minne eg ska skriva te? Jeg tror følgende side vil gi deg svar på det: http://www.codeguru.com/Cpp/misc/misc/article.php/c3807/ Lenke til kommentar
Richard87 Skrevet 12. mars 2005 Forfatter Del Skrevet 12. mars 2005 e det muligt og bruka CopyMemory istedenfor WriteProcessMemory og ReadProcessMemory? Lenke til kommentar
aadnk Skrevet 12. mars 2005 Del Skrevet 12. mars 2005 Ikke på NT/2000/XP eller høyere. Lenke til kommentar
Richard87 Skrevet 13. mars 2005 Forfatter Del Skrevet 13. mars 2005 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
aadnk Skrevet 13. mars 2005 Del Skrevet 13. mars 2005 Hvilken feilmeldingsnummer får du dersom du kjører GetLastError etter du har eksekvert funksjonen: Private Declare Function GetLastError Lib "kernel32" () As Long Lenke til kommentar
Richard87 Skrevet 13. mars 2005 Forfatter Del Skrevet 13. mars 2005 (endret) Ret returnerte 0 den og:( findtaskmanager.zip Endret 13. mars 2005 av Richard87 Lenke til kommentar
Richard87 Skrevet 13. mars 2005 Forfatter Del Skrevet 13. mars 2005 (endret) 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 Endret 13. mars 2005 av Richard87 Lenke til kommentar
Richard87 Skrevet 13. mars 2005 Forfatter Del Skrevet 13. mars 2005 (endret) 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 13. mars 2005 av Richard87 Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå