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

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

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

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

1
2
mov     rcx, r9         ; void *
call    memcpy

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


[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞1
打赏
分享
最新回复 (32)
雪    币: 9422
活跃值: (4353)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
lononan 2023-3-20 21:15
2
0
假设R9=0xFFFFFFFFFFFFFFFF
xor r9d,rd9后 r9=0xFFFFFFFF00000000
mov     rcx, r9 后rcx=r9=0xFFFFFFFF00000000
雪    币: 2560
活跃值: (3652)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
syser 2023-3-20 22:55
3
0
lononan 假设R9=0xFFFFFFFFFFFFFFFF xor r9d,rd9后 r9=0xFFFFFFFF00000000 mov rcx, r9 后rcx=r9=0xFFFFFFFF00000 ...
是0x0不是 0xFFFFFFFF00000000
雪    币: 6287
活跃值: (3812)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
大鲤鱼 2023-3-20 23:46
4
0
xor不是清零么?
雪    币: 4119
活跃值: (1500)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
Boring勇哥 2023-3-21 09:28
5
0
xor的两个操作数相同时就是清零。r9是64位寄存器,r9d是r9的低32位,操作64位寄存器的低32位寄存器会清零高32位。
雪    币: 364
活跃值: (1341)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
wujimaa 1 2023-3-21 09:44
6
0

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

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

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

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

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





游客
登录 | 注册 方可回帖
返回