偶遇WriteProcessMemory
来源:互联网 发布:网络诈骗有什么特点 编辑:程序博客网 时间:2024/05/17 03:11
最近看一个大神视频,里面有用到WriteProcessMemory在目标进程空间改成相关判断,看玩之后觉得有意思便自己动手也模仿着写。用CE先扫到相关地址,然后分析好要写的操作,接着就开始了程序编写。
首先介绍下WriteProcessMemory函数,这个函数用起来也不难,先看下这个函数的原型:
BOOL WriteProcessMemory( HANDLE hProcess, // 想要写的进程句柄 LPVOID lpBaseAddress,//想要改成代码的地址 LPVOID lpBuffer, // 要写入的内容的地址 DWORD nSize, // 准备写入的字节 LPDWORD lpNumberOfBytesWritten,实际写入的字节);这个函数参数不多,也容易理解。于是马上就搞定了,运行后什么都没有出现,第一反应是不是代码有问题,然后一行行看了下,没什么问题。接下来用微调了代码的各部分,还是没有用。想到是不是进程权限的问题?但是进程权限的判断并没有报错,这里应该排除掉。接着想到用ReadProcessMemory来读下试试,结果还真读出来了。那么问题就定位到WriteProcessMemory了。没办法了,只能拿到函数的返回值,看看什么情况,果然返回值是没有成功的。于是就调用GetLastError函数看返回是什么错误吗。结果是998,非法的内存访问。奇葩了!难道程序自己有写保护?于是自己写了个小程序,结果还是998。好吧要彻底绝望了,到网上搜索下,没发现什么解答,当然我只是随便找找,解答或许藏在了某个角落了。顺便提一下,在这个过程中我的杀软并没有提示我的程序有什么非法操作。但是想想不应该啊,这个应该算是有问题的,于是我机智的把杀软退掉,带着最后的希望运行了下,...奇迹出现了,还真成功了!原来这一切是他暗中干的,果断喷它一下,但是想想这个保护也是应该的,不然被某些软件利用了,后果也是挺严重的,好吧!轻喷一下。。。到此问题也就解决了!后面有用VirtualProtecEx更改内存属性还是没有作用。估计是杀软Hook了WritrProceessMemory这个函数,所以函数外面的改变是没有用的!
0 0
- 偶遇WriteProcessMemory
- WriteProcessMemory
- WriteProcessMemory
- 偶遇
- 偶遇
- 偶遇
- 偶遇
- 偶遇
- 偶遇
- 偶遇
- 偶遇
- 偶遇
- 偶遇
- 偶遇
- 偶遇
- 偶遇
- 偶遇
- WriteProcessMemory的用法
- 基于现有的Linux LiveCD加入自己的内核和ramfs
- PAT 1008. Elevator (20)
- 【cocos2d-x 3.0之二】事件回调函数的变化
- JAVA super() this() 详解
- Java处理文件BOM头的方式推荐
- 偶遇WriteProcessMemory
- 一个对 Dijkstra 的采访视频
- 【cocos2d-x 3.0之三】新触摸机制的前奏——Lambda
- 关于GC
- 8 应用程序对于的文件夹内存文件 openFile()
- Android 省市县 三级联动(android-wheel的使用)
- Activity与fragment之间的传值:fragment的setArguments()和getArguments()
- C++ static、const和static const 以及它们的初始化
- 【HBase基础教程】7、HBase之读取HBase数据写入HDFS