-
-
[已解决]保护模式与DS
-
发表于:
2009-1-20 03:38
5451
-
已解决, 答案见9楼。
005C4DAE 00 DB 00
005C4DAF 00 DB 00
005C4DB0 . 00000000 DD 00000000
005C4DB4 00 DB 00
005C4DB5 00 DB 00
005C4DB6 00 DB 00
005C4DB7 00 DB 00
005C4DB8 00 DB 00
005C4DB9 00 DB 00
005C4DBA 00 DB 00
005C4DBB 00 DB 00
005C4DBC 00 DB 00
005C4DBD 00 DB 00
005C4DBE 00 DB 00
005C4DBF 00 DB 00
005C4DC0 > 52 PUSH EDX
005C4DC1 . A1 B04D5C00 MOV EAX,DWORD PTR DS:[5C4DB0]
005C4DC6 . 83F8 00 CMP EAX,0
005C4DC9 . 75 26 JNZ SHORT Babylon.005C4DF1
005C4DCB . 68 904D5C00 PUSH Babylon.005C4D90 ; /FileName = "ttd.dll"
005C4DD0 . FF15 04545C00 CALL DWORD PTR DS:[<&KERNEL32.LoadLibrar>; \LoadLibraryW
005C4DD6 . 83F8 00 CMP EAX,0
005C4DD9 . 74 1A JE SHORT Babylon.005C4DF5
005C4DDB . 68 A04D5C00 PUSH Babylon.005C4DA0 ; /ProcNameOrOrdinal = "speakw"
005C4DE0 . 50 PUSH EAX ; |hModule
005C4DE1 . FF15 00545C00 CALL DWORD PTR DS:[<&KERNEL32.GetProcAdd>; \GetProcAddress
005C4DE7 . A3 B04D5C00 MOV DWORD PTR DS:[5C4DB0],EAX
005C4DEC . 83F8 00 CMP EAX,0
005C4DEF . 74 04 JE SHORT Babylon.005C4DF5
005C4DF1 > FFD0 CALL EAX
005C4DF3 . EB 01 JMP SHORT Babylon.005C4DF6
005C4DF5 > 5A POP EDX
005C4DF6 >^E9 8957F3FF JMP Babylon.004FA584
005C4DFB 00 DB 00
005C4DFC 00 DB 00
上面是一段为babylon添加语音接口的代码 (Credit: 跳跳狗)
请教
DS:[5C4DB0] (line 17)
其中的DS到底是什么意思?
读了一些关于386 Protected Mode Memory Addressing 的简介,但不是很明白:
DS是data segment 的selector, 但5C4DB0属于PE中.code的部分,为什么不能用CS:[5C4DB0]?
[课程]FART 脱壳王!加量不加价!FART作者讲授!