Proxy DLL ( recuperation de données )
Bonjour
Je voudrais écrire par dessus sur une surface graphique géré par la SDL
L’idée étant d intercepter l'appel SDL_UnlockSurface pour avoir le pointeur de la surface et y ajouter mes infos
Pour ceci j'utilise le principe de dll proxy (substitution de la dll d origine pas la mienne )
Infos ici :
http://www.codeproject.com/Articles/...-automatically
Pour tester tout ca j ai fait un projet graphique et commencer a me faire la main sur la fonction
Code:
1 2
|
SDL_Delay(Uint32 time) |
Fonction sans retour avec un seul argument type Uint32
Pour mon code de recup dans ma dll je test ceci
Code:
1 2 3 4 5 6 7 8 9 10
|
extern "C" void __stdcall __E__33__(int ms)
{
typedef void (__stdcall *pS)(int);
pS pps = (pS)p[33*4];
pps(ms);
} |
ça donne un plantage systématique
si j’interviens sans essayer d 'utiliser les argument passer ca fonctionne
Code:
1 2 3 4 5 6 7 8 9
|
extern "C" __declspec(naked) void __stdcall __E__33__()
{
VarTest = VarTest +1
__asm
{
jmp p[33*4];
}
} |
la a l execution la variable test incremente bien et le programme fonctionne sans probleme
Si quelqu un a une piste ;)