Библиотека Рефераты Курсовые Дипломы Поиск
Библиотека Рефераты Курсовые Дипломы Поиск
сделать стартовой добавить в избранное
Кефирный гриб на сайте www.za4et.net.ru

Компьютеры, Программирование Компьютеры, Программирование

Работа с процессами в С/С++. Основные приемы

Фонарь желаний бумажный, оранжевый.
В комплекте: фонарик, горелка. Оформление упаковки - 100% полностью на русском языке. Форма купола "перевёрнутая груша" как у
87 руб
Раздел: Небесные фонарики
Ночник-проектор "Звездное небо, планеты", черный.
Оригинальный светильник-ночник-проектор. Корпус поворачивается от руки. Источник света: 1) Лампочка (от карманных фанариков); 2) Три
350 руб
Раздел: Ночники
Браслет светоотражающий, самофиксирующийся, желтый.
Изготовлены из влагостойкого и грязестойкого материала, сохраняющего свои свойства в любых погодных условиях. Легкость крепления позволяет
66 руб
Раздел: Прочее

Тимур Хабибуллин Данная статья рассказывает о работе с процессами, модулями, кучами и потоками при помощи билиотеки OOLHELP Работа с процессами - основа, без которой заниматься системным программированием так же бессмысленно, как без знания структуры PE-файлов или организации памяти. Поэтому я поднимаю эту тему вновь и расскажу о работе с процессами посредством функций OOLHELP. Язык программирования: я выбрал C (без плюсиков, т.к. работы с классами в этой статье не будет - после прочтения вы сможете их без труда составить сами) по многим причинам и в первую очередь из-за его низкоуровнего взаимодействия с памятью.записал-считал, все просто и понятно. Перечислить запущенные в системе процессы можно по-разному, я привык пользоваться функциями OOLHELP. Общая последовательность действий при работе с этой библиотекой: делаем "снимок" (S apsho ) системной информации, которая нам необходима, потом бегаем по процессам (а также модулям и кучам). Поэтому начнем с простого - перечислим все процессы. //Перечисление процессов i E umera eProcs(void) { //создаем "снимок" информации о процессах //первый параметр функции - константа, определяющая, //какую информацию нам нужно "снять", а второй - //идентификатор процесса, к которому относится эта //информация. В данном случае это 0 т.к. мы делаем //снимок всех процессов HA DLE pS ap = Crea e oolhelp32S apsho ( H32CS S APPROCESS, 0); bool bIsok = false; //Структура, в которую будут записаны данные процесса PROCESSE RY32 ProcE ry; //установим ее размер, это необходимое действие ProcE ry.dwSize = sizeof(ProcE ry); //теперь определим первый процесс //первый параметр функции - хэндл "снимка" информации //второй - адрес структуры PROCESSE RY32 // rue - в случае удачи, false - в случае неудачи bIsok = Process32Firs (pS ap, &ProcE ry); //здесь можно было вставить роскошный цикл for(.) но это //не совсем удобочитаемо //так что цикл while while(bIsok) { //печатаем имя процесса, его идентификатор //теперь, когда у нас есть структура ProcE ry //То, какую информацию вы из нее возьмете, зависит //только от задачи )) pri f("%s  %u ", ProcE ry.szExeFile, ProcE ry. h32ProcessID); bIsok = Process32 ex (pS ap, &ProcE ry); } //чистим память! CloseHa dle(pS ap); re ur 1; } Вуаля, список всех процессов, аки в диспетчере задач. Теперь мы сделаем кое-что, чего в диспетчере нет! В адресном пространстве каждого процесса (в области памяти, выделенной ему системой) находятся различные библиотеки, которые, собственно, состовляют ПРИЛОЖЕНИЕ. Это и Ker el32 и GDI и еще множество различных. Наша задача - их все пересчитать и переписать! Для этого действа напишем небольшую функцию. //Перечисление модулей процесса i E umera eModules(DWORD PID) { //Входной параметр - идентификатор процесса, чьи модули мы собираемся //перечислять. Во первых создадим s apsho информации о модулях //теперь нам нужна информация о конкретном процессе - процессе //с идентификатором PID HA DLE pMdlS ap = Crea e oolhelp32S apsho ( H32CS S APMODULE, PID); bool bIsok = false; //структура с информацией о модуле MODULEE RY32 MdlE ry; //зададим размер MdlE ry.d

