Помогите понять чудо edx = 0xAAAAAAB1 Выполняется инструкция movzx ecx, byte ptr [edx] В ecx оказывается значение, лежащее по адресу 0xAAAAAAB0. Программа выполняется под VmWare. В чем фишка? ЗЫ: Отладчик WinDbg
Код (Text): mov edi, a inc edi movzx edi, byte [edi] как ни странно в копируется байт лежащий в edi а не (edi - edi % 4).
У меня тоже все работает как надо под VmWare+WinXP. В VmWare+Win2003 как в первом посте. Может быть WinDbg глюкает?
С movsx и mov та же самая петрушка. См. ниже: Код (Text): 0:013> p eax=8b55ff8b ebx=10039cd0 ecx=00000000 edx=7618bfae esi=039ff1b0 edi=039ff19c eip=1003d893 esp=039ff094 ebp=039ff19c iopl=0 nv up ei pl zr na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246 mm!qm+0x63: 1003d893 8b02 mov eax,[edx] ds:0023:7618bfae=8bcccccc 0:013> p eax=cccccccc ebx=10039cd0 ecx=00000000 edx=7618bfae esi=039ff1b0 edi=039ff19c eip=1003d895 esp=039ff094 ebp=039ff19c iopl=0 nv up ei pl zr na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246 mm!qm+0x65: 1003d895 8845d7 mov [ebp-0x29],al ss:0023:039ff173=cc 0:013> p eax=cccccccc ebx=10039cd0 ecx=00000000 edx=7618bfae esi=039ff1b0 edi=039ff19c eip=1003d898 esp=039ff094 ebp=039ff19c iopl=0 nv up ei pl zr na po nc cs=001b ss=0023 ds=0023 es=0023 fs=003b gs=0000 efl=00000246 mm!qm+0x68: 1003d898 0fb645ef movzx eax,byte ptr [ebp-0x11] ss:0023:039ff18b=8b 0:013> db 7618bfac 7618bfac cc cc cc cc cc 8b ff 55-8b ec b8 18 20 00 00 e8 .......U.... ... 7618bfbc 70 d1 04 00 a1 c4 9c 1e-76 53 89 45 fc 8b 45 0c p.......vS.E..E. 7618bfcc 56 8b f1 57 8b 7d 08 89-85 e8 df ff ff 8d 46 44 V..W.}........FD 7618bfdc 50 33 db 89 85 ec df ff-ff ff 15 74 11 15 76 83 P3.........t..v. 7618bfec 7e 1c 05 7d 0f c7 85 f8-df ff ff 05 cc 0c 80 e9 ~..}............ 7618bffc 84 00 00 00 57 e8 dc d7-fd ff 8b 45 10 c6 46 08 ....W......E..F. 7618c00c 00 89 46 0c eb 3b 83 bd-f4 df ff ff 00 74 69 8d ..F..;.......ti. 7618c01c 46 08 50 ff 76 0c 8d 85-f0 df ff ff 50 ff b5 f4 F.P.v.......P...
1003d893 8b02 mov eax,[edx] ds:0023:7618bfae=8bcccccc 0:013> p eax=cccccccc ... В eax копируется 0xcccccccc вместо 0x8bcccccc
gilg 7618bfac Чья это память? Помогите понять чудо ... 7618bfae С любым адресом или конкретно с этим?
Инжект в чужой процесс Похоже, что да. Заинжектил тестовый код (адреса ессно другие) - там все в порядке.
gilg Инжект в чужой процесс Что-то ты темнишь. 7618bfb1 8b ff 55 8b ec b8 18 20 00 00 ... - это Код (Text): 8BFF MOV EDI,EDI 55 PUSH EBP 8BEC MOV EBP,ESP B8 18200000 MOV EAX,2018 ... что это за "чужой процесс", у которого точка входа в функцию имеет адрес не кратный четырем? Помогите понять чудо Ты читаешь адрес, а "кто-то" подставляет int3.