Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2010.09.12;
Скачать: CL | DM;

Вниз

Помогите пропатчить dll. Обход ошибочного кода. Не взлом!   Найти похожие ветки 

 
12 ©   (2010-05-19 12:02) [0]

Исходные данные
Ошибка приложения httpd.exe, версия 2.2.14.0, модуль ntwdblib.dll, версия 2000.80.194.0, адрес 0x0001f15a.

дизассемблировал ntwdblib.dll, смотрю
EntryPoint:
73321000  55                          push ebp

правильно ли будет, если прибавлю 0x0001f15a и посмотрю на
7334015A  E831D9FEFF                  call SUB_L7332DA90

эта строка в блоке
........
L73340150:
  push 00000004h
  lea ecx,[ebp-0Ch]
  push ecx
  mov edx,[ebp+08h]
  push edx
  call SUB_L7332DA90
  test eax,eax
  jnz L7334016A
  xor eax,eax
  jmp L7334024D
L7334016A:
  mov eax,[ebp+18h]
.........

если сюда nop поставить, будет ли это не вызывать код, который вызвал ошибку?


 
Дмитрий С ©   (2010-05-19 12:14) [1]

http://forum.ugatu.net/index.php?s=def406a4a142e0fde038a9a81166fe41&showtopic=1050&st=0&p=15137&#entry1 5137

mssql?


 
12 ©   (2010-05-19 12:21) [2]


> http://forum.ugatu.net/index.php?s=def406a4a142e0fde038a9a81166fe41&showtopic=1050&st=0&p=15137&#entry1  
> 5137

SYSTEM стоит, с полными правами

да, mssql.. таки и делает беременной голову второй месяц уже..
http://delphimaster.net/view/15-1271830825/


 
Rouse_ ©   (2010-05-19 12:55) [3]

вызов call SUB_L7332DA90 вызывает ошибку?
Если да то для отключения замени этот вызов вот таким опкодом:
B801000000       mov eax,$00000001
как раз по размеру один в один должно подойти


 
12 ©   (2010-05-19 13:42) [4]


> вызов call SUB_L7332DA90 вызывает ошибку?

я не знаю..

я спрашиваю, правильно ли определил место
7334015A  E831D9FEFF                  call SUB_L7332DA90

если
EntryPoint:
73321000  55                          push ebp

а в сообщении ошибка "адрес 0x0001f15a"

или вообще не так считать надо и в общем случае посчитать нельзя?


 
Rouse_ ©   (2010-05-19 14:27) [5]

Полный текст ошибки приведи плз.


 
oxffff ©   (2010-05-19 14:30) [6]

Удалено модератором
Примечание: ы?


 
oxffff ©   (2010-05-19 14:35) [7]

Текст ошибки в студию.


 
Rouse_ ©   (2010-05-19 14:38) [8]

А вообще поиск нужно начинать не от EP а от HInstance библиотеки, т.е. LoadLibrary() + 0x0001f15a


 
12 ©   (2010-05-19 15:08) [9]

Текст ошибки в студию.

Не понимаю наверное немного - кажись, все привел уже..

Происходит это так: Запускаю IE, набираю адрес, ничего не происходит секунд 20, потом IE выдает ошибку на сервере.

В Eventloge вижу:
Тип события: Ошибка
Источник события: Application Error
Категория события: (100)
Код события: 1000
Дата:  19.05.2010
Время:  10:20:13
Пользователь:  Н/Д
Компьютер: SAR-279
Описание:
Ошибка приложения httpd.exe, версия 2.2.14.0, модуль ntwdblib.dll, версия 2000.80.194.0, адрес 0x0001f15a.
Данные:
0000: 41 70 70 6c 69 63 61 74   Applicat
0008: 69 6f 6e 20 46 61 69 6c   ion Fail
0010: 75 72 65 20 20 68 74 74   ure  htt
0018: 70 64 2e 65 78 65 20 32   pd.exe 2
0020: 2e 32 2e 31 34 2e 30 20   .2.14.0
0028: 69 6e 20 6e 74 77 64 62   in ntwdb
0030: 6c 69 62 2e 64 6c 6c 20   lib.dll
0038: 32 30 30 30 2e 38 30 2e   2000.80.
0040: 31 39 34 2e 30 20 61 74   194.0 at
0048: 20 6f 66 66 73 65 74 20    offset
0050: 30 30 30 31 66 31 35 61   0001f15a

Пробовал менять dll, нашел в инете 3 версии, подставлял каждую.
Сейчас стоит самая неглючная (критерий: количеству перезапусков Апача. Потому что, всякая версия из этих 3х, работала в конце концов, после того как рестартовал службу апача. Но иногда приходилось по 15 раз рестартовать а иногда раза 2-3 хватало.)

Причем, эта ошибка случается только тогда, когда Апач только стартовал и происходит первое обращение к скрипту PHP, который использует коннект к mssql. После того, как один раз нормально подцепился сервак - все, больше никогда не вылетает, до след.перезагрузки.
После перезагрузки, как правило, опять - Запускаю IE, набираю адрес, ничего не происходит секунд 20, потом IE выдает ошибку на сервере.

Вообщем, вывод, имхо, такой: Надо не выполнять некий код в этой dll.