wSize = sizeof(MODULEE RY32); //и найдем первый модуль bIsok = Module32Firs (pMdlS ap, &MdlE ry); //и далее, как и с процессами while(bIsok) { //печатаем имя модуля pri f(" %s ", MdlE ry.szModule); //и переходим к следующему bIsok = Module32 ex (pMdlS ap, &MdlE ry); } //чистим память! CloseHa dle(pMdlS ap); re ur 1; } А теперь немного притормозим и посмотрим, какую еще информацию о процессах и модулях мы получаем: ypedef s ruc agPROCESSE RY32 { DWORD dwSize;  //Рамер структуры DWORD c Usage; //Число ссылк на процесс. Процесс уничтожается, //когда число ссылок становится 0 DWORD h32ProcessID; //Идентификатор процесса - необходим   //во многих функциях DWORD h32Defaul HeapID; //Идентификатор основной кучи - имеет   //смысл только в функциях oolhelp DWORD h32ModuleID; //идентификатор модуля - имеет   //смысл только в функциях oolhelp DWORD c hreads;  //Число потоков DWORD h32Pare ProcessID; //Идентификатор родителя - возвращается    //Даже если родителя уже нет LO G pcPriClassBase; //приоритет по умолчанию всех //создаваемых процессом потоков DWORD dwFlags;   //Зарезервировано CHAR  szExeFile; //Собственно имя процесса } ypedef s ruc agMODULEE RY32 { DWORD dwSize;   //размер структуры DWORD h32ModuleID; //идентификатор модуля DWORD h32ProcessID; //идентификатор процесса, к которому относится   //модуль DWORD Glblc Usage;  //общее число ссылок на этот модуль DWORD Procc Usage;  //число ссылко в контексте процесса,   //по идентификатору которого был создан   //снэпшот. Если равен 65535 - модуль подгружен   //неявно BY E modBaseAddr;  //адрес модуля в контексте процесса DWORD modBaseSize;  //размер проекции HMODULE hModule;  //ссылка на модуль char szModule; //Имя модуля char szExePa h;  //Полный путь к модулю } MODULEE RY32, PMODULEE RY32, LPMODULEE RY32; Обратите внмание: ссылка на модуль (параметр hModule) - это первый байт ДОС-заголовка! Таким образом, мы получаем возможность работать с проекцией при некотором знании структуры PE-файлов. В частности мы можем прочиатать таблицу импорта, и, как правило, - даже переписать ее (это используется при перехвате АПИ). Параметр szExePa h имеет свой "заскок" - иногда полный путь к модулю возвращается со странными вставками и, например, всесто "c:wi dowssys em32advapi32.dll" я иногда получаю "c:x86 proc wi syspa hadvapi32.dll". Как правило для системных задач средней сложности (перехват апи, или, наоборот, перехват стелсов) всего вышеописанного хватает. Но на этом возможности oolhelp не исчерпываются и теперь мы побегаем по потокам! Работа с потоками несколько отличается от работы с модулями - даже если мы сделаем снимок, задав идентификатор какого-либо процесса, функция hread32 ex не остановится, пока не пробежится по ВСЕМ потокам в системе. Поэтому мы должны проверять, к какому процессу принадлежит поток - благо, в структуре HREADE RY32 есть член h32Ow erProcessID - идентификатор породившего поток процесса. Таким образом: i E umera e hreads(DWORD PID) { //Начнем с создания снимка HA DLE p hreadS ap =  Crea e oolhelp32S apsho ( H32CS S AP HREAD, PID); bool bIsok = false; //Структура, описывающая поток HREADE RY32 hrdE ry; //ставим размер hrdE ry.d

