Basic что это за программа и нужна ли она

Думается, многие нынешние компьютерщики могут назвать своими «вратами учёности» Бейсик. Очень многие с него начинали. Был такой хулиганский язык программирования, которому в своё время расточали обильные анафемы учёные и педагоги.

Про анафемы, кстати, это отнюдь не фигура речи. 🙂 Знаменитый Эдсгер Дейкстра (один из основоположников структурного программирования) на полном серьёзе договорился до того, что всех хоть раз попрограммировавших на Бейсике надо поганой метлой гнать от компьютеров — дескать, программистские души этих несчастных навеки погублены, и никакой пользы кроме вреда они уже никогда принести не смогут. Конец немного предсказуем: Бейсик надолго пережил и Дейкстру, и других хулителей… 🙂

А всё потому, что производители недорогих полуигрушечных домашних компьютеров чхать хотели на эти анафемы. Они прекрасно понимали, что домашним пользователям (в первую очередь детям и подросткам!) их продукции нужно что-то простенькое и легко осваиваемое. И в смысле системной памяти нетребовательное. Бейсик подходил идеально, и его реализовывали в качестве встроенного языка, совмещённого с системным монитором и операционной системой.

Нифёд-программист! Смотрим мои первые проги на BASIC 1999 года!

Сколько было выпущено такого хозяйства — не поддаётся никакому учёту! Apple II, IBM PC, Yamaha MSX, Commodore, Atari, Sinclair ZX, TRS… От совсем примитивных до вполне серьёзных. Да и в Советском Союзе постарались — только из оригинальных разработок навскидку вспоминаются МК-85 и БК-0010, не говоря о всяких клонах типа «Пентагона», «Скорпиона» и прочих потомках ZX Spectrum, тысячи их!

Куча народа входила в компьютерный мир именно посредством таких полуигрушек, и многие из них стали потом профессионалами. Я не исключение… и однажды, уже будучи владельцем iPad, я задался вопросом: а есть ли под него Бейсик? 🙂

И что ж вы думаете — есть! Нашлось замечательное приложение, которое так и называется: Basic! Именно с восклицательным знаком, а иконка его как раз изображает полуигрушечный домашний компьютер из числа тех, о которых шла речь. Стоит 129 рублей, одинаково годится для iPad и iPhone (хотя на последнем не шибко удобно).

Самый настоящий Бейсик с весьма приличными возможностями. Напоминает известный Qbasic от Microsoft — ну, тот что шёл бонусом с MS DOS, и на котором во многих школах до сих пор учат детей. Охарактеризую вкратце, что здесь есть и чего нету (список, конечно, не претендует на полноту):

  • Из типов данных — только числа и строки. Из структур данных — только массивы (включая многомерные).
  • Полный набор управляющих структур, позволяющий избегать «кошмара GOTO». Сам GOTO впрочем тоже есть, как же без него-то. 🙂
  • Программных единиц с собственным контекстом нету. Подпрограммы работают с общей памятью.
  • Поддерживается двухпальцевый мультитач, а также получение данных от датчика ориентации и акселерометра.
  • Полноцветные текстовый и графический режимы. В текстовом режиме поддерживается несколько шрифтов. Есть зачатки деловой графики (круговые диаграммы). Возможна работа со спрайтами.
  • Музыка: воспроизведение нот в трёх независимых каналах.
  • Файлы: имитация внешних файлов данных с последовательным доступом.

В общем, нормальный полноценный Бейсик — с некоторыми поправками на планшетные реалии, конечно. Кто скажет, что на iPad нельзя программировать — можете бросить в него камень. 🙂 Давайте посмотрим на приложение подробнее.

Какой язык программирования УЧИТЬ ПЕРВЫМ? | Для новичков

В нём есть три основных экрана: редактор кода, терминальное окно и доступ к файлам данных.

Редактор кода — это то, где вы набираете и правите свою программу. Структурирование программы отступами и капитализация служебных слов выполняются автоматически. Возможности редактирования типичны для iOS.

Basic! - редактор кода на iPad

Есть, правда, один недостаток: неполная поддержка внешней клавиатуры. Если её подключить, то всё работает… но перемещение по тексту и его прокрутка будут происходить так, как если бы была видна системная экранная клавиатура. Не очень удобно.

