Trainer

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
ser_hit
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 10.01.2004 (Сб) 22:10

Trainer

Сообщение ser_hit » 24.01.2004 (Сб) 8:09

Можно ли на бейсике сделать трейнер для игры :P

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 02.02.2004 (Пн) 12:12

поясните, пожалуйста свой вопрос...

klop086
Обычный пользователь
Обычный пользователь
Аватара пользователя
 
Сообщения: 88
Зарегистрирован: 30.01.2004 (Пт) 8:46
Откуда: Москва

Сообщение klop086 » 02.02.2004 (Пн) 12:14

поясните, пожалуйста свой вопрос...

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 02.02.2004 (Пн) 12:17

Да, можно. Надо только значть формат данных игры...

ser_hit
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 10.01.2004 (Сб) 22:10

Сообщение ser_hit » 07.02.2004 (Сб) 19:51

Какие данные?Ты имеешь ввиду адреса игры?
Трейнер - программа которая пробивает игру по специальным адресам изменяя их. Например деньги,Оружие,Бессмертие и многое другое

GAGArin
Неистовый флудер
Неистовый флудер
 
Сообщения: 1777
Зарегистрирован: 23.12.2002 (Пн) 12:46
Откуда: я тут взялся, не знаю...

Сообщение GAGArin » 07.02.2004 (Сб) 20:46

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

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 07.02.2004 (Сб) 21:01

Даже могу подсказать, как искать:
Скачай API-Guide и поищи в категории Memory:

IsBadReadPtr
IsBadWritePtr

Они определяют, писала (читала) ли программа (указанный процесс) байты в указанный промежуток памяти.

Соответственно алгоритм:

1) Ищем процесс игрухи
2) Ищем байты в памяти, в которые она пишет:
сначала берём большой объём, потом уменьшаем его вдвое, потом ещё раз, до тех пор, пока мы не "уйдём" из блока используемой памяти.
3) Мы нашли байты, отвечающие за какую-либо информацию.
4) Меняем, скажем, число денюжек в игре (выбрасываем одну)
5) смотрим, как изменились байты. Возможно, изменится только байт по одному адресу, и тогда всё ок :)
возможно дублирование переменных, кодирование и т.д. и т.п.
Но по этому вопросу поищи в Яндексе, например, или ещё где, я видел статью по взлому игрушек...

ser_hit
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 10.01.2004 (Сб) 22:10

Сообщение ser_hit » 07.02.2004 (Сб) 21:18

Вы ребята чего-то не того. У меня есть программа ArtMoney.Я на ней нахожу адреса,просто проблема в том что если сохранение этих адресов перенести на другой комп то нужно установить ArtMoney, а он на дискету не вмещается.Трейнер вместился бы и заодно не какую программу не запрашивал бы. 8)

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 07.02.2004 (Сб) 21:21

Вот-вот... Я и описал примерный процесс работы трейнера-аналога ArtMoney...

А чего это мы "не того"?

ser_hit
Обычный пользователь
Обычный пользователь
 
Сообщения: 53
Зарегистрирован: 10.01.2004 (Сб) 22:10

Сообщение ser_hit » 07.02.2004 (Сб) 21:27

Извините, я не хотел обидеть из-за "не того".

Amed
Алфизик
Алфизик
 
Сообщения: 5346
Зарегистрирован: 09.03.2003 (Вс) 9:26

Сообщение Amed » 07.02.2004 (Сб) 22:15

Да мне кажется, никто и не думал обижаться... Просто хотелось узнать, что из сказанного было... эээ... ну "не в тему", вроде. Я действительно иногда люблю поумничать, уводя людей от главной темы. Так вы критикуйте, не стесняйтесь :)

P.S. меня вообще очень трудно обидеть :wink:

homeworld
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 110
Зарегистрирован: 07.12.2006 (Чт) 13:17

Сообщение homeworld » 08.04.2008 (Вт) 11:52

Возникла проблема, написал простой трейнер (TR) который изменяет числовые данные по определённому адресу, в программе которая тоже написана на VB (TR_TEST), адрес искался с помощью ArtMoney. Так вот - запускаю эту программу TR_TEST запускаю трейнер TR всё отлично находит и изменяет, но стоит закрыть эту програму TR_TEST, а затем запустить опять, трейнер TR уже ничего не находит и не изменяет.

Также были проблемы при перемещении подопытной програмы и трейнера в другое(разные) место(а) трейнер ничего не находил.

Скачал пример написаный на Visual C ++ 6.0, он работает вне зависимости где находятся сам трейнер и подопытная программа.

Прошу направить на путь истенный, а если путь будет ещё и с компасом :lol:

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 08.04.2008 (Вт) 12:37

Хм.. А Артмани ведь тоже находит разные адреса при перезапуске программы, не так ли?

ЕМНИП, программа может загружаться по разному базовому адресу, из-за этого итоговый адрес нужной тебе переменной оказывается разным. Т.е. тебе нужно как-то узнавать этот базовый адрес программы, и в зависимтости от него искать нужные тебе данные.

Это очень грубо )
label:
cli
jmp label

homeworld
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 110
Зарегистрирован: 07.12.2006 (Чт) 13:17

