eXeL@B —› Вопросы новичков —› sysenter |
. 1 . 2 . >> |
Посл.ответ | Сообщение |
|
Создано: 10 февраля 2012 00:23 · Личное сообщение · #1 |
|
Создано: 10 февраля 2012 00:38 · Личное сообщение · #2 |
|
Создано: 10 февраля 2012 00:39 · Личное сообщение · #3 |
|
Создано: 10 февраля 2012 00:52 · Личное сообщение · #4 |
|
Создано: 10 февраля 2012 01:14 · Личное сообщение · #5 tiranosaur, IDA вам в руки Изучите сами на примере того же самого ZwTerminateProcess. Количество параметров известно. Чего же ещё желать? ах да там нету sysenter скажите вы? там какой-то call dword ptr ds:[edx] в рантайме зайдите в этот call и увидите ваш sysenter(при условии что вы используете что-нить выше xp(по крайней мере у меня на хрюхе sysenter)) |
|
Создано: 10 февраля 2012 01:19 · Поправил: ARCHANGEL · Личное сообщение · #6 Dart Sergius пишет: Документации ты нигде не найдёшь Маны от Интела по крайней мере у меня на хрюхе sysenter Да, нововведение было в ХР, у более старых - int 2e. ----- Stuck to the plan, always think that we would stand up, never ran. | Сообщение посчитали полезным: tiranosaur |
|
Создано: 10 февраля 2012 01:25 · Личное сообщение · #7 |
|
Создано: 10 февраля 2012 01:30 · Личное сообщение · #8 |
|
Создано: 10 февраля 2012 01:31 · Личное сообщение · #9 |
|
Создано: 10 февраля 2012 01:56 · Личное сообщение · #10 |
|
Создано: 10 февраля 2012 01:57 · Личное сообщение · #11 |
|
Создано: 10 февраля 2012 13:36 · Поправил: tiranosaur · Личное сообщение · #12 блин не получается((( Господа а где ошибка подскажите proc ReadProcessMemory@SYSENTER push 0 push 4 push buffer ; буфер push DWORD[address] ; BaseAddress, push DWORD [gameProcess] ;ProcessHandle, push lab ;точка возврата mov eax, 0bah ;NtReadVirtualMemory mov edx,esp SYSENTER lab: ret endp привы получены хендл тоже. короче если вместо call ReadProcessMemory@SYSENTER использую invoke ReadProcessMemory(параметры) все норм. Возвращается на метку lab. также работает если вызываю вместо mov edx,esp SYSENTER invoke KiFastSystemCall. почему? хотя это вроде одно и то же |
|
Создано: 10 февраля 2012 19:17 · Личное сообщение · #13 |
|
Создано: 10 февраля 2012 20:00 · Личное сообщение · #14 |
|
Создано: 10 февраля 2012 20:33 · Личное сообщение · #15 |
|
Создано: 10 февраля 2012 21:24 · Личное сообщение · #16 |
|
Создано: 10 февраля 2012 21:25 · Поправил: tiranosaur · Личное сообщение · #17 vptrlx а зачем мне sysexit eсли адрес возврата я указал.Все когда то были идиотами и задавали дурацкие вапросы. Зачем вообще вдруг понадобилось использовать сисентер? шифруюсь))) Promix_17выкидывает туда куда нужно но в буфере приема ничего нету. меняю mov edx,esp SYSENTER на call KiFastSystemCall и все пашет. читает что нужно. А кто такие vx серы? |
|
Создано: 10 февраля 2012 21:38 · Личное сообщение · #18 vptrlx пишет: И вообще топик идиотский Скорее - чисто в образовательных целях. tiranosaur пишет: А кто такие vx серы? Вирусописатели. а зачем мне sysexit eсли адрес возврата я указал Вы с vptrlx говорите про разные вещи. Он пытается вам объяснить, как юзать вашу инструкцию из ринг0, вы же, видимо, хотите эмульнуть какую-то Native API, чтоб... не знаю, зачем оно вам надо. Но хотите sysenter юзать в ринг3. Но задачка абсолютно несложная, киньте скомпиленный ехе, который у вас не работает, чтоб люди могли посмотреть, что не так. ----- Stuck to the plan, always think that we would stand up, never ran. |
|
Создано: 10 февраля 2012 21:43 · Поправил: vptrlx · Личное сообщение · #19 |
|
Создано: 11 февраля 2012 00:32 · Личное сообщение · #20 vptrlxблин ну не настолько же я тупой( я оттрасировал. вот код компилятор фасм. format PE GUI 4.0 include '%fasminc%\win32a.inc' include '%fasminc%\macro\if.inc' ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;; .code ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; section '.code' code readable writeable executable processID dd ? gameProcess dd ? MessageText db "Запусти сначала игру", 0 MessageCaption db "Wrong", 0 ProcessName db 'winmine.exe', 0 Priv db "SeDebugPrivilege",0 buffer dd ? address dd 01003E21h,0 entry $ call EnableDebugPrivilege call FindProcess cmp [processID],0 .if eax=00000000h invoke MessageBox, NULL, MessageText, MessageCaption, MB_OK invoke ExitProcess,eax .endif invoke OpenProcess, PROCESS_ALL_ACCESS, 0, [processID] mov [gameProcess],eax call ReadProcessMemory@ invoke ExitProcess,0 ;================== inject code ========================================== proc ReadProcessMemory@ mov eax, 0bah push 0 push 4 push buffer push DWORD[address] push DWORD [gameProcess] push lab invoke KiFastSystemCall ; так пашет ;mov edx,esp ; а вот так нет ;SYSENTER ; lab: ret endp ;======================= EnableDebugPrivilege ========================= proc EnableDebugPrivilege push ebp mov ebp, esp sub esp, 24h invoke OpenProcessToken, -1, 28h, esp test eax, eax jz @F lea eax, [esp+8] invoke LookupPrivilegeValue, 0, Priv, eax test eax, eax jz @F mov dword [esp+14h], 1 mov eax, [esp+8] mov [esp+18h], eax mov eax, [esp+0Ch] mov [esp+1Ch], eax mov dword [esp+20h], 2 lea eax, [esp+10h] push eax lea eax, [esp+18h] push eax push 10h lea eax, [esp+20h] push eax push 0 mov eax, [esp+14h] push eax call [AdjustTokenPrivileges] @@: leave ret endp ;============================ FindProcess ================================== proc FindProcess push ebp mov ebp, esp sub esp, 13Ch push esi mov dword [ebp-13Ch], 128h invoke CreateToolhelp32Snapshot, 2, 0 mov esi, eax cmp eax, -1 jz @F lea eax, [ebp-13Ch] invoke Process32First, esi, eax test eax, eax jz @F bb: lea eax, [ebp-118h] invoke lstrcmpi, eax, ProcessName test eax, eax jz pFound lea eax, [ebp-13Ch] invoke Process32Next, esi, eax test eax, eax jz @F jmp bb @@: pop esi leave ret pFound: mov eax, [ebp-308] mov [processID],eax jmp @B endp ;============================ search ======================================= ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;; .idata ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; section '.idata' import data readable library kernel32, 'kernel32.dll', advapi32, 'advapi32.dll', user32, 'user32.dll',ntdll, 'ntdll.dll' include '%fasminc%\api\kernel32.inc' include '%fasminc%\api\advapi32.inc' include '%fasminc%\api\user32.inc' include '%fasminc%\ntdll.inc' ARCHANGELы же, видимо, хотите эмульнуть какую-то Native API, чтоб... не знаю, зачем оно вам надо. Но хотите sysenter юзать в ринг3. Но задачка абсолютно несложная подскажи пжл путь к этой задачке |
|
Создано: 11 февраля 2012 00:48 · Личное сообщение · #21 |
|
Создано: 11 февраля 2012 02:18 · Личное сообщение · #22 |
|
Создано: 11 февраля 2012 02:21 · Поправил: tiranosaur · Личное сообщение · #23 а вот нерабочий. для чтения используется сапер 5dab_10.02.2012_EXELAB.rU.tgz - Текстовый документ.exe |
|
Создано: 11 февраля 2012 02:55 · Личное сообщение · #24 Бинари пока не смотрел. По исходникам - код не эквивалентный: Code:
KiFastSystemCall выглядит примерно так: Code:
В стеке на момент вызова SYSENTER при этом будет: ESP ---> <адрес возврата, занесённый call KiFastSystemCall> <адрес возврата, занесённый тобой, push lab> <...> А при твоём коде без вызова KiFastSystemCall, получается: ESP ---> <адрес возврата, занесённый тобой, push lab> <...> Стэк в разном состоянии, поэтому и не работает ничего. Попробуй ещё один push lab добавить. | Сообщение посчитали полезным: tiranosaur |
|
Создано: 11 февраля 2012 12:45 · Поправил: tiranosaur · Личное сообщение · #25 |
|
Создано: 13 февраля 2012 14:16 · Поправил: Hexxx · Личное сообщение · #26 |
|
Создано: 13 февраля 2012 15:16 · Поправил: vptrlx · Личное сообщение · #27 |
|
Создано: 14 февраля 2012 00:54 · Личное сообщение · #28 vptrlx топикстартер творит чисто какую-то ботву под вин32, или нифига не понимает "радости" таких вызовов. ничего более ----- От многой мудрости много скорби, и умножающий знание умножает печаль | Сообщение посчитали полезным: plutos |
|
Создано: 14 февраля 2012 10:39 · Личное сообщение · #29 vptrlx пишет: и на амиге, скорее всего, обломится (палец вниз) Угу, только x64 виндов уже где-то половина, и вероятность запуска на такой винде уже гораздо выше, чем запуск на амиге. Но вообще-то это был совет ТС, чтобы он думал наперед, а не хреначил sysenter, если не хочет иметь проблем с переходом на x64. ----- Реверсивная инженерия - написание кода идентичного натуральному |
|
Создано: 14 февраля 2012 11:45 · Личное сообщение · #30 Hexxx пишет: совет ТС, чтобы он думал наперед, а не хреначил sysenter, если не хочет иметь проблем с переходом на x64. похожий совет был ещё выше: vptrlx пишет: Зачем вообще вдруг понадобилось использовать сисентер? а проблемы будут даже и без перехода на x64. Например, в разных версиях номера сервисов разные. |
. 1 . 2 . >> |
eXeL@B —› Вопросы новичков —› sysenter |