首页
社区
课程
招聘
[讨论]xor r9d r9d ;这条指令执行完后,r9的值是多少?
发表于: 2023-3-20 19:41 11208

[讨论]xor r9d r9d ;这条指令执行完后,r9的值是多少?

2023-3-20 19:41
11208
1
xor     r9d, r9d ;

这条指令执行完后,r9的值是多少?

1
2
mov     rcx, r9         ; void *
call    memcpy

mov rcx,r9;这条指令是什么意思?


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 1
支持
分享
最新回复 (32)
雪    币: 7515
活跃值: (5347)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
假设R9=0xFFFFFFFFFFFFFFFF
xor r9d,rd9后 r9=0xFFFFFFFF00000000
mov     rcx, r9 后rcx=r9=0xFFFFFFFF00000000
2023-3-20 21:15
0
雪    币: 3538
活跃值: (4674)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
lononan 假设R9=0xFFFFFFFFFFFFFFFF xor r9d,rd9后 r9=0xFFFFFFFF00000000 mov rcx, r9 后rcx=r9=0xFFFFFFFF00000 ...
是0x0不是 0xFFFFFFFF00000000
2023-3-20 22:55
0
雪    币: 6307
活跃值: (3837)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
xor不是清零么?
2023-3-20 23:46
0
雪    币: 4154
活跃值: (1535)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
5
xor的两个操作数相同时就是清零。r9是64位寄存器,r9d是r9的低32位,操作64位寄存器的低32位寄存器会清零高32位。
2023-3-21 09:28
0
雪    币: 364
活跃值: (1716)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6

这是汇编基础。你以前分析文章那来的?

最后于 2023-3-21 09:44 被wujimaa编辑 ,原因:
2023-3-21 09:44
0
雪    币: 258
活跃值: (1747)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
Boring勇哥 xor的两个操作数相同时就是清零。r9是64位寄存器,r9d是r9的低32位,操作64位寄存器的低32位寄存器会清零高32位。
高32位不变吧?
2023-3-21 10:29
0
雪    币: 258
活跃值: (1747)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
wujimaa 这是汇编基础。你以前分析文章那来的?
我觉得这段代码有些奇怪,有点不太确定了。xor r9d,r9d;mov rcx,r9;这段指令是什么意思?设置内存为起始地址?
2023-3-21 10:31
0
雪    币: 258
活跃值: (1747)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
lononan 假设R9=0xFFFFFFFFFFFFFFFF xor r9d,rd9后 r9=0xFFFFFFFF00000000 mov rcx, r9 后rcx=r9=0xFFFFFFFF00000 ...
2023-3-21 10:32
0
雪    币: 258
活跃值: (1747)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
syser 是0x0不是 0xFFFFFFFF00000000
2023-3-21 10:32
0
雪    币: 258
活跃值: (1747)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
大鲤鱼 xor不是清零么?
是的
2023-3-21 10:37
0
雪    币: 205
活跃值: (186)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
怎么好意思发出来的
2023-3-21 10:45
0
雪    币: 258
活跃值: (1747)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
mb_oamxlmfj 怎么好意思发出来的
我不会
2023-3-21 10:58
0
雪    币: 25283
活跃值: (4717)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
有在这问的功夫,花一分钟时间在x64dbg上试一下不就知道结果了?
2023-3-21 12:40
0
雪    币: 258
活跃值: (1747)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
huangyalei 有在这问的功夫,花一分钟时间在x64dbg上试一下不就知道结果了?
真是个好办法
2023-3-21 13:07
0
雪    币: 844
活跃值: (9816)
能力值: ( LV13,RANK:385 )
在线值:
发帖
回帖
粉丝
16
能动手的别吵吵.
2023-3-21 14:01
0
雪    币: 258
活跃值: (1747)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
17
TkBinary 能动手的别吵吵.[em_19]
好的
2023-3-21 15:26
0
雪    币: 7344
活跃值: (4044)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18

64位汇编里修改了低32位的值会自动清空高32位的值,所以xor r9d,r9d后r9的值是0,rcx是64位call的第一个参数,rdx r8 r9是第二第三第四个参数(非浮点参数),再多的参数就直接放在栈里了

最后于 2023-3-21 17:44 被htpidk编辑 ,原因:
2023-3-21 17:41
0
雪    币: 258
活跃值: (1747)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
htpidk 64位汇编里修改了低32位的值会自动清空高32位的值,所以xor r9d,r9d后r9的值是0,rcx是64位call的第一个参数,rdx r8 r9是第二第三第四 ...
谢谢,终于明白了。所以这段代码就很迷惑了,memcpy函数往内存地址0的起始区域复制么?这是个bug吧?
2023-3-22 10:23
0
雪    币: 258
活跃值: (1747)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
20

2023-3-22 11:36
0
雪    币: 1525
活跃值: (4568)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
21
下断看看
2023-3-25 23:47
0
雪    币: 258
活跃值: (1747)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
22
逆向爱好者 下断看看
动态调试环境搭建比较繁琐
2023-3-26 09:51
0
雪    币: 1525
活跃值: (4568)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
23
Valdik 动态调试环境搭建比较繁琐
可以写汇编下断看看
2023-3-26 10:20
0
雪    币: 1525
活跃值: (4568)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
24
总不能一个软件运行后这样,另一个软件程序运行后是这样吧
2023-3-26 10:21
0
雪    币: 1525
活跃值: (4568)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
25





2023-3-26 10:39
0
游客
登录 | 注册 方可回帖
返回
//