wSize = sizeof( HREADE RY32); //Берем первый поток bIsok = hread32Firs (p hreadS ap, & hrdE ry); //и бегаем по всем потокам. while (bIsok) { //проверяем, тому ли процессу принадлежит поток if ( hrdE ry. h32Ow erProcessID == PID) { //Если да, то выводим некотурую информацию. //Хоть она никому нафиг не нужна :о) pri f("%u  %u ", hrdE ry. h32Ow erProcessID, hrdE ry. h32 hreadID); } bIsok = hread32 ex (p hreadS ap, & hrdE ry); } //не забываем чистить память CloseHa dle(p hreadS ap); re ur 1; } Ну вот, у нас есть потоки. Что еще осталось? Правильно, остались кучи. Здесь тоже все очень просто: i E umera eHeaps(DWORD PID) { //Первый параметр - идентификатор процесса //а второй - основная куча //Теперь делаем снимок, чтоб перечислить кучки. HA DLE pS apHeaps = Crea e oolhelp32S apsho ( H32CS S APHEAPLIS , PID); bool bIsok = false; bool bIsokHeap = false; //Структура, в которую будут записываться данные списка кучи HEAPLIS 32 HpLs ; //Структура, в которую будут записываться данные //непосредствнно БЛОКОВ КУЧИ HEAPE RY32 HpE ry; //Ставим размеры. HpLs .dwSize = sizeof(HEAPLIS 32); HpE ry.dwSize = sizeof(HEAPE RY32); bIsok = Heap32Lis Firs (pS apHeaps, &HpLs ); while (bIsok) { //Теперь перечисляем блоки кучи //этот код я привел, чтобы стало ясно //как получить данные по блокам //но он жрет много времени //так что я его закомментирую - если вам интересно //можете погонять. / bIsokHeap = Heap32Firs (&HpE ry, PID, HpLs . h32HeapID); while(bIsokHeap) { //Выводим немного информации pri f("%u ", HpE ry.dwBlockSize); //Шагаем дальше bIsokHeap = Heap32 ex (&HpE ry); } / //выводим инфу о куче в общем pri f("%u ", HpLs .dwSize); //шагаем дальше bIsok = Heap32Lis ex (pS apHeaps, &HpLs ); } CloseHa dle(pS apHeaps); re ur 1; } Ну вот, теперь тока осталось написать о структурах HREADE RY32, HEAPE RY32 и HEAPLIS 32: ypedef s ruc ag HREADE RY32{ DWORD dwSize;  //размер структуры DWORD c Usage; //число ссылок DWORD h32 hreadID; //идентификатор DWORD h32Ow erProcessID; //родительский процесс LO G pBasePri;  //основной приоритет (при инициализации) LO G pDel aPri; //изменение приоритета DWORD dwFlags; //зарезервировано } HREADE RY32; ypedef HREADE RY32 P HREADE RY32; ypedef HREADE RY32 LP HREADE RY32; ypedef s ruc agHEAPE RY32 { DWORD  dwSize; //размер структуры HA DLE hHa dle;     // хэндл этого блока DWORD  dwAddress;   // линейный адрес начала блока DWORD  dwBlockSize; // размер блока в байтах DWORD  dwFlags; //флаги / LF32 FIXED Блок памяти имеет фиксированную позицию LF32 FREE  Блок памяти не используется LF32 MOVEABLE  Блок памяти может перемещаться / DWORD  dwLockCou ; число "замков" DWORD  dwResvd;  // зарезервировано DWORD  h32ProcessID;   // родительский процесс DWORD  h32HeapID;      // идентификатор кучи } HEAPE RY32; ypedef HEAPE RY32   PHEAPE RY32; ypedef HEAPE RY32   LPHEAPE RY32; ypedef s ruc agHEAPLIS 32 { DWORD  dwSize; //размер структуры DWORD  h32ProcessID;   // родительский процесс DWORD  h32HeapID;      //куча в контексте процесса DWORD  dwFlags; //флаг. Значение всегда одно: // HF32 DEFAUL - основная куча процесса } HEAPLIS 32; вызовы функций E umera eHeaps, E umera e hreads и E umera eModules можно проводить из E umera eProcs.

Полагая, что что мемуары писателей ХХ века составляют единую текстовую совокупность, автор работы рассматривает своеобразие конструирования их внутренней системы, основные повествовательные планы, приемы их организации и характер соединения в единое целое, роль в этом процессе пространственно-временных связей, местоположение автора и биографического героя и их модификаций, основные приемы их создания. Основное внимание уделяется внутренней, структурной организации мемуарного текста. Автор диссертации ставит перед собой конкретные задачи: Определить типологические признаки воспоминаний писателей как самостоятельной разновидности мемуарного жанра и проследить общие тенденции его развития. Рассматривая мемуары писателей как художественный текст, показать, что изображение детства в них строится по определенной модели, в кото рой использованы мировые архетипы и мифологемы. Выделив отдельные повествовательные планы, определить их место в мемуарном повествовании. Выявить основные формы художественного времени и приемы их изображения (в частности, ретроспекцию, проспекцию, ассоциацию)

