Русский / Russian English / Английский

Сейчас на форуме: (+3 невидимых)
 · Начало · Статистика · Регистрация · Поиск · ПРАВИЛА ФОРУМА · Язык · RSS ·

 eXeL@B —› Основной форум —› Аналог GetLastError для NtLastError
Посл.ответ Сообщение

Ранг: 590.4 (!)
Статус: Модератор

Создано: 11 сентября 2010 20:45 New!
Цитата · Личное сообщение · #1

сабж.
В импорте из kernel32.dll сперта функция, возвращает просто дворд. Судя по всему это NtStatus/NtLastError (по рефам функции анализируют 0xc0000000, 0x80000000). Но это не GetLastError. Есть какой-то аналог в kernel32.dll для NtLastError, а не Win32LastError?
Code:
  1. 008D87CC NtLastError dd 0A280105h
  2. ...
  3. 009102FB mov     eax, ds:NtLastError
  4. ...
  5. 008F38F8 mov     eax, ds:NtLastError
  6. 008F38FD and     eax, 0C0000000h
  7. 008F3902 cmp     eax, 80000000h
  8. 008F3907 jnz     short loc_8F3910





Ранг: 2014.5 (!!!!)
Статус: Модератор
retired

Создано: 11 сентября 2010 22:08 New!
Цитата · Личное сообщение · #2

Поищи такой код в кернеле, не похоже на начало функции. Нужен файл или что-то ещё.



Ранг: 255.8 (наставник)
Статус: Участник
vx

Создано: 11 сентября 2010 22:23 New!
Цитата · Личное сообщение · #3

ERROR_SEVERITY_WARNING.



Ранг: 590.4 (!)
Статус: Модератор

Создано: 11 сентября 2010 23:20 New!
Цитата · Личное сообщение · #4

Clerk
Спасибо, но расшифровка кода не нужна.

Archer
Функция сперта не точно. Это часть конверта.

Может быть в импорте две одинаковых функции?



Ранг: 101.0 (ветеран)
Статус: Участник

Создано: 12 сентября 2010 00:00 New!
Цитата · Личное сообщение · #5

А прогу приложить никак?




Ранг: 793.4 (! !)
Статус: Участник
Шаман

Создано: 12 сентября 2010 00:24 New!
Цитата · Личное сообщение · #6

r_e пишет:
Может быть в импорте две одинаковых функции?

Вполне.




Ранг: 565.2 (!)
Статус: Участник
оптимист

Создано: 12 сентября 2010 00:39 · Поправил: ClockMan New!
Цитата · Личное сообщение · #7

r_e пишет:
008D87CC NtLastError dd 0A280105h

Это kernel32.GetVersion под хрюшой копаешь
PE_Kill Какие люди в голлевуде



Ранг: 255.8 (наставник)
Статус: Участник
vx

Создано: 12 сентября 2010 00:42 · Поправил: Clerk New!
Цитата · Личное сообщение · #8

r_e
Тогда что вам нужно ?
Вы выдрали из либы проверку типа статуса(из ReadFile() или TransactNamedPipe()). А как вопрос написали вобще какойто бред. В экспорте Kernel32 нет функций возвращающих статус. Ну косвенно может и есть, но предназначенных для его получения нет. Да и они не нужны, так как есть нэйтивная RtlGetLastNtStatus().
И что за ахинея с "NtStatus/NtLastError" ?



Ранг: 590.4 (!)
Статус: Модератор

Создано: 12 сентября 2010 09:22 New!
Цитата · Личное сообщение · #9

Clerk
Ну не надо какашками бросаться. Вот ClockMan написал прекрасный ответ.



Ранг: 255.8 (наставник)
Статус: Участник
vx

Создано: 12 сентября 2010 11:01 New!
Цитата · Личное сообщение · #10

Code:
  1. $ ==>    7C81126A GetVersion        64:A1 18000000             mov eax,dword ptr fs:[18]
  2. $+6      7C811270                   8B48 30                    mov ecx,dword ptr ds:[eax+30]
  3. $+9      7C811273                   8B81 B0000000              mov eax,dword ptr ds:[ecx+B0]
  4. $+F      7C811279                   0FB791 AC000000            movzx edx,word ptr ds:[ecx+AC]
  5. $+16     7C811280                   83F0 FE                    xor eax,FFFFFFFE
  6. $+19     7C811283                .  C1E0 0E                    shl eax,0E
  7. $+1C     7C811286                .  0BC2                       or eax,edx
  8. $+1E     7C811288                .  C1E0 08                    shl eax,8
  9. $+21     7C81128B                .  0B81 A8000000              or eax,dword ptr ds:[ecx+A8]
  10. $+27     7C811291                .  C1E0 08                    shl eax,8
  11. $+2A     7C811294                .  0B81 A4000000              or eax,dword ptr ds:[ecx+A4]
  12. $+30     7C81129A                .  C3                         ret





Ранг: 145.8 (ветеран)
Статус: Участник

Создано: 12 сентября 2010 11:36 · Поправил: Alchemistry New!
Цитата · Личное сообщение · #11

r_e
И чем он прекрасен? Не в тему чувак написал, клерк прав. Это TransactNamedPipe/ReadFile.



Ранг: 101.0 (ветеран)
Статус: Участник

Создано: 12 сентября 2010 12:19 New!
Цитата · Личное сообщение · #12

r_e
Кинь в ЛС файл лучше.



Ранг: 590.4 (!)
Статус: Модератор

Создано: 12 сентября 2010 12:48 New!
Цитата · Личное сообщение · #13

Alchemistry
Он прекрасен тем, что человек точно знал какая функция из kernel32.dll в каких обстоятельствах может вернуть указанную в первом посте константу. И несмотря на мою неправильную идентификацию переменной дал верный ответ.

Кончайте флудить.

int
Смотри ПМ.



Ранг: 255.8 (наставник)
Статус: Участник
vx

Создано: 12 сентября 2010 13:21 New!
Цитата · Личное сообщение · #14

r_e
Какую есчо константу, код GetVersion() в #10.




Ранг: 990.2 (! ! !)
Статус: Модератор
Author of DiE

Создано: 12 сентября 2010 13:24 New!
Цитата · Личное сообщение · #15

Clerk
спустись с небес до нас бренных и взгляни внимательно на первый пост:

0A280105h

http://yandex.ru/yandsearch?text=0A280105&lr=213



Ранг: 590.4 (!)
Статус: Модератор

Создано: 12 сентября 2010 15:53 New!
Цитата · Личное сообщение · #16

Hellspawn
Я рассматривал константу исходя из предположения что это код ошибки. Не догадался что это версия.
ClockMan +10 wmz в ПМ



Ранг: 101.0 (ветеран)
Статус: Участник

Создано: 12 сентября 2010 15:57 New!
Цитата · Личное сообщение · #17

r_e
Почитай ещё статьи по аспру. В этом проте чуть ли не впервые начали красть простые и константные функции. Их не так много.


 eXeL@B —› Основной форум —› Аналог GetLastError для NtLastError
Эта тема закрыта. Ответы больше не принимаются.

Видеокурс ВЗЛОМ