深入解析:针对特定进程的内存读写操作

更新:10-29 民间故事 我要投稿 纠错 投诉

很多朋友对于深入解析:针对特定进程的内存读写操作和不太懂,今天就由小编来为大家分享,希望可以帮助到大家,下面一起来看看吧!

int baseaddress;//开始读取的基地址

char bytes[14];//保存内存数据

char putbytes[14]={"你好"};

此操作不需要提升权限

开放进程

objhandle=OpenProcess(PROCESS_ALL_ACCESS, FALSE, 12012);

读取内存

基地址=0x403072;

ReadProcessMemory(objhandle, (LPCVOID)基地址, (LPVOID)字节, sizeof(字节), NULL);

将结果保存到字节数组

修改内存页属性,否则无法写入

DWORD 保护编号=0;

VirtualProtectEx(objhandle,(LPVOID)基地址,sizeof(putbytes),PAGE_EXECUTE_READWRITE,(PDWORD)protectmunber);

写内存

WriteProcessMemory(objhandle, (LPVOID)基地址, putbytes, sizeof(putbytes), NULL);

恢复内存页面属性

VirtualProtectEx(objhandle,(LPVOID)基地址,sizeof(putbytes),protectmunber,(PDWORD)protectmunber);

效果如图:

整个代码如下。 myputerror函数是封装的getlasterror函数。

#定义_WIN32_WINNT0x0501

包括

包括

HANDLE 对象句柄; //目标句柄

int baseaddress;//开始读取的基地址

char bytes[14];//保存内存数据

char putbytes[14]={"你好"};

无效myputerror(无效);

int main(int argc, char* argv[]){

//获取进程的访问令牌,如果OpenProcess无法打开进程

//修改访问权限的进程句柄,指定要执行的操作类型,并返回访问令牌指针

//获取本进程的token

处理hToken;

if (!OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, hToken)){

myputerror();

}别的{

printf("成功获取令牌句柄n");

}

//查看系统权限的特权值

TOKEN_PRIVILEGES tp;//新增权限结构

液体液体;

if (LookupPrivilegeValue(NULL, SE_DEBUG_NAME, Luid)==0){

printf("获取LUID失败");

myputerror();

}别的{

printf("成功获取LUID %dn", Luid.LowPart);

}

//给TP和TP中的LUID结构体赋值

tp.PrivilegeCount=1;

tp.Privileges[0].Attributes=SE_PRIVILEGE_ENABLED;

tp.Privileges[0].Luid=Luid;

//启用指定访问令牌的权限

if (AdjustTokenPrivileges(hToken, FALSE, tp, sizeof(TOKEN_PRIVILEGES), NULL, NULL) !=0){

如果(GetLastError()==ERROR_SUCCESS){

printf("指定权限修改成功!n");//其实就是打开原用户拥有的权限

}

别的{

printf("权限修改不完整或失败!n");

myputerror();

}

}别的{

printf("修改失败!n");

myputerror();

}

objhandle=OpenProcess(PROCESS_ALL_ACCESS, FALSE, 12012);

if (对象句柄==0){

myputerror();

}

基地址=0x403072;

if (ReadProcessMemory(objhandle, (LPCVOID)基地址, (LPVOID)字节, sizeof(字节), NULL)!=0){

printf("结果:%sn ", 字节);

}

别的{

myputerror();

}

//设置页面属性

DWORD 保护编号=0;

//修改内存页属性为可写

if (VirtualProtectEx(objhandle, (LPVOID)baseaddress, sizeof(putbytes), PAGE_EXECUTE_READWRITE, (PDWORD)protectmunber)==FALSE){

myputerror();

}

if (WriteProcessMemory(objhandle, (LPVOID)baseaddress, putbytes, sizeof(putbytes), NULL)==0){

myputerror();

}

别的{

printf("内存写入成功n");

if (ReadProcessMemory(objhandle, (LPCVOID)基地址, (LPVOID)字节, sizeof(字节), NULL) !=0){

printf("结果:%sn ", 字节);

myputerror();

}

别的{

myputerror();

}

}

//恢复

if (VirtualProtectEx(objhandle, (LPVOID)baseaddress, sizeof(putbytes), protectedmunber, (PDWORD)protectmunber)==FALSE){

myputerror();

}

//终止进程(objhandle, 0);

getchar();

用户评论

空巷

这个功能听起来很专业啊,是用来做什么领域的?

    有17位网友表示赞同!

景忧丶枫涩帘淞幕雨

不会太危险吧,随意读写进程内存会不会导致系统崩溃?

    有16位网友表示赞同!

枫无痕

有没有相应的安全机制来防止滥用呢?

    有8位网友表示赞同!

念初

这种技术在软件调试和恶意程序分析方面会派上大用场吧。

    有7位网友表示赞同!

我就是这样一个人

学习一下这个功能,说不定以后可以用来做一些有趣的实验。

    有17位网友表示赞同!

志平

请问需要掌握哪些技能才能实现对进程内存的操作?

    有14位网友表示赞同!

何年何念

这听起来像是一项高级技术,难度应该比较高吧?

    有19位网友表示赞同!

安之若素

想了解一下操作过程具体是怎么样的,有没有相关的例子可以参考?

    有13位网友表示赞同!

醉婉笙歌

对指定进程读写内存的需求在哪些场景下最常见?

    有7位网友表示赞同!

代价是折磨╳

这方面有什么学习资源推荐吗?我想深入了解一下。

    有14位网友表示赞同!

花花世界总是那么虚伪﹌

会不会有其他工具或者方法能够替代这种直接操作内存的方式呢?

    有12位网友表示赞同!

纯真ブ已不复存在

如果想保护自己的内存不被读写,应该怎么做?

    有12位网友表示赞同!

红尘滚滚

这种技术在安全防护领域扮演着怎样的角色?

    有18位网友表示赞同!

冷眼旁观i

这个功能对用户来说有什么好处或弊端?

    有14位网友表示赞同!

浮光浅夏ζ

在实际应用中,该功能需要遵循哪些准则或规范?

    有8位网友表示赞同!

神经兮兮°

有没有想过将这种功能整合到现有软件平台中使用?

    有12位网友表示赞同!

愁杀

会不会出现因内存数据冲突而导致系统不稳定的情况?

    有16位网友表示赞同!

有些人,只适合好奇~

这个功能对不同操作系统来说是否适用?

    有9位网友表示赞同!

你的眸中有星辰

请问使用此功能需要获得哪些权限或者特殊许可?

    有15位网友表示赞同!

微信名字

我想了解更多关于进程管理技术方面的知识,有什么建议吗?

    有17位网友表示赞同!

【深入解析:针对特定进程的内存读写操作】相关文章:

1.动物故事精选:寓教于乐的儿童故事宝库

2.《寓教于乐:精选动物故事助力儿童成长》

3.探索动物旅行的奇幻冒险:专为儿童打造的童话故事

4.《趣味动物刷牙小故事》

5.探索坚韧之旅:小蜗牛的勇敢冒险

6.传统风味烤小猪,美食探索之旅

7.探索奇幻故事:大熊的精彩篇章

8.狮子与猫咪的奇妙邂逅:一场跨界的友谊故事

9.揭秘情感的力量:如何影响我们的生活与决策

10.跨越两岸:探索彼此的独特世界

上一篇:《汪汪队立大功》官方高清在线观看及资源下载汇总 下一篇:探索手机副业:推荐几款轻松赚钱的软件