VirtualAllocEx;WriteProcessMemory;CreateRemoteThread
/*
struct StrParam{HWND hPwdEdit;unsigned int nLenth;char* buff;
};//计算器为目标进程。
static DWORD WINAPI MyFunc (LPVOID pData)
{
//do something StrParam* param=(StrParam*)pData;HWND hPwdEdit=param->hPwdEdit;char* buff=param->buff;unsigned int nLenth=param->nLenth;::SendMessage( hPwdEdit, WM_GETTEXT, nLenth, (LPARAM)buff );return 0;
}
*/
static DWORD WINAPI MyFunc (LPVOID pData)
{
//do something DWORD hPwdEdit=*(DWORD*)pData;
//* char buff[512];unsigned int nLenth=sizeof(buff);//::SendMessage( (HWND)hPwdEdit, WM_GETTEXT, nLenth, (LPARAM)buff );//::PostMessage( (HWND)hPwdEdit, WM_GETTEXT, nLenth, (LPARAM)buff );//exit(0);//*///::MessageBox(NULL,"test","test",MB_OK);return *(DWORD*)pData;
} static void AfterMyFunc (void) {
} void CRemoThread1GetPwdDlg::OnBtnGetpassword()
{HWND hPwdEdit; char psBuffer[256]; int nMaxChars=sizeof(psBuffer); //HWND hStart =(HWND)this->GetDlgItemInt(IDC_EDIT_HWINDOW);// ::FindWindow (NULL,"SciCalc"); char hwindowBuff[255];this->GetDlgItemText(IDC_EDIT_HWINDOW,hwindowBuff,sizeof(hwindowBuff));HWND hStart;sscanf(hwindowBuff,"%x",(int*)(&hStart));char hwndBuff[255];this->GetDlgItemText(IDC_EDIT_HWND,hwndBuff,sizeof(hwndBuff));sscanf(hwndBuff,"%x",(int*)(&hPwdEdit));//hPwdEdit=(HWND)this->GetDlgItemInt(IDC_EDIT_HWND); //::SendMessage( hPwdEdit, WM_GETTEXT, nMaxChars, (LPARAM)psBuffer ); //SendMessage(hWnd1,256,(LPARAM)str1); DWORD PID, TID; TID = ::GetWindowThreadProcessId (hStart, &PID); HANDLE hProcess; hProcess = OpenProcess(PROCESS_ALL_ACCESS,false,PID); //char szBuffer[10]; //*(DWORD*)szBuffer=1000;//for test //DWORD cbParamSize=sizeof(szBuffer); //void *pDataRemote =(char*) VirtualAllocEx( hProcess, 0, sizeof(szBuffer), MEM_COMMIT,PAGE_READWRITE ); char szBuffer[10]; *(DWORD*)szBuffer=(DWORD)hPwdEdit;//for test DWORD cbParamSize=sizeof(szBuffer); //DWORD cbParamSize=sizeof(hPwdEdit); void *pDataRemote =(char*) VirtualAllocEx( hProcess, 0, cbParamSize, MEM_COMMIT,PAGE_READWRITE ); {char buff[255];sprintf(buff,"%d,%x",cbParamSize,(int)pDataRemote);MessageBox(buff);}//5 //::WriteProcessMemory( hProcess, pDataRemote, szBuffer,sizeof(szBuffer),NULL); ::WriteProcessMemory( hProcess, pDataRemote,szBuffer, cbParamSize,NULL); //6 DWORD cbCodeSize=((LPBYTE) AfterMyFunc - (LPBYTE) MyFunc); //分配代码地址空间 PDWORD pCodeRemote = (PDWORD) VirtualAllocEx( hProcess, 0, cbCodeSize, MEM_COMMIT,PAGE_EXECUTE_READWRITE ); //7 WriteProcessMemory( hProcess, pCodeRemote, &MyFunc, cbCodeSize, NULL); //8 HANDLE hThread = CreateRemoteThread(hProcess, NULL, 0, (LPTHREAD_START_ROUTINE) pCodeRemote, pDataRemote, 0 , NULL); DWORD h; if (hThread) { ::WaitForSingleObject( hThread, INFINITE ); ::GetExitCodeThread( hThread, &h ); TRACE("run and return %d/n",h); char buff[256]; sprintf(buff,"run and return %d,0x%x",h,h); MessageBox(buff); ::CloseHandle( hThread ); } //9 //释放空间 ::VirtualFreeEx( hProcess, pCodeRemote, cbCodeSize,MEM_RELEASE ); ::VirtualFreeEx( hProcess, pDataRemote, cbParamSize,MEM_RELEASE ); //关闭进程句柄 ::CloseHandle( hProcess ); //this->SetDlgItemText(IDC_EDIT_PASSWORD,psBuffer);
}
VirtualAllocEx;WriteProcessMemory;CreateRemoteThread相关推荐
- 【机器学习-西瓜书】六、支持向量机(SVM):最大间隔;对偶问题;KKT条件
推荐阅读:对偶问题,KKT条件 关键词:最大间隔:支持向量:对偶问题:KKT条件:SMO算法 6.1 间隔与支持向量 关键词:最大间隔:支持向量. 支持向量机(Support Vector Machi ...
- 【机器学习-西瓜书】四、决策树:信息熵;信息增益;增益率;ID3;C4.5
推荐阅读:纯度:信息熵:信息增益 关键词: 纯度:信息熵:信息增益:增益率:ID3:C4.5:基尼指数:预剪枝:后剪枝 4.1基本流程 关键词:决策树(decision tree) 决策树是一种分类方 ...
- python知识:json格式文本;异常处理;字符串处理;unicode类型和str类型转换
python知识:json格式文本:异常处理:字符串处理:unicode类型和str类型转换 参考文章: (1)python知识:json格式文本:异常处理:字符串处理:unicode类型和str类型 ...
- 实验四 类和对象;类的继承和派生;多态性; 接口;构造器应用
实验四 类和对象:类的继承和派生:多态性: 接口:构造器应用 一.实验目的 1. 掌握类与对象的关系: 2. 掌握类的定义: 3. 掌握对象的声明及使用: 4. 掌握构造方法的概念及调用时机: 5. ...
- 给定C语言数据结构,给定C语言的数据结构struct T { int w; union T { char c;int i;double d;)U; };...
给定C语言的数据结构struct T { int w: union T { char c:int i:double d:)U: }: 更多相关问题 HBV感染者的血清用电镜观察可见到_________ ...
- Task02:学习笔记文本预处理;语言模型;循环神经网络基础
Task02:学习笔记文本预处理:语言模型:循环神经网络基础 文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常包括四个步骤: 读入文本 ...
- java 中定义整形变量_智慧职教: 在Java语言中,一条语句可以定义多个变量。例如int a; b;就定义了两个整型变量a 和b。...
智慧职教: 在Java语言中,一条语句可以定义多个变量.例如int a: b:就定义了两个整型变量a 和b. 答:0 "物的依赖性关系"是( ) 答:资本主义社会之中的人与人之间的 ...
- 硬盘三大种类(SSD;HHD;HDD)
backplane slot背板插槽 硬盘三大种类(SSD:HHD:HDD) 固态硬盘(Solid State Drive): 用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片 ...
- ( SSD ; HHD ; HDD )
硬盘三大种类(SSD:HHD:HDD) 固态硬盘(Solid State Drive): 用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片.DRAM芯片)组成.固态硬盘在接口的 ...
最新文章
- 深度学习和普通机器学习之间有何区别?
- Java高并发编程(十):Java并发工具类
- Genymotion设置代理至BurpSuite和Charles
- SDWebImage源码阅读(九)SDWebImageDownloader
- python汉诺塔算法_基于Python的汉诺塔求解中途算法
- Microsoft SharePoint Server 2010 的新增功能
- 【JAVA基础篇】面对对象的特征
- 集成 websocket 的四种方案
- 电脑文件里哪里能用计算机,电脑里的哪些无用文件是可以放心删除的?
- 苹果手机黑屏了怎么办_来电话手机黑屏怎么办
- 懒加载和预加载的区别_类的动态创建(ro,rw)amp; 懒加载类和非懒加载类底层加载的区别 amp; 类和分类的搭配分析...
- gamma软件linux安装图示,[转载]linux下安装GAMMA软件
- 数学史思维导图_如何学好高中数学,看懂思维导图,秒懂系列之集合
- 和巨耀通杯计算机基础知识大赛,南京邮电大学第二十二届科技节活动之 “和巨耀通杯”网页设计大赛圆满落幕...
- conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge遇到的报错
- php datedif,datedif 函数怎么用?
- 关于qt缺少xcb问题终极解决办法
- c语言编码rna翻译,哪位大牛有哈夫曼编码的C语言源程序,麻烦帮帮忙啦!
- php携程 线程,php 如何获取这个携程页面的数据
- R语言绘图中图片的组合(cowplot、patchwork宏包、layout、par()、gridExtra)
热门文章
- 利用 Redis 的 sorted set 做每周热评的功能
- hog特征提取python代码_HOG特征提取
- python足球数据可视化_NBA数据分析_python可视化数据分析_可视化数据分析工具_可视化分析工具-帆软...
- 经典吉他效果器-Native Instruments Guitar Rig Pro v6.2.4 CE-win
- Hadoop生态系统主要架构
- HIVE 打印表头配置
- sql server 2005 外围应用配置器
- Java数组存取名字,题目:用java定义一个student数组,其中保存学生的姓名、学号、性别,还分别保存3门课程的成绩及对应学分,并且按照学分积的降幂进行排序,输出排序结果。...
- 单片机ch2o程序_基于51单片机的室内甲醛测试系统
- [漏洞扫描] Nessus,OpenVAS 漏洞扫描工具进行多维度的对比分析