首页
社区
课程
招聘
如何定位数据
发表于: 2005-11-12 21:25 4148

如何定位数据

2005-11-12 21:25
4148
.data
bTest1          db      12h
wTest2          dw      1234h
dwTest3         dd      12345678h

.code

main PROC
	 mov     al,bTest1
     mov     ax,word ptr bTest1
	 mov     eax,dword ptr bTest1
	 exit
main ENDP

END main


生成exe文件,用od调试

00401010 >|> A0 00404000    MOV AL,BYTE PTR DS:[bTest1]
00401015  |. 66:A1 00404000 MOV AX,WORD PTR DS:[bTest1]
0040101B  |. A1 00404000    MOV EAX,DWORD PTR DS:[bTest1]
00401020  |. 6A 00          PUSH 0                                   ; /ExitCode = 0
00401022  \. E8 05000000    CALL test._ExitProcess@4                 ; \ExitProcess


00404000 > 123412           ADC DH,BYTE PTR DS:[EDX+EDX]
00404003 > 78 56            JS SHORT test.0040405B
00404005   34 12            XOR AL,12


问题:
为什么00404000处是这些奇怪的指令呢?如何理解他们?

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 124
活跃值: (70)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
00404000 =

bTest1          db      12h
wTest2          dw      1234h
dwTest3         dd      12345678h
2005-11-12 21:52
0
雪    币: 519
活跃值: (1223)
能力值: ( LV12,RANK:650 )
在线值:
发帖
回帖
粉丝
3
00404000 > 123412           ADC DH,BYTE PTR DS:[EDX+EDX]
00404003 > 78 56            JS SHORT test.0040405B
00404005   34 12            XOR AL,12

这不正好是12 1234 12345678么,OD是把数据识别成代码了
2005-11-12 22:51
0
雪    币: 200
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
如果我把
mov     ax,word ptr wTest2
改为
mov     ax,word ptr bTest1

00401015  |. 66:A1 00404000 MOV AX,WORD PTR DS:[bTest1]
变为
00401015  |. 66:A1 01404000      MOV AX,WORD PTR DS:[wTest2]

我想问:
1.WORD PTR DS:[bTest1] 是什么意思?
2.01404000又是什么?
3.
00404000 > 123412           ADC DH,BYTE PTR DS:[EDX+EDX]
;为什么这个就是123412
00404003 > 78 56            JS SHORT test.0040405B
;这个又是什么
00404005   34 12            XOR AL,12
;这个怎么变成34 12

为什么.data段的内容,变成了一些指令。

初学者,请不要见笑!
请大虾们推荐一些这方面的资料,谢谢
2005-11-12 23:03
0
游客
登录 | 注册 方可回帖
返回
//