首页
论坛
课程
招聘
[原创]用机器码执行的区别来区分32位和64位环境
2021-7-19 17:46 3513

[原创]用机器码执行的区别来区分32位和64位环境

2021-7-19 17:46
3513

区分32位64位的一个小技巧

1
31 C0 48 0F 88

32位下跳转

 

image-20210719172323861

 

64位下不跳转

 

image-20210719172343318

 

这样在这个跳转指令下面放64位汇编,在跳转指令目的地放32位汇编,就可以分别处理32位与64位。

 

原理就是48这个机器码在32位下会被识别为dec eax,改变SF标志位导致跳转;而在64下则会被识别为64位操作数前缀(REX前缀),因此不跳转。

 

出处是gslab2020决赛ring0的Flag.fg,觉得有点意思就记录一下,和大家分享。

参考

https://www.cs.uaf.edu/2016/fall/cs301/lecture/09_28_machinecode.html


第五届安全开发者峰会(SDC 2021)议题征集正式开启!

最后于 2021-7-19 20:48 被危楼高百尺编辑 ,原因:
收藏
点赞2
打赏
分享
最新回复 (12)
雪    币: 385
活跃值: 活跃值 (556)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
LexSafe 活跃值 2021-7-19 17:49
2
1
雪    币: 206
活跃值: 活跃值 (825)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
yy虫子yy 活跃值 2021-7-19 20:07
3
0
这样就只能把机器码写死了
雪    币: 2030
活跃值: 活跃值 (1047)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
危楼高百尺 活跃值 1 2021-7-19 20:16
4
0
yy虫子yy 这样就只能把机器码写死了
在shellcode里面用用感觉还可以
雪    币: 2080
活跃值: 活跃值 (1354)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
Mr.hack 活跃值 2021-7-19 20:18
5
0
64位才有rex指令前缀
雪    币: 4104
活跃值: 活跃值 (1361)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
LeadroyaL 活跃值 1 2021-7-20 13:41
6
0
角度刁钻,666
雪    币: 3363
活跃值: 活跃值 (929)
能力值: ( LV9,RANK:145 )
在线值:
发帖
回帖
粉丝
天水姜伯约 活跃值 3 2021-7-21 11:04
7
0
学到了
雪    币: 3451
活跃值: 活跃值 (1051)
能力值: ( LV6,RANK:85 )
在线值:
发帖
回帖
粉丝
fjqisba 活跃值 2021-7-21 11:47
8
0
收藏加精
雪    币: 4807
活跃值: 活跃值 (5904)
能力值: ( LV12,RANK:570 )
在线值:
发帖
回帖
粉丝
erfze 活跃值 11 2021-7-22 15:16
9
0
学习
雪    币: 2907
活跃值: 活跃值 (1168)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
mudebug 活跃值 2021-7-22 17:25
10
0
sizeof(void*) 判断一下是4就32,是8就是64就好了。为毛那么奇怪的需求?????
雪    币: 2030
活跃值: 活跃值 (1047)
能力值: ( LV5,RANK:70 )
在线值:
发帖
回帖
粉丝
危楼高百尺 活跃值 1 2021-7-22 17:43
11
0

sizeof(void*) 判断一下是4就32,是8就是64就好了。为毛那么奇怪的需求?????

没有,就是偶然看到了觉得有意思,就记录了一下,以后逆向看到了知道这是啥

最后于 2021-7-22 17:50 被危楼高百尺编辑 ,原因:
雪    币: 525
活跃值: 活跃值 (500)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
mb_foyotena 活跃值 2021-7-22 17:51
12
0
执行64bit指令, 不发生异常就是64位
雪    币: 61
活跃值: 活跃值 (773)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
fengyunabc 活跃值 1 5天前
13
0
如果没记错,当年hacking team泄露的资料里就有。
游客
登录 | 注册 方可回帖
返回