Перейти к содержанию

Пишем Трейнер С Нуля - Ассемблер.


Рекомендуемые сообщения

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

А вот и [сайт] ассемблера, который я буду в этой теме использовать. Поехали:

[первая запись] - простейшая программа на ассемблере.

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

[третья запись] - создаём диалоговое окно для нашего трейнера.

[четвёртая запись] - пишем функцию записи в процесс игры.

[пятая запись] - улучшаем внешний вид.

[шестая запись] - работа с горячими клавишами.

[седьмая запись] - работаем с указателями.

Ссылка на комментарий
Поделиться на другие сайты

keng твои видеоуроки как всегда с нуля и более подробно и голосовое запись. Ждем продолжение урока.

Ну чтож я попробую с голосом видеоурок трейнер на VC# с нуля 8-)

Ссылка на комментарий
Поделиться на другие сайты

keng твои видеоуроки как всегда с нуля и более подробно и голосовое запись. Ждем продолжение урока.

Ну чтож я попробую с голосом видеоурок трейнер на VC# с нуля 8-)

Круто! :lol:

Объясняю я довольно сумбурненько, но если по шагам каждый урок смотреть - вроде как более-менее понятно всё будет. Тут главное самому практиковаться, т.к. я не могу просто взять и положить знания в голову - я скорее показываю направление куда копать нужно. :-D

PS: Сначала тоже на решёточках хотел показывать, но меня после нескольких лет разработки уже от них подташнивает. :-P

Ссылка на комментарий
Поделиться на другие сайты

Offtop

Не знаю насколько сумбурненько, но я некоторые твои видосы смотрю чисто чтоб посмеяться)) Нет, нет, я не о профессионализме твоем, а именно подачи "сюжета".

Одно чего - ....ну вот, если логически подумать "МХАТовская пауза" или не подумать, можно понять "еще одна пауза" или не понять......

Меня просто вынесло))

Умеешь же ведь заинтересовать зрителя))

Ссылка на комментарий
Поделиться на другие сайты

Kvazimado с юморм делать видеоурок как всегда интересно всем интересно.

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

Продолжаю делать на этом языке.

Ссылка на комментарий
Поделиться на другие сайты

Kvazimado с юморм делать видеоурок как всегда интересно всем интересно.

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

Продолжаю делать на этом языке.

Нифига оно не усложнит. Как я уже говорил - на язык вообще пофиг, хоть на паскале под дос - лишь бы winapi поддерживал. А так - было бы желание. Почему я остановился на асме - я в уроке уже объяснил, но во всех трейнерах алгоритм работы в принципе один и тот же - не стоит больших усилий пересунуть его в другой язык, особенно - высокого уровня.

Ссылка на комментарий
Поделиться на другие сайты

Offtop

Не знаю насколько сумбурненько, но я некоторые твои видосы смотрю чисто чтоб посмеяться)) Нет, нет, я не о профессионализме твоем, а именно подачи "сюжета".

Одно чего - ....ну вот, если логически подумать "МХАТовская пауза" или не подумать, можно понять "еще одна пауза" или не понять......

Меня просто вынесло))

Умеешь же ведь заинтересовать зрителя))

Я - не оратор, да и гх-навыков у меня не так много, просто всегда нравилось ковыряться в коде, особенно в чужом. Спасибо за отзыв, так сказать. :lol:

В любом случае, критику и дополнения я со всей яростью приветствую - от них урокам будет только лучше. 8-)

Ссылка на комментарий
Поделиться на другие сайты

Ну оратор не оратор, но у тебя получается.

это твой коронный номер наверное когда в начале раз раз раз :D

В общем конечно писать трейнер на таких языках не требующщщщщщщ NET fraemwork

хотя у всех он установлен 89%.

Ссылка на комментарий
Поделиться на другие сайты

Ну оратор не оратор, но у тебя получается.

это твой коронный номер наверное когда в начале раз раз раз :D

В общем конечно писать трейнер на таких языках не требующщщщщщщ NET fraemwork

хотя у всех он установлен 89%.

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

Ссылка на комментарий
Поделиться на другие сайты

  • 2 недели спустя...
  • 3 недели спустя...

возник такой вопрос когда я нахожу смещение мне он выдает типа [esi+eax*4].как написать нужное смещение?

В момент срабатывания посчитай всё в отдельном регистре, прибавляй результат. Т.е. (псевдокод):


mul eax, 4
mov ebx, eax
add ebx, esi

Результат - в ebx

Ссылка на комментарий
Поделиться на другие сайты

В момент срабатывания посчитай всё в отдельном регистре, прибавляй результат. Т.е. (псевдокод):


mul eax, 4
mov ebx, eax
add ebx, esi

Результат - в ebx

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

Ссылка на комментарий
Поделиться на другие сайты

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

Так, давай определимся, для начала. Ты сейчас хочешь именно взломать (через Cheat Engine, к примеру), или написать трейнер? Что уже получилось и что именно взломать хочешь?

Ссылка на комментарий
Поделиться на другие сайты

Так, давай определимся, для начала. Ты сейчас хочешь именно взломать (через Cheat Engine, к примеру), или написать трейнер? Что уже получилось и что именно взломать хочешь?

