Je programme une DLL. Dans cette DLL, je veux accrocher la fonction d'un autre dll chargée en mémoire. Ceci est le résultat de nombreuses heures de travail:Crochet de fonction C++ (dll, asm)
typedef int (__fastcall *def_cry)(int a,int b,int fromlen);
def_cry Real_cry;
int __fastcall custom_cry(int a,int b,int fromlen) {
Log("cry ...");
__asm nop;
return Real_cry(a, b, fromlen);
}
DWORD imageBaseOtherDll = 0x39500000;
DWORD functionOffset = 0x395742F8;
DWORD imageBase = (DWORD)GetModuleHandle("otherDll.dll");
DWORD functionOffset = imageBase + (functionOffset - imageBaseOtherDll);
Real_cry = (def_cry)DetourFunction((PBYTE)functionOffset,(PBYTE)&custom_cry);
Il semble que mon crochet ne fonctionne pas. Je pense que je mets quelques erreurs logiques dans le code mais je suis un débutant et aidé!
asm - s'il vous plaît ajouter quelques détails, comme quoi avez-vous essayé jusqu'à présent, et ce que vous pensez que le problème est. Affinez l'objectif de votre problème. Si vous demandez "Pouvez-vous regarder cela et le réparer?" Vos questions seront rejetées et fermées. – Josh
(+1) - guy est nouveau, ne lui donnez pas envie de fuir stackoverflow en le "-1ing" lui ... Je pense que la question est assez claire. – Cipi