写了一个DLL文件1.56K,然后将这个文件以资源的形式加载到一个EXE用,这个EXE文件运行时将DLL释放并插入到EXPLORER进程中,当用DEBUG版编译连接后,可以插入到指定进程,但是释放出来的DLL有20K.而改用release版编译连接后,只能将DLL释放,却插入不到进程中,DLL的大小没变,为1.56K~!编译连接均没有错误~!请问怎么调试可以让release版成功插入进程????

解决方案 »

  1.   

    不以资源的形式加载到一个EXE中,这种方式成功了吗?(Debug与Release)
      

  2.   

    想干坏事啊,为何不用正当方式加载到Explorer进程中?
      

  3.   

    写个SHELL扩展吧。。它会自动被EXPLORER加载的。。对付这种程序,也是可以调试的,起码我调试过,要么用OutputDebugString。
    要么用VC2003,windbg。对了,你是怎么知道release插不进去的?
      

  4.   

    我写的下载者,DLL里的代码就是去下载并运行,我在本机上运行的HTTP傻瓜服务器调试的,让程序去下载一个WINRAR,用DEBUG版编译连接后运行,下载并运行了,并且用冰刃可以看到插入的DLL,用release版编译连接后运行只能生成DLL却插入失败~!
      

  5.   

    环境是WINDOWS XP SP2 VC++6.0中文版
      

  6.   

    一步步分析,先在DllMain里面放个OutputDebugString("DllInit");然后开DbgView看看。。
      

  7.   

    感觉不是DLL的事,是注入的问题,但不知道错在哪了......
      

  8.   

    先改掉目标进程的LoadLibrary入口 JMP 到OutputDebugString,然后你再远注,DbgView有没输出。
    还有一个方法是:到控制面板,到把Waring的声音改成自录的“不要啊”
    当然也可以JMP 到 MessageBeep 看看你注的时候我的电脑会不会叫“不要啊”
      

  9.   

    在RELEASE模式下,编译开关选择STATIC静态连接再测试
      

  10.   

    是用的hook吗,当资源加载,不懂