я нашел значение в своей игре(игра warhammer40.000).хочу написать трейнер но не получается так как немогу найти стат адрес.а стат. адрес немогу найти из за неизвестного смешения.

Ссылка на комментарий
Поделиться на другие сайты

Окей. [Вот] статья в тему, на английском. Суть в кратце - необходимо узнать, что делается с этим регистром до чтения указателя, а затем уже использовать его значение как обычно.

Ссылка на комментарий
Поделиться на другие сайты

я наверно замучил тебя своими вопросами=)мне просто надо узнать что делать если смещение к примеру [eax+esi*4] я вот этого не пойму *4?раньше всегда было так смещение +16 и т.д.мне просто тупо в адресе смещение 4 написать или сложить eax+esi и помножить на 4?или как вот этого я не пойму

Ссылка на комментарий
Поделиться на другие сайты

>> я нашел значение в своей игре(игра warhammer40.000).хочу написать трейнер но не получается так как немогу найти стат адрес.а стат. адрес немогу найти из за неизвестного смешения.

nnzz, игра которую ты выбрал сложная для создания читов. По этой игре опубликованы скрипты на CE на форуме CE. Ищи тему по этой игре в форуме Автоассемблера и разбирайся.

Ссылка на комментарий
Поделиться на другие сайты

я наверно замучил тебя своими вопросами=)мне просто надо узнать что делать если смещение к примеру [eax+esi*4] я вот этого не пойму *4?раньше всегда было так смещение +16 и т.д.мне просто тупо в адресе смещение 4 написать или сложить eax+esi и помножить на 4?или как вот этого я не пойму

Так ведь простая арифметика, смотри:

Адрес указателя = значение по адресу [eax+esi*4]

Допустим, что в eax у нас 5, а в esi у нас 7. Тогда адресом будет:

[5 + 7*4], или [5 + 28], или [33]

Штука тут в том, что значение esi может быть разным, так что нам нужно сначала прочитать его, затем домножить на 4, прибавить к полученному значение eax и только после этого ReadProcessMemory("сумма") - это и будет адресом указателя. (:

Ссылка на комментарий
Поделиться на другие сайты

Так ведь простая арифметика, смотри:

Адрес указателя = значение по адресу [eax+esi*4]

Допустим, что в eax у нас 5, а в esi у нас 7. Тогда адресом будет:

[5 + 7*4], или [5 + 28], или [33]

Штука тут в том, что значение esi может быть разным, так что нам нужно сначала прочитать его, затем домножить на 4, прибавить к полученному значение eax и только после этого ReadProcessMemory("сумма") - это и будет адресом указателя. (:

Да не это он хочет узнать :) , а как многоуровневый указатель найти до статического адреса (если его вообще там можно построить). Очевидно, что регистр eax там на начало структуры, а esi может меняться от игровой сцены к сцене. И он не знает что делать с этим esi. А мы тоже не телепаты и не роботы на вопрос каждого новичка давать готовое решение.

Ссылка на комментарий
Поделиться на другие сайты

Да не это он хочет узнать :) , а как многоуровневый указатель найти до статического адреса (если его вообще там можно построить). Очевидно, что регистр eax там на начало структуры, а esi может меняться от игровой сцены к сцене. И он не знает что делать с этим esi. А мы тоже не телепаты и не роботы на вопрос каждого новичка давать готовое решение.

Так я же до этого написал (где ещё ссылку на статью кинул), что нужно просто чуток код вверх потрейсить и выяснить, что с регистром происходит. Как я понял, проблема в имплементации чтения этого указателя в код трейнера, но я уже тоже сомневаюсь. :D

Ссылка на комментарий
Поделиться на другие сайты

Из краткого справочника начинающего геймхакера можно понять, что эта инструкция обязательно крутится в цикле, который перебирает какой-то массив(не структуру, ибо шаг всегда равен четырем байтам - esi*4), где в eax хранится указатель на начало массива, а в esi - счетчик нужного значения в массиве. ESI*4 говорит нам о том, что массив состоит из четырехбайтных чисел (шаг счетчика равен 4). Из всего этого можно сделать вывод, что нужно, как выше и говорил keng, найти статичный указатель на начало массива (построить его от eax), и потом отслеживать, какой индекс появляется в ESI при работе с нужным игровым значением. Если нужно менять только одно это значение - тогда, как выше и говорил keng, можно будет текущий индекс этого значения помножить на 4 и от этого "танцевать".

Ссылка на комментарий
Поделиться на другие сайты

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

А вот и [сайт] ассемблера, который я буду в этой теме использовать. Поехали:

[первая запись] - простейшая программа на ассемблере.

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

[третья запись] - создаём диалоговое окно для нашего трейнера.

[четвёртая запись] - пишем функцию записи в процесс игры.

[пятая запись] - улучшаем внешний вид.

[шестая запись] - работа с горячими клавишами.

[седьмая запись] - работаем с указателями.

ссылка cайта ассемблера грузится нормально.а остальные грузятся грузятся и все белый пустой лист.это только у меня?

Ссылка на комментарий
Поделиться на другие сайты

×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.