Отсюда же из редактора можно вызвать встроенную справку (не очень подробная, явно предполагается заведомое знакомство пользователя с языком), сохранить свою программу или загрузить что-то ранее сохранённое. Сохранять можно в один из 75 «слотов», но это не единственный способ — можно ещё и на «внешний диск». (Требует дополнительных телодвижений, но зато нет ограничений на количество.) А для загрузки предлагается и несколько готовых примеров, с которыми крайне рекомендуется познакомиться.

Basic! - редактор кода на iPad

Второй экран — это «терминал». Здесь вы видите результаты работы программы (текст и графика совмещены в одном окне), а также отдаёте касающиеся её глобальные команды: запустить, сохранить, считать (помните, я говорил про альтернативный способ?), скопировать из буфера, очистить и т.п.

Basic! - редактор кода на iPad

Ну и третий экран — органайзер файлов данных на виртуальных дисках. Их можно просматривать, отправлять электронной почтой, создавать из текстового буфера… Сюда же нужно импортировать изображения, которые предполагается использовать в качестве спрайтов. Интересно, что программные файлы, сохранённые на «диск», отсюда не видны — с ними работают только терминальными командами из терминального окна. А здесь только данные.

Basic! - редактор кода на iPad

Единственным штатным способом экспорта программ и данных является электронная почта (отправка происходит непосредственно из приложения). В принципе, добраться до них можно с помощью iTools, но этот путь не для всех, и он не шибко удобен. Ещё из раздела справки можно быстро перейти на форум разработчика — задать вопрос, опубликовать свою программу или скачать попробовать чужую.

Ну и напоследок я расскажу о трёх особенностях данного Бейсика, про которые ничего не сказано в справке, но которые полезно знать.

Во-первых, здесь нельзя пользоваться символами кириллицы — ни в комментариях, ни в сообщениях программы. Для тех, кто в прежние годы имел дело с импортной техникой, это даже не является недостатком: там никакой русификации в принципе не предусматривалось, и ничего. 🙂

Во-вторых, текст программы должен быть организован по принципу «одна строка — один оператор». Если вы хотите пользоваться символьными метками, то каждая такая метка должна занимать целую строку.

В-третьих, на устройствах с retina-дисплеем графическая отрисовка происходит в терминах логических, а не физических точек. То есть, например, iPad New с точки зрения программы имеет разрешение экрана 1024*768, а все сглаживания и оптимизации изображения берёт на себя система.

Basic! - редактор кода на iPad

Михаил Баландин специально для ipadstory.ru

Цена: 299 р.
Скачать

Тип программы: Программы до 100 мегабайт, Программы дороже 100 рублей, учебные (все программы по категориям для iPad)
Размер приложения в App Store: 13.1 Мб
Язык приложения: Английский
Разработчик/Издатель: miSoft
Программа универсальна для iPhone и iPad
Минимальная версия iOS: 11.0

Источник: ipadstory.ru

Открытие и запуск программы в Visual Basic .NET

Аннотация: В этой лекции вы изучите основные команды меню и способы программирования в Visual Studio; откроете и запустите простую программу на Visual Basic; измените настройки программирования; попрактикуетесь в перетаскивании, изменении размера и закреплении окон инструментов

В этой лекции вы узнаете, как:

  • запускать Microsoft Visual Studio .NET;
  • использовать среду разработки Visual Studio;
  • открыть и запустить программу на Visual Basic;
  • настроить свойства среды;
  • перемещать, изменять размер и закреплять окна инструментов или делать их всплывающими;
  • использовать справочную систему и завершать работу в Visual Studio.
Читайте также:
Avcmxwebp что за программа

Microsoft Visual Basic . NET — это обновленная и расширенная версия популярной системы разработки Visual Basic , с которой работают более 3 миллионов программистов по всему миру. В этой лекции рассказано о нововведениях в Visual Basic . NET и об основных приемах быстрой и эффективной работы с программами в этой среде. Эту лекцию следует прочитать и новичкам в программировании на Visual Basic , и тем, кто уже работает с более ранними версиями этого пакета. Основное преимущество Visual Basic . NET заключается в том, что он помогает сделать вашу работу еще более эффективной — особенно если вы используете информацию из баз данных, или создаете решения для сети Интернет . Кроме того, научившись свободно ориентироваться в среде разработки Visual Studio , вы сможете использовать те же самые инструменты для написания программ в Microsoft Visual C++. NET , Microsoft Visual C# . NET , а также компиляторы и инструменты третьих фирм.

