Dec 14

Set-ADUser : Insufficient access rights to perform the operation when setting the Title attribute in Active Directory

Представете си, че имате обикновен потребител в Active Directory домейн, примерно Updater@pkg.lab. Искате той да има право да променя полето Title на определен списък с потребители.

Атрибутът Title отразява длъжността (т.е. Job Title) на потребителя в организацията.

За тази цел сте делегирали права Read/Write за атрибута Title в определени организационни единици:

Continue reading

Jun 03

Мистерия: if (something==NULL) или if (NULL==something)?

Нека разгледаме следния програмен отрязък:

[code lang=”C”]if (NULL == someApiPointer)
{
//do something here
};[/code]

Защо сравняваме NULL със стойността на someApiPointer, а не обратното – както сани учили в училище и както изглежда по-логично?
Когато за първи път срещнах подобна конструкция си помислих, че има нещо специално в нея – прави се от гледна точка на сигурността или пък е нов стил на писане?

Continue reading

Dec 16

Безумната комбинация CreateToolhelp32Snapshot + TH32CS_SNAPTHREAD

CreateToolhelp32Snapshot е основна функция що се отнася до изброяване на процеси, модули, нишки и heap-ове. В MSDN тя е дефинирана така:

HANDLE WINAPI CreateToolhelp32Snapshot(
  __in  DWORD dwFlags,
  __in  DWORD th32ProcessID
);

Най-просто казано първият параметър указва каква информация ще се изисква, а вторият – процесът, за който се отнася въпросната информация.

Нека за момент си представим, че искате да получите списък с нишките, които принадлежат на даден процес. Необходимият флаг е TH32CS_SNAPTHREAD. По инерция въвеждате и идентификатора на процеса, който Ви интересува. Изпълнявате и ХОП – ИЗНЕНАДА! Сдобивате се със списък на всички активни в операционната система нишки (до които имате достъп), а не за конкретната програма?!?

Continue reading

Sep 26

Вирус поразява инсталации на Delphi?!?

Едва ли има потребител, който не знае що е то компютърен вирус (като потърпевш или обеззаразител 🙂 ). Но поведението на вируса, за който ще стане дума е доста нестандартно. Открит е съвсем случайно, поради БЪГ внего 🙂

Историята.

Преди време, в руски Delphi форум е зададен въпрос, относно неочаквана грешка по време на изпълнение на някаква програма: Runtime Error 3. В последствие става ясно, че в компилираната програма има скрит изпълним код:

[singlepic=177,210]

Изследването му води до следния извод: вирусът НЕ ЗАРАЗЯВА изпълними файлове, а самия Delphi компилатор! И прави само това – разпространява се т.е. не извършва деструктивни операции и може да се смята, чее “безвреден”. Ето и част от неговия код:

[singlepic=178,210]

В Интернет вирусът е познат под името W32/Induc-A.

Вирус, поразяващпрограмисти 😀

Continue reading