回 帖 发 新 帖 刷新版面

主题:[讨论]请问下面代码注入DLL后怎么调用DLL里的函数

    搜了好多网页都只搜到只是注入DLL,却没说注入后怎么调用DLL里的函数的,delphi有却看不懂,望前辈帮忙[color=FF0000]请问下面代码注入DLL后怎么调用DLL里的函数里的内容比如是[/color]
    dll(){MessageBox("123")};
    
                             //这是开始代码
    
                                HANDLE hToken;
                                TOKEN_PRIVILEGES tkp;
                                OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY,&hToken);
                    
                                LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tkp.Privileges[0].Luid);
                                tkp.PrivilegeCount=1;
                                tkp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;
                                //提升访问令牌权限
            
                                AdjustTokenPrivileges(hToken, false, &tkp, sizeof(tkp), 0, 0);
                                CloseHandle(hToken);

                                //上面是提升权限完毕
                            
                        
                                int cbSize=0,iProcessId=0;
                                HANDLE handle=NULL;
                                CString lpProcessId;
                                GetDlgItemText(IDC_EDIT1,lpProcessId);
                                
                                iProcessId=atoi(lpProcessId);
                                char lpObjectProcess[260]={0};
                            
                            
                            SendDlgItemMessage(IDC_EDIT2,WM_GETTEXT,(WPARAM)260,(LPARAM)lpObjectProcess);                    
                 
                              
                            cbSize=(strlen(lpObjectProcess)+1);
                            handle=OpenProcess(PROCESS_ALL_ACCESS,0,iProcessId);
                            LPVOID lpRemoteDll=VirtualAllocEx(handle,NULL,cbSize,
                                        MEM_COMMIT,PAGE_READWRITE);
                            WriteProcessMemory(handle,lpRemoteDll,lpObjectProcess,cbSize,NULL);
                            HMODULE hmodule=GetModuleHandle("kernel32.dll");

                            LPTHREAD_START_ROUTINE routine=(LPTHREAD_START_ROUTINE)GetProcAddress(hmodule,"LoadLibraryA");
                HANDLE hRemoteThread=::CreateRemoteThread(handle,0,0,routine,lpRemoteDll,0,NULL);

回复列表 (共4个回复)

沙发

关注下,希望能有人解决

板凳

直接调用,先参数入栈,然后call就可以了。注意堆栈平衡

3 楼

你好.我是全职网赚工作者.
如果你有时间有电脑.
想在网络上创业.请联系我..
项目绝对真实.详情QQ空间资料
加盟请联系摩客元亨 QQ908889846
2010年,中国网民突破了4亿,
网络游戏玩家超过了3亿,
互联网即将进入全民网游的时代

4 楼

寻找中国的最优秀的网商领袖精英 淘宝商盟元亨 qq: 908889846 
当今世界正经历着全球经济一体化的大潮,中国本土企业也因此面临着前所未有的机遇与挑战。
在这场洗礼中,哪些互联网平台有能力成为世界级的电子商务平台?网商精英要怎样做,才能最终成长为世界级网商精英领袖?
淘宝商盟平台震撼登场,携手淘宝30万商家联盟购物商城。
平台刚刚启动,互联网的网商精英请咨询qq: 908889846 
占领市场第一先机,合力打造网商系统!
淘宝商盟官网   www.taobaosm.com
 http://blog.sina.com.cn/tbsm8
淘宝商盟奖励制度

我来回复

您尚未登录,请登录后再回复。点此登录或注册