首页
社区
课程
招聘
[求助]如何编程修改寄存器的值呢
发表于: 2013-3-21 20:56 5664

[求助]如何编程修改寄存器的值呢

2013-3-21 20:56
5664


怎么通过编程实现像OD那样的,可以修改某处的寄存器的值呢,
比如修改这里的edi,改为1

请教一下用C,怎么实现呢

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

上传的附件:
收藏
免费 0
支持
分享
最新回复 (10)
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
GetThreadContext/SetThreadContext
__asm{
mov edi,1
}
2013-3-21 21:38
0
雪    币: 1121
活跃值: (707)
能力值: ( LV5,RANK:66 )
在线值:
发帖
回帖
粉丝
3
楼上的内嵌汇编就 挺好的。前提是你知道在哪添加这一句就好
2013-3-22 09:26
0
雪    币: 36
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
asm(/*这里写汇编指令*/)
//C语言嵌入汇编
2013-3-22 10:17
0
雪    币: 19
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
...可以修改Exe或Dll的汇编代码然后保存
这样也可以算是编程了...
2013-3-23 16:48
0
雪    币: 60
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
我的目的是想,写个程序来修改游戏寄存器的值,
我会用OD修改,但是编程还是不会,所以来请教一下大家
2013-3-27 16:45
0
雪    币: 60
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
额,怎么让内嵌的汇编代码在我指定的地方运行呢?
2013-3-27 16:49
0
雪    币: 32
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
静态或者动态修改原程序,在想要修改的地方inline hook(jmp出去mov eax,1然后jmp回来)。
需要注意保护堆栈和源代码,并且分配或者采用原有的内存空间。
2013-3-27 17:28
0
雪    币: 58
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
[QUOTE=hwhaocool;1156053]

怎么通过编程实现像OD那样的,可以修改某处的寄存器的值呢,
比如修改这里的edi,改为1

请教一下用C,怎么实现呢[/QUOTE]

c应该无法访问特定寄存器,但可以内嵌汇编
2013-3-27 18:58
0
雪    币: 60
活跃值: (15)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
那怎么内嵌,从而让代码在我需要修改的那条指令那里执行呢?
2013-3-27 20:54
0
雪    币: 110
活跃值: (34)
能力值: (RANK:50 )
在线值:
发帖
回帖
粉丝
11
如果是本线程的话直接内联汇编操作
非本线程的话SetThreadContext,最终调用NtSetContextThread
2013-3-28 01:54
0
游客
登录 | 注册 方可回帖
返回
//