1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска

  1. gemer
  2. gemer
  3. gemer
  4. gemer
  5. gemer
    Наконец наступил момент когда вы готовы показать ваше творение миру. И если это коммерческое приложение, то желательно сразу же позаботиться о защите программного кода от взлома злоумышлиниками. Для написанных на языке java программ это существенная проблема, так как существует несколько программ, которые позволяют декомпилировать java байт код обратно в тестовый формат java файлов проекта. Одним из наиболее известных и популярных декомпиляторов на данный момент является продукт Павла Кузнецова (Pavel Kouznetsov) под названием JAD . Для того чтобы научиться защищать свой труд от взлома, желательно освоить хотябы базовые приемы которые используют злоумышленники. Используя автоматически генерируемый шаблон приложения создадим простой Eclipse RCP проект. Для этого вызовем мастер из меню: «File->New->Plug-in Development->Plugin Project». Во второй закладке мастера дадим имя проекту «com.berdaflex.obfuscatedmail». На следующей странице выберем радиокнопку для указания того, что это Rich Client Application. На последней странице мастера выберем шаблон проекта «RCP Mail Template» и нажимаем кнопку «Finish». Для удобства развертывания (создания автономного) приложения создадим файл конфигурации продукта. Для этого указываем мышкой на проект в панели навигатора и нажатием правой кнопки мыши вызываем контекстное меню. В этом меню выбираем «New->Product Configuration». В настройках задаем имя продукта «obfuscatedmail» и из возможных вариантов инициализации выбираем вариант инициализации на базе готового продукта «Use an existing product» указав продукт «com.berdaflex.obfuscatedmail.product». При открытии данного файла у нас появляется возможность экспорта продукта (линк «Eclipse product export wizard.»). Выполним экспорт продукта и проанализируем, что у нас получилось. В ходе экспорта продукта создается каталог продукта с файлом для его запуска, а так же несколько дополнительных папок среди которых нас интересует содержимое папки «plugins». В данной папке наряду с jar пакетами от которых зависит ваше приложение будет создан пакет «com.berdaflex.obfuscatedmail_1.0.0.jar» который содержит основной код приложения и который мы сейчас взломаем, а потом будем защищать от злоумышленников. Распаковываем данный jar в отдельную папку (можно воспользоваться любым архиватором, который позволяет работать с zip архивами). Для удобства декоомпиляции сразу множества классов рекурсивно в дочерних каталогах автор написал простую утилиту RecurseExecute.exe на вход которой подается команда которую нужно выполнить для всех дочерних каталогов. Данную утилиту, файл декомпилятора jad, скрипты пакетного запуска decJava.bat и delClasses.bat желательно скопировать в каталог который входит в системные пути, чтобы их можно было вызывать из командной строки. Заходим в каталог с распакованным архивом и набираем команду: decJava.bat для декмпиляции классов, а потом команду: delClasses.bat для удаления всех откомпилированных классов, так как они нас больше не интересуют. Если теперь заменить код проекта декомпилированными файлами, то видно, что большинство классов могут быть скомпилированы даже без ошибок, переменные и названия методов позволяют сделать логические выводы о их назначении и на исправление ошибок в нескольких классах потребуется всего несколько минут. Наиболее проблемными местами после декомпиляции являются конструкции вида: break MISSING_BLOCK_LABEL_XXX Но если сравнивать с примерами оригинального кода, то видно, что это обычно переходы по условию, которые в оригинальном коде имеют противоположное значение, так что вполне можно логически привести код к требуемому виду. Например, блок кода после декомпиляции имеющий вид : PHP код: public Object start(IApplicationContext context) { Display display = PlatformUI.createDisplay(); Integer integer; int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); if(returnCode != 1) break MISSING_BLOCK_LABEL_33; integer = IApplication.EXIT_RESTART; display.dispose(); return integer; integer = IApplication.EXIT_OK; display.dispose(); return integer; Exception exception; exception; display.dispose(); throw exception; } довольно просто можно исправить к работающему блоку вида: PHP код: public Object start(IApplicationContext context) { Display display = PlatformUI.createDisplay(); Integer integer; int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); if (returnCode == 1) { integer = IApplication.EXIT_RESTART; display.dispose(); return integer; } else { integer = IApplication.EXIT_OK; display.dispose(); return integer; } } В оригинальном приложении данный блок кода имел следующую реализацию: PHP код: public Object start(IApplicationContext context) { Display display = PlatformUI.createDisplay(); try { int returnCode = PlatformUI.createAndRunWorkbench(display, new ApplicationWorkbenchAdvisor()); if (returnCode == PlatformUI.RETURN_RESTART) { return IApplication.EXIT_RESTART; } return IApplication.EXIT_OK; } finally { display.dispose(); } } И хотя полученный программный код не полностью соответствует оригинальному, но уже через несколько минут у нас получилось вновь собрать работающее приложение из декомпелированного кода что и является основной целью злоумышлинников (которых в простонародье называют хаккерами и пиратами). Причем для пиратов совсем необязательно декомпилировать и пересобирать всю программу. Обычно достаточно заменить лишь небольшой участок критического кода который отвечает например за процесс регистрации программы. Декомпиляция собственных программ имеет дополнительный положительный косвенный эффект, который проявляется в возможности анализа реально сгенерированного кода и последующей его оптимизации. Для защиты java приложений применяют так называемые программы запутывальщики (obfuscators) которые с целью затруднения последующей декомпиляции и анализа позволяют изменить исходный код как до компиляции так и после таковой. В основном это переименование переменных, имен пакетов и внутренних классов для того, чтобы злоумышленнику было сложно определить их назначение. Для приложений Eclipse RCP есть ряд проблем по использованию обфускаторов. Основной из которых является необходимость оставлять классы и методы, которые используются в публичных интерфейсах в том же виде, в котором они описаны. К счастью это легко решается в соответствии с основными принципами инкапсуляции например введением дополнительной иерархии классов с внутренней реализацией, которая не будет доступна извне для внешних подключаемых модулей. В проекте Eclipse принята практика такие классы помещають в дочерние пакеты вида: <имя базового пакета>.internal.<имя пакета> В ходе рефакторинга исходного проекта публичные классы разбиваем на два, например: PHP код: package com.berdaflex.obfuscatedmail; . . . public class Application implements IApplication { . . . } будет преобразован в два класса: PHP код: package com.berdaflex.obfuscatedmail; . . . public class Application extends ApplicationInternal { // реализация перенесена во внутренний класс } и PHP код: package com.berdaflex.internal.obfuscatedmail; . . . public class ApplicationInternal implements IApplication { . . . // внутренняя реализация } Публичные пакеты, которые могут использоваться другими подключаемыми модулями добавляем в список публичных. Это можно сделать в при помощи визуального редактора файла манифеста разрабатываемого подключаемого модуля (плагина), окрыв закладку «Runtime» и секцию «Exported Packages». После рефакторинга проекта структура пакетов примет показанный на рис. 1. вид. Рисунок 1. Структура пакетов проекта после рефакторинга [img] Непосредственно для обфускации кода воспользуемся плагином «obfuscate4e» который позволяет воспользоваться встроенным бесплатным обфускатором «ProGuard» либо подключить другой обфускатор. Для установки плагина просто обновим среду Eclipse с адреса: http://obfuscate4e.partmaster.de/updates/ Для активизации плагина обфускации во время сборки нашего проекта, нужно в навигаторе проекта выбрать файл манифеста и вызвать контекстное меню нажатием правой кнопки мыши (см. рис. 2) после чего выбрать пункт меню «PDE Tools->Create customBuildCallbacks for Proguard». Рисунок 2. Активизация плагина обфускации obfuscate4e [img] В результате, в корень проекта будут добавлены файл customBuildCallbacks.xml который является настроечным для сборки при помощи ant и файл proguard.cfg для настройки параметров обфускации. Дополнительно к этому, сам файл проекта будет настроен на компиляцию и обфускацию проекта. Причем, в файле настройки proguard.cfg сразу будут прописаны настройки для обфускации пакетов которые не включены в список публичных (в дальнейшем данный файл можно будет править самостоятельно). Экспортируем проект и повторно анализируем код после декомпиляции. Первое, что бросается в глаза это то, что классы из пакета internal будут переименованы в файлы a, b, c ... Во вторых, текст декомпилированных классов становится более трудночитаемым так как методы и имена переменных также переименованы, например: PHP код: final class d implements Runnable { d(f f1, Display display, IWorkbench iworkbench) { a = display; b = iworkbench; super(); } public final void run() { if(!a.isDisposed()) b.close(); } private final Display a; private final IWorkbench b; } Причем, чем больше внутренних классов в проекте, тем сложнее разобраться что за что отвечает и где символ «a» означает имя класса, а где название метода или переменной. А при очень большом количестве классов получаются наименования совпадающие с ключевыми словами языка java, например «do», «if», что очень сильно затрудняет анализ декомпилированного приложения. Дополнительной сложностью для взломщиков является взлом приложения, которое собиралось в операционной системе Linux. За счет того, что именна переменных и классов могут быть в разных регистрах, то классы с именами «a» и «A» просто невозможно декомпилировать в операционной системе Windows. Анализируя код после декомпиляции можно выявить конструкции которые формируют наиболее сложные для декомпиляции блоки кода, которые можно с успехом применять для повышения стойкости программ к взлому. Рекомендуемые ресурсы: *Декомпилятор jad http://www.kpdus.com/jad.html *Плагин obfuscate4e http://obfuscate4e.partmaster.de/ *Описание плагина obfuscate4e http://www.eclipse4you.com/?q=en/eclipse_plugins/obfuscate4e *Обфускатор Proguard https://sourceforge.net/projects/proguard *Утилиты для декомпиляции java программ http://www.berdaflex.com/ru/eclipse/articles/obfuscate/resources/recurse_execute.zip *Ссылка на оригинал статьи http://www.berdaflex.com/ru/eclipse/articles/obfuscate/default.html
    Автор темы: gemer, 10 апр 2011, ответов - 1, в разделе: Уроки
  6. gemer
    Хочешь начать программировать на Java? Софт JDK По ссылке искать "Get the JDK download" Ссылка: http://java.sun.com/javase/downloads/index.jsp Среда eclipse: (качать Eclipse IDE for Java Developers) Ссылка: http://www.eclipse.org/downloads/ Книги Курс "Программирование на Java" на intuit.ru Ссылка: http://www.intuit.ru/department/pl/javapl/ Пара слов о C# и Java Пара слов о C#. Он никакого отношения к C и C++ не имеет, он является клоном Java от Microsoft. Особенность джавы - исполнение кода не напрямую, а через особенную программу - виртуальную машину. Она следит сама за теми вещами, за которыми приходилось раньше следить программисту. Например за выделением памяти. Как и C++, C# является объектно ориентированным языком и имеет много общего с C++(хотя намного больше общего у него с Java). Код выполняется у него на CLR(виртуальная машина), поэтому для работы такого приложения пользователь должен установить .NET Framework.
    Автор темы: gemer, 10 апр 2011, ответов - 0, в разделе: Уроки
  7. gemer
    Было как-то дело что немного пришлось повозиться с подключением к MySQL серверу. Оказалось все просто - Для начала скачайте и установите mysql connector/net. Источник: http://dev.mysql.com/downloads/connector/net/1.0.html - Затем в проэкте добавьте референс: MySql.Data(Файл MySql.Data.dll который необходимо подключить после установки коннектора находится в Глобальном Кеше сборок (C\windows\assembly\) . у меня например здесь: C:\Windows\assembly\GAC_MSIL\MySql.Data\6.3.2.0__c 5687fc88969c44d\MySql.Data.dll) - Далее подключаем следующий неймспейс "using MySql.Data.MySqlClient;" Вот и всё. Осталось добавить следующий кусок кода, например в обработчик нажатия кнопки: Код: private void button1_Click(object sender, System.EventArgs e) { // создаем строку подключения MySqlConnectionStringBuilder myconbuild = new MySqlConnectionStringBuilder(); myconbuild.Server = "localhost"; myconbuild.Database = "cfinance"; myconbuild.UserID = "root"; myconbuild.Password = "root1111"; MySqlConnection mycon = new MySqlConnection(myconbuild.ConnectionString); // подготовливаем запрос к серверу MySqlCommand command = mycon.CreateCommand(); command.CommandText = "select * from logins"; MySqlDataReader Reader; // открываем соединение mycon.Open(); // выполняем запрос Reader = command.ExecuteReader(); // считываем поочередно каждую запись while (Reader.Read()) { string thisrow = ""; for (int i = 0; i < Reader.FieldCount; i++) thisrow += Reader.GetValue(i).ToString() + ","; listBox1.Items.Add(thisrow); // выводим запись в строку listBox } // по завершению всех манипуляций соединение нужно закрыть mycon.Close(); } Поздравляю с успешным подключением к MySql серверу :)
    Автор темы: gemer, 10 апр 2011, ответов - 1, в разделе: Базы данных
  8. gemer
    Хочешь начать программировать на C++? Тебе понадобится: Среда программирования.Советую одну из нижеперечисленных. Visual C++ 2008 Express Edition. Скачать можно по ссылке: http://www.microsoft...ad/default.aspx Code::Blocks. Скачать можно по ссылке:http://www.codeblocks.org/downloads/5 (качайте версию с mingw, имя файла codeblocks-*.**mingw-setup.exe, где *.** - номер версии) Книги Советую две сразу. Сначала Джесс Либерти. C++ за 21 день Ссылка: http://nerezus.ifolder.ru/7491359 В этой версии книги в листингах для современных компилеров надо будет сделать 2 исправления: убирать из инклюдов .h и дописывать после инклюдов строку "using namespace std;". Потом обязательно прочитать книгу от создателя C++, чтобы выявить многие неясности, которые могли возникнуть при чтении первой книги. Бьерн Страуструп. Язык программирования C++. Ссылка: http://nerezus.ifolder.ru/7491464 Стоит заметить, что C перед C++ учить не нужно. Хочешь начать программировать на C++ и Qt? Внимание. Обязательно знать C++ Софт Про установку софта читать тут: http://habrahabr.ru/...elopment/30636/ Книги Качаем с трекера тут: http://rutracker.org...ic.php?t=690884 Отличия C и C++ С и C++ — это АБСОЛЮТНО разные языки. Из общего у них только похожий синтаксис и способ выполнения. У них разный класс задач. У них разный подход к проектитрованию, написанию кода. Да в конце концов у них даже типизация разная: в C она static weak, а в C++ она static strong. Разные библиотеки - в C++ царствует ООП, практически все библиотеки в нем объектно-ориентированные(хотя можно использовать и сишные, но это не рекоммендуется). Применяется C для системных вещей, а для всего остального, хорошего и гуевого, C++.
    Автор темы: gemer, 10 апр 2011, ответов - 2, в разделе: Уроки
  9. gemer
    Решил собрать всю информацию о существующих компиляторах и средах программирования для С++ в одной теме: 1. Visual C++ - кто не знает про VC++? С Visual Assist'ом я вообще не уверен что кто-либо способен побить его по качеству подсветки синтаксиса. Для коллаборации есть отдельная среда контроля версий Visual SourceSafe. IDE платная. Около 100$. 2. Eclipse C++ Development Tools - плагин разработки С++ для Eclipse. Работает с MinGW32, хотя вроде можно подключать и другие компиляторы. Подсветка, auto-complete, class-tree и прочие вкусности... Удобный интерфейс, средства для коллаборации разработчиков и UML-разработки присутствуют. Из недостатков можно подчеркнуть тормознутость, ибо написан на Java и следовательно требование к JVM. 3. Dev C++ - вторая по популярности среда разработки для C++. Поддерживает GCC компилеры, подсветку, auto-complete, шаблоны, профайлинг, дебаггинг, class-view и прочий стандартный набор для такого рода программ.. Интерфейс удобный, присутствуют средства для работы с CVS 4. Code::Blocks - бесплатная среда разработки под C++. Подсветка, class-view точно имеются. 5. Chinook - есть бесплатная версия среды, суррогат от коммерческой. Поддерживает дебаггинг, подсветку, шаблоны проекта, class-view и прочее... CVS тулзов не имеет, в версии Free. 6. Paradigm C++ - какая-то IDE'шка, не бесплатная. Говорят что есть все особенности Visual Assist 7. Digital Mars - IDE для С/C++. Подсветка, дебаггинг и прочее. 8. SunStudio - - платная среда разработки для С++/C и фортрана 9. Web Based C++ - это вообще прикол. Вводите в веб-форму плюс-плюс код, задаёте файлы которые хотите подключить, и файлы на выход. Далее, если скомпилится -> срабатывает на сервере, и вам выдается аутпут 10. Comeau - есть веб-интерфейс аналогичный предыдущему варианту, а есть и платный, стационарный вариант. Знаменит каноничным отношениям к стандарту C++. 11. Visual GWin++ - бесплатная IDE для С++. Интерфейс довольно грубоват и некрасив, если посмотреть на скриншоты. 12. MinGW Developer Studio - очень качественная IDE, написанная на WxWidgets... как, судя по всему и Chinook Имеются три версии: а) Сама среда б) Среда + компилятор MinGW в) Среда, компилятор MinGW, и собранная библиотека WxWidgets 13. C++ Builder - Среда для действительно быстрой разработки приложений на С++. Огромное количество возможностей. 14. Borland C++ BuilderX - как для продукта от Борланда очень мало возможностей, плюс написана на Java, поэтому просто жутко тормозит. 15. Relo отличная расцветка синтакиса, возможность подключить 4 компилятора на выбор (MS VC++, Borland C++, Digital Mars, GCC). Также бесплатна 16. Anjuta - бесплатный IDE под GTK. Оптимизирован для работы под Linux. 17. KDevelop - стабильная среда разработки Си++/Си. даёт хорошую интеграцию с инструментами QT, и сама написана на QT, под KDE. 18. Emacs ( да и Xemacs ) - традиционная среда разработки под линух/юникс. Имеет всё что программисту нужно, но немного сложна в обращении - всё можно прикрутить, подкрутить или открутить. 19. SlickEdit - платная IDE - . все кто пользовал - хвалили. Среда - не новая - сейчас продаётся версия 10. Работает под:Linux ОS-X, IRIX, AIX, HP-UX, Solaris (sparc), windows 20. DinoEditor - представляет собой универсальную среду разработчика. 16 популярных языков разметки и программирования (JavaScript, Visual Basic, VBScript, C++, Pascal, Delphi, ASP, HTML, XML, Perl, PHP). 21. GCC - включает в себя интерфейсы для C, C + +, Objective-C, Fortran, Java, а также библиотеки для Libstdc + +, libgcj ,. GCC первоначально была написана как компилятор GNU операционной системы 22. Компилятор Intel® - версия Professional Edition обеспечивает широкие возможности дополнительной оптимизации, многопоточность и процессорную поддержку, которая включает автоматическое планирование процессоров, векторизацию и развертывание циклов. Имеется поддержка следующих операционных систем: Windows, Linux, Mac OS, QNX Neutrino* RTOS. 23. Open Watcom - проект сообщества открытого кода по поддержке и развитию многоплатформных компиляторов Watcom C, C++ и Fortran и сопутствующих программ.
    Автор темы: gemer, 10 апр 2011, ответов - 4, в разделе: Уроки
  10. gemer
    В современных операционных системах в состав систем программирования обычно входит интегрированная среда. Такая среда содержит все необходимые средства разработки программ. Не выходя из среды, можно создавать, редактировать, компилировать, выполнять, отлаживать программы на том языке программирования, для которого эта среда построена. Интегрированная среда Borland С 2.0 является удобным средством для разработки программ на языке Си. Эта среда, как и другие интегрированные среды, функционирующие в операционной системе MS-DOS, предназначена для работы в текстовом режиме дисплея. Работа среды базируется на технике меню и окон, причем для каждого выделенного пункта меню можно получить контекстно-зависимую подсказку. В системе программирования Borland С 2.0 компоненты обычно размещаются в следующих каталогах: *LIB - содержит стандартную библиотеку объектных модулей языка Си, библиотеки объектных модулей математических функций, функций графики и др.; *INCLUDE - заголовочные файлы системы программирования Си; *BIN - основной каталог: 1.Динамически подключаемые библиотеки (*.dll); 2.Файлы конфигурации для компилятора, подсистемы Help и т.п.; 3.Автономный препроцессор и компилятор для запуска из командной строки; 4.Исполняемые модули для запуска интегрированной среды в MS-DOS и MS Windows; 5.Файлы инициализации, содержащие параметры настройки для интегрированной среды и ее компонентов; 6.Вспомогательные подсистемы, например подсистема управления проектами Make *EXAMPLES - содержит исходные тексты функций (подкаталог SOURCE), в основном математических, и программы (подкаталог TEST) для тестирования функций из подкаталога SOURCE; Для нормального функционирования интегрированной среды Borland С достаточно IBM PC/XT с 640 Кбайт оперативной памяти. Работоспособный вариант среды Borland С занимает на жестком диске менее 1 Мбайта. Переход в интегрированную среду Borland С осуществляется по команде tc.exe (или просто tc). Экран интегрированной среды Borland С При выполнении команды вызова интегрированной среды на экране дисплея появляется окно. Основными структурными компонентами экрана интегрированной среды являются: 1.Строка меню, расположенная в верхней части экрана и содержащая основное меню среды Borland С; 2.Окно редактирования (Edit) исходного текста; 3.Строка заголовка, в которой отображаются координаты курсора: номер строки, номер позиции в строке и имя редактируемого файла (курсор на экране изображается мигающим символом "подчеркивание"); 4.Окно сообщений (Message), в которое помещаются тексты сообщений об ошибках, выявленных при трансляции исходных текстов или построении исполняемой программы; 5.Строка подсказки, содержащая информацию о назначении функциональных клавиш. Функциональные клавиши среды Borland С: F1 - контекстно-зависимая подсказка (выводится справка о функции команды основного меню или вспомогательного меню, которая в данный момент выбрана (подсвечена цветовым маркером); при повторном нажатии клавиши <F1> выводится окно Главной помощи: команды меню, "горячие" клавиши, команды управления редактором текстов, процедура установки Borland С, справки по синтаксису языка Си; F5 - расширение (распахивание) выбранного (активного) окна на всю доступную область экрана, расположенную между строкой меню и строкой подсказки; F6 - осуществляет переключение между окнами "Редактирование" (Edit) и "Сообщения" (Message); F9 - скомпилировать и построить исполняемую программу; F10 - переход в главное меню; выбранный пункт главного меню выделяется цветовым маркером; перемещение по главному меню осуществляется с помощью клавиш со стрелками. Система меню среды Borland С Строка меню содержит основную группу команд. Приведем описание этих команд и команд, содержащихся в меню нижнего уровня, поясним те из них, которые необходимы для проведения минимальных действий по созданию и отладке простейших программ. При выборе пункта меню и нажатии на клавишу <Enter> может появиться в отдельном окне так называемое "ниспадающее" меню нижнего уровня, каждый пункт которого может либо порождать, в свою очередь, меню следующего уровня, либо вызывать определенные действия (трансляция, исполнение программы и т.д.), либо устанавливать (определять) некоторый параметр среды, например имя ехе-файла, путь к каталогу с заголовочными файлами и т.п. Для ссылки в нашем описании на пункт главного меню будем использовать название этого пункта. Для ссылки на пункты меню нижних уровней применим следующую схему: укажем последовательно названия тех пунктов в системе меню, через которые необходимо пройти, для того чтобы достичь обозначаемый пункт. В качестве разделителей имен пунктов меню будем использовать символ | (вертикальная черта). Например, для ссылки на пункт меню Change directory (сменить рабочий каталог), который входит в подменю File главного меню, будем пользоваться записью FileChange directory. Напомним, что для перехода в главное меню используется функциональная клавиша <F10>. Начальную информацию о командах и режимах интегрированной среды можно получить по функциональной клавише <F1>, ну и, конечно же, в документации по системе программирования Borland С. Ниже приводятся перечень основных команд интегрированной среды и краткое описание их функций. *File - ссылается на группу команд, позволяющих: 1.загрузить с диска файл для редактирования (Load); 2.создать новый текстовый файл (New); 3.сохранить редактируемый файл под новым именем (Write to); 4.выбрать текущий каталог для данного сеанса работы (Directory); 5.сменить рабочий каталог (Change directory); 6.осуществить временный выход в MS-DOS Dos Shell - возврат в среду по команде exit); 7.выход из среды Borland С (Exit). *Edit - редактировать файл. Ниже будут приведены основные команды редактирования. *Run - группа команд, предназначенных для запуска программы и просмотра результатов работы: 1.выполнить программу (Run); 2.выполнить программу заново (Program reset); 3.выполнять программу по шагам с заходом в функции (Step over) или без захода в функции (Trace into); 4.перейти к просмотру результатов работы программы (User screen). *Compile - команды, связанные с трансляцией и сборкой (компоновкой) программы: 1.компилировать программу в объектный файл (Compile to OBJ); *Options - команды, устанавливающие: режимы работы для компилятора и компоновщика; параметры среды; каталоги; аргументы исполняемой программы 1.установить параметры: аппаратной конфигурации, режимы отладки, режим оптимизации кода, управления выдачей сообщений (Compiler); 2.установить режимы работы компоновщика (Linker) - указать возможность подстановки перед стандартными библиотеками собственных библиотек объектных модулей, включить (выключить) режим уведомления о дублирующихся внешних именах в объектных модулях; 3.установить параметры среды (Environment) – параметры просмотра сообщений об ошибках, режим сохранения параметров среды, режим создания резервных копий редактируемых файлов 4.определить полные пути к каталогам системы программирования (Directories), которые содержат: заголовочные файлы, библиотеки, рабочий каталог, каталог, где хранятся компоненты системы программирования Си. Подробно установка путей к этим каталогам описывается ниже; 5.задать параметры командной строки (Arguments). В окне, появившемся при выборе этого пункта меню, указываются параметры, которые передаются исполняемой программе при ее выполнении из среды Borland С, - аргументы функции main(); 6.сохранить параметры среды (Save options) в файле на диске. При установке параметров можно изменять имя файла, в котором они сохраняются. При последующей загрузке среды значения ее параметров выбираются именно из этого файла; 7.выбрать и загрузить один из нескольких файлов параметров среды, созданных по команде Options|Save options. Установка в среде Borland С полных имен каталогов. Перед началом работы необходимо задать полные имена вспомогательных и рабочего каталогов. Для этого необходимо перейти в меню Options|Directories и, выбирая последовательно следующие пункты меню *Include directories *Library directories *Output directory ввести соответственно следующие имена каталогов: С:\ВС\INCLUDE С:\ВС\LIB С:\ВС\OUT Служебные клавиши редактора Команды редактирования объединены в следующие группы, из которых приведем основные: Команды управления курсором: На символ влево Ctrl-S или <- На символ вправо Ctrl-D или -> На слово влево Ctrl-A На слово вправо Ctrl-F На строку вверх Ctrl-E или Т На строку вниз Ctrl-X или I Перемещение текста на строку вверх Ctrl-W Перемещение текста на строку вниз Ctrl-Z Перемещение текста на страницу вверх Ctrl-R или PgUp Перемещение текста на страницу вниз Ctrl-C или PgDn Команды вставки и удаления: Включить (выключить) режим вставки Ctrl-V или Ins Вставить строку Ctrl-N Удалить строку Ctrl-Y Удалить часть строки от курсора до конца строки Ctrl-Q Y Удалить символ слева от курсора Ctrl-H или Backspace Удалить символ Ctrl-G или Del Удалить слово справа Ctrl-T Команды обработки блоков текста: Пометить начало блока Ctrl-K В Пометить конец блока Ctrl-K К Пометить одно слово Ctrl-K С Переместить блок Ctrl-K V Удалить блок Ctrl-K Y Читать блок с диска Ctrl-K R Записать блок на диск Ctrl-K W Снять выделение блока Ctrl-K H Печатать блок Ctrl-K P Дополнительные команды: Перейти в главное меню Ctrl-K D или F10 Сохранить редактируемый файл и про должать его редактировать F2 Создать новый файл F3 Взять для редактирования предыдущий файл Alt-F3 Найти последовательность символов Ctrl-Q F Найти и заменить последовательность символов Ctrl-Q A Прекратить операцию Esc Примечания. 1.Запись "Ctrl-A" означает одновременное кратковременное нажатие клавиш <Ctrl> и <А>, а запись "Ctrl-K В" - кратковременное одновременное нажатие клавиш <Ctrl> и <К>, а затем - нажатие одной клавиши <В>. 2.Для получения справки по синтаксису языка Си необходимо поставить маркер на строку, содержащую название объекта языка Си, и нажать клавиши "Ctrl-Fl". Функции обработки текста Текстовый экран делится на 24 строчки по 80 символов в каждой. Строки нумеруются сверху вниз, позиции – слева направо. Основные функции работы с экраном: *clrscr() очищает экран и устанавливает курсор в 1 строку, 1 позицию. *gotoxy(x,y) устанавливает курсор в заданную позицию: строка y, позиция x. (х – от 1 до 80; y – от 1 до 24) *textcolor( n ) задает цвет текста. n – номер цвета от 0 до 15 Spoiler: Цвета *textbackground(n) задает цвет фона. Действие функций textcolor(n) и textbackground(n) начинается после использования функции clrscr(). Если нужно сменить текущий цвет текста, не очищая экран, для вывода на экран пользуются функцией сprintf(), которая работает так же, как printf(). *getch() выполняет задержку работы программы до нажатия любой клавиши. Для использования этих функций нужно подключить библиотеку conio.h. Для примера напишем программу которая рисует на экране кораблик с синими парусами PHP код: #include <stdio.h> #include <conio.h> void main() { clrscr(); //очищаем экран textcolor(11); //выбираем голубой цвет gotoxy(3,1); сprintf(“*”); //рисуем паруса gotoxy(3,2); сprintf(“**”); gotoxy(3,3); сprintf(“***”); gotoxy(3,4); сprintf(“****”); textcolor(6); //выбираем коричневый цвет gotoxy(3,5); сprintf(“*”); //рисуем дно gotoxy(1,6); сprintf(“*******”); gotoxy(2,7); сprintf(“*****”); getch(); // выполняем задержку } [img] Скачать Borland C++ V3.1
    Автор темы: gemer, 10 апр 2011, ответов - 0, в разделе: Уроки
  11. gemer
  12. gemer
  13. gemer
    Скачать с Megaupload http://www.megaupload.com/?d=17WHLESD - Tasks http://www.megaupload.com/?d=6SR1TRD3 - Часть 1 http://www.megaupload.com/?d=K3QLI9UZ - Часть 2 http://www.megaupload.com/?d=7KBZW75U - Часть 3 http://www.megaupload.com/?d=48V0S7NC - Часть 4 Скачать с DepositFiles http://depositfiles....files/cwv85eew3 - Tasks http://depositfiles....files/2ko3m1um7 - Часть 1 http://depositfiles....files/ahi4jvdnt - Часть 2 http://depositfiles....files/3kmbv8slq - Часть 3 http://depositfiles....files/jvw1make9 - Часть 4 Пароль на MYSQL: 123456 Зеркало на Народ.ru Зеркало на Megaupload Устанавливаем базовую систему Ubuntu 9.10 ================================================== ========================= Список файлов ================================================== ========================= 1.akzxserver422-mysql.tar.gz 2.zxlampp.tar.gz 3.setup.install.plz.chmod.777 4.setup.install.plz.chmod.777-noAPM Выбрать один из нижеуказанных вариантов: Если используете APM выполните следующие команды в консоли: 1. :~# Setup.install.plz.chmod.777-noAPM 2. :~# Akzxserver422-mysql.tar.gz Если не используете APM выполните следующие команды в консоли: 1.:~# Setup.install.plz.chmod.777 2.:~# Akzxserver422-mysql.tar.gz 3.:~# Zxlampp.tar.gz (веб-сервер + MySQL) ================================================== ========================= Установка сервера ================================================== ========================= 1.Устанавливаем файлы сервера + Apache + MySQL + PHP все настройки следующей командой: :~# setup.install.plz.chmod.777 После установки запустить сервер можно следующей командой: ШАГ1 -:~# ./web-start ШАГ2 -:~# ./server-start Остановить сервер можно следующими командами: ШАГ1 -:~# ./server-stop ШАГ2 -:~# ./web-stop 2. Установка только игрового сервера: :~# setup.install.plz.chmod.777-noAPM Редактируем файл, выполняем в консоли следующую команду: :~# vi /etc/zuxian.xml Переходим на Линию 7: и редактируем <connection name="auth0" poolsize="3" url="jdbc:mysql://localhost/zuxian?useUnicode=true&amp;characterEncoding=utf8" username="root" password="123456"/> zuxian - в данном случае имя базы в mysql (меняем на свое) root - логин пользователя mysql (меняем на свое) 123456 - пaроль mysql (меняем на свое) После установки запустить сервер можно следующей командой: ШАГ1 -:~# ./web-start ШАГ2 -:~# ./server-start Остановить сервер можно следующими командами: ШАГ1 -:~# ./server-stop ШАГ2 -:~# ./web-stop ================================================== ========================= Как зарегистрировать аккаунт ================================================== ========================= Вводим в браузере : http://Ваш_ip/ =========================================================================== Директория сервера =========================================================================== /etc/zuxian.xml (сервер авторизации, конфигурации сервера) /etc/authd.conf /etc/hosts /root/zuserver/ (игровой сервер) /root/backup/ (копия базы) /root/mysqldb/ (бамп mysql базы zuxian.sql) /opt/lampp (вебсервер APM) /opt/lampp/bin Вот в принцепи и все. Все права на гайд принадлежат akiz. P. S. Не забываем +
    Автор темы: gemer, 13 мар 2011, ответов - 7, в разделе: JD Сервер
  14. gemer
  15. gemer
    Начнем с того, что бонусы хранятся в configs.pck в файлике item_ext_prop.txt Глава 1. Невооруженным глазом видно, что сие бонусы разбиты на типы/группы. То есть, в определенную группу внесены бонусы с одним и тем же параметром. Например: 0: Физ атака Собраны все ID бонусов дающих физ атаку. [img] Внимание! некоторые бонусы НЕ работают, и более того. Хоть бонусы и собраны в один тип, в них есть различия. Одни бонусы например работают только на пухах, другие же только на бронях. Едем дальше... Глава 2. Так же в этом списке, обозначены все так называемые бонусы-скиллы, они так же непонятным образом дублируются. [img] список этих скиллов-бонусов: 445 (Изоляция: наносит 5000 ед урона кровотечением в течении 15 секунд) 446 (Разъедающий дух: уменьшает максимальный запас здоровья цели) 447 (Отталкивание: Прерывает навыки цели и отбрасывает чудовищ назад на 10 м.) 448 (Концентрация: Вы получаете 20 ед ярости) 449,(Разрушительный дух: Снимает все благословения с цели) 450 (Нокаут: Нокаутирует цель на 5 сек.) 451,(Замедление: Замедляет движение цели) 452,(Остановка: Цель будет неподвижна в течении 3 сек) 453,(Разрушение: уменьшает физическую защиту цели) 454,(Нокаут: Нокаутирует цель на 5 сек.) 455,(Замедление: Замедляет движение цели) 456,(Остановка: Цель будет неподвижна в течении 3 сек) 457,(Разрушение: уменьшает физическую защиту цели) 458,(Нокаут: Нокаутирует цель на 5 сек.) 459,(Замедление: Замедляет движение цели) 460 (Остановка: Цель будет неподвижна в течении 3 сек) 461 (Разрушение: уменьшает физическую защиту цели) 1275, (Разрушение: уменьшает физическую защиту цели) 1276, (Слабость: Уменьшает магическую защиту цели) 1277, (Грубость: Уменьшает физическую атаку цели) 1278, (Развеять дух: Уменьшает магическую атаку цели) 1279, (Лень: Уменьшает скорость атаки) 1280, (Скука: уменьшает скорость активации цели) 1281, (Слепота: снижает точность цели) 1282, (Неловкость: снижает у цели способности к уклонению) 1283, (Стойкость: увеличивает собственную физическую защиту) 1284, (Интуиция: увеличивает собственную магическую защиту) 1285, (Замедление: замедляет движение цели) 1286, (Кулак-лезвие: увеличивает собственную силу физической атаки) 1287, (Проворство: увеличивает собственную скорость атаки) 1288, (Сообразительность: повышает точность) 1289, (Регенерация: восстанавливает 5% здоровья) 1290, (Возобновление: восстанавливает 5% энергии) 1291, (Недовольство: Значительно усиливает физическую атаку за счет потери 5% энергии) 1292, (Последний рубеж: значительно усиливает физическую атаку за счет уменьшения физической защиты) 1293, (Насмешка: заставляет всех врагов атаковать вас) 1294, (Нокаут: Нокаутирует цель на 5 сек.) 1295, (Остановка: Цель будет неподвижна в течении 3 сек) 1296, (Печать: цель не сможет атаковать в течении 5 секунд) 1297, (Жестокий воин: определенный шанс нанести двойной урон, теряя при этом 5% от вашего максимального запаса здоровья) 1298, (Ярость: вводит в состояние бешенства удваивая силу и скорость атаки, за счет получения большего урона) 1299, (Медитация: восстанавливает 5% здоровья и энергии) 1300, (Кипящая кровь: восстанавливает 10% здоровья) 1301, (Горящий дух: восстанавливает 10% энергии) 1302, (Месть: восстанавливает 5% здоровья и увеличивает собственную силу физической атаки) 1303, (Нирвана: восстанавливает 5% энергии и увеличивает собственную силу физической атаки) 1304, (Шипастая броня: увеличивает собственную физическую защиту и 25% рукопашного урона) 1305, (Таинственный щит: уменьшает весь получаемый урон на 20%) 1306, (Успех: увеличивает силу физической атаки и физическую защиту) 1307, (Уверенность: восстанавливает 5% здоровья и увеличивает собственную физическую и магическую защиту) 1308, (Отчаянье: парализует цель на 5 секунд, но вы будете парализованы на 10 секунд) 1309, (Вера: восстанавливает 5% здоровья и снимает проклятья) 1310, (Восемь тактик: вызывает паралич и опечатывает) Внимание! Данные скиллы бонусы работают только на пухах, на бронях и прочих вещах они не работают. Глава 3. Бонусы за комплектами вещей. Данные бонусы, не попали в отдельный тип. Но их не много, так что я перечислю все: Порядок их айди с 1895 по 1909, они повторяются. например 1901 и 1904 это -0,05 к скорости атаки. 1902, 1905 и 1908 это +15 выносливости 1903, 1906 и 1909 это +3% крита 1907 это -3 пения. Есть ещё бонусы, но их работоспособность у меня вызывает сомнение. Повесил как то бонус на инту, и толку было 0. 1895 это сила +10 1897 это ловкость +10 1899 это интеллект +10 1896, 1898 и 1900 это снижение физ повреждений +3% В работоспособности их не уверен. Среди них много косяков. Глава 4. Перечислю сами типы этих бонусов. Не даю гарантии что они идут именно в том порядке котором я сейчас изложу. Но принцип вам думаю станет понятен, во всяком случае гайд пишется не для чайников) 0: Физ атака 1: Макс Физ атака 2: Физ атака (%) 3: Маг атака 4: Макс Маг атака 5: Маг атака (%) 6: + Физ защита 7: + Защита от огня 8: + Маг защита 9: АСПД 10: Диапазон атаки 11: Пение время 12: Физическая защита 13: Физическая защита (%) 14: Маг защита 15: Защита от металла + 16: Защита от металла +(%) 17: Защита от дерева + 18: Защита от металла +(%) 19: Защита от воды + 20: Защита от воды +(%) 21: Защита от огня + 22: Защита от огня +(%) 23: Защита от земли + 24: Защита от земли +(%) 25: Здоровье 26: Мана 27: Макс ХП +(%) 28: Мана +(%) 29: Скорость восстановления хп 30: Скорость восстановления мп 31: Сила 32: Ловкость 33: Интеллект 34: Телосложение 35: Крит+(%) 36: Меткость 37: Меткость +(%) 38: Скорость движения 39: Скорость движения + (%) 40: Уклон + 41: Уклон +(%) 42: Прочность + 43: Прочность +(%) 44: Уменьшение физ урона ... Требования -% Параметры не известны(требуется оценка) Опыт +(%) Рейтинг атаки + Класс брони + Ну в общемто и все. Если помог, плюсиг не забываем   :lol:
    Автор темы: gemer, 12 сен 2010, ответов - 7, в разделе: PW Документация
  16. gemer
     Полазил по форуму но не нашел таокй темы.. Вот выкладываю гайдик как изменять босов которые может создавать GM, в консоли для GM. Что нам понадобится? -Редактор elements.data В разных редакторах редакторах все по разному, я буду использовать WM_TOOL_BOX.(Этот редактор лежит в шаре) Итак открываем, загружаем наш elements.data и идем на страницу 88. И видем: С лева точто можеш создать наш GM. С права свойства. Итак. Теперь раскажу вам как же все таки добавить боса в GM консоль. Жмем кнопку Добавить и в самом конце листа у нас появляется новый Item. Меняем свойства будущего созданного предмета: 1)ID: всегда дается автоматически. 2) Тип боса 3) Имя отображаемое в консоли 4) Модель (лучше скопировать из любого придидушего, можно оставить пустым) 5) Текстура (лучше скопировать из любого придидушего, можно оставить пустым) 6) ID босса которого вы хотите призывать 7) Количество в ячейке Цена продажи 9) Цена попупки. Полсе того как сделаете все что вам нежно, жмете Применить => Cохранить и закидываем на сервер Меняем все тоже самое в клиентском Вот пожалуй и все.
    Автор темы: gemer, 11 сен 2010, ответов - 18, в разделе: PW Документация
  17. gemer