В этой лекции вы узнаете, как запустить Visual Basic и как в интегрированной среде разработки открыть и запустить простую программу. Вы изучите основные команды меню и способы программирования в Visual Studio ; откроете и запустите простую программу на Visual Basic , которая называется МузВопрос; измените настройки программирования; попрактикуетесь в перетаскивании, изменении размера и закреплении окон инструментов. Вы также узнаете, как получить дополнительную информацию с помощью справочной системы и как корректно завершить работу в среде разработки.

Что нового в Visual Basic .NET?

Переход с Visual Basic 6 на Visual Basic . NET — дело не очень простое. В нем появились новые возможности, а некоторые знакомые инструменты изменились. По этой причине каждая лекция начинается с врезки с описанием изменений. Для изучения Visual Basic . NET с помощью этой книги вам не требуется иметь какой-либо опыт программирования. Для тех, кто уже знает Visual Basic 6, ниже перечислены некоторые усовершенствования в Visual Basic . NET .

Теперь Visual Basic — полноправная часть Visual Studio . Для Microsoft Visual C++ . NET , Microsoft Visual C# . NET и Visual Basic используется одна и та же общая среда разработки , а также общие инструменты.

  • В Visual Studio появилась новая панель Start Page (Начальная страница). На ней показываются недавно использовавшиеся проекты, с нее можно открывать новые или существующие исходные файлы. Дополнительные ссылки на панели Start Page (Начальная страница) предоставляют доступ к веб-сайтам о Visual Studio и к сообществам разработчиков.
  • Среда разработки Visual Studio содержит несколько новых инструментов программирования, а уже имевшиеся средства были доработаны. Окно Project (Проект) теперь называется Solution Explorer (Обозреватель решений), появилось окно контекстной справки, по имени Dynamic Help (Динамическая справка). Несколько изменилась и панель инструментов Toolbox (Область элементов). Она теперь разделена на несколько функциональных категорий: элементы Windows Forms, элементы Web Forms и Data (Данные).
  • Большинство окон инструментов имеют функцию автоматического сворачивания окна инструмента — когда он не используется, он скрывается с экрана.
  • Проекты теперь сохраняются по-другому. Имя проекту вы присваиваете перед его созданием. Сами проекты разделены на несколько файлов и папок — их еще больше, чем в Visual Basic 6. В Visual Basic 6 программы, которые состояли из нескольких проектов, назывались группами проектов; теперь они называются решениями.

Среда разработки Visual Studio .NET

Хотя язык программирования , который вы будете изучать в этой книге, называется Visual Basic , среда разработки программ называется Microsoft Visual Studio . NET . Это мощная и настраиваемая среда программирования, которая содержит все инструменты, необходимые для быстрого и эффективного создания надежных программ для Windows . Большинство возможностей Visual Studio можно одинаково использовать в Visual Basic . NET , Visual C++ . NET , Visual C# . NET и Visual J# . NET . Для запуска Visual Studio выполните следующие действия.

Важно. Если вы еще не установили файлы практических занятий для этой книги, обратитесь к разделу «Установка файлов практических занятий».

Запуск Visual Studio .NET

  1. На панели задач Windows нажмите кнопку Start (Пуск), наведите указатель на All Programs (Все программы), а затем на папку Microsoft Visual Studio .NET 2003. Появится список программ, находящихся в папке Microsoft Visual Studio .NET 2003.

Важно. Чтобы выполнить упражнения из этой книги, нужно установить одну из следующих редакций Visual Studio .NET 2003: Visual Basic .NET Стандартный выпуск, Visual Studio .NET Professional, Visual Studio .NET Enterprise Developer или Visual Studio .NET Enterprise Architect. Вы не сможете выполнять упражнения, если у вас установлена более ранняя версия Visual Basic. В этом случае попробуйте найти издание «Microsoft Visual Basic Professional 6.0 Шаг за шагом».

Запустится Visual Studio, и вы увидите на экране среду разработки с ее многочисленными меню, инструментами и окнами с компонентами. (Иногда эти окна также называются окнами инструментов.) Если это первый запуск Visual Studio после новой установки, то должна появиться Start Page (Начальная страница). Если Start Page (Начальная страница) не видна, ее можно вызвать из меню Help (Справка) по команде Show Start Page (Показать начальную страницу).

