首页
社区
课程
招聘
[求助]关于大小端
发表于: 2009-9-17 11:36 3132

[求助]关于大小端

2009-9-17 11:36
3132
看下面一段代码:
cmp word ptr [edi],'EP' ;edi 指向IMAGE_NT_HEADERS
为什么是'EP' ,而不是'PE'?
"EP"与'EP' 有什么区别吗?

[课程]Android-CTF解题方法汇总!

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 339
活跃值: (29)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
2
在内存中应该是
(假如) 00400080 | 50 45 |  P E,也就是说00400080=‘P’, 00400081='E'
但是如果word的str=00400080的话,因为大小端 那么取给str的值为 0x4550,自然这个时候比较就需要反过来。
说了半天发现好像说的还是不清楚。建议用工具在内存中看,然后写汇编打印下。
2009-9-17 14:49
0
雪    币: 14
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
谁能再给解释一下啊,不能沉了啊
2009-9-18 16:47
0
雪    币: 2523
活跃值: (520)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
4
little endian和big endian是表示计算机字节顺序的两种格式
little endian就是低位存放低位
big endian就是低位存放高位

内存地址的编址是由低向高线性增长。对于我们人类而言,数字4321,我们读写的时候都是先读写高位,再读写低位。而以little endian方式存储的数据是地位地址对应低位,结果内存布局中就变成了1234。碰巧INTEL系列的CPU都是采用little endian的方式,所以和人类的读写习惯有差别。

PE问题也是一个道理
2009-9-19 10:33
0
游客
登录 | 注册 方可回帖
返回
//