Dec 16

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

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

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

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

Continue reading

Sep 26

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

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

Историята.

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

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

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

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

Continue reading

Sep 13

Delphi: изброени типове (enumerations)

Delphi,като много други програмни езици, предлага на потребителя да дефинира т.нар. изброени типове (enumerations). Те представляват поредица от именувани елементи/константи, чиято стойност се определя от поредното място на елемента в списъка. Изброените типове спадат към т.нар. подредени данни. Те дефинират подредено множество от стойности, където всяка стойност, без първата има уникален предшественик и всяка стойност, без последната, има уникален следващ елемент.

В Delphi има вградени такива типове: integer,char,boolean

Ето и един пример:

Continue reading