Важно. Если все надписи и команды в среде разработки написаны по-английски, в верхней строке меню выберите меню Tools, в нем команду Options (Параметры). Появится окно настройки среды Parameters. В левом столбце папок раскройте двойным щелчком папку Environment, а в ней выберите строку International Settings. В правой части окна из списка Language выберите Russian — это русский язык.

Нажмите кнопку ОК и закройте окно. После этого завершите работу среды Visual Studio и запустите ее заново (вернитесь на пункт 1).

Источник: intuit.ru

2) Visual Basic для приложений

Я хотел бы расширить мудрые слова Стива Джобса и сказать, что все в мире должны научиться программировать компьютер. Возможно, вам совсем не обязательно работать программистом или писать программы, но это научит вас думать.

В этом уроке мы рассмотрим следующие темы.

  • Что такое VBA?
  • Почему VBA?
  • Личные и бизнес приложения VBA в Excel
  • Visual Basic для приложений Основы VBA
  • Пошаговый пример создания простого калькулятора электромагнитных помех в Excel

Что такое VBA?

VBA означает Visual Basic для приложений . Прежде чем мы углубимся в детали, давайте посмотрим, что такое компьютерное программирование на языке неспециалиста. Предположим, у вас есть горничная. Если вы хотите, чтобы горничная убиралась в доме и стирала. Вы говорите ей, что делать, скажем, на английском, и она сделает всю работу за вас.

Работая с компьютером, вы захотите выполнить определенные задачи. Точно так же, как вы сказали горничной делать домашние дела, вы также можете сказать компьютеру, чтобы он выполнял задачи за вас.

Процесс сообщения компьютеру о том, что вы хотите, чтобы он делал для вас, называется компьютерным программированием. Точно так же, как вы использовали английский, чтобы сказать горничной, что делать, вы также можете использовать английские операторы, чтобы сказать компьютеру, что делать. Заявления, подобные английскому, относятся к категории языков высокого уровня. VBA – это язык высокого уровня, который вы можете использовать, чтобы превзойти свою мощь.

VBA на самом деле к югу набор Visual Basic 6.0 BASIC означает B eginners LL-Purpose S при ymbolic I nstruction C ода.

Почему VBA?

  • Для написания инструкций используются английские выражения.
  • Создание пользовательского интерфейса похоже на использование программы рисования. Вы просто должны перетащить, перетащить и выровнять элементы управления графического интерфейса пользователя.
  • Короткая кривая обучения. С первого дня, когда вы начинаете учиться, вы можете сразу начать писать простые программы.
  • Расширяет функциональность Excel, позволяя заставить Excel вести себя так, как вы хотите
Читайте также:
Downloads что это за программа видео

Личные и бизнес приложения VBA в Excel

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

Для бизнес-целей вы можете создавать полноценные мощные программы на базе Excel и VBA. Преимущество этого подхода в том, что вы можете использовать мощные функции Excel в своих собственных программах.

Visual Basic для приложений Основы VBA

Прежде чем мы сможем написать какой-либо код, мы должны сначала знать основы. Следующие основы помогут вам начать.

    Переменная – в старших классах мы узнали об алгебре. Найдите (x + 2y), где x = 1 и y = 3. В этом выражении x и y являются переменными. Им могут быть назначены любые номера, то есть 1 и 3 соответственно, как в этом примере. Они также могут быть изменены, чтобы сказать 4 и 2 соответственно. Короче говоря, переменные являются ячейками памяти.
    Поскольку вы работаете с VBA, вам потребуется также объявлять переменные, как в классах алгебры.

Правила создания переменных

  • Не используйте зарезервированные слова – если вы работаете студентом, вы не можете использовать титул лектора или директора. Эти названия зарезервированы для преподавателей и администрации школы. Зарезервированные слова – это те слова, которые имеют особое значение в Vba, и поэтому их нельзя использовать в качестве имен переменных.
  • Имена переменных не могут содержать пробелов – вы не можете определить переменную с именем first number. Вы можете использовать firstNumber или first_number.
  • Используйте описательные имена – очень заманчиво назвать переменную после себя, но избегайте этого. Используйте описательные имена, например количество, цену, промежуточную сумму и т. Д., Чтобы ваш код VBA был легко читаем