1. Основные приемы работы в Ехсеl

2. Основные приемы самовоспитания

3. Проблема жанра. Основные приемы комического (А.С. Грибоедов "Горе от ума")

4. Основные приемы формирования однолетник бобово-злаковык агроценозов в лесостепи Среднего Поволжья

5. Арбитражный процесс: основные понятия и документы

6. Текстовый редактор MS Word. Основные приемы, применяемые при создании текста
7. Технологический расчет основных процессов открытых горных работ
8. Разработка основных биотехнологических процессов производства и системы управления качеством липидных косметических препаратов (на примере тоников для проблемной кожи)

9. Лабораторные работы по теории и технологии информационных процессов

10. Основные направления работы органов внутренних дел

11. Разработать технологический процесс и спроектировать механический участок обработки детали "Вал первичный" №41526-96 с годовым выпуском 350000 штук при двух сменной работе

12. Основные стороны процесса общения и их характеристика

13. Изучение основных правил работы с радиоизмерительными приборами (№23)

14. Определение влияния ассортимента ткани на основные технико-экономические показатели работы прядильного и ткацкого производства

15. Проектирование основных составляющих процесса управления по функциям планирования, организации, мотивации и контроля для некоммерческого образовательного учреждения "Автошкола — СТМО"

16. Навыки расчета основных экономических показателей и определение мероприятий повышения эффективности работы строительного предприятия

Трехколесный велосипед Funny Jaguar Lexus Racer Trike (цвет: бронза).
Детский трехколесный велосипед с колясочной крышей на колесах ПВХ – настоящее спасение для мам с маленькими детьми. Главное место для
3600 руб
Раздел: Трехколесные
Карандаши цветные, трехгранные, 18 цветов.
Один цвет желтый - флюо! Мягкие, но при этом очень прочные карандаши, легко затачиваются и не крошатся. Насыщенные штрихи на бумаге. Не
305 руб
Раздел: 13-24 цвета
Противень глубокий "Mayer & Boch", мраморная крошка, 30,9 см.
Противень MAYER&BOCH изготовлен из высококачественной углеродистой стали с антипригарным мраморным покрытием. Толщина изделия составляет 4
348 руб
Раздел: Противни

17. Основные методы и содержание профориентационной работы

18. 1. Римский гражданский процесс: понятие, формы, основные черты, вещи в римском праве. Классификация вещей

19. Методология информационной работы в области здравоохранения: процесс изменения поведения в отношении здоровья

20. Как улучшить результаты собеседования при приеме на работу

21. Бизнес-процессы: работа над ошибками

22. Анализ процесса социализации учащихся средней школы: особенности и основные тенденции развития
23. Принципы воспитания, как основные теоретические положения процесса воспитания, и их характеристика.
24. Экологическое воспитание учащихся начальных классов сельской школы в процессе кружковой работы

25. Контрольная работа по уголовному процессу

26. Методика собеседования при приеме на работу

27. Экологическое воспитание учащихся начальных классов сельской школы в процессе кружковой работы

28. Приемы воспитательного аспекта образовательного процесса

29. Кондорсе про основні епохи історичного процессу

30. Конверсия основных положении теории спортивной подготовки в процессе физического воспитания

31. Калькуляция себестоимости работ и услуг в основной деятельности речного транспорта

32. Расчет себестоимости и основных показателей работы подвижного состава.

Тубус - карта "План покорения МИРА", магнитная, на холодильник.
Подарок заядлому путешественнику. Вы наверняка уже знакомы со знаменитой картой мира, верхний слой которой стирается монетой по принципу
1100 руб
Раздел: Прочее
Маркеры-кисти "Zendoodle. Edding 1340", 10 штук.
Набор фломастеров с гибким наконечником в виде кисточки. Различная толщина линии. Идеально подходит для раскрашивания печатей. Чернила на
664 руб
Раздел: 7-12 цветов
Дневник школьный "Голубой щенок".
Формат: А5+ (210х160 мм). Количество листов: 48. Внутренний блок: офсет 70 г/м2. Способ крепления: ниткошвейный. Переплет: твердый с
381 руб
Раздел: Для младших классов

33. Основные черты феодального уголовного права и процесса по "Каролине"

