开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 1122|回复: 2
打印 上一主题 下一主题
收起左侧

[易语言] 求大神!快快进来

[复制链接]
头像被屏蔽
结帖率:58% (15/26)
跳转到指定楼层
楼主
发表于 2013-8-29 21:24:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式   福建省宁德市
100精币
新建文件夹 (4).zip (336.98 KB, 下载次数: 10)
求调用这个附件里面 HookDll.dll  的方法!dll是用VC编写
[qq]1027663760[/qq]会的大神联系我,我这里只有29财付通 + 110Q币了
能搞定的全部给你!


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值无答案申请取消悬赏投诉有答案未采纳为最佳

结帖率:82% (9/11)

签到天数: 17 天

沙发
发表于 2013-8-30 00:02:23 | 只看该作者   广东省肇庆市
E语言我不会 给你找到c++的源码  是全局钩子 HOOK connect
1.将NtHookEngine.dll和NtHookEngine.lib放入相应工程的位置



2.代码如下:EST_DLL.cpp


[java] view plaincopyprint?// TEST_DLL.cpp : Defines the entry point for the DLL application.   
//   
  
#include "stdafx.h"  
#include "TEST_DLL.H"  
#include <Winsock2.h>  
#include "NtHookEngine_Test.h"  
#include <windows.h>  
  
#include <tchar.h>  
#ifndef ULONG_PTR  
#define ULONG_PTR unsigned long*   
#endif  
#pragma comment(lib, "Ws2_32.lib")   
#pragma comment(lib,"NtHookEngine.lib")  
//#pragma comment(lib, "User32.lib")   
  
#pragma data_seg("MySec")  
HANDLE m_hModule=NULL;  
HHOOK g_HHOOK=NULL;  
HMODULE hHookEngineDll;  
  
// BOOL (__cdecl *HookFunction)(ULONG_PTR OriginalFunction, ULONG_PTR NewFunction);   
// VOID (__cdecl *UnhookFunction)(ULONG_PTR Function);   
// ULONG_PTR (__cdecl *GetOriginalFunction)(ULONG_PTR Hook);   
#pragma data_seg()  
  
  
int WINAPI MyMessageBoxW(SOCKET s,                           
                         const struct sockaddr FAR *name,   
  int namelen);  
  
LRESULT CALLBACK CBTProc(  
                         int nCode,      // hook code   
                         WPARAM wParam,  // depends on hook code   
                         LPARAM lParam   // depends on hook code   
                         ){  
    //MessageBox(NULL,"CBTProc","CBTProc",MB_OK);   
    return CallNextHookEx(g_HHOOK,nCode,wParam,lParam);  
}  
  
VOID gjl_Hook(HWND hwnd){  
        g_HHOOK=SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTProc,(HINSTANCE)m_hModule,0);  
}  
VOID gjl_UnHook(){  
    UnhookWindowsHookEx(g_HHOOK);  
}  
  
//HMODULE dllModule=LoadLibrary(_T("User32.dll"));   
//FARPROC messageboxAddr=GetProcAddress(dllModule,"MessageBoxW");   
  
  
#include <stdio.h>  
  
extern "C"_declspec(dllimport) BOOL HookFunction(ULONG_PTR OriginalFunction, ULONG_PTR NewFunction);  
extern "C"_declspec(dllimport) VOID UnhookFunction(ULONG_PTR Function);  
extern "C"_declspec(dllimport) ULONG_PTR GetOriginalFunction(ULONG_PTR Hook);  
  