Арифметические операторы. Применяются правила сложения и вычитания в скобках деления умножения (BODMAS), поэтому не забывайте применять их при работе с выражениями, использующими несколько различных арифметических операторов. Как и в Excel, вы можете использовать

  • + для дополнения
  • – для вычитания
  • * для умножения
  • / для деления.

Логические операторы. Концепция логических операторов, описанная в предыдущих руководствах, также применяется при работе с VBA. К ним относятся

Включить опцию разработчика

  • Создать новую рабочую книгу
  • Click on the ribbon start button
  • Select options
  • Click on customize ribbon
  • Select the developer checkbox as shown in the image below
  • Click OK

Введение в макросы в Excel

You will now be able to see the DEVELOPER tab in the ribbon

VBA Hello world

Now we will demonstrate how to program in VBA. All program in VBA has to start with “Sub” and end with “End sub”. Here the name is the name you want to assign to your program. While sub stands for a subroutine which we will learn in the later part of the tutorial.

Sub name() . . . End Sub

We will create a basic VBA program that displays an input box to ask for the user’s name then display a greeting message

This tutorial assumes you have completed the tutorial on Macros in excel and have enabled the DEVELOPER tab in excel.

Создание вашего первого Visual Basic для приложений (VBA) в Excel

Нарисуйте командную кнопку в любом месте листа

Вы получите следующее диалоговое окно

Создание вашего первого Visual Basic для приложений (VBA) в Excel

  • Переименуйте имя макроса в btnHelloWorld_Click
  • Нажмите на новую кнопку
  • Вы получите следующее окно кода

Создание вашего первого Visual Basic для приложений (VBA) в Excel

Введите следующие коды инструкций

Dim name As String name = InputBox(«Enter your name») MsgBox «Hello » + name

  • «Dim name as String» создает переменную с именем name. Переменная будет принимать текстовые, числовые и другие символы, потому что мы определили ее как строку
  • «name = InputBox (« Введите ваше имя »)» вызывает встроенную функцию InputBox, которая отображает окно с заголовком «Введите ваше имя». Введенное имя затем сохраняется в переменной имени.
  • ” MsgBox” Hello “+ name” вызывает встроенную функцию MsgBox, которая отображает Hello и введенное имя.

Ваше полное окно кода теперь должно выглядеть следующим образом

Создание вашего первого Visual Basic для приложений (VBA) в Excel

  • Закройте окно кода
  • Щелкните правой кнопкой мыши на кнопке 1 и выберите редактировать текст
  • Войти Скажи привет

Создание вашего первого Visual Basic для приложений (VBA) в Excel

  • Нажмите на Скажи привет
  • Вы получите следующее поле ввода

Создание вашего первого Visual Basic для приложений (VBA) в Excel

  • Введите свое имя т.е. Иордания
  • Вы получите следующее окно сообщения

Создание вашего первого Visual Basic для приложений (VBA) в Excel

Поздравляем, вы только что создали свою первую программу VBA в Excel

Пошаговый пример создания простого калькулятора электромагнитных помех в Excel

В этом учебном упражнении мы собираемся создать простую программу, которая рассчитывает EMI. EMI является аббревиатурой от равных ежемесячных платежей. Это ежемесячная сумма, которую вы выплачиваете, когда получаете кредит. На следующем рисунке показана формула для расчета EMI.

Создание вашего первого Visual Basic для приложений (VBA) в Excel

Приведенная выше формула сложна и может быть написана в Excel. Хорошей новостью является то, что Excel уже позаботился о вышеуказанной проблеме Вы можете использовать функцию PMT для вычисления выше.

Функция PMT работает следующим образом

=PMT(rate,nper,pv)

ВОТ,

  • «Оценить» это месячная ставка. Это процентная ставка, деленная на количество платежей в год
  • «nper» – это общее количество платежей. Это срок кредита, умноженный на количество платежей в год
  • «pv» текущая стоимость. Это фактическая сумма кредита

Создайте графический интерфейс с использованием ячеек Excel, как показано ниже

Создание вашего первого Visual Basic для приложений (VBA) в Excel

Добавьте командную кнопку между строками 7 и 8

Дайте кнопке имя макроса btnCalculateEMI_Click