34. Приемы обращения с лабораторным оборудованием и основы техники безопасности при работе в химическом кабинете

35. Значение анализа газодинамики процесса термолиза промбытотходов при разработке основного агрегата

36. Краткое описание основных технологических процессов топливного производства

37. Лабораторные работы по Теории вычислительных процессов и структур

38. Стандарты и методологии моделирования бизнес-процессов. Управление основной деятельности риэлторской фирмы
39. Формирование действия контроля в процессе работы над вычислительными приёмами и навыками у младших школьников
40. Расчет себестоимости и основных показателей работы подвижного состава

41. Основные теории процесса эволюции человека

42. Разработка схемы дискового почвообрабатывающего орудия, расчет основных параметров и анализ его работы. (вариант №1, №20)

43. Технологический процесс лесосечных работ и обработка сырья

44. Организация основных трудовых процессов в растениеводстве

45. Основные этапы ревизии и организация ревизионного процесса

46. Сравнительный анализ "Основных правил работы ведомственных архивов" и "Основных правил работы архивов организаций"

47. Элементы финансовой отчетности в соответствии с МСФО (международными стандартами финансовой отчетности) и основные этапы учетной работы

48. Основные закономерности оползневых процессов

Магнитный театр "Три поросенка".
Увлекательное театральное представление с любимыми героями русской народной сказки «Три поросенка» и вашим ребенком в роли главного
308 руб
Раздел: Магнитный театр
Набор для обучения "Учись считать", 128 штук.
Материал: дерево. В наборе: счётные палочки - 20 штук. Круги - 30 штук. Квадраты - 30 штук. Треугольники равносторонние - 10
320 руб
Раздел: Счетные наборы, веера
Беговел "Funny Wheels Rider Classic" (цвет: зелёный).
Беговел - это современный аналог детского велосипеда без педалей для самых маленьких любителей спорта. Удобный и простой в обучении,
2500 руб
Раздел: Беговелы

49. Организация процесса геологоразведочных работ

50. Основные направления, выдвинутые в процессе проведения административной реформы и оптимизация механизма управления

51. Порядок установления и сроки испытания при приеме на работу: исследование возникающих проблем

52. Уголовный процесс и его основные понятия

53. Использование проектной работы на уроках английского языка в 7-8 классах в процессе формирования языковой компетенции

54. Начальные приемы работы в CorelDraw
55. Процесс моделирования работы коммутационного узла
56. Основные материалы микроэлектроники, применяемые в процессе ее развития

57. Основные положения теории переходных процессов в электрических цепях

58. Процесс производства сахара-рафинада. Основные виды печенья

59. Организация технологического процесса склада. Экономическая эффективность механизации погрузочно-разгрузочных работ

60. Основные элементы и процесс формирования имижда

61. Основные тенденции и институциональные формы глобализации, их влияние на трансформационные процессы в Украине

62. Основные стадии процесса выработки организационной стратегии

63. Оценка и отбор кандидатов при приеме на работу

64. Собеседование при приеме на работу

Набор детских столовых приборов Apollo "Fluffy", 2 предмета.
В набор входят столовая ложка и столовая вилка. Широкая и каплевидная форма рукояток приборов удобна для захвата как взрослой, так и
386 руб
Раздел: Ложки, вилки
Сушилка для белья на ванну "Ника СБ4".
Размеры (в сложенном виде): 717х92х615 мм. Размеры (в разложенном виде): 17х1116 мм. Длина сушильного полотна: 10 м. Сушилка для белья
563 руб
Раздел: Сушилки напольные
Набор салатниц "Loraine", 10 предметов.
Форма: круглая. Материал: стекло, пластик. Цвет салатниц: прозрачный, рисунок. Диаметр: 17 см, 14 см, 12,5 см, 10,5 см, 9 см. Объем: 1,1
318 руб
Раздел: Наборы

65. Основные принципы проектирования управленческих процессов на ООО "Принт-Экспресс"

66. Основные направления в работе с ансамблем

67. Внеклассная работа по химии: использование основного и дополнительного образования

68. Методы и приемы словарной работы

69. Основные направления работы классного руководителя

70. Приемы работы на токарно-винторезном станке
71. Развитие математических способностей учащихся в процессе внеклассной работы по математике в начальной школе
72. Развитие творческого воображения в процессе работы над сказками

73. Проведение монтажно-сборочных работ основных узлов оборудования

