eXeLab
eXeL@B ВИДЕОКУРС !

ВИДЕОКУРС ВЗЛОМ
обновлён 2 декабря!


УЗНАТЬ БОЛЬШЕ >>
Домой | Статьи | RAR-cтатьи | FAQ | Форум | Скачать | Видеокурс
Новичку | Ссылки | Программирование | Интервью | Архив | Связь

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

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

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

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

Создано: 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


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

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

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

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

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

ERROR_SEVERITY_WARNING.

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

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

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

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

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


Статус: Пришелец

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

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


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

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

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

Вполне.


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

Создано: 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" ?

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

Создано: 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


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

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

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


Статус: Пришелец

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

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

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

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

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

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

int
Смотри ПМ.

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

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

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


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

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

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

0A280105h

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

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

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

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


Статус: Пришелец

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

r_e
Почитай ещё статьи по аспру. В этом проте чуть ли не впервые начали красть простые и константные функции. Их не так много.
 eXeL@B —› Основной форум —› Аналог GetLastError для NtLastError
Эта тема закрыта. Ответы больше не принимаются.

Оригинальный DVD-ROM: eXeL@B DVD !

Вы находитесь на форуме сайта EXELAB.RU
Проект ReactOS