首页
社区
课程
招聘
[原创]浅析编程制作EXE内存补丁
发表于: 2016-7-21 20:03 13084

[原创]浅析编程制作EXE内存补丁

2016-7-21 20:03
13084
收藏
免费 3
支持
分享
最新回复 (12)
雪    币: 4751
活跃值: (1783)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
你这个写法  在其他机器上 有很多时候会失败
2016-7-21 21:08
0
雪    币: 757
活跃值: (21)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
进来了就留个纪念吧!
2016-7-22 07:25
0
雪    币: 56
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
貌似会有权限问题
2016-7-22 09:15
0
雪    币: 37
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
2016-7-22 14:12
0
雪    币: 123
活跃值: (144)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
就像二楼说的,我觉得这句:

    int 写内存返回值 = WriteProcessMemory(打开文件句柄, (LPVOID)0x401272, &数据, 1, NULL);
(LPVOID)0x401272 要改成:
#define OFFSET 0x272
#define TEXT_SECTION 0x1000
HANDLE hbaseaddr = NULL;
                HANDLE phSnapshot = NULL;
                MODULEENTRY32 me32;//存放快照信息的结构体  
                phSnapshot = CreateToolhelp32Snapshot(TH32CS_SNAPMODULE, 接受PID);//创建进程快照  
                if (phSnapshot == INVALID_HANDLE_VALUE)
                {
                        return -1;
                }
                //使用之前先设置大小  
                me32.dwSize = sizeof(MODULEENTRY32);
                if (!Module32First(phSnapshot, &me32))
                {
                        return -2;
                }
                do
                {

                        if (strcmp(me32.szModule, ""))
                        {
                                hbaseaddr = (HANDLE)me32.modBaseAddr;
                        }
                } while (Module32Next(phSnapshot, &me32));

if (hbaseaddr == NULL)
return -3;

    int 写内存返回值 = WriteProcessMemory(打开文件句柄, (LPVOID)(hbaseaddr + TEXT_SECTION + OFFSET ), &数据, 1, NULL);

至于那个TEXT_SECTION ,请用工具查询你这个程序的.text节的RVA, 我猜想是1000
2016-7-22 14:35
0
雪    币: 2270
活跃值: (5532)
能力值: ( LV8,RANK:146 )
在线值:
发帖
回帖
粉丝
7
必须赞一个
2016-7-23 12:44
0
雪    币: 22
活跃值: (109)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
8
感谢完善
2016-7-23 15:00
0
雪    币: 171
活跃值: (514)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
羡慕会易语言的大神!!!
2016-7-25 11:31
0
雪    币: 36
活跃值: (25)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
win7 上也成功了,奇了怪了,什么情况,ASLR 没用?
2016-7-25 14:59
0
雪    币: 22
活跃值: (109)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
11
嗯。。你改一下程序名字再用OD载入看看。。。基址。就变了。。
2016-7-26 14:40
0
雪    币: 12
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
同问为什么aslr失效了? 有大神解答么
2016-7-27 15:23
0
雪    币: 22
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
13
学习一下
2019-6-19 00:49
0
游客
登录 | 注册 方可回帖
返回
//