Сообщение homeworld » 08.04.2008 (Вт) 16:16

Мдя, и с чего мне начать.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 08.04.2008 (Вт) 16:48

А вот тут дожидайся ответа кого посерьезнее. Я это только в теории представляю )
Т.е. "направить на путь" )
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 08.04.2008 (Вт) 17:48

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

homeworld
Писать трейнер - это вам не фигню какую-нибудь писать. И пользуясь методикой "нашёл адрес в ArtMoney и пиши в него до одурения" вряд ли можно добиться чего-то.

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

Адрес, по которому лежат интересующие тебя данные, как сказал iGrok, действительно может постоянно меняться. Но не из-за загрузки по разной базе (хотя и это возможно), а из-за того, что данные могут храниться в регионе кучи. Это просто элементарный и типовой случай - данные являются локальными данными объекта какого-то класса.

Все Public и Private переменные класса, а также Static-переменные методов класса хранятся в регионе кучи, ассоциированном с классом.

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

Кроме того, ArtMoney может найти адрес каких-то совершенно левых данных, совпадающих с искомыми.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

homeworld
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 110
Зарегистрирован: 07.12.2006 (Чт) 13:17

Сообщение homeworld » 08.04.2008 (Вт) 20:41

Ух ты :shock: Ну так что посоветуете, с чего начать ??

Кроме того, ArtMoney может найти адрес каких-то совершенно левых данных, совпадающих с искомыми


Да, но в Артмани есть режим отсеивания до минимального значения (обычно это от 1-го до 3-х найденных адресов)

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 08.04.2008 (Вт) 20:42

homeworld
Разобраться в том, константен ли находимый адрес или он случаен, или его можно найти по какой-либо закономерности.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

iGrok
Артефакт VBStreets
Артефакт VBStreets
 
Сообщения: 4272
Зарегистрирован: 10.05.2007 (Чт) 16:11
Откуда: Сетевое сознание

Сообщение iGrok » 10.04.2008 (Чт) 11:35

Та же артмани позволяет отслеживать зависимость адреса от базы...
label:
cli
jmp label

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 10.04.2008 (Чт) 14:23

Да если бы дело было только в "базовой" зависимости.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

homeworld
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 110
Зарегистрирован: 07.12.2006 (Чт) 13:17

Сообщение homeworld » 10.04.2008 (Чт) 15:09

Та же артмани позволяет отслеживать зависимость адреса от базы


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

Ещё один маленький вопрос, если даже и написать трейнер, вместе с ним придётся таскать и библы VB так ведь? Можно ли все нужные файлы для запуска трейнера (любой другой программы написанной на VB), положить в архив с программой и при распаковки все эти файлы будут находиться в одной папке с программой. Короче, будет ли программа работать таким образом если в системе нет библиотек от VB?

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 10.04.2008 (Чт) 15:31

Библиотек от VB нет, есть одна единственная библиотека msvbvm60.dll .

Механизм работы приложений с msvbvm60 полностью идентичен механизму работы всех остальных приложений со всеми библиотеками.
Поэтому:
Можно ли все нужные файлы для запуска трейнера (любой другой программы написанной на VB), положить в архив с программой и при распаковки все эти файлы будут находиться в одной папке с программой. Короче, будет ли программа работать таким образом если в системе нет библиотек от VB?

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

Список путей, в которых система ищет библиотеку указан MSDN. В него, кроме всего прочего, входит папка с программой и system32.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.

homeworld
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 110
Зарегистрирован: 07.12.2006 (Чт) 13:17

Сообщение homeworld » 10.04.2008 (Чт) 15:55

Список путей, в которых система ищет библиотеку указан MSDN. В него, кроме всего прочего, входит папка с программой и system32.


То есть, правильно ли я понял, я распаковываю архив в папку, и программа при запуске сама найдёт runtime файл. Ну а если в архиве лежат допустим какие-то щё собственные библиотеки, элементы управления ActiveX (по поводу ActiveX я тут вроде читал, что их надо полюбому регистрировать) как быть тут, будет ли програма работать ?

Может я что-то не так понимаю объясни плиз.

З.Ы. К чему я это спрашиваю, я написал фин. калькулятор, но он у меня устанавливается в систему с помощью установщика (из файла setup.exe сделаной программой InstallShield v.12 Premier Edition) и проблема в том что не у всех отделениях нашей фирмы есть права на установку программ. Есть же программы которые просто разархивируешь и запускаешь как например те же трейнеры.

З.Ы.Ы. Извиняюсь за оффтоп.
Последний раз редактировалось homeworld 10.04.2008 (Чт) 16:06, всего редактировалось 1 раз.

Хакер
Телепат
Телепат
Аватара пользователя
 
Сообщения: 16478
Зарегистрирован: 13.11.2005 (Вс) 2:43
Откуда: Казахстан, Петропавловск

Сообщение Хакер » 10.04.2008 (Чт) 16:01

homeworld
Нет, нигде никакой путь прописан быть не должен. Система же знает, откуда запущена программа. Система же эту программу загружала. Там она и будет в первую очередь искать библиотеку.
—We separate their smiling faces from the rest of their body, Captain.
—That's right! We decapitate them.


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 39

    TopList