/*
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相关推荐

  1. 【机器学习-西瓜书】六、支持向量机(SVM):最大间隔;对偶问题;KKT条件

    推荐阅读:对偶问题,KKT条件 关键词:最大间隔:支持向量:对偶问题:KKT条件:SMO算法 6.1 间隔与支持向量 关键词:最大间隔:支持向量. 支持向量机(Support Vector Machi ...

  2. 【机器学习-西瓜书】四、决策树:信息熵;信息增益;增益率;ID3;C4.5

    推荐阅读:纯度:信息熵:信息增益 关键词: 纯度:信息熵:信息增益:增益率:ID3:C4.5:基尼指数:预剪枝:后剪枝 4.1基本流程 关键词:决策树(decision tree) 决策树是一种分类方 ...

  3. python知识:json格式文本;异常处理;字符串处理;unicode类型和str类型转换

    python知识:json格式文本:异常处理:字符串处理:unicode类型和str类型转换 参考文章: (1)python知识:json格式文本:异常处理:字符串处理:unicode类型和str类型 ...

  4. 实验四 类和对象;类的继承和派生;多态性; 接口;构造器应用

    实验四 类和对象:类的继承和派生:多态性: 接口:构造器应用 一.实验目的 1. 掌握类与对象的关系: 2. 掌握类的定义: 3. 掌握对象的声明及使用: 4. 掌握构造方法的概念及调用时机: 5. ...

  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感染者的血清用电镜观察可见到_________ ...

  6. Task02:学习笔记文本预处理;语言模型;循环神经网络基础

    Task02:学习笔记文本预处理:语言模型:循环神经网络基础 文本预处理 文本是一类序列数据,一篇文章可以看作是字符或单词的序列,本节将介绍文本数据的常见预处理步骤,预处理通常包括四个步骤: 读入文本 ...

  7. java 中定义整形变量_智慧职教: 在Java语言中,一条语句可以定义多个变量。例如int a; b;就定义了两个整型变量a 和b。...

    智慧职教: 在Java语言中,一条语句可以定义多个变量.例如int a: b:就定义了两个整型变量a 和b. 答:0 "物的依赖性关系"是( ) 答:资本主义社会之中的人与人之间的 ...

  8. 硬盘三大种类(SSD;HHD;HDD)

    backplane slot背板插槽 硬盘三大种类(SSD:HHD:HDD) 固态硬盘(Solid State Drive): 用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片 ...

  9. ( SSD ; HHD ; HDD )

    硬盘三大种类(SSD:HHD:HDD) 固态硬盘(Solid State Drive): 用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元(FLASH芯片.DRAM芯片)组成.固态硬盘在接口的 ...

最新文章

  1. 深度学习和普通机器学习之间有何区别?
  2. Java高并发编程(十):Java并发工具类
  3. Genymotion设置代理至BurpSuite和Charles
  4. SDWebImage源码阅读(九)SDWebImageDownloader
  5. python汉诺塔算法_基于Python的汉诺塔求解中途算法
  6. Microsoft SharePoint Server 2010 的新增功能
  7. 【JAVA基础篇】面对对象的特征
  8. 集成 websocket 的四种方案
  9. 电脑文件里哪里能用计算机,电脑里的哪些无用文件是可以放心删除的?
  10. 苹果手机黑屏了怎么办_来电话手机黑屏怎么办
  11. 懒加载和预加载的区别_类的动态创建(ro,rw)amp; 懒加载类和非懒加载类底层加载的区别 amp; 类和分类的搭配分析...
  12. gamma软件linux安装图示,[转载]linux下安装GAMMA软件
  13. 数学史思维导图_如何学好高中数学,看懂思维导图,秒懂系列之集合
  14. 和巨耀通杯计算机基础知识大赛,南京邮电大学第二十二届科技节活动之 “和巨耀通杯”网页设计大赛圆满落幕...
  15. conda install pytorch torchvision torchaudio cudatoolkit=11.6 -c pytorch -c conda-forge遇到的报错
  16. php datedif,datedif 函数怎么用?
  17. 关于qt缺少xcb问题终极解决办法
  18. c语言编码rna翻译,哪位大牛有哈夫曼编码的C语言源程序,麻烦帮帮忙啦!
  19. php携程 线程,php 如何获取这个携程页面的数据
  20. R语言绘图中图片的组合(cowplot、patchwork宏包、layout、par()、gridExtra)

热门文章

  1. 利用 Redis 的 sorted set 做每周热评的功能
  2. hog特征提取python代码_HOG特征提取
  3. python足球数据可视化_NBA数据分析_python可视化数据分析_可视化数据分析工具_可视化分析工具-帆软...
  4. 经典吉他效果器-Native Instruments Guitar Rig Pro v6.2.4 CE-win
  5. Hadoop生态系统主要架构
  6. HIVE 打印表头配置
  7. sql server 2005 外围应用配置器
  8. Java数组存取名字,题目:用java定义一个student数组,其中保存学生的姓名、学号、性别,还分别保存3门课程的成绩及对应学分,并且按照学分积的降幂进行排序,输出排序结果。...
  9. 单片机ch2o程序_基于51单片机的室内甲醛测试系统
  10. [漏洞扫描] Nessus,OpenVAS 漏洞扫描工具进行多维度的对比分析