VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 706|回复: 2

[已解决] 远程注入VC6正常,VS2008就不行

[复制链接]
12_avatar_middle
online_vip 发表于 2016-12-13 22:17:19 | 显示全部楼层 |阅读模式
本帖最后由 litangsong 于 2016-12-15 18:23 编辑

struct VB_CALL_struct_jiaxue {
        long leixin;
        long address;
        long addressECX;
};
struct VB_CALL_struct_jiaxue  CALL_jiaxue_obj;

void __stdcall hong_lan_call(LPVOID temp01 )
{
        VB_CALL_struct_jiaxue * hong_lan = (VB_CALL_struct_jiaxue *)temp01 ;

        long lan_address = hong_lan->address;      
        long lan_ECX =     hong_lan->addressECX;     
        long lan_leixin =  hong_lan->leixin;         
        long lan_0 = 0x0;
        _asm
        {               
                pushad
                        push lan_0         
                        mov ecx, lan_ECX
                        push lan_leixin
                        CALL lan_address
                        popad
        }       
}
long __stdcall VB_asm_jiaxue(long call_leixin,  
                                                         long call_address,   
                                                         long call_ECX,      
                                                         HWND JuBing)         
{       
        CALL_jiaxue_obj.leixin = call_leixin;
        CALL_jiaxue_obj.address = call_address;
        CALL_jiaxue_obj.addressECX = call_ECX;

        DWORD pid;
        HANDLE hProcess;
        ::GetWindowThreadProcessId((HWND)JuBing,&pid);
        hProcess=::OpenProcess(PROCESS_ALL_ACCESS,false,pid);

        LPVOID thread_space=::VirtualAllocEx(hProcess,NULL,0x1024,MEM_COMMIT,PAGE_EXECUTE_READWRITE);
        LPVOID struct_space=::VirtualAllocEx(hProcess,NULL,sizeof(VB_CALL_struct_jiaxue),MEM_COMMIT,PAGE_EXECUTE_READWRITE);

        if (!::WriteProcessMemory(hProcess,thread_space,hong_lan_call,0x1024,NULL))
        { return 0;}

        if (!::WriteProcessMemory(hProcess,struct_space,(LPVOID)&CALL_jiaxue_obj,sizeof(VB_CALL_struct_jiaxue),NULL))
        { return 0;}
  //这个 CreateRemoteThread 函数提示不可以写入
        HANDLE hRemoteThread=::CreateRemoteThread(hProcess,NULL,0,(LPTHREAD_START_ROUTINE)thread_space,struct_space,0,NULL);
        ::WaitForSingleObject(hProcess,0);
        ::VirtualFreeEx(hProcess,thread_space,0x1024,MEM_RELEASE);
        ::VirtualFreeEx(hProcess,struct_space,sizeof(VB_CALL_struct_jiaxue),MEM_RELEASE);
        ::CloseHandle(hProcess);

        return 0;               
}




上一篇:如何用在istCtrlEx(不是ListCtrl)的某行某列中画出图像
下一篇:无法解析的外部符号问题
12_avatar_middle
ico_lz  楼主| 发表于 2016-12-14 10:26:31 | 显示全部楼层
补充一下,调用了 GetLastError 第一次 回0说明正常,从第二次开始就提示 87 参数不对 ,难道远程注入执行代码 一定用DLL才行吗?
12_avatar_middle
ico_lz  楼主| 发表于 2016-12-15 18:20:11 | 显示全部楼层
来是自己试验丰衣足食啊,找了2天的资料和试了100次,原来是在调试模式下不行,在发布模式下才可以,晕
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-3-20 06:00

Powered by Discuz! X3.4

© 2009-2019 cctry.com

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