Привет, Гость ^__^
Регистрация
Показано с 1 по 1 из 1
  1. #1
    Аватар для dockerson
    Статус
         Offline
    Регистрация
    09.04.2016
    Сообщений
      2
    Поблагодарил(а)
    0
    Благодарностей
    4
    Репутация
    0 +/-

    Уроки по взлому игр - Урок 1




    Урок 1 - Введение


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


    Ассемблер это язык программирования низкого уровня где каждая команда имеет двоичное представление.
    В Ассемблере при компиляции каждая команда конвертируется в свой двоичный вид и напрямую исполняется процессором.
    Возьмем например вот такую ассемблерную команду

    dec [0048BB50]

    Эта команда декремента и она отнимает от аргумента один.

    dec – Название команды
    0048BB50 – Аргумент команды в шестнадцатеричной системе счисления
    [ ] – Эти скобки означают что между ними находится адрес в памяти, то есть команда отнимает один от значения по адресу 0048BB50
    У команд может быть один или два аргумента, а может вообще не быть.
    Когда мы скомпилируем программу то наша команда в исполняемом файле будет выглядеть так
    FF 0D 50BB4800
    Здесь FF 0D это номер команды а 50BB4800 это аргумент. Сейчас я расскажу почему аргумент не 0048BB50 а 50BB4800.
    Дело в том что все числа в памяти хранятся как-бы задом наперед.
    Чтобы узнать что это за число нужно сначала разбить его по байтам и потом переставить местами.
    Берем наше число 50BB4800 и разбиваем по байтам, получаем 50 BB 48 00.
    Далее мы перемещаем байты задом наперед и получаем 00 48 BB 50 что является аргументом нашей команды.




    Как вы думаете, можно ли имея двоичный код перевести его в команды ассемблера? Ответ можно и программы которые этим занимаются называются дизассемблерами.
    Но некоторые дизассемблеры не ограничиваются простым переводом двоичного кода в язык более менее понятный человеку а еще имеют
    массу возможностей для анализа программ про которые мы поговорим в будущих уроках.
    В настоящее время почти все программы пишутся на языках высокого уровня таких как C++, Java
    , Swift и одном из моих любимых C#.
    Сейчас язык Ассемблера используется в основном для:

    • 1.написания драйверов
    • 2.написания отдельных модулей программ которые критичны к производительности
    • 3.создания различных вирусов и вредоносных программ
    • 4.исследования других программ




    По моему лучше например дизассемблировать какую нибудь игру и сделать так что-бы игрок прыгал на 500м или ходил через стены чем писать нудные “Hello world”. И то “Hello world” на ассемблере это совсем не то что на вышеперечисленных языках, поверьте это сложнее. А вот исправив всего одну команду в памяти игры можно сделать игрока бессмертным, сделать бесконечные патроны да и вообще все что вы пожелаете.
    Но дизассемблеры это не единственный инструмент которым мы будем пользоваться. Существуют еще такие программы как: Отладчики, API шпионы, Файловые мониторы, Декомпиляторы, Hex редакторы которые в той или иной ситуации могут очень помочь. С этими инструментами мы в свое время будем работать.

    Но для начала мы будем работать с отладчиком. Единственное отличие отладчика от дизассемблера в том что отладчик работает с оперативной памятью и позволяет контролировать выполнение программы а также изменять память прямо во время выполнения программы. Дизассемблер работает с исполняемым файлом.
    В большинстве уроком мы будем пользоваться отладчиком Cheat Engine версии 6.4.Скачать
    На этом урок подходит к концу, надеюсь материал вам понравился, в следующем уроке мы рассмотрим язык Ассемблера подробнее.

  2. 3 пользователей сказали cпасибо dockerson за это полезное сообщение:

    crionic (17.12.2016),vlucteo (30.10.2016),zaqzaq (05.10.2016)



 

 

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •  
Скачать читы для одиночных и онлайн игр.Баги,хаки,модофикации,скачать вх,wallhack,Crossfire,WarFace,Aimbot для WarFace,читы для игр вконтакте,Тренеры для одиночных игр,читы для Battlefield,Графика & Photoshop,халява,раздача аккаунтов и ключей к играм!

Скачать читы для CS:GO,WarFace,Battlefield,Crossfire,Wot,Cod