Trix Опубликовано 2 сентября, 2016 Поделиться Опубликовано 2 сентября, 2016 Всем привет. тема взлома игр все больше и больше втягивает меня, началось все с простого написания трейнера. Сознаюсь, познания мои в этом деле весьма скудны - я пользуюсь языками среднего уровня и выше типа c#, немного знаю c++ Ассемблер и тд просто наотрез не понимаю. С чего следует начать системное обучение, чтобы не гов**кодить и не писать костыли. Какой ассемблер учить и какие существуют вообще, в чем их отличия? Какой материал поможет мне в этой теме? Напишите, пожалуйста, развернуто - с чего вы начинали и какие есть фичи в этом деле. Интересует тема более глобально как написание ботов, хуков, автоасм и тд. Чтобы не быть подснежником и учить все систематично. Заранее большое спасибо за развернутый ответ Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 2 сентября, 2016 Поделиться Опубликовано 2 сентября, 2016 Начать стоит с английского. На русском мало литературы по взломам и геймхакингу. Тут все индивидуально для каждого, и чтобы не тратить время, лучше подумать, чем хочешь заниматься. Я например, начал с C++ и Python их мне достаточно для решения всех задач. Начинал с обычных читов для игр, а потом как-то затянуло в Reverse-engeneering наверное из-за лени, и потому что это интересно для меня, (например решать keygenme), чтобы не писать лишнего кода, а использовать тот который написали разработчики с небольшими модификациями. Ссылка на комментарий Поделиться на другие сайты Поделиться
Trix Опубликовано 2 сентября, 2016 Автор Поделиться Опубликовано 2 сентября, 2016 Это, конечно, круто, но неужели можно обойтись без низкоуровневого яп? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 2 сентября, 2016 Поделиться Опубликовано 2 сентября, 2016 (изменено) На C++ ассемблерные вставки есть которые можно использовать как AA скрипты в CE при инжекте вроде бы это называется Mid Hook Function, но обычно достаточно хука функций и манипуляций с памятью. Изменено 2 сентября, 2016 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
gmz Опубликовано 2 сентября, 2016 Поделиться Опубликовано 2 сентября, 2016 3 часа назад, Trix сказал: С чего следует начать системное обучение, чтобы не гов**кодить и не писать костыли. справки/примеров fasm/nasm должно хватить. на оф сайтах найдешь остальное... тут также есть "уроки", правда редкие годятся для создания чего то МОЩНОГО 3 часа назад, Trix сказал: Какой ассемблер учить и какие существуют вообще, в чем их отличия? Какой материал поможет мне в этой теме? лучшие fasm/nasm. их дофига, некоторые больше чем на хелловорд не годятся fasm - х32 модуль, не нужен линкер, не нужен билдер ресурсов, имеет минмум среду для кодинга под винду, также имеет кучу макросов которые помогают нубам и уменьшают количество строк кода в исходнике, иногда макросы мешают и создают невероятный бредокод lulz nasm - х32/х64 модуль, нужен линкер, нужен билдер ресурсов, нужен редактор, в стиле "сделай все сам", поддерживает выравнивание в структурах, подходит для кодинга сложных шеллкодов, в х32 можно юзать регистр ebp (в fasm он забит стек фреймом), генерит код именно так как написал материал любой где есть примеры х32/х64 вида. также тебе может понадобится С компиль для получения некой инфы из инклудов - подойдет mingw64. хотя в большинстве случаев хватает msdn... конечно можно забить и кодить какой то хлам на С, как было сказано выше, кулстори в стиле что круче для кодинга тренеров С или asm всегда ржач lulz 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 2 сентября, 2016 Поделиться Опубликовано 2 сентября, 2016 gmz, как всегда, в своем репертуаре ) На самом деле, все достаточно просто. На Си и СиПэПэ можно кодить трейнеры и вполне себе графически красивые демосцены. Для глубокого копания в коде игр без знаний ассемблера х86 не обойтись ну никак вообще. Ибо редко когда можно получить исходники игры хотя бы в виде СДК. Также не лишним будет чтение книги Криса Касперски "Дизассемблирование в уме", чтобы понимать, как именно формируются инстрцукции ассемблера х86, и для чего нужна балансировка опкодов при патчинге памяти (или файла). Для хорошего программирования также не будут лишними талмуды Дональда Кнута (трехтомник, если мне не изменяет память). Ну и да, для более глубокого понимания кода игра таки надо кодить что-то свое на ассемблере (тут gmz абсолютно прав - fasm для новичка - самое оно). Ссылка на комментарий Поделиться на другие сайты Поделиться
gmz Опубликовано 3 сентября, 2016 Поделиться Опубликовано 3 сентября, 2016 8 часов назад, Xipho сказал: На самом деле, все достаточно просто. На Си и СиПэПэ можно кодить трейнеры и вполне себе графически красивые демосцены. дк если пишешь "трейнер" который не dll/exe а кусок кода? недавно писал такой в х64 виде. у него есть окно, он коректно сам себя освобождает из памяти если нажать Х +код пакован до инжекта. а С что? макс dll +какой то лоадер +куча движухи.. короче не то. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 3 сентября, 2016 Поделиться Опубликовано 3 сентября, 2016 Каждый пишет так, как считает нужным ) Твой метод для начинающего, я думаю, все же несколько сложнее, чем изучение основ С++ Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 3 сентября, 2016 Поделиться Опубликовано 3 сентября, 2016 Автор, привет! Когда-то давно я вполне успешно начал изучать ассемблер с "рассылки Калашникова" и "дневников чайника" aka bitfry-я на сайте exelab. Если коротко и очень округлить, то ассемблеры друг от друга отличаются синтаксисом. Удивительно, но факт: язык ассемблера - по сути, словесное написание ровно тех операций, которые может совершить процессор. Проблема в том, что процессоров много, они разные, соответственно - ассемблеров тоже много и разных, но в современном мире можно об этом особенно сильно не заморачиваться. Скажем, есть микроконтроллеры - маленькие такие компьютеры, представляющие из себя один-единственный чип, со своей памятью, в которую загружена программа. Вот у каждого такого чипа - свои возможности, следовательно, свой собственный набор команд. Еще очень советую на данном этапе не заморачиваться идеями написания ботов или чего-то сложного, потому что этот процесс обречен затянуться на бесконечно долгий срок, а просто взять конкретную игру и поставить в ней конкретную цель - сделать что-то, что в игре сделать нельзя. Например, я так в одной игре сделал самонаводящиеся патроны, хотя она этого не позволяла изначально. И да, без английского - никуда. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения