Bitblt check
-
prüf0r schrieb:
Naja, du musst halt die Ausführung der Funktion abfangen, da gibt es mehrere Methoden, wie man das bewerkstelligen kann.
Am einfachsten wäre wohl ein simpler Detour-Hook. Ansonsten kann man auch einen Breakpoint setzen.
Das aber nur mal allgemein gesagt.
Ich weiß jetzt nicht, was du genau machen wills. Das kannst du ja mal erläutern. Warum willst du einen Tastendruck simulieren und wofür?
-
Wenn du dein Prog. auch bei jeder Anwendung funktionieren soll, mach es so wie ich das gesagt habe. Dass mit auf platte schreiben, kannste vergessen wenn die Daten gleich ins Nirvana geschickt werden.
-
-lowbyte- schrieb:
wenn du dein prog. auch bei jeder anwendung funktionieren soll,machs so wie ich das gesagt habe. das mit auf platte schreiben, kannste vergessen wenn die daten gleich ins nirvana geschickt werden.
Und was genau muss in der DLL dann stehen?
-
HeinzE schrieb:
Mit Reverse bekomm ich doch nur raus OB sie das überhaupt macht, ich möchte jedesmal wenn die Datei einen Screenshot macht kurz vorher dies signalisiert bekommen sodass mein Programm einen Tastendruck simulieren kann
Dateien machen keine Screenshots. Prozesse machen Screenshots. Lern bitte wenigstens die grundlegensten Begriffe.
Und um es etwas abzukürzen: das was du machen willst ist grundsätzlich möglich, aber zu schwer für dich. Such dir ein anderes Hobby.
-
HeinzE schrieb:
Und was genau muss in der DLL dann stehen?
Versuch's mal mit "Hello World". Wenn das nicht tut, füg noch ein paar Buchstaben hinzu, bis es irgendwann funzt. Kannst auch nen Algo verwenden, der alle möglichen Kombinationen bis zu einer bestimmten Größe durchgeht, bis irgendwann das gewünschte Programm rauskommt.
- further bashing snipped -
-
Und ich dachte ich wäre manchmal zu hart...
-
Du solltest dich erstmal intensiv mit der nativen Programmierung befassen, auch dann mit dem Schwerpunkt Microsoft Windows. Vorher wirst du da nicht weit kommen, es wird allenfalls C&P Code werden.
-
typedef BOOL (WINAPI* oBitBlt)( HDC, int, int,int,int,HDC,int,int, DWORD); oBitBlt pBitBlt; bool ret = true; bool WINAPI myBitBlt( HDC hdcDest, int nXDest, int nYDest, int nWidth, int nHeight, HDC hdcSrc, int nXSrc, int nYSrc, DWORD dwRop) { if(nWidth >= 320 && nHeight >= 320) { MessageBox(NULL,_T("2","Heyho"),0,MB_OK); keybd_event(VK_END, 0, 0, 0); keybd_event(VK_END, 0, KEYEVENTF_KEYUP, 0); Sleep(100); bool ret = pBitBlt(hdcDest,nXDest,nYDest,nWidth,nHeight,hdcSrc,nXSrc,nYSrc,dwRop); keybd_event(VK_END, 0, 0, 0); keybd_event(VK_END, 0, KEYEVENTF_KEYUP, 0); return ret; } bool ret = pBitBlt(hdcDest,nXDest,nYDest,nWidth,nHeight,hdcSrc,nXSrc,nYSrc,dwRop); return ret; } // DLL MAIN BOOL WINAPI DllMain(HINSTANCE hInstance, DWORD dwReason, PVOID pvReserved) { switch (dwReason) { case DLL_PROCESS_ATTACH: pBitBlt = (oBitBlt)DetourFunction((LPBYTE)DetourFindFunction("Gdi32.dll","BitBlt"), (LPBYTE)myBitBlt); MessageBox(NULL,_T("1","Heyho"),0,MB_OK); break; case DLL_PROCESS_DETACH: break; } return TRUE; } }
Er injected, aber beim Screenshot der Anwendung macht er nix??
-
EDIT:
Schau mal dein MesageBox() call an! Das kannst du so gar nicht Kompilieren!
Ich könnte mir vorstellen dass der ganze Code nicht von dir ist... nur copy/past und dann ein bisschen rumfrickeln was!?...das geht so nicht. Lerne die grundlegenden Sachen zuerst mal richtig.Wenn du nämlich wüsstest was der Code macht, kämmst du nicht mit so bescheuerten Aussagen "Er injected, aber beim Screenshot der Anwendung macht er nix??".
Klar tut sich nichts...wenn du nicht mal ne DLL zum injecten hast! (weil es nicht Kompilier bar ist)
Für mich ist hier Ende.
-
-lowbyte- schrieb:
Klar tut sich nichts...wenn du nicht mal ne DLL zum injecten hast!