Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 перегрузка системных функций. Дубль 2  [new]
Brasileiro
Member

Откуда:
Сообщений: 203
Уважаемые модераторы, я сам являюсь поставщиком и внедренцем системы. И что я с ней делаю - дело мое!!! Суть взлома - попытка найти брешь в обороне программистов, проверка их профессиональных качеств и возможных способов обхода ключа!!!
Оригинал темы - https://www.sql.ru/forum/actualthread.aspx?tid=667296
Мне заявили, что невозможно обмануть способ, который они придумали (сверять дату создания БД). На что я ответил, что на сервере можно откатить дату назад, затем мне сообщили, что во всех процедурах системы ставится GetDate и что это - системная функция, что если дата на сервере будет "старой", то нет возможности правильно вести учет, т.е. дата документов тоже будет старой (по крайней мере по умолчанию).
Я не публикую никаких взломов и подобным бредом не страдаю, просто если можно подпихнуть системе новый GetDate (в теле функции прибавить пару месяцев), то значит мне надо их пороть и лишать премии. Размышляя логично, я могу предположить, что такое возможно.

Далее по теме:
автор
use tempdb
go
create function dbo.GetDate()
returns int
as
begin
declare @i int
set @i=1

return @i
end
go

select dbo.getdate()

Не обязательно создавать в темпе, если обращение идет dbo.GetDate, то достаточно сделать с рабочей БД данную функцию.
В скриптах хранимых процедур везде написано просто GetDate, исправлять несколько десятков сотен процедур - сложно, вряд ли кто-то будет этим заморачиваться.
Есть возможность подменить GetDate без указания dbo.?
27 май 09, 16:46    [7235916]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]
Glory
Member

Откуда:
Сообщений: 104760
Brasileiro

Есть возможность подменить GetDate без указания dbo.?

Конечно есть. Все просто
1.
Достаньте исходники MSSQL
Внесите в них нужные изменения в части, которая отвечает за работу системной функции GetDate
Скомпилируйте исходники


2. Напишите резидентную программу, которая будет перехватывать все обращения на запрос системного времени. И вставьте туда проверку для возврата MSSQL-ю нужного вам значения

Успехов
27 май 09, 17:01    [7236062]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]

Guest
вариант три - как обмануть - создать новую базу с новой датой создания и про импортировать в неё всё что есть в старой базе.
27 май 09, 17:14    [7236186]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]
locky
Member

Откуда: Харьков, Украина
Сообщений: 62034
Можно повесить хук на ядро скуля.
Когда-то тут пробегала статья, касательно этого.

-------------------------
There’s no silver bullet!
27 май 09, 17:27    [7236281]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]
Brasileiro
Member

Откуда:
Сообщений: 203
Импортировать не получится, там триггеров и процедур уйма
27 май 09, 17:40    [7236358]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]
Glory
Member

Откуда:
Сообщений: 104760
Brasileiro
Импортировать не получится, там триггеров и процедур уйма

А достать исходники MSSQL ?
27 май 09, 17:41    [7236370]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]
Brasileiro
Member

Откуда:
Сообщений: 203
Glory, если не можешь ответить по теме, засунь язык, сам знаешь куда.
______________________________
Все из Бразилии. www.brawoo.ru
27 май 09, 17:44    [7236391]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]
Glory
Member

Откуда:
Сообщений: 104760
Brasileiro
Glory, если не можешь ответить по теме, засунь язык, сам знаешь куда.

Что, родной, не выходит каменный цветок ?
Может будет дешевле купить лицензию ?
27 май 09, 17:46    [7236404]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]
Brasileiro
Member

Откуда:
Сообщений: 203
Читай выше, идиот.
______________________________
Все из Бразилии. www.brawoo.ru

Сообщение было отредактировано: 28 май 09, 06:23
27 май 09, 17:50    [7236438]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]
Glory
Member

Откуда:
Сообщений: 104760
Brasileiro
Читай выше, идиот.

Ну, конечно, все идиоты их придымывают системные функции.
И только "умные" их перегружают
27 май 09, 17:53    [7236452]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
человеку сказали, надо лишить премии, тогда премию получишь ты. вот он и лезет из кожи)))
забавненько..
батенька, ко всему, к чему есть физический доступ взломать можно.. вопрос в цене вопроса. но я уверен, ваша премия программистам не сравнится с ценой взлома..

для спящего время бодрствования равносильно сну
27 май 09, 17:58    [7236480]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]
vino
Member

Откуда:
Сообщений: 1191
Алексей2003, это точно! Хакер запросит соответствующую сумму, и любую систему защиты сломает (и скорее всего в Вашем случае - не в MSSQL слое, а на уровне клиентского ПО). Только вот взлом этот будет разумным, если продукт дорогой и массовый, а иначе - купят без взлома.
Если интересно, почитайте, например, статьи на xakep.ru и на wasm.ru
27 май 09, 18:34    [7236641]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]
Алексей2003
Member

Откуда: Москва
Сообщений: 5645
ЗЫ: на счет замены всех скриптов где есть getdate на dbo.getdate
это конечно муторно, но когда делаешь ручками. я вам за полдня накатаю скрипт, который прошерстит ВСЕ скрипты базы, по которым хранится текст и заменит getdate на dbo.getdate.

для спящего время бодрствования равносильно сну
27 май 09, 18:39    [7236662]     Ответить | Цитировать Сообщить модератору
 Re: перегрузка системных функций. Дубль 2  [new]
Адвокат дьявола
Guest
Алексей2003
ЗЫ: на счет замены всех скриптов где есть getdate на dbo.getdate
это конечно муторно, но когда делаешь ручками. я вам за полдня накатаю скрипт, который прошерстит ВСЕ скрипты базы, по которым хранится текст и заменит getdate на dbo.getdate.

Раз:
declare @sql nvarchar(max);
set @sql = 'select get' + 'date();'
exec (@sql);
Два:
-- From, say, installer
insert into dbo.SomeReallyFreakingTable (SomeStr)
select 'getdate()';

...
-- From application code
declare @sql nvarchar(max);
select @sql = N'select ' + SomeStr + ';' from dbo.SomeReallyFreakingTable;
exec (@sql);

Сон разума рождает чудовищ
27 май 09, 23:58    [7237392]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить