通过进程ID获取基地址

From: http://blog.csdn.net/firefoxbug/article/details/7201351


下面代码是通过进程ID来获取进程的基地址,创建一个进程快照后,读取进程模块,一般情况下第一个模块就是进程的基地址,下面的程序通过模块的字符串匹配来找到基地址。通过MODULEENTRY32来读取,下面是代码:

#include <Windows.h>
#include <Tlhelp32.h>
#include <stdio.h>HMODULE fnGetProcessBase(DWORD PID);
DWORD GetLastErrorBox(HWND hWnd, LPSTR lpTitle) ;int main()
{HMODULE hModule = fnGetProcessBase(6520);printf("%X",hModule);return 0;
}HMODULE fnGetProcessBase(DWORD PID)
{//获取进程基址HANDLE hSnapShot;//通过CreateToolhelp32Snapshot和线程ID,获取进程快照hSnapShot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, PID);if (hSnapShot == INVALID_HANDLE_VALUE){GetLastErrorBox(NULL,"无法创建快照");return NULL;}MODULEENTRY32 ModuleEntry32;ModuleEntry32.dwSize = sizeof(ModuleEntry32);if (Module32First(hSnapShot, &ModuleEntry32)){do {TCHAR szExt[5];strcpy(szExt, ModuleEntry32.szExePath + strlen(ModuleEntry32.szExePath) - 4);for (int i = 0;i < 4;i++){if ((szExt[i] >= 'a')&&(szExt[i] <= 'z')){szExt[i] = szExt[i] - 0x20;}}if (!strcmp(szExt, ".EXE")){CloseHandle(hSnapShot);return ModuleEntry32.hModule;}} while (Module32Next(hSnapShot, &ModuleEntry32));}CloseHandle(hSnapShot);return NULL;}// 显示错误信息  
DWORD GetLastErrorBox(HWND hWnd, LPSTR lpTitle)  
{  LPVOID lpv;  DWORD dwRv;  if (GetLastError() == 0) return 0;  dwRv = FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |  FORMAT_MESSAGE_FROM_SYSTEM,  NULL,  GetLastError(),  MAKELANGID(LANG_ENGLISH, SUBLANG_ENGLISH_US),  (LPSTR)&lpv,  0,  NULL);  MessageBox(hWnd, (LPCSTR)lpv, lpTitle, MB_OK);  if(dwRv)  LocalFree(lpv);  SetLastError(0);  return dwRv;  
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/403011.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

git代码回滚到以前某一版本

1.使用 git log 查看之前提交的版本&#xff0c;每一版对应的hash值&#xff0c;默认展示几条&#xff0c;如果想查看更多&#xff0c;一直按回车。 git reset --hard 目标版本hash值 &#xff0c;注意&#xff1a;这一步操作完后&#xff0c;目标版本之后的代码将全部清掉&am…

滑冰为什么这么难

春天快到了&#xff0c;冬天马上要过去了&#xff0c;不好好利用东北这地方的天然优势实在是可惜。所以趁着冰还没化的时候&#xff0c;我决定尝试滑冰。小时候也滑过&#xff0c;但是不像现在这么害怕&#xff0c;从穿起冰鞋的那一刻起&#xff0c;紧张感随之而来&#xff0c;…

python发送各类邮件的主要方法

From: http://www.cnblogs.com/xiaowuyi/archive/2012/03/17/2404015.html python中email模块使得处理邮件变得比较简单&#xff0c;今天着重学习了一下发送邮件的具体做法&#xff0c;这里写写自己的的心得,也请高手给些指点。 一、相关模块介绍 发送邮件主要用到了smtplib和e…

codevs4343 找回密码

题目描述 DescriptionjrMz 很喜欢动漫《叛逆的鲁鲁修》(额 不知道是不是因为他盯上了动画片里的 MM),他准备以一种神奇的方式降临《叛逆的鲁鲁修》世界,所以他先从《变形金刚》里把大黄蜂拐了出来,然后成功加入了黑色骑士团。不过比较坑的事情出现了,正在与机甲激烈战斗中的大黄…

图片保持比例自适应大小;图片保持比例自动充满父元素;图片保持比例充满盒子

需求&#xff1a;经常会有一个div盒子&#xff0c;里面放入一个img图片。需要是图片保持比例&#xff0c;缩放充满div盒子。 思路&#xff1a; 1.必须给父元素设置固定的宽高。2.给img设置 object-fit: scale-down; 属性 object-fit使用学习 先看效果&#xff1a; <!DOCTYP…

如何利用好新浪微博

本文可以简要概括为如何利用新浪微博并安全的使用微博等社交网站或工具。 随着互联网和计算机技术的发展&#xff0c;涌现了许许多多的技术应用。从以前的电子邮件到论坛到博客再到微博。尽管我们在许许多多的技术方面引用了国外成功的例子&#xff08;特别是在IT领域&#xff…

HibernateTemplate的一些常用方法总结

1&#xff1a;get/load存取单条数据public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.get(Teacher.class, id); } public Teacher getTeacherById(Long id) { return (Teacher)this.hibernateTemplate.load(Teacher.class, id); } 2&#xff…

解决SVN提交代码时的错误:“Could not execute PROPPATCH”

今天在提交代码的时候&#xff0c;SVN报出了一个错误&#xff08;斜体黑字部分&#xff09;&#xff1a; 提交失败(细节如下): 至少有一个属性变更失败&#xff1b;版本库未改变 设置属性 “log” 出错: Could not execute PROPPATCH. 最初&#xff0c;在我Google了一些信…

Python序列之元组

系列文章目录 Python序列之列表 Python序列之元组 系列文章目录前言一、元组是什么&#xff1f;二、元组操作1.元组的创建&#xff08;1&#xff09;通过()创建。小括号可以省略。&#xff08;2&#xff09;通过tuple()函数创建。&#xff08;3&#xff09;通过生成器推导式创…

Eclipse 下载 开源项目 maven依赖丢失和 Deployment Assembly 丢失

周末下载了最新的jeecg的源码来瞅瞅&#xff0c;但是下载后发现&#xff0c;pom文件中定义的依赖都丢失了。 如下图 上网搜索了一下啊&#xff0c;发现需要先给这个项目这个项目 disable maven nature 然后再添加上再给这个项目添加maven支持。 如下图&#xff1a; 然后再查看项…

windows隐藏python运行时的终端

From: https://my.oschina.net/sanpeterguo/blog/337263 摘要: windows上如果想执行一些常驻进程&#xff0c;使用python需要打开终端&#xff0c;容易误操作关掉。本文介绍一种在后台启动的解决方法&#xff0c;其实核心功能很简单&#xff0c;使用 start pythonw xxx.py 进行…

HTML CSS样式表布局

一、position&#xff1a;fixed 锁定位置&#xff08;相对于浏览器的位置&#xff09;&#xff0c;例如有些网站的右下角的弹出窗口。 示例&#xff1a; 二、position&#xff1a;absolute 1.外层没有position&#xff1a;absolute&#xff08;或relative&#xff09;&#xff…

css设置line-height无效,为什么设置span的line-height属性无效?

对于块级元素&#xff0c;CSS属性line-height指定了元素内部line-boxes的最小高度。 对于非替代行内元素&#xff0c;line-height用于计算line box的高度。 加上 display: block; 或者 display: inline-block;是行内元素,用line-heigh需要把变成块状元素用。

SVN服务器搭建和使用(一)

2019独角兽企业重金招聘Python工程师标准>>> Subversion是优秀的版本控制工具,其具体的的优点和详细介绍,这里就不再多说. 感谢原文博主&#xff1a;http://www.cnblogs.com/xiaobaihome/archive/2012/03/20/2407610.html 首先来下载和搭建SVN服务器. 现在Subver…

C#使用Protocol Buffer(ProtoBuf)进行Unity中的Socket通信

From: http://www.jb51.net/article/82795.htm 这篇文章主要介绍了C#使用Protocol Buffer(ProtoBuf)进行Unity的Socket通信的实例,Protocol Buffer是Google开发的数据格式,也是除了XML和JSON之外人气第三高的^^需要的朋友可以参考下首先来说一下本文中例子所要实现的功能&#…

监听el-table滚动到底;vue自定义指令监听el-table的滚动事件

链接地址&#xff1a;监听el-table滚动到底&#xff1b;vue自定义指令监听el-table的滚动事件

泛型通用函数的一些特殊问题的解决方法

首先先感谢MSDN中的一些优秀的外国友人精彩的回答&#xff0c;我从那里也受益良多&#xff0c;写此博文。 自从2.0版本的net framework推出之后泛型&#xff08;Generic&#xff09;得到了广泛好评。它不必像object类型一样性能上因为“拆箱”或者“装箱”得到损失&#xff0c;…

Go-json 实例

环境: Win7_x64 go1.6.2 package mainimport "encoding/json" import "fmt" import "os"// 我们使用两个结构体来演示自定义数据类型的JSON数据编码和解码。 type Response1 struct {Page intFruits []string } type Response2 struct {Pag…

将文件流blob或文件file读取成url

let url URL.createObjectURL(file.raw) //将文件转化成url//或者let url URL.createObjectURL(blob) //将文件流转化成url 注意这个blob一般是通过读取后端接口文件流 设置 responseType: blob 然后返回得到的blob

20145228 《信息安全系统设计基础》第0周学习总结

阅读博客感想 •经过上学期几个月的JAVA学习&#xff0c;收获的不仅仅是JAVA知识&#xff0c;更多的是我们自学一门课程的方法和能力。学习知识也不是死学&#xff0c;勤动手&#xff0c;多练习才是至关重要的。 •当处于健身教练和健身员的师生关系时&#xff0c;才是学习效率…