Совсем скоро будет выложен следующий видеоурок по созданию трейнеров на самом развесёлом языке программирования - ассемблере. Кода там будет чуть больше одной строчки, так что давайте немного повторим пройденный материал из первого урока и заодно распишем план действий на дальнейшие. :)
Итак, привожу исходный код программы из первого урока. Вот он (после точки с запятой идёт комментарий):
Давайте теперь разберём каждую строчку, начиная с первой. Итак:
1. Команда include (англ. подключить) - служит для подключения для внешней библиотеки, позволяющей нам использовать WinAPI-функции. Очень необходимая штука, без неё ничего работать не будет - просто запомните. :)
2. Штучка .code сообщает компилятору, что мы собрались писать код. Это - секция кода, подробнее будет в следующем уроке.
3. start: (англ. начало) и end start ("end" - англ. конец) - обозначают начало и конец единственной процедуры нашей программы. Процедур в программе может быть больше одной, так что мы явно просим компилятор начать именно отсюда.
4. На команде invoke (англ. вызвать), которую мы в нашей программе используем аж дважды, остановлюсь чуть подробнее. Если очень просто, то этой командой мы вызываем WinAPI-функцию, передав функции необходимые аргументы. Вот вам простой пример:
Лето, Сочи, жара +35, идём мы себе в гавайских шортах и сланцах по улице, а тут нас неожиданно одолевает жажда. Заворачиваем за угол и - о, чудо! - видим автомат по продаже кока-колы.
Подходим к автомату, трясём карманы - находим мелочь. Теперь - самое интересное. Чтобы купить бутылку, автомату нужно датьвзятку денег - тут всё понятно. Так вот, автомат - это функция, а деньги - это аргументы этой функции. Бывает даже так, что функция после вызова присылает нам какой-то ответ. В случае автомата это будет или "Иди на фиг, денег мало" или "Вот Ваш напиток, Господин!". На языке ассемблера мы могли бы купить колы вот так:
Начинает проясняться, правда? :)
Ладно, возвратимся к нашей программе, в которой мы вызываем две функции. Первой мы показываем информационное окошко с каким-то текстом и кнопочкой "ОК", а второй просто завершаем работу. Подробнее про обе функции можно почитать вот тут:
[MessageBox]
[ExitProcess]
Потихоньку привыкаем читать документацию на английском, это правда очень сильно пригодится, поверьте мне. Если не получается сходу - воспользуйтесь помощью гугл-переводчика, сделайте его капельку счастливее. :)
Для тех, кто до сих пор не понял, что за слово такое - "компилятор" - объясняю: это программа, делающая из нашего исходного кода исполняемый EXE-файл. Подробнее пока знать ни к чему, ещё успеем.
Если устали от многабукав - сходите попейте чаю или книжку почитайте, потому что дальше мы будем думать о вечном - о том, как устроен трейнер. :)
В общих чертах, трейнер должен делать вот такое:
1. Запуститься, показать своё окно
2. Ждать нажатия на кнопку от пользователя
3. Если пользователь всё-таки это сделал - включить (или выключить) какую-то из опций-читов
4. Корректно завершить работу после закрытия
Как видите, всё довольно прозрачно. А подробности - в следующем уроке. :)
PS: Полный исходный код и скомпилированное приложение можно найти в папке \examples\hello из дистрибутива [flat assembler].
Итак, привожу исходный код программы из первого урока. Вот он (после точки с запятой идёт комментарий):
; Исходный листинг hello.asm из примеров по flat assemblerinclude 'win32ax.inc' ; Подключаемая библиотека для работы с WinAPI-функциями
.code ; Начало секции кода
start: ; Единственная метка - точка входа в программу
invoke MessageBox,HWND_DESKTOP,"Hi! I'm the example program!",invoke GetCommandLine,MB_OK ; Вызов информационного окна
invoke ExitProcess,0 ; Закрытие программы
.end start ; Закрывающая конструкция для входной метки
Давайте теперь разберём каждую строчку, начиная с первой. Итак:
1. Команда include (англ. подключить) - служит для подключения для внешней библиотеки, позволяющей нам использовать WinAPI-функции. Очень необходимая штука, без неё ничего работать не будет - просто запомните. :)
2. Штучка .code сообщает компилятору, что мы собрались писать код. Это - секция кода, подробнее будет в следующем уроке.
3. start: (англ. начало) и end start ("end" - англ. конец) - обозначают начало и конец единственной процедуры нашей программы. Процедур в программе может быть больше одной, так что мы явно просим компилятор начать именно отсюда.
4. На команде invoke (англ. вызвать), которую мы в нашей программе используем аж дважды, остановлюсь чуть подробнее. Если очень просто, то этой командой мы вызываем WinAPI-функцию, передав функции необходимые аргументы. Вот вам простой пример:
Лето, Сочи, жара +35, идём мы себе в гавайских шортах и сланцах по улице, а тут нас неожиданно одолевает жажда. Заворачиваем за угол и - о, чудо! - видим автомат по продаже кока-колы.
Подходим к автомату, трясём карманы - находим мелочь. Теперь - самое интересное. Чтобы купить бутылку, автомату нужно дать
invoke Автомат,35
Начинает проясняться, правда? :)
Ладно, возвратимся к нашей программе, в которой мы вызываем две функции. Первой мы показываем информационное окошко с каким-то текстом и кнопочкой "ОК", а второй просто завершаем работу. Подробнее про обе функции можно почитать вот тут:
[MessageBox]
[ExitProcess]
Потихоньку привыкаем читать документацию на английском, это правда очень сильно пригодится, поверьте мне. Если не получается сходу - воспользуйтесь помощью гугл-переводчика, сделайте его капельку счастливее. :)
Для тех, кто до сих пор не понял, что за слово такое - "компилятор" - объясняю: это программа, делающая из нашего исходного кода исполняемый EXE-файл. Подробнее пока знать ни к чему, ещё успеем.
Если устали от многабукав - сходите попейте чаю или книжку почитайте, потому что дальше мы будем думать о вечном - о том, как устроен трейнер. :)
В общих чертах, трейнер должен делать вот такое:
1. Запуститься, показать своё окно
2. Ждать нажатия на кнопку от пользователя
3. Если пользователь всё-таки это сделал - включить (или выключить) какую-то из опций-читов
4. Корректно завершить работу после закрытия
Как видите, всё довольно прозрачно. А подробности - в следующем уроке. :)
PS: Полный исходный код и скомпилированное приложение можно найти в папке \examples\hello из дистрибутива [flat assembler].
Комментариев нет:
Отправить комментарий
Не люблю мат и низкий уровень грамотности. Чем конкретнее поставите свой вопрос и чем лучше он будет выглядеть - тем большая вероятность на мой ответ. :)