Нажмите на кнопку редактирования

Введите следующий код

Dim monthly_rate As Single, loan_amount As Double, number_of_periods As Single, emi As Double monthly_rate = Range(«B6»).Value / Range(«B5»).Value loan_amount = Range(«B3»).Value number_of_periods = Range(«B4»).Value * Range(«B5»).Value emi = WorksheetFunction.Pmt(monthly_rate, number_of_periods, -loan_amount) Range(«B9»).Value = emi

ВОТ,

  • «Dim month_rate As Single,…» Dim – это ключевое слово, которое используется для определения переменных в VBA, month_rate – имя переменной, Single – тип данных, который означает, что переменная будет принимать число.
  • “month_rate = Range (” B6 “). Value / Range (” B5 “). Value” Range – это функция, используемая для доступа к ячейкам Excel из VBA, Range (“B6”). Значение ссылается на значение в B6
  • «WorksheetFunction.Pmt (…)» WorksheetFunction – это функция, используемая для доступа ко всем функциям в Excel.

На следующем рисунке показан полный исходный код

Создание вашего первого Visual Basic для приложений (VBA) в Excel

  • Нажмите на сохранить и закройте окно кода
  • Протестируйте свою программу, как показано на анимированном изображении ниже

Пример 2

Шаг 1) На вкладке «Разработчик» в главном меню щелкните значок «Visual Basic», чтобы открыть редактор VBA.

Что такое VBA?

Шаг 2) Откроется редактор VBA, из которого вы можете выбрать лист Excel, в котором вы хотите запустить код. Чтобы открыть редактор VBA, дважды щелкните по листу.

Что такое VBA?

Он откроет редактор VBA в правой части папки. Это будет выглядеть как белое пространство.

Что такое VBA?

Шаг 3) На этом шаге мы увидим нашу первую программу VBA. Для чтения и отображения нашей программы нам нужен объект. В VBA этот объект или среда в MsgBox.

  • Сначала напишите «Sub», а затем свое «имя программы» (Guru99)
  • Напишите все, что вы хотите отобразить в MsgBox (обучение guru99 – это весело)
  • Завершить программу End Sub

Что такое VBA?

Шаг 4) На следующем шаге вы должны запустить этот код, нажав зеленую кнопку запуска в верхней части меню редактора.

Что такое VBA?

Шаг 5) Когда вы запустите код, появится другое окно. Здесь вы должны выбрать лист, где вы хотите отобразить программу и нажмите кнопку «Выполнить»

Что такое VBA?

Шаг 6) Когда вы нажмете кнопку «Выполнить», программа запустится. Он отобразит сообщение в MsgBox.

Что такое VBA?

Резюме

VBA означает Visual Basic для приложений. Это подкомпонент языка программирования Visual Basic, который вы можете использовать для создания приложений в Excel. С VBA вы все еще можете воспользоваться мощными функциями Excel и использовать их в VBA.

Читайте также:
Индивидуальная программа исследовательской работы по технологии что это

Источник: coderlessons.com

Руководство по исследованию программ, написанных на Visual Basic 6.0

ScienceStory

Приводим статью, которая увидела свет еще в середине 2005-го года на станицах ресурса WASM.RU. Приводим статью полностью, без редактирования. Актуальность информации (Visual Basic 6.0 и ОС тех лет), а также актуальность приведенных ссылок требует дополнительного анализа. Но речь не об этом .

[Вступление]

Многие почему то считают, что Visual Basic это примитивный язык программирования, который не может компилировать программы, работать с адресами переменных в памяти и не позволяющий вставлять ассемблерные процедуры в код. Так вот, все это неправда.