BOOL APIENTRY DllMain( HANDLE hModule,   
                      DWORD  ul_reason_for_call,   
                      LPVOID lpReserved  
                      )  
{  
    switch (ul_reason_for_call)  
    {  
    case DLL_PROCESS_ATTACH:      
         
        m_hModule=hModule;  
        //hHookEngineDll= LoadLibrary(_T("C:\\mailchecker\\backup\\TEST_dll_minihook\\TEST_MFC_HOOK\\Debug\\NtHookEngine.dll"));   
        //hHookEngineDll= LoadLibrary(_T("C:\\NtHookEngine.dll"));   
        CHAR szBuf[80];  
    //hHookEngineDll = LoadLibrary(_T("C:\\mailchecker\backup\\TEST_dll_minihook\\TEST_DLL\\Debug\\NtHookEngine.dll"));   
        //Hook();      
//      if (NULL==hHookEngineDll)   
//      {   
//          DWORD dw=GetLastError();   
//          sprintf(szBuf, "failed: GetLastError returned %u\n",   
//               dw);   
//          MessageBox(NULL, szBuf, "Error", MB_OK);   
//          MessageBox(NULL,"hHookEngineDll fail ","hHookEngineDll fail ",MB_OK);   
//          //126   
//          //MessageBox(NULL,(const char *)error,(const char *)error,MB_OK);   
//      }   
         
//      HookFunction = (BOOL (__cdecl *)(ULONG_PTR, ULONG_PTR))   
//          GetProcAddress(hHookEngineDll, "HookFunction");   
//         
//         
//      UnhookFunction = (VOID (__cdecl *)(ULONG_PTR))   
//          GetProcAddress(hHookEngineDll, "UnhookFunction");   
//         
//      GetOriginalFunction = (ULONG_PTR (__cdecl *)(ULONG_PTR))   
//          GetProcAddress(hHookEngineDll, "GetOriginalFunction");   
         
        if (HookFunction == NULL || UnhookFunction == NULL ||   
            GetOriginalFunction == NULL)  
        {  
            MessageBox(NULL,"MINI hook init fail","MINI hook init fail",MB_OK);  
            return 0;  
        }  
         
         
         
        HookFunction((ULONG_PTR)connect,  
        (ULONG_PTR) &MyMessageBoxW);  
         
        break;  
    case DLL_THREAD_ATTACH:      
         
        break;  
    case DLL_THREAD_DETACH:      
  
        break;  
    case DLL_PROCESS_DETACH:              
  
      
        break;  
    }  
      
    return TRUE;  
}  
  
int WINAPI MyMessageBoxW(SOCKET s,                           
                         const struct sockaddr FAR *name,   
  int namelen)  
{  
    int (WINAPI *pMessageBoxW)(SOCKET s,                           
        const struct sockaddr FAR *name,   
  int namelen);  
      
    pMessageBoxW = (int (WINAPI *)(SOCKET s,                           
        const struct sockaddr FAR *name,   
  int namelen))  
        GetOriginalFunction((ULONG_PTR) MyMessageBoxW);  
      
    MessageBox(NULL,"success","success",MB_OK);  
    return pMessageBoxW(s,                           
        name,   
  namelen);  
}  

// TEST_DLL.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"
#include "TEST_DLL.H"
#include <Winsock2.h>
#include "NtHookEngine_Test.h"
#include <windows.h>

#include <tchar.h>
#ifndef ULONG_PTR
#define ULONG_PTR unsigned long*
#endif
#pragma comment(lib, "Ws2_32.lib")
#pragma comment(lib,"NtHookEngine.lib")
//#pragma comment(lib, "User32.lib")

#pragma data_seg("MySec")
HANDLE m_hModule=NULL;
HHOOK g_HHOOK=NULL;
HMODULE hHookEngineDll;

// BOOL (__cdecl *HookFunction)(ULONG_PTR OriginalFunction, ULONG_PTR NewFunction);
// VOID (__cdecl *UnhookFunction)(ULONG_PTR Function);
// ULONG_PTR (__cdecl *GetOriginalFunction)(ULONG_PTR Hook);
#pragma data_seg()


int WINAPI MyMessageBoxW(SOCKET s,                          
                                                 const struct sockaddr FAR *name,  
  int namelen);

LRESULT CALLBACK CBTProc(
                                                 int nCode,      // hook code
                                                 WPARAM wParam,  // depends on hook code
                                                 LPARAM lParam   // depends on hook code
                                                 ){
        //MessageBox(NULL,"CBTProc","CBTProc",MB_OK);
        return CallNextHookEx(g_HHOOK,nCode,wParam,lParam);
}

VOID gjl_Hook(HWND hwnd){
                g_HHOOK=SetWindowsHookEx(WH_CBT,(HOOKPROC)CBTProc,(HINSTANCE)m_hModule,0);
}
VOID gjl_UnHook(){
        UnhookWindowsHookEx(g_HHOOK);
}

//HMODULE dllModule=LoadLibrary(_T("User32.dll"));
//FARPROC messageboxAddr=GetProcAddress(dllModule,"MessageBoxW");


#include <stdio.h>

extern "C"_declspec(dllimport) BOOL HookFunction(ULONG_PTR OriginalFunction, ULONG_PTR NewFunction);
extern "C"_declspec(dllimport) VOID UnhookFunction(ULONG_PTR Function);
extern "C"_declspec(dllimport) ULONG_PTR GetOriginalFunction(ULONG_PTR Hook);

