eXeL@B —› Основной форум —› Перехват (мониторинг) SQL запросов к БД Access |
Посл.ответ | Сообщение |
|
Создано: 30 апреля 2009 21:44 · Личное сообщение · #1 |
|
Создано: 01 мая 2009 02:13 · Поправил: arnix · Личное сообщение · #2 Это зависит от того как прога подключается к базе. Вкратце - если по Jet (а скорее всего по Jet), то можно в реестре включить незадокументированную(?) фичу JETSHOWPLAN после чего все запросы будут писаться в текстовый файл в папке My Documents. Подробности - hxxp://articles.techrepublic.com.com/5100-10878_11-5064388.html А если подключение через ODBC, то в ODBC Data Source Administrator кажется есть странчка Tracing. |
|
Создано: 02 мая 2009 10:16 · Поправил: Модератор · Личное сообщение · #3 |
|
Создано: 02 мая 2009 10:47 · Личное сообщение · #4 |
|
Создано: 02 мая 2009 11:50 · Поправил: BaGiE · Личное сообщение · #5 Code:
Code:
Можно попробовать поискать написанную выше сигнатуру в файле msjet40.dll Я проверил на Windows 2000 SP0, Windows XP SP3, Windows Server 2003 SP2, Windows Server 2008 SP1. Такая сигнатура указывает на функу в которой по адресу [esp+$0С] передается параметр в котором находится указатель на строку запроса в UNICODE. Так что похучить эту функу и вперед В Windows XP SP3, msjet40.dll ver. 4.0.9514.0, RVA = 00100223 ЗЫ: тулзу чтоли написать чтобы автоматом сама делала |
|
Создано: 02 мая 2009 13:02 · Поправил: RUNaum · Личное сообщение · #6 На чем программа написана? Если delphi, то в 99% случая решается просто. Получаем незапакованный exe, открываем его удобным для вас редактором ресурсов, заходим в RCData, там в 50% случаев будет некий DataModule, на котором лежит куча *Query/*Table, смотрим запросы через published свойства. В ином случае, проще всего будет открыть hex-вьювером и найти поиском основные statements: select, insert, update & etc. Крайний вариант уже отлаживать. Если прога дельфовая, просто выложите на обменник, постараюсь вам помочь. --- Вариант с хуком на самом деле значительно вернее и правильнее. |
|
Создано: 02 мая 2009 13:44 · Личное сообщение · #7 |
|
Создано: 02 мая 2009 14:10 · Личное сообщение · #8 |
|
Создано: 02 мая 2009 14:54 · Личное сообщение · #9 |
|
Создано: 02 мая 2009 18:15 · Поправил: BaGiE · Личное сообщение · #10 RUNaum это просто предположение работал как то с прогой на VB6 и у которой база на Access 97. Вроде бы в те времена еще не было ADO ЗЫ: сделал автоматизированную тулзу |
|
Создано: 02 мая 2009 22:35 · Поправил: RUNaum · Личное сообщение · #11 BaGiE, глянул, логирование вашей тулзой работает без видимых проблем. Уж очень AdvApiHook.pas от ms-rem'a похож на реализацию madCodeHook (madshi.net). Вплоть до некоторых мелочей, которые вообще не должны иметь ничего общего. Меня давно это смущало, сейчас в очередной раз смутился. Такое ощущение, что не мало было взято madshi из открытых сырков ms-rem'a, а в последствие закрыто. |
|
Создано: 03 мая 2009 00:52 · Личное сообщение · #12 |
|
Создано: 03 мая 2009 09:45 · Личное сообщение · #13 |
|
Создано: 03 мая 2009 23:54 · Личное сообщение · #14 |
|
Создано: 04 мая 2009 12:18 · Личное сообщение · #15 Поглядел я прогу и там используется DAO 3.6. Пока не знаю как глядеть запросы, но будет время еще погляжу. Кстати в теле программы нашел единственный запрос типа SELECT WHERE и возможно там всего 1 таблица и только этот запрос и ничего более. Из dao360.dll идут некоторые вызовы в msjet40.dll но текста в параметрах не передается, может быть запросы скомпилированные. Пока не знаю. |
|
Создано: 04 мая 2009 20:16 · Поправил: BaGiE · Личное сообщение · #16 Вот что еще нарыл. Пока не знаю как перехватить запросы к БД, но зато удалось отковырять саму БД. Сделана она не в совсем стандартном формате. Вернее это обычный Access97, но в заголовке файла кое-что изменено и она не открывается. Сначала я думал что может быть работать будет только через DAO и написал простенькую программу но выскакивала та же ошибка - база данных уже используется или что-то типа того и не открывалась. В общем если брякнуть программу по адресу 1104E893 то мы остановимся на том месте когда программа подменила ворованные байты в БД на настоящие и просто копируем БД куда хотим - она становится рабочая =) Правда с паролем - но он легко брутится или удаляется чем-нибудь. dump.ru/file/2555377 не смотрите что файл называется myphoto.rar. там лежит БД пароль на архив - это_лоховская_защита в архиве БД и ридми и пароль к самой БД |
|
Создано: 04 мая 2009 20:52 · Личное сообщение · #17 |
|
Создано: 04 мая 2009 21:04 · Поправил: BaGiE · Личное сообщение · #18 Fr2elancer пишет: Как я понял, Вашей тулзой JetLogger здесь не обойтись? Неа. Она работает только если прога использует ADO/ADO.NET и поставщик данных Microsoft.Jet.OLEDB.4.0 Fr2elancer Значит в итоге требовалась сама БД? Логи хотели собирать именно для этого? //new Кстати а как там работает ODBC? Ядро Jet одно и то же и интересно JetLogger с прогой через ODBC работать будет? Хотя конечно что DAO, что ODBC полная фигня и щас не актуально на мой взгляд. ADO/ADO.NET рулит |
|
Создано: 04 мая 2009 23:38 · Личное сообщение · #19 |
|
Создано: 05 мая 2009 08:32 · Личное сообщение · #20 |
|
Создано: 14 января 2012 14:10 · Личное сообщение · #21 Сори если не совсем в тему. Вопрос попутный возник. Есть база, есть клиентская часть. В базе ключевые поля пошифрованы и выглядят отак ›?ҐЙDыY®c‘єn[. Естественно в клиентской части они вполне читабельны. Можно ли как-то перехватить каким образом шифруются эти строки, расшифровать их, заменить на нужные мне значения и зашифровать обратно, чтобы програма их приняла? Понимаю что тема древняя но все же... |
eXeL@B —› Основной форум —› Перехват (мониторинг) SQL запросов к БД Access |