74. Процессы термической и химикотермической обработки деталей. Технологические приемы изготовления шкал, надписей и рисунков

75. Контроль работы сушилок и меры по устранению брака в процессе сушки. Топки для сушилок

76. Ознакомление с основными направлениями работы психолога

77. Основные формы проявления психики человека: процессы, состояния, свойства

78. Выявление эффективности влияния различных приемов на процесс коррекции конструктивной деятельности детей младшего школьного возраста с задержкой психического и речевого развития

79. Основные демографические понятия и процессы

80. Психосоциальная работа и проблемы консультативного процесса

Универсальная вкладка для дорожных горшков (фиолетовый).
Вкладка для дорожных горшков подойдет для любого дорожного горшка, она хорошо ложится на сиденье, обеспечивая комфорт и удобство в
649 руб
Раздел: Прочие
Настольная игра "Звезда Африки".
Звезда Африки - настольная игра, целью которой является добыть алмаз и доставить его в пункт назначения.Историческая справка. Звезда
327 руб
Раздел: Классические игры
Пупс "Baby Love Nursery".
Пупс изготовлен с хорошей степенью детализации, порадует ребенка наличием дополнительных аксессуаров, позволяющими создать реалистичную
369 руб
Раздел: Классические пупсы (без пола)

81. Проектирование строительных процессов при производстве работ нулевого цикла

82. История создания и анализ работы основных мировых производителей легковых автомобилей

83. Разработка технологии работы промышленной сортировочной станции и расчёт основных ее параметров

84. Основные положения теории переходных процессов

85. Основные параметры технологических процессов

86. Анализ основных показателей работы предприятия РУП "Завод средств комплексной автоматизации": объемов выпускаемой продукции, себестоимости, прибыли
87. Анализ основных технико-экономических показателей работы предприятия РУП "Завод "Электроника"
88. Определение основных экономических показателей работы и анализ выполнения плана ОСП "Городского почтамта"

89. Расчет основных показателей работы предприятия

90. Расчет основных технико-экономических показателей работы участка цеха машиностроительного предприятия

91. Деревянные конструкции (лабораторные работы)

92. Штукатурные работы с основами охраны труда

93. Производство работ по возведению жилого кирпичного здания

94. Реактивные двигатели, устройство, принцип работы

95. Оценка безотказной работы технической аппаратуры (задачи)

96. Основные звездные характеристики. Рождение звезд

Шкатулка для рукоделия, 28x21x15 см, арт. 80887.
Такие шкатулки послужат оригинальным, а главное, практичным подарком, в котором замечательно сочетаются внешний вид и функциональность.
1618 руб
Раздел: Шкатулки для рукоделия
Набор капиллярных ручек "Fine Writer 045", 20 цветов, 0,8 мм, пластиковая банка.
Цвет чернил - ассорти. Набор - да. Количество в наборе - 20. Форма корпуса - шестигранная. Толщина линии - 0,45 мм. Диаметр пишущего узла
317 руб
Раздел: Капиллярные
Машинка закаточная винтовая "Мещёра-2".
Машинка идеальна для домашнего консервирования, она проста в использовании и надежна в работе. Конструкция машинки обеспечивает ее
337 руб
Раздел: Консервирование

97. ОСНОВНЫЕ МЕТОДЫ ГЕНЕТИКИ

98. How "DNA" testing works Анализ "ДНК" как проверяющие работы)

99. Основные проблемы генетики и механизм воспроизводства жизни


Поиск Рефератов на сайте za4eti.ru Вы студент, и у Вас нет времени на выполнение письменных работ (рефератов, курсовых и дипломов)? Мы сможем Вам в этом помочь. Возможно, Вам подойдет что-то из ПЕРЕЧНЯ ПРЕДМЕТОВ И ДИСЦИПЛИН, ПО КОТОРЫМ ВЫПОЛНЯЮТСЯ РЕФЕРАТЫ, КУРСОВЫЕ И ДИПЛОМНЫЕ РАБОТЫ. 
Вы можете поискать нужную Вам работу в КОЛЛЕКЦИИ ГОТОВЫХ РЕФЕРАТОВ, КУРСОВЫХ И ДИПЛОМНЫХ РАБОТ, выполненных преподавателями московских ВУЗов за период более чем 10-летней работы. Эти работы Вы можете бесплатно СКАЧАТЬ.