挂海论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
 友情提示:文字/图片广告均非网站意见,请担保交易勿直接付款,由此产生的责任自负
玩游戏来117游戏网(H5不下载也能玩手游传奇,吃鸡,竞技都有)天下盾/国内/免实名/免备案CDN无视一切CC/DD攻击 找塔科夫作者TG @wuhao1954 QQ283931494 出租内核驱动读写保护,价格亲民,高品质群:530544047 →入驻S9企业发卡网各种全黑号辅助群:475351077
██【我要租此广告位】██... .
查看: 4277|回复: 2
打印 上一主题 下一主题

VC++6.0远程调带参Call实现代码!!

[复制链接]

10

积分

1

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
9
海币
47
交易币
0
跳转到指定楼层
楼主
发表于 2015-9-26 14:58:23 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
提醒:若下载的软件是收费的"请不要付款",可能是骗子,请立即联系本站举报,执意要付款被骗后本站概不负责。(任何交易请走第三方中介,请勿直接付款交易以免被骗!切记).

友情提示:文字/图片广告均非本站意见,请担保交易勿直接付款,由此产生的责任自负!!!↑↑


VC++6.0远程调带参Call实现代码!!正学这方面,感觉不错,,

typedef struct ParamData    //参数结构   
{   
    long Param1;   
    long Param2;   
    DWORD Param3;   
    DWORD Param4;   
}ParamData,*Paramp;   

//**************************************************************************************   
//函数名:InfusionFunc   
//功能  :封装远程注入的函数   
//参数 1:进程ID   
//参数 2:被注入函数指针<函数名>   
//参数 3:参数   
//参数 4:参数长度   
//**************************************************************************************   
void InfusionFunc(DWORD dwProcId,LPVOID mFunc, LPVOID Param, DWORD ParamSize)   
{   
    HANDLE hProcess;//远程句柄   
    LPVOID mFuncAddr;//申请函数内存地址           
    LPVOID ParamAddr;//申请参数内存地址   
    HANDLE hThread;    //线程句柄   
    DWORD NumberOfByte; // 返回值   
    CString str;      
    //打开被注入的进程句柄      
    hProcess = OpenProcess(PROCESS_ALL_ACCESS,FALSE,dwProcId);   
    //申请内存   
    mFuncAddr = VirtualAllocEx(hProcess,NULL,128,MEM_COMMIT,PAGE_EXECUTE_READWRITE);   
    ParamAddr = VirtualAllocEx(hProcess,NULL,ParamSize,MEM_COMMIT,PAGE_EXECUTE_READWRITE);   
    //写内存   
    WriteProcessMemory(hProcess,mFuncAddr,mFunc,128, &NumberOfByte);      
    WriteProcessMemory(hProcess,ParamAddr,Param,ParamSize, &NumberOfByte);   
    //创建远程线程   
    hThread = CreateRemoteThread(hProcess,NULL,0,(LPTHREAD_START_ROUTINE)mFuncAddr,   
        ParamAddr,0,&NumberOfByte);   
    WaitForSingleObject(hThread, INFINITE); //等待线程结束   
    //释放申请有内存   
    VirtualFreeEx(hProcess,mFuncAddr,128,MEM_RELEASE);   
    VirtualFreeEx(hProcess,ParamAddr,ParamSize,MEM_RELEASE);      
    //释放远程句柄   
    CloseHandle(hThread);   
    CloseHandle(hProcess);   
}   

//**************************************************************************************   
//函数名:CallAddhp   
//功能  :调用加血Call   
//**************************************************************************************   
void  CallAddhp ()   
{   
    DWORD dwAddr = 0x00452E98;   
    _asm   
    {           
        pushad   
        mov eax,dword ptr DS:[0x456D68]   
        mov edx,0x00453028   
        call dwAddr   
        popad   
    }   
}     

//**************************************************************************************   
//函数名:CallAddhp   
//功能  :调用加法计算Call   
//**************************************************************************************   
void CallAdd(LPVOID lParam)   
{   
    ParamData * lp;   
    lp=(ParamData *)lParam;   
    long lp1=(long)lp->Param1;   
    long lp2=(long)lp->Param2;   
    DWORD dwAddr = 0x45992C;   
    _asm   
    {   
        pushad   
        pushad   
        push lp2   
        push lp1   
        mov eax,dword ptr DS:[0x461XF8]   
        push eax   
        call dwAddr   
        popad   
    }   
}   
下面是调用实例   
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////   
//一例:调用无参Call   
void CInfusionFunDlg::OnButton4()   
{   
    // TODO: Add your control notification handler code here      
    DWORD ProcessId=NULL;   
    HWND hWnd = ::FindWindow(NULL,"游戏找CALL练习实例one"); //窗口标题取句柄   
    GetWindowThreadProcessId(hWnd,&ProcessId);   
    if(ProcessId==NULL)   
        ::AfxMessageBox("未找到进程");   
    else   
    {   

        InfusionFunc(ProcessId,CallAddhp,NULL,NULL);   
    }   
}   
//二例:调用有参Call   
void CInfusionFunDlg::OnButtonAdd()   
{   
    // TODO: Add your control notification handler code here   
    DWORD ProcessId=NULL;   
    HWND hWnd = ::FindWindow(NULL,"F8 CALL 01"); //窗口标题取句柄   
    GetWindowThreadProcessId(hWnd,&ProcessId);   
    ParamData CallParam;   
    CallParam.Param1 = atoi(m_edit1_text);   
    CallParam.Param2 = atoi(m_edit2_text);   
    if(ProcessId==NULL)   
        ::AfxMessageBox("未找到进程");   
    else   
    {   

        InfusionFunc(ProcessId,CallAdd,&CallParam,sizeof(CallParam));   
    }      
}  








联系我时,请说是在 挂海论坛 上看到的,谢谢!



上一篇:C++入门学习资料
下一篇:宝兰公司C++builder,还有更新吗?
免责声明:
1、本主题所有言论和图片纯属会员个人意见,与本论坛立场无关。一切关于该内容及资源商业行为与www.52ghai.com无关。

2、本站提供的一切资源内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。

3、本站信息来自第三方用户,非本站自制,版权归原作者享有,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

4、如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵犯你版权的,请邮件与我们联系删除(邮箱:[email protected]),本站将立即改正。

50

积分

5

主题

2

听众
已帮网友解决0 个问题
好评
0
贡献
45
海币
2182
交易币
0
沙发
发表于 2015-9-26 19:21:34 | 只看该作者

支持, 海 强烈支持楼主ing……

0

积分

0

主题

3

听众
已帮网友解决0 个问题
好评
0
贡献
0
海币
10
交易币
0
板凳
发表于 2015-10-9 23:28:02 | 只看该作者
看看。。。。。
回复

使用道具 举报

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

本版积分规则

关闭

站长推荐上一条 /1 下一条

免责声明|Archiver|手机版|小黑屋|挂海论坛

GMT+8, 2024-4-28 02:33 , Processed in 0.332275 second(s), 33 queries , Gzip On.

Powered by Discuz! X3.2

本站资源来自互联网用户收集发布,如有侵权请邮件与我们联系处理。xhzlw@foxmail.com

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