середа, 23 вересня 2009 р.

IP when Reverse engeneer

Protecting IP is good thing when doing this doesn't use police methods. What do you think about Reflector? Very useful tool, huh? But it is like spy looking at which methods you are investigating. Each link in the decompiler method that links to class name looks like this : http://www.aisto.com/roeder/dotnet/Default.aspx?Target=code://mscorlib:2.0.0.0:b77a5c561934e089/System.Void
It's like when you are using microscope somebody else looking at the same things that you are looking. Not friendly.

To check this you can go to Reflector, select class, or method code and copy it. After that go to VS to HTML designer and use command Paste Alternate from Edit menu. Have a nice digging with Reflector :))


вівторок, 25 грудня 2007 р.

Невидимый администратор

Работал я давненько с SQL Server 2000 в качестве разработчика. Разрабатывал себе БД, правда с одной особенностью. Работали все на одном серваке, и с одной базой. Прав для администрирования сервера не было, и все приятности типа профайлера были не доступны. Такое тяжелое положение вещей и заставляло меня мечтать про админские права, и чего уж греха таить по возможности, чтобы они оставались подольше. И вот долгожданный день настал и за трудовые заслуги перед Отечеством мне разрешили пользоваться благами цивилизации в виде профайлера. Сам факт недолговечности данных прав заставил меня подумывать над тем чтобы оставить их себе при возможности.
Сперва я подумал, что можно создать еще одну учетную запись SQL Server. Но созданная обычным способом учетная запись была бы очень заметна. Учетные записи SQL Server 2000 хранит в таблице dbo.sysxlogins из базы данных master. Признак того, что учетная запись является членом роли sysadmin определяется установленным битовым флагом 16 в поле xstatus. Так как эта таблица является не документированной, это позволяло надеяться, что напрямую ее никто проверять не будет, а вместо этого воспользуется соотвествующими хранимыми процедурами или представлениями. Для того чтобы скрыть я решил попробовать изменить системные ХП. По умолчанию SQL Server запрещает любые модификации системных объектов, но после выполнения приведенного ниже скрипта это становится возможным.

sp_configure 'allow updates', 1
GO
RECONFIGURE WITH OVERRIDE

Выполнение данного скрипта позволяет заниматься черной магией и начать настройку SQL Server. Конечно стоит понимать что изменение параметров которые не документированы и которые используются в неизвестном месте могут повлечь за собой непредсказуемые последствия.
Чтобы скрыть свою учетную запись я решил использовать следующий метод: Использовать дополнительный флаг 4096 который будет использоваться как признак sysadmin в GUI. Это позволить как создать пользователя без админских прав, который будет отображаться как sysadmin, так и спрятать учетные записи обладающие правами sysadmin. Я поменял ХП sp_addsrvrolemember, sp_dropsrvrolemember и представление syslogin так, чтобы они использовали флаг 4096. Суть этих изменений следующая:

  1. При добавлении учетной записи в роль sysadmin необходимо устанавливать сразу два флага 16 и 4096.
  2. При удалении учетной записи из роли sysadmin необходимо снимать только один флаг 4096.(Это исключительно, чтобы кто-то не снял админские права сначала добавив, а потом удалив из роли sysadmin).
  3. Использовать флаг 4096 вместо 16 как признак sysadmin в представлении syslogins.

Еще пришлось поменять флаги в таблице spt_values расположенной в БД master. Таблица использовалась SQL Manager для отображения списка администраторов. Необходимо в записях выбранных по запросу

select * from spt_values where type='SRV'

поменять значения соответсвующие sysadmin с 16 на 4096. Эти строки используются в GUI Enterprise Manager для определения каие флаги отвечают, за какую группу серверных ролей для учетной записи. После сделанного у меня оказалась учетная запись с административными правами, но которая не видима штатными средствами.