Начиная с версии 5.0 данный язык позволяет компилировать программы в Native Code, а также имеется возможность работы с адресами переменных в памяти (для этого существует функция varptr). Ассемблерные процедуры вставлять тоже можно, но не так просто. Для этого я написал уже 2 части статьи по вставке ассемблерных процедур в код на Visual Basic. Эти статьи можно найти на сайте www.dotfix.net. Как видите, недостатков у VB не так уж и много, а преимуществ настолько много, что я расскажу лишь о самых очевидных и важных:

  • Полноценная компиляция и маленький размер получаемых exe файлов. Несмотря на то, что программы требуют библиотеку MSVBVM60.DLL, это не является недостатком, так как эта библиотека интегрированная во все новые операционные системы и таскать ее вместе с приложением не нужно.
  • Простота написания кода. Все удобно и наглядно. Даже начинающий может писать неоптимизированные, но рабочие программы. Как говориться, умеешь писать качественно — пиши, от этого программы будут только лучше. Не умеешь — можешь писать неоптимизированные проги (переменные объявлять не обязательно, преобразовывать типы данных тоже не обязательно). Но постепенно приходят более глубокие познания и можно писать крупные проекты, не сильно уступающие аналогам на C++ или Delphi по скорости работы, но на разработку которых уходит гораздо меньше времени.Так вот, начинающие исследователи программ почему то считают, что программы, написанные на VB невозможно сломать. Если программа скомпилирована в pcode — я частично с ними соглашусь, но даже для этого вида компиляции уже написано множество отладчиков, способных понимать псевдокодовые инструкции. Что же касается Native Code, то тут все ломается также, как и любая другая программа, написанная например на C++ или Delphi. Но есть ряд особенностей. Все операции, которые выполняет программа выполняются с использованием узкоспециализированных функций из библиотеки MSVBVM60.DLL. Имена этих функций напоминают операторы Visual Basic’а, поэтому глядя на названия большинства из них, можно понять, какие операции они позволяют выполнять. Но есть и такие, которые не поддаются логике. О них я и расскажу в данной статье.

[Функции]

[Разблокирование элементов управления]

Любой элемент управления на форме может быть видимым или невидимым, доступным или заблокированным. Очень часто для взлома программы бывает нужно разблокировать отдельные элементы управления на форме. Для установки свойств объектов существует функция __vbaObjSet. Именно с помощью нее можно заблокировать или разблокировать элемент управления и изменить любое из его свойств.

Поэтому нам необходимо отлавливать вызов именно этой функции. Откроем например Olly Debugger, найдем эту функцию среди вызываемых программой и поставим на нее бряк нажав кнопку F2. Затем запустим исследуемую программу. Когда бряк сработает — посмотрите окружающий код. Если он напоминает

CODE NOW!
50 push eax
52 push edx
FFD7 call edi
8BD8 mov ebx, eax
6A00 push 00
53 push ebx
8B03 mov eax, dword ptr [ebx]

то вы на верном пути. Как вы думаете, что это за «push 00»? 00h в VB означает FALSE, а FFh TRUE, из этого следует, что данная команда устанавливает свойство в FALSE, то есть возможно это и есть блокировка элемента управления на форме. Но это может быть и установка любого другого свойства формы в TRUE. Так как синтаксис один и тот же, что принадлежность данной команды к изменению свойства блокировки можно установить только анализом окружающего кода, но умаю с этой мелочью вы справитесь сами.

[Методика взлома простейших проверок пароля]

Нижеследующий текст — мой вольный перевод статьи How to Research Visual Basic Cracking с сайта http://www.infonegocio.com/vbcrack/. За английскую версию текста спасибо ее авторам. Что нам может понадобиться? Любой дизассемблер/отладчик. Подойдет Win32Dasm или Olly Debugger Если вы используете W32Dasm, то функции, используемые программой вы можете посмотреть в меню «Functions» -> «Imports».

Если вы будете исследовать базу данных Jet, которая использует драйвера Micro$oft, то помните, что названия функции не говорят сами за себя и вам будет трудно узнать действие, которое выполняет та или иная функция. в данном случае Вам остается только смотреть рекомендации к функциям, которые любезно оставлены программистами Micro$oft. Дыр же в этих драйверах практически нет, поэтому исследовать программы для работы с базами данных довольно сложно. Рассмотрим пример защиты программы паролем. Для удобства поиска нужного кода поставим MessageBox. Откройте Visual Basic, добавьте на форму текстовое поле и кнопку, затем в обработчике щелчка по кнопке напишите следующий код:

