Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
да уж на правду что-то непохоже 03.02.05 10:32 Число просмотров: 3434
Автор: z0 <z0> Статус: Member
|
> кстати - может быть будет интересно узнать (я это узнал в > ходе написания этого незаурядного сорца), что advapi ф-ии > требуют, чтобы их аргументы, принимающие данные находились > в секции данных (не в стэке и не в секции кода с атрибутом > w), а ф-ии Get/SetThreadContext, чтобы данные были в стэке > %)
бред. кусок рабочего исходника - параметры и в стеке и в коде (/SECTION:.text,erw конечное)
.code
priv_name db 'SeDebugPrivilege',0
lib_name db '\test.dll',0
kernel_name db 'kernel32',0
proc_name db 'LoadLibraryA',0
entry:
;
var_hObject equ ebp-4
var_newstate equ ebp-14h
var_length equ ebp-18h
var_prevstate equ ebp-28h
var_procid equ ebp-128h
;
mov ebp,esp
sub esp,130h
xor ebx,ebx
lea eax,[var_hObject]
push eax
push ebx
push 28h ; TOKEN_QUERY or TOKEN_AJUST_PRIVILEGES
call GetCurrentThread
push eax
call OpenThreadToken
test eax,eax
jnz token_ok
call GetLastError
cmp eax,3f0h ; ERROR_NO_TOKEN
jne exit
lea eax,[var_hObject]
push eax
push 28h ; TOKEN_QUERY or TOKEN_AJUST_PRIVILEGES
call GetCurrentProcess
push eax
call OpenProcessToken
test eax,eax
jz exit
lea edx,[var_newstate]
lea eax,[edx+4]
push eax
push offset priv_name
push ebx
mov dword ptr [edx],1
mov dword ptr [edx+0ch],2
call LookupPrivilegeValueA
lea eax,[var_length]
push eax
lea eax,[var_prevstate]
push eax
push 10h
lea eax,[var_newstate]
push eax
push ebx
push dword ptr [var_hObject]
call AdjustTokenPrivileges
mov edi,eax
call GetLastError
cmp eax,514h
token_ok:
push dword ptr [var_hObject]
call CloseHandle
и т.д. и т.п. ...
либо руки у тебя кривые либо винда особая
|
|
|