首页
社区
课程
招聘
[旧帖] [求助]问几个个白痴的汇编哦 0.00雪花
发表于: 2009-5-5 22:01 4428

[旧帖] [求助]问几个个白痴的汇编哦 0.00雪花

2009-5-5 22:01
4428
哎~~push mov了这么多年,开始研究溢出后,发现原来自己根本不了解这两个指令

1)就假设我在001200FF这个地址push 01020304h,那么在堆栈中他们是怎么存放的(貌似大顶机),是04这个数在001200FF,还是在0012000C这个地址.push这个指令是先压栈,在减自身?

2)那mov呢?~00401000这个地址,mov进01020304,在内存中又是怎么样的?~

3)Od的堆栈,001200FF这一行,从左到右是 001200FF 001200FE 001200FD 001200FC还是反过来

[课程]FART 脱壳王!加量不加价!FART作者讲授!

收藏
免费 0
支持
分享
最新回复 (7)
雪    币: 723
活跃值: (81)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
2
我来给你扫肓,呵~~~~

1、little-endian 与 big-endian
  首先需要弄清两个概念:MSB 与 LSB,也就是“最高有效位”与“最低有效位”

如值:01020304h
-------------------------------
MSB 是 01,LSB 是 04

 
(1)、little-endian:低位在低内存,高位在高内存。即 LSB 在低地址,MSB 在高地址。

>>>> 如:地址 00410000h 的值 0x01020304 是怎样存放的?
LSB (04)放在 00410000h
MSB (01)放在 00410003h
------------------------------
02 放在 00410002,03 放在 00410001h

(2) big-endian:MSB 在低地址,LSB 在高地址。big-endian 意思是从高位开始排。

>>>> 如:地址 00410000h 的值 0x01020304 是怎样存放的?
LSB (04)放在 00410003h
MSB (01)放在 00410000h
------------------------------
02 放在 00410001,03 放在 00410002h

2、push、mov 指令执行后内存排列就是上述所说的 little-endian 排列
2009-5-5 22:22
0
雪    币: 144
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
感谢楼上~不过OD的堆栈,左边高位还是右边是高位呢?~
2009-5-5 22:27
0
雪    币: 723
活跃值: (81)
能力值: ( LV9,RANK:170 )
在线值:
发帖
回帖
粉丝
4
不知道,没用过 OD,对 OD 不了解

对破解这行没兴趣
2009-5-5 22:35
0
雪    币: 419
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
左边是高位,右边是低位

在 内存 看 刚好相反
2009-5-5 22:47
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
1)就假设我在001200FF这个地址push 01020304h,那么在堆栈中他们是怎么存放的(貌似大顶机),是04这个数在001200FF,还是在0012000C这个地址.push这个指令是先压栈,在减自身?

PUSH是 sp-2 再 入栈

2)那mov呢?~00401000这个地址,mov进01020304,在内存中又是怎么样的?~
00401000 02 01 04 03

3)Od的堆栈,001200FF这一行,从左到右是 001200FF 001200FE 001200FD 001200FC还是反过来
不懂
2009-5-6 11:56
0
雪    币: 115
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
汇编学习中最集中的问题,一个是堆栈,一个是中段......
2009-5-6 12:12
0
雪    币: 603
活跃值: (40)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
8
嘿 ,楼主打击人呢
2009-5-6 13:01
0
游客
登录 | 注册 方可回帖
返回
//