Для этого его надо локализовать и занопить..


 
Rouse_ ©   (2010-05-19 15:17) [10]

Не факт что нужно нопить. Выложи на рапиду библиотеку, которая выдает ошибку - гляну.


 
GrayFace ©   (2010-05-19 21:30) [11]

Может, в системе чего-то наустановлено, что конфликтует?


 
12 ©   (2010-05-20 13:17) [12]


> Выложи на рапиду библиотеку, которая выдает ошибку - гляну.

если будет время - был бы признателен

вот эта у меня сейчас
http://www.dll.ru/dll/11999.html


 
Rouse_ ©   (2010-05-20 14:21) [13]

Ошибка происходит вот здесь:
7333F15A  MOVSX EAX,BYTE PTR DS:[EDX]
Это внутри тела неэкспортируемой функции, расположенной по адресу 7333F130

Судя по коду функция копирует данные расположенные между двумя кавычками (символ CHAR($27))

Причем код выполнен так что если такого символа в строке не будет - то будет большой бадабум.
Сейчас пропатчу, только немного времени нужно ибо функию с нуля ручками перебирать придется.


 
12 ©   (2010-05-20 14:33) [14]

спасибо! Буду ждать


 
Rouse_ ©   (2010-05-20 15:13) [15]

Проверяй, патчилось все на коленке - протестировал АV не выдает.
В случае если кавычка не найдена то функция просто не копирует ничего.
http://rouse.drkb.ru/other/ntwdblib_patched.zip


 
12 ©   (2010-05-20 15:26) [16]

спасибо еще раз
теперь перезагрузки надо ждать, прямо сейчас не могу перегрузится


 
Rouse_ ©   (2010-05-20 15:27) [17]

Опсь - пардон скачай еще раз, я там забыл после одной из проверок стек выровнять. Адрес тот-же


 
12 ©   (2010-05-20 15:27) [18]

ок.


 
Rouse_ ©   (2010-05-26 19:25) [19]

Ну так что в итоге? Оно?


 
12 ©   (2010-05-27 09:05) [20]


> Rouse_ ©   (26.05.10 19:25) [19]

Двое суток - полет нормальный :)
Спасибо!


 
12 ©   (2010-05-27 09:16) [21]

Розыч, можно и выложить где, объявив как-то типа "Рабочая ntwdblib.dll"
Просто интересно, сколько закачек будет файла


 
Rouse_ ©   (2010-05-27 14:02) [22]

Вечерком могу у себя на сайте разместить, но только если ты текст с описанием сделаешь, что именно этот патч правит. Бо я далек от баз и SQL-я и боюсь описание у меня кривоватое выйдет :)


 
12 ©   (2010-05-27 14:31) [23]

Давай сподвигнемся на сие :)
Скока нервов бы сэкономлено было, пападись она мне сразу где.

Имя : Рабочая ntwdblib.dll
Категория: PHP - Функции для работы с Microsoft SQL Server
Описание1:
 Исправленная библиотека ntwdblib.dll, сделана попытка устранить ошибку в коде dll, проявляющуюся при первом обращении к MSSQL server. Симптомы: "Ошибка приложения php.exe, версия ХХХХ, модуль ntwdblib.dll."
Успешные тесты на winXP-SP3.
Описание2:
 Занялись PHP? Установили готовые пакеты типа Denver/XAMPP или поставили PHP вручную, старательно переписали пример из авторитетного источника и при первом же соединении к серверу видите "Ошибка приложения php.exe, версия ХХХХ, модуль ntwdblib.dll..."?
 Прежде чем занятся переустановкой всего и лихорадочно искать решение проблемы, попробуйте заменить ntwdblib.dll на версию с этого сайта!


 
Rouse_ ©   (2010-05-27 14:32) [24]

Ок, возьму за отправную точку, чуть попозже выложу... Правда счетчика скачек у меня там нема :( От РНР я тоже далек :)


 
[true]TRIx ©   (2010-05-27 15:03) [25]

обратись на этот форум. по этой теме.
http://www.cracklab.ru
http://www.byteme.ru/page.php?hid=aHR0cDovL2NyYWNrbGFiLnJ1L2Yv?


 
12 ©   (2010-06-16 15:43) [26]

работает на ура
Еще раз Розычу спасибо
зы
Категорически надо выкладывать :)


 
Rouse_ ©   (2010-06-16 16:44) [27]

Щас пока нет возможности обновления сайта, как админ вернется - так обновлю :)



Страницы: 1 вся ветка

Текущий архив: 2010.09.12;
Скачать: CL | DM;

Наверх




Память: 0.53 MB
Время: 0.017 c
15-1276613528
bss
2010-06-15 18:52
2010.09.12
Забавная конвертация в variant е


15-1276528983
Юрий Зотов
2010-06-14 19:23
2010.09.12
А вот еще один холиварчик по поводу стиля кодинга


2-1276760149
john-s
2010-06-17 11:35
2010.09.12
Не могу добавить данные типа float в mysql


2-1276964759
DiamondeX
2010-06-19 20:25
2010.09.12
Режим выбора пользователя


15-1273957893
NailMan
2010-05-16 01:11
2010.09.12
Свершилось чудо Маниту