.. |
Jan. 9th, 2013|12:28 am |
Вот пример для нт: 6A 1B E8 0F 00 00 00 8D 1D B2 10 40 00 03 C3 2D 23 01 34 12 FF E0 6A 1B E8 15 00 00 00 6A 1F 33 F6 8D 80 78 56 34 12 E8 21 00 00 00 8D 84 23 01 66 CB 6A 1F 33 C0 E8 12 00 00 00 BE 34 12 8B DC 8D 80 20 10 2B C6 2D 00 10 2B C3 66 CB CB
Передаёт управленье на +178 от начала этого кода. Заранее должен быть создан сегмент: LDT_MASK equ 100B LDT_SEL equ KGDT_R3_CODE or RPL_MASK or LDT_MASK MM_SHARED_USER_DATA_VA equ 7FFEFFFFH
%CREATE_DESCRIPTOR macro Base, Limit mov eax,Base mov edx,Limit mov ecx,eax and edx,0F0000H shr eax,16 and ecx,0FF000000h and eax,0FFH lea edx,[eax + edx + 100H * 11111000B + 100000H * 1000B] ; Type 100B - code. or edx,ecx mov eax,Limit mov ecx,Base and eax,0FFFFH shl ecx,16 lea ecx,[ecx + eax] ; Edx:Ecx invoke ZwSetLdtEntries, LDT_SEL, Ecx, Edx, 0, 0, 0 endm
%CREATE_DESCRIPTOR 0, MM_SHARED_USER_DATA_VA/PAGE_SIZE
И досвидания дизасмы.
http://rghost.ru/42846833 |
|