1.CreateRemoteThread的参数里写入函数地址
2.
BOOL APIENTRY DllMain( HANDLE hModule,DWORD ul_reason_for_call,LPVOID lpReserved){
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
printf("\nprocess attach of dll");
break;case DLL_THREAD_ATTACH:
printf("\nthread attach of dll");
init();//在这里加入你的初始化
break;case DLL_THREAD_DETACH:
printf("\nthread detach of dll");
break;case DLL_PROCESS_DETACH:
printf("\nprocess detach of dll");
break;}return TRUE;}

解决方案 »

  1.   

    1、一般是exe调用dll,方法很常规,随便买本书都有的介绍,不多说了。另外,通过api拦截也可以使exe调用dll里面的函数,网上资料一大堆,自己搜一下。如果是dll调用exe里面的函数,实现起来就有点困难了,首先通过反汇编查找代码的入口地址,分析参数、调用规则,然后在dll里面定义一个指针函数,将指针地址指向前面的地址,然后调用,或者自己使用汇编push xxx;push yyy模仿参数压栈,然后call zzz(zzz为函数入口地址)。
    2、如果是常规dll,一楼已经给出答案了;如果是mfc扩展dll,在初始化函数里面实现你想要的功能。