CODE NOW!
Private Sub Command1_Click()
Dim XMsgBox «Testing password»
00401F5A 8D459C LEA EAX,[EBP-64]
00401F5D 8D4DAC LEA ECX,[EBP-54]
00401F60 50 PUSH EAX
00401F61 8D55BC LEA EDX,[EBP-44]
00401F64 51 PUSH ECX
00401F65 8D45CCLEA EAX,[EBP-34]
00401F68 52 PUSH EDX
00401F69 50 PUSH EAX
00401F6A 6A04 PUSH 04
00401F6C FF1508104000 CALL [MSVBVM60!__vbaFreeVarList]
00401F72 8B0E MOV ECX,[ESI]
00401F74 83C414 ADD ESP,14
00401F77 56 PUSH ESI
00401F78 FF9104030000 CALL [ECX+00000304]
00401F7E 8D55DCLEA EDX,[EBP-24]
00401F81 50 PUSH EAX
00401F82 52 PUSH EDX
00401F83 FF1524104000 CALL [MSVBVM60!__vbaObjSet]
00401F89 8BF0 MOV ESI,EAX
00401F8B 8D4DE4LEA ECX,[EBP-1C]
00401F8E 51 PUSH ECX
00401F8F 56 PUSH ESI
00401F90 8B06 MOV EAX,[ESI]
00401F92 FF90A0000000 CALL [EAX+000000A0]
00401F98 3BC7 CMP EAX,EDI
00401F9A DBE2 FCLEX
00401F9C 7D12 JGE 00401FB0
00401F9E 68A0000000 PUSH 000000A0
00401FA3 6804184000 PUSH 00401804
00401FA8 56 PUSH ESI
00401FA9 50 PUSH EAX
00401FAA FF1518104000 CALL [MSVBVM60!__vbaHresultCheckObj] ;получение содержимого Text1.Text
00401FB0 8B55E4MOV EDX,[EBP-1C]
00401FB3 52 PUSH EDX
00401FB4 FF1514104000 CALL [MSVBVM60!rtcTrimBstr] ;Trim$
00401FBA 8BD0 MOV EDX,EAX
00401FBC 8D4DE0 LEA ECX,[EBP-20]
00401FBF FF1584104000 CALL [MSVBVM60!__vbaStrMove]
00401FC5 50 PUSH EAX
00401FC6 FF1568104000 CALL [MSVBVM60!__vbaI4Str] ;CLng
00401FCC 33C9 XOR ECX,ECX
00401FCE 3DAAAA0000 CMP EAX,0000AAAA ;Число 43690 в HEX виде
00401FD3 8D55E0LEA EDX,[EBP-20]
00401FD6 8D45E4LEA EAX,[EBP-1C]
00401FD9 0F94C1 SETZ CL
00401FDC 52 PUSH EDX
00401FDD 50 PUSH EAX
00401FDE F7D9 NEG ECX
00401FE0 6A02 PUSH 02
00401FE2 8BF1 MOV ESI,ECX
00401FE4 FF156C104000 CALL [MSVBVM60!__vbaFreeStrList]
00401FEA 83C40C ADD ESP,0C
00401FED 8D4DDC LEA ECX,[EBP-24]
00401FF0 FF1594104000 CALL [MSVBVM60!__vbaFreeObj]
00401FF6 663BF7 CMP SI,DI
00401FF9 7463 JZ 0040205E ;переход на GoodBoy код (MsgBox «GoodBoy»)
00401FFB B804000280 MOV EAX,80020004
00402000 8D558C LEA EDX,[EBP-74]
00402003 8D4DCCLEA ECX,[EBP-34]
00402006 8945A4 MOV [EBP-5C],EAX
00402009 895D9C MOV [EBP-64],EBX
0040200C 8945B4 MOV [EBP-4C],EAX
0040200F 895DAC MOV [EBP-54],EBX
00402012 8945C4 MOV [EBP-3C],EAX
00402015 895DBC MOV [EBP-44],EBX
00402018 C7459418184000 MOV DWORD PTR [EBP-6C],00401818
0040201F C7458C08000000 MOV DWORD PTR [EBP-74],00000008
00402026 FF157C104000 CALL [MSVBVM60!__vbaVarDup]
0040202C 8D4D9C LEA ECX,[EBP-64]

Чтобы взломать данную программу — нужно изменить переход по адресу 00401FF9
с условного на абсолютный. Для этого меняем JE на JMP (то есть 74h на EBh).
Как видите — простенькие защиты VB программ ломаются не сложнее чем в программах, написанных на
Delphi или C++

Источник: sciencestory.ru

Рейтинг
( Пока оценок нет )
Загрузка ...
EFT-Soft.ru