注册 登录
编程论坛 汇编论坛

各位大侠,如何区分内存中的数据是数据还是程序代码?

han2y 发布于 2010-12-09 22:43, 860 次点击
用d命令可以查看内存中的数据,但如何区分是它是程序代码,还是数据呢?如:
0B30:0100  43 46 49 FE C4 8A 07 3C-20 74 01 AA 43 E2 BC C3
0B30:0110  F6 46 04 02 75 43 8B D5-83 C2 05 57 34 00 1F 0B
0B30:0120  40 00 33 C9 8B F2 BA 01-01 CD 21 5F 73 15 E8 8C
0B30:0130  DB 3D 02 00 74 23 3D 03-00 74 1E 3D 05 00 74 19
0B30:0140  E9 AB D8 8B D8 B8 00 44-CD 21 B4 3E CD 21 F6 C2
0B30:0150  80 75 53 F6 46 04 04 74-4D 8B 56 05 80 FA 00 74
0B30:0160  05 80 FE 3A 74 02 B2 40-80 CA 20 80 EA 60 E8 3C
0B30:0170  E4 73 06 E8 47 DB E9 75-D8 8B D5 83 C2 05 8A 7E

这是一段内存中的数据,如何用眼可以看出哪些是数据,哪些是程序代码呢?
在此谢谢各位大侠了!
4 回复
#2
zaixuexi2010-12-09 23:08
写多了能看出些,一般情况下如果你确定代码从cs:0100开始执行,那么使用DEBUG命令 u cs:0100, DEBUG会自动转,你能看到相对应的指令,但并不是唯一的.
#3
古手梨花2010-12-10 01:14
看IP指针的地址  CS决定段地址 IP决定偏移地址
#4
makebest2010-12-10 08:44
转成汇编代码看,熟练了就能看出是不是了.
#5
han2y2010-12-12 22:23
谢谢各位了,还得慢慢学呀,不容易呀
1