Сейчас на форуме: (+9 невидимых) |
eXeL@B —› Крэки, обсуждения —› API, HELP ME. |
Посл.ответ | Сообщение |
|
Создано: 12 декабря 2004 12:26 · Личное сообщение · #1 |
|
Создано: 12 декабря 2004 12:46 · Личное сообщение · #2 |
|
Создано: 12 декабря 2004 12:47 · Личное сообщение · #3 |
|
Создано: 12 декабря 2004 12:51 · Личное сообщение · #4 Вот кусок немоего кода: .if eax != 0 ;eax == kernel base push ebp mov esi,[eax+3Ch] mov esi,[eax+esi+78h] add esi,eax add esi,18h xchg eax,ebx ;ebx == kernel base lodsd ;Num of Name Pointers push eax lodsd ;Address Table RVA push eax lodsd ;Name Pointers RVA push eax add eax,ebx push eax ;Index lodsd ;Ordinal Table RVA push eax mov ebp,esp mov ecx,[ebp+4*4] xor edx,edx @1: mov esi,[ebp+4] ;Index mov esi,[esi] add esi,ebx xor eax,eax push eax @@: ror eax,7 xor [esp],eax lodsb test al,al jnz @B pop eax lea edi,HashTable cmp eax,dword ptr [edi] je @F add dword ptr [ebp+4],4 inc edx loop @1 jmp @2 @@: shl edx,1 mov ecx,[ebp] ;OrdinalTableRVA add ecx,ebx add ecx,edx mov ecx,[ecx] and ecx,0FFFFh mov edx,[ebp+4*3] ;AddressTableRVA add edx,ebx shl ecx,2 add edx,ecx mov edx,[edx] add edx,ebx xor esi,esi xchg [esi],esi pop ebp .else @2: invoke MessageBox,0,0,0,0 .endif Всё тестилось на хэше CloseHandle HashTable label byte CloseHandle_ dd 0F867A91Eh А как получит хэш например NtCreateProcess NtTerminateProcess NtQueryInformationProcess и остальных? |
|
Создано: 12 декабря 2004 13:12 · Личное сообщение · #5 |
|
Создано: 12 декабря 2004 17:12 · Личное сообщение · #6 Mario555 Извини конечтно за ламерский вопрос, но я имел в виду как получить из строки "CloseHandle" - 0F867A91Eh???? ну для поиска апи не по имени а по её хэшу. Или это получить нельзя а есть где то таблица какой апи соответствует какой хэш? просто незнаю этого и прошу помощи, а то хотел бы сделать нахождение всех апи не по имени а по хэшу, и не могу найти или прогу или файл который бы мне помогли в этом. Ну типа что бы я им на входе дал строку типа "MessageBox" а они мне её хэш для нахождения этой функци в моей проге.... или всё происходит совсем не так? |
|
Создано: 12 декабря 2004 17:56 · Личное сообщение · #7 GREEN ANGEL хе, я просто вообще не понимаю, о чём этот топик =) В некоторых протекторах такой вот тип замута с IT - в ней хранятся не имена апи, а их хеши, которые протектор посчитал по своему алгоритму (таких алгоритмов ессно бесконечно много ;) ). Таким образом для поиска данных апи (тех которые в IT проги) протектор будет проверять все апи либы - тоесть считать от их имён хеши (по ессно тому же алгоритму) и сравнивать с находящимися в IT - когда совпало - апи найдена и её адрес пишется в iat... А про что вы тут говорите - хз ;) GREEN ANGEL пишет: то хотел бы сделать нахождение всех апи не по имени а по хэшу ну вот возьми какую-нить функцию хэша, создай используя её таблицу хэшей имён... ну и потом ищи апи как я выше написал. |
|
Создано: 12 декабря 2004 18:05 · Личное сообщение · #8 Mario555 видно ты меня не понял... вот тот кусок кода что я давл ищет в таблице экспорта число 0F867A91Eh и после этого высчитует адрес функции... если подставить хэш например от функции WriteFile 0F67B91BAh, то он находит адресс WriteFile .... а как мне узнать по какому хэшу искать TerminateProcess и ост. функции? как узнать их хэш? |
|
Создано: 12 декабря 2004 19:12 · Поправил: Mario555 · Личное сообщение · #9 GREEN ANGEL пишет: вот тот кусок кода что я давл ищет в таблице экспорта число 0F867A91Eh лол он не ищёт в таблице экспорта это число, ибо его там нет и не должно быть ;) Приведённый тобой код считает хэши по функции GREEN ANGEL пишет: @@: ror eax,7 xor [esp],eax lodsb test al,al jnz @B от всех имён апи либы. Вот число 0F867A91Eh как раз и будет хэш от CloseHandle. Для TerminateProcess по твоей функции получится 25849772h... Но такие хэши соответствуют ТОЛЬКО данному куску кода... заменим например ror eax,7 на ror eax,8 - и всё, все хэши будут другими... поэтому мне и непонятен смысл данного топика и вопрос: Bit-hack пишет: а где взять хэши нужных функций... ЗЫ а кста кусок кода откуда взят ? из виря ? просто странно как-то выглядит GREEN ANGEL пишет: xor esi,esi xchg [esi],esi тоесть как только нашли адрес апи - сразу намеренно делаем ошибку... |
|
Создано: 13 декабря 2004 02:09 · Личное сообщение · #10 |
|
Создано: 13 декабря 2004 03:16 · Личное сообщение · #11 |
|
Создано: 13 декабря 2004 03:27 · Личное сообщение · #12 |
|
Создано: 13 декабря 2004 03:31 · Личное сообщение · #13 |
|
Создано: 13 декабря 2004 04:27 · Личное сообщение · #14 |
|
Создано: 13 декабря 2004 04:31 · Личное сообщение · #15 |
|
Создано: 13 декабря 2004 05:39 · Личное сообщение · #16 |
|
Создано: 13 декабря 2004 14:35 · Личное сообщение · #17 Mario555 Ну это не с виря(но может в каком-то такое и есть) а со статьи на васме по поиску апи... Asterix Грамотно поставленный хук ты не снимешь Первый раз слышу, то есть по твоему надо нечего не делать знаю что ты всё равно ничего сделать не сможеш? Ну это смотря ещё на каком кольце хук, но если война на третьем то можно и не снимать а вызвать в обход и всё.... вот я хочу научиться находить апи по хэшу для данного кода... но чувствую что быстрее по cr32 научиться по тутору... Mario555 Для TerminateProcess по твоей функции получится 25849772h... Скажи плиз по какой формуле или алгоритму ты это посчитал? |
|
Создано: 13 декабря 2004 15:34 · Личное сообщение · #18 > Первый раз слышу, то есть по твоему надо нечего не делать знаю что ты всё равно ничего сделать не сможеш? Я имел ввиду что автор топика не снимет, т.к. задает странные вопросы, напрямую не относящиеся к теме снятия хуков. Ну нафига здесь какие-то хэши? Хэши обычно используют тогда когда пытаются скрыть имена API и соответсвенно процедуру их обрабатывающую. А что до снятия, то нужно обсуждать какой-то конкретный вид хука, т.к. их бывает как минимум несколько. Естественно хуки поставленные в ring-0 не снимаются из ring-3. |
|
Создано: 13 декабря 2004 16:09 · Личное сообщение · #19 |
eXeL@B —› Крэки, обсуждения —› API, HELP ME. |