BOOL APIENTRY DllMain( HANDLE hModule,
                                          DWORD  ul_reason_for_call,
                                          LPVOID lpReserved
                                          )
{
    switch (ul_reason_for_call)
        {
        case DLL_PROCESS_ATTACH:       
               
                m_hModule=hModule;
                //hHookEngineDll= LoadLibrary(_T("C:\\mailchecker\\backup\\TEST_dll_minihook\\TEST_MFC_HOOK\\Debug\\NtHookEngine.dll"));
                //hHookEngineDll= LoadLibrary(_T("C:\\NtHookEngine.dll"));
                CHAR szBuf[80];
        //hHookEngineDll = LoadLibrary(_T("C:\\mailchecker\backup\\TEST_dll_minihook\\TEST_DLL\\Debug\\NtHookEngine.dll"));
                //Hook();       
//                 if (NULL==hHookEngineDll)
//                 {
//                         DWORD dw=GetLastError();
//                         sprintf(szBuf, "failed: GetLastError returned %u\n",
//                                  dw);
//                         MessageBox(NULL, szBuf, "Error", MB_OK);
//                         MessageBox(NULL,"hHookEngineDll fail ","hHookEngineDll fail ",MB_OK);
//                         //126
//                         //MessageBox(NULL,(const char *)error,(const char *)error,MB_OK);
//                 }
               
//                 HookFunction = (BOOL (__cdecl *)(ULONG_PTR, ULONG_PTR))
//                         GetProcAddress(hHookEngineDll, "HookFunction");
//                
//                
//                 UnhookFunction = (VOID (__cdecl *)(ULONG_PTR))
//                         GetProcAddress(hHookEngineDll, "UnhookFunction");
//                
//                 GetOriginalFunction = (ULONG_PTR (__cdecl *)(ULONG_PTR))
//                         GetProcAddress(hHookEngineDll, "GetOriginalFunction");
               
                if (HookFunction == NULL || UnhookFunction == NULL ||
                        GetOriginalFunction == NULL)
                {
                        MessageBox(NULL,"MINI hook init fail","MINI hook init fail",MB_OK);
                        return 0;
                }
               
               
               
                HookFunction((ULONG_PTR)connect,
                (ULONG_PTR) &MyMessageBoxW);
               
                break;
        case DLL_THREAD_ATTACH:               
               
                break;
        case DLL_THREAD_DETACH:               

                break;
        case DLL_PROCESS_DETACH:                       

       
                break;
    }
       
    return TRUE;
}

int WINAPI MyMessageBoxW(SOCKET s,                          
                                                 const struct sockaddr FAR *name,  
  int namelen)
{
        int (WINAPI *pMessageBoxW)(SOCKET s,                          
                const struct sockaddr FAR *name,  
  int namelen);
       
        pMessageBoxW = (int (WINAPI *)(SOCKET s,                          
                const struct sockaddr FAR *name,  
  int namelen))
                GetOriginalFunction((ULONG_PTR) MyMessageBoxW);
       
        MessageBox(NULL,"success","success",MB_OK);
        return pMessageBoxW(s,                          
                name,  
  namelen);
}

3.mydll.def


[java] view plaincopyprint?LIBRARY "TEST_DLL"  
EXPORTS  
gjl_Hook @1  
gjl_UnHook @2  
SEGMENTS  
MySec read write shared  

LIBRARY "TEST_DLL"
EXPORTS
gjl_Hook @1
gjl_UnHook @2
SEGMENTS
MySec read write shared
4.TEST_DLL.h


[java] view plaincopyprint?#ifndef TestDll_H_  
#define TestDll_H_  
#ifdef MYLIBDLL  
#define MYLIBDLL extern "C" _declspec(dllimport)   
#else  
#define MYLIBDLL extern "C" _declspec(dllexport)   
#endif  
MYLIBDLL void gjl_Hook(HWND hwnd);  
MYLIBDLL void gjl_UnHook();  
//You can also write like this:   
//extern "C" {   
//_declspec(dllexport) int Add(int plus1, int plus2);   
//};   
#endif  
回复

使用道具 举报

结帖率:75% (3/4)
板凳
发表于 2013-8-30 08:53:21 | 只看该作者   河南省驻马店市
这是个什么程序啊  一运行点击按钮怎么自动结束了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表