Hallo erst ein mal.
Ich schreibe seit circa einem halben Monat in c.
Davor habe ich über 5 Jahre in Java programmiert.
Nun habe ich angefangen mich mit winhooks zu befassen.
Snippets extrahiert aus
http://www.tutorials.de/forum/c-c-tutorials/164662-tutorial-ueber-windows-hooks.html)
Ich habe das ganze nun so weit das alle Fehler weg sind, da meckert Antivir "TR/Dropper.Gen".
Meckert AntiVir bei jeder Benutzung von hooks ?
Kann ich mir ja eigentlich nicht vorstellen.
Falls ich irgendwo einen fehler gemacht habe, der AntiVir denken lässt das dies ein Trojaner sei, bitte ich euch mir diesen mitzuteilen.
Nebenbei das ganze funktiniert auch noch nicht wirklich.
Hier noch mal mein Code:
die dl.hl:
und die dllmain.c
M.f.g.
SleepProgger
Ich schreibe seit circa einem halben Monat in c.
Davor habe ich über 5 Jahre in Java programmiert.
Nun habe ich angefangen mich mit winhooks zu befassen.
Snippets extrahiert aus

Ich habe das ganze nun so weit das alle Fehler weg sind, da meckert Antivir "TR/Dropper.Gen".
Meckert AntiVir bei jeder Benutzung von hooks ?
Kann ich mir ja eigentlich nicht vorstellen.
Falls ich irgendwo einen fehler gemacht habe, der AntiVir denken lässt das dies ein Trojaner sei, bitte ich euch mir diesen mitzuteilen.
Nebenbei das ganze funktiniert auch noch nicht wirklich.
Hier noch mal mein Code:
Code:
/*
============================================================================
Name : Pipette.c
Author : SleepProgger
Version :
Copyright : Your copyright notice
Description : HookTest
============================================================================
*/
#include <stdio.h>
#include <stdlib.h>
#include <windows.h>
typedef BOOL (CALLBACK *MYFUNC)(void);
MYFUNC InstallHook;
MYFUNC UninstallHook;
void init(){
InstallHook = NULL;
UninstallHook = NULL;
}
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam){
printf("%s", "Callback");
return 0;
}
int main(void) {
init();
HINSTANCE hDll = LoadLibrary("HookTest.dll");
if(hDll != NULL){
printf("%s\n", "lib loading failure");
return -1;
}
InstallHook = (MYFUNC)GetProcAddress(hDll, "InstallHook");
if(InstallHook != NULL){
printf("%s\n", "install func loading failure");
return -1;
}
UninstallHook = (MYFUNC)GetProcAddress(hDll, "UninstallHook");
if(UninstallHook != NULL){
printf("%s\n", "uninstall func loading failure");
return -1;
}
FreeLibrary(hDll);
return EXIT_SUCCESS;
}
die dl.hl:
Code:
#ifndef _DLL_H_
#define _DLL_H_
#endif
#include <windows.h>
#if BUILDING_DLL
# define DLLIMPORT _declspec (dllexport)
#else /*Not building dll*/
# define DLLIMPORT _declspec (dllimport)
#endif /*Not building dll*/
#define SHARED __attribute__((section(".shr"), shared))
DLLIMPORT BOOL InstallHook();
DLLIMPORT BOOL UninstallHook();
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam);
und die dllmain.c
Code:
/*
* dllmain.c
*
* Created on: 18.10.2009
* Author: SleepProgger
*/
#include "dll.h"
HHOOK g_hMouseHook SHARED = NULL;
HINSTANCE g_hInst SHARED = NULL;
BOOL APIENTRY DLLMain(HINSTANCE hInts, DWORD reason, LPVOID reserved){
g_hInst = hInts;
return TRUE;
}
DLLIMPORT BOOL installHook(){
if(g_hMouseHook != NULL){
return TRUE;
}
g_hMouseHook = SetWindowsHookEx(WH_MOUSE, MouseProc, g_hInst, 0);
if(g_hMouseHook == NULL){
return FALSE;
}
//TODO changed
return TRUE;
}
DLLIMPORT BOOL uninstallHook(){
if(g_hMouseHook != NULL){
UnhookWindowsHookEx(g_hMouseHook);
g_hMouseHook = NULL;
}
return TRUE;
}
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam){
if(nCode < 0){
return CallNextHookEx(g_hMouseHook, nCode, wParam, lParam);
}
if(nCode == HC_ACTION){
if( (wParam == WM_LBUTTONDOWN) || (wParam == WM_NCLBUTTONDOWN) ){
MOUSEHOOKSTRUCT *mhs = (MOUSEHOOKSTRUCT*)lParam;
HWND caller = FindWindow("Pipette", NULL);
if(caller != NULL){
PostMessage(caller, WM_USER+123, 0, MAKELPARAM(mhs->pt.x, mhs->pt.y));
}
}
}
return CallNextHookEx(g_hMouseHook, nCode, wParam, lParam);
}
M.f.g.
SleepProgger