Maxs Опубликовано 3 июня, 2014 Поделиться Опубликовано 3 июня, 2014 Добрый день, форумчани.Прошу кинуть линк на тему или исходник трейнера под Delphi с возможностью чтения указателей. Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 4 июня, 2014 Поделиться Опубликовано 4 июня, 2014 РАЗДВАПоиском по форуму воспользоваться, и в тематические разделы заглянуть религия не позволила, или лень? И да, небольшой оффтоп: не понял сути жалобы, поданной через одноименную кнопку. Ссылка на комментарий Поделиться на другие сайты Поделиться
Maxs Опубликовано 4 июня, 2014 Автор Поделиться Опубликовано 4 июня, 2014 РАЗДВАПоиском по форуму воспользоваться, и в тематические разделы заглянуть религия не позволила, или лень? И да, небольшой оффтоп: не понял сути жалобы, поданной через одноименную кнопку.По первой ссылке... довольно странный код...Я думал запись значение в адрес, сообственно будет проходить через адрес+массив из офсетов(типо 5745646+56+2a+35)А тут используются, какие-то байты... ProcessName='PlantsVsZombies.exe';//Процесс Игры Adress = $0048B35C ; //Адрес по которому будет производиться запись сигнатуры байт SignatyreOn: array[0..3] of Byte = ($83,$47,$24,$67);//Байты для записи в процесс игрыSignatyreOFF: array[0..3] of Byte = ($83,$47,$24,$01);//Байты для записи в процесс игры[size=4] Можно какую инфу по работе с байтами найти? или байты и есть офсеты? Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 5 июня, 2014 Поделиться Опубликовано 5 июня, 2014 Насколько я знаю, сейчас указатели не в моде и лишний гемор. Делают "инъекцию отладочного кода" в адрес, который ищут по сигнатуре оригинального байт кода. Ссылка на комментарий Поделиться на другие сайты Поделиться
DenkA003 Опубликовано 5 июня, 2014 Поделиться Опубликовано 5 июня, 2014 Насколько я знаю, сейчас указатели не в моде и лишний гемор. Делают "инъекцию отладочного кода" в адрес, который ищут по сигнатуре оригинального байт кода.Полностью согласен )) геморой ))Юзай Delphi AOBScan что вы выкладивал или ищи в интернете !! Ссылка на комментарий Поделиться на другие сайты Поделиться
Maxs Опубликовано 5 июня, 2014 Автор Поделиться Опубликовано 5 июня, 2014 Полностью согласен )) геморой ))Юзай Delphi AOBScan что вы выкладивал или ищи в интернете !!Попробую заняться этим вопросом, если будут проблемы/вопросы/успехи буду писать сюда. Ссылка на комментарий Поделиться на другие сайты Поделиться
DenkA003 Опубликовано 6 июня, 2014 Поделиться Опубликовано 6 июня, 2014 Я тебе могу даже подкинуть парочку тем по которым я писал свой сканер сигнатурhttp://www.cyberforum.ru/delphi-beginners/thread520030.htmlhttp://cheaton.ru/f30/poisk-signatur-bazovyh-adresov-dlya-dayz-8343/http://www.cyberforum.ru/delphi-beginners/thread1068560.html Ссылка на комментарий Поделиться на другие сайты Поделиться
Maxs Опубликовано 6 июня, 2014 Автор Поделиться Опубликовано 6 июня, 2014 Я тебе могу даже подкинуть парочку тем по которым я писал свой сканер сигнатурhttp://www.cyberforu...read520030.htmlhttp://cheaton.ru/f3...dlya-dayz-8343/http://www.cyberforu...ead1068560.htmlКак то все страшно) Есть на эту тему уроки в видео-формате?Через "байты" не оптимальнее работать или я путаю понятия?Сигнатура это вроде бы работа с офсетами... Во всяком случае, мне нужен как то в кратце понять как появился этот кодProcessName='PlantsVsZombies.exe';//Процесс Игры Adress = $0048B35C ; //Адрес по которому будет производиться запись сигнатуры байт SignatyreOn: array[0..3] of Byte = ($83,$47,$24,$67);//Байты для записи в процесс игрыSignatyreOFF: array[0..3] of Byte = ($83,$47,$24,$01);//Байты для записи в процесс игрыОткуда взялись?SignatyreOn: array[0..3] of Byte = ($83,$47,$24,$67);//Байты для записи в процесс игрыSignatyreOFF: array[0..3] of Byte = ($83,$47,$24,$01);//Байты для записи в процесс игры Ссылка на комментарий Поделиться на другие сайты Поделиться
DenkA003 Опубликовано 7 июня, 2014 Поделиться Опубликовано 7 июня, 2014 Как то все страшно) Есть на эту тему уроки в видео-формате?Через "байты" не оптимальнее работать или я путаю понятия?Сигнатура это вроде бы работа с офсетами... Во всяком случае, мне нужен как то в кратце понять как появился этот кодProcessName='PlantsVsZombies.exe';//Процесс Игры Adress = $0048B35C ; //Адрес по которому будет производиться запись сигнатуры байт SignatyreOn: array[0..3] of Byte = ($83,$47,$24,$67);//Байты для записи в процесс игрыSignatyreOFF: array[0..3] of Byte = ($83,$47,$24,$01);//Байты для записи в процесс игрыОткуда взялись?SignatyreOn: array[0..3] of Byte = ($83,$47,$24,$67);//Байты для записи в процесс игрыSignatyreOFF: array[0..3] of Byte = ($83,$47,$24,$01);//Байты для записи в процесс игрыСигнатура это и есть байты , а точнее цепочка байт по которым программу ищет совпадения в процессе !Взялись у меня с головы ))можешь как хочешь назвать )) а теперь подробней : ProcessName - название процессаAdress -а адрес по которому будет происходить записьSignatyreOn - назвал так потому что отвечает за активацию левых байт (т.д 90 90 90 90 и так далие)SignatyreOFF - назвал так потому что отвечает за де активацию (восстановление первоначальных байт )array[0..3] of Byte - 0..3 длинна наших байт ($83,$47,$24,$01) или можно сделать так array[1..4]$83,$47,$24,$01 - наши байты которые будет записывать по адресу думаю все понятно показал и написал ))http://forum.gamehac...81%D1%81%D0%B5/вот смотри тута )) правда код не мой !! ну в теме есть мои модификации Ссылка на комментарий Поделиться на другие сайты Поделиться
Maxs Опубликовано 8 июня, 2014 Автор Поделиться Опубликовано 8 июня, 2014 Сигнатура это и есть байты , а точнее цепочка байт по которым программу ищет совпадения в процессе !Взялись у меня с головы ))можешь как хочешь назвать )) а теперь подробней : ProcessName - название процессаAdress -а адрес по которому будет происходить записьSignatyreOn - назвал так потому что отвечает за активацию левых байт (т.д 90 90 90 90 и так далие)SignatyreOFF - назвал так потому что отвечает за де активацию (восстановление первоначальных байт )array[0..3] of Byte - 0..3 длинна наших байт ($83,$47,$24,$01) или можно сделать так array[1..4]$83,$47,$24,$01 - наши байты которые будет записывать по адресу думаю все понятно показал и написал ))http://forum.gamehac...81%D1%81%D0%B5/вот смотри тута )) правда код не мой !! ну в теме есть мои модификацииЯ наверное даун... Я не могу понять как работать/находить эти байты... я никак не могу выбросить из головы офсеты.. Если тебе не очень трудно, покажи на примере каком нибудь поиск... Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 9 июня, 2014 Поделиться Опубликовано 9 июня, 2014 Это, на самом деле, весьма просто:1. Находишь адрес нужного параметра (жизни, здоровье, патроны и тп) обычным поиском2. Ставишь бряк на этот адрес (правой кнопкой в таблице СЕ - find out what accesses to this address)3. Выделяешь найденную инструкцию в списке и нажимаешь Show Disassembler.4. В появившемся окне отладчика будет выделена ассемблерная инструкция, а слева от нее будут байты, которые ей соответствуют. Это они и есть. Ссылка на комментарий Поделиться на другие сайты Поделиться
Maxs Опубликовано 9 июня, 2014 Автор Поделиться Опубликовано 9 июня, 2014 Это, на самом деле, весьма просто:1. Находишь адрес нужного параметра (жизни, здоровье, патроны и тп) обычным поиском2. Ставишь бряк на этот адрес (правой кнопкой в таблице СЕ - find out what accesses to this address)3. Выделяешь найденную инструкцию в списке и нажимаешь Show Disassembler.4. В появившемся окне отладчика будет выделена ассемблерная инструкция, а слева от нее будут байты, которые ей соответствуют. Это они и есть.Если это так просто... почему раньше пользовались оффсетами? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 9 июня, 2014 Поделиться Опубликовано 9 июня, 2014 Раньше, как правило, инструкции располагались прямо в исполняемом модуле, и никогда не меняли своего адреса. Тогда можно было использовать смещение от базового адреса модуля до инструкции. Далее, еще оффсеты применялись при использовании указателей. Сейчас же зачастую проще выйти на инструкцию, чем реверсить до статичного указателя. Впрочем, бывают случаи, когда проще найти цепочку указателей, чем анализировать километровую структуру на наличие ID игрока. Все зависит от каждой конкретной игры, на самом деле. И, как правило, выбор методики целиком зависит от ломаемой игры и затрат времени на тот или иной способ.И не забывай, что изменение кода инструкции требует некоторых познаний в ассемблере, тогда как поиск указателя и его заморозка - это, можно сказать, чисто механический процесс.Также могут быть случаи, когда обычная заморозка адреса, найденного по указателю может не помочь - к примеру, при падении с большой высоты наносится сразу огромный урон, заведомо превышающий максимальный запас жизни. В этом случае заморозка по указателю может не успеть сработать, и герой умрет. Такого не случится при взломе с помощью переписывания кода инструкций - ведь мы меняем сам код игры, и она сама "услужливо" делает нас бессмертными и так далее. Ссылка на комментарий Поделиться на другие сайты Поделиться
Maxs Опубликовано 13 июня, 2014 Автор Поделиться Опубликовано 13 июня, 2014 Раньше, как правило, инструкции располагались прямо в исполняемом модуле, и никогда не меняли своего адреса. Тогда можно было использовать смещение от базового адреса модуля до инструкции. Далее, еще оффсеты применялись при использовании указателей. Сейчас же зачастую проще выйти на инструкцию, чем реверсить до статичного указателя. Впрочем, бывают случаи, когда проще найти цепочку указателей, чем анализировать километровую структуру на наличие ID игрока. Все зависит от каждой конкретной игры, на самом деле. И, как правило, выбор методики целиком зависит от ломаемой игры и затрат времени на тот или иной способ.И не забывай, что изменение кода инструкции требует некоторых познаний в ассемблере, тогда как поиск указателя и его заморозка - это, можно сказать, чисто механический процесс.Также могут быть случаи, когда обычная заморозка адреса, найденного по указателю может не помочь - к примеру, при падении с большой высоты наносится сразу огромный урон, заведомо превышающий максимальный запас жизни. В этом случае заморозка по указателю может не успеть сработать, и герой умрет. Такого не случится при взломе с помощью переписывания кода инструкций - ведь мы меняем сам код игры, и она сама "услужливо" делает нас бессмертными и так далее.В общем, в долгих поисках... я ничего так и не нашел, даже и не понял...Делал так:1. Открыл GTA:SA2. Открыл CE 6.33. Нашел адрес денег (gta_sa.exe+77CE50) похоже он DMA(так как зеленый). П.С. Может нельзя найты байты в неDMA играх? Или как? Если в гта так нельзя, приведите другой пример.4. Изменил количество денег, адрес оказался рабочий...Теперь самое главное!!! Где найти байты и от какого адреса их читать? Если я правильно понял...5. Я жму на адрес и прошу открыть регион памяти... но там так все страшно... Ссылка на комментарий Поделиться на другие сайты Поделиться
DenkA003 Опубликовано 13 июня, 2014 Поделиться Опубликовано 13 июня, 2014 http://www.youtube.com/watch?v=Okf03RWDF4A 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Maxs Опубликовано 14 июня, 2014 Автор Поделиться Опубликовано 14 июня, 2014 http://www.youtube.com/watch?v=Okf03RWDF4AСпасибо большое за видео(плюсик кинуть не могу - пишет лимит)... Но, реально большое спасибо, теперь хоть как нибудь смогу разобраться!Единственное, я не понял зачем ставить ?? вместо байт? Кто расскажет суть?Когда я буду писать массив в паскале, мне что писать примеру массив байт {5a, 3a, ??, ??, 2d} заменить на {3a, 5a, ??, ??, 2d }? Ссылка на комментарий Поделиться на другие сайты Поделиться
DenkA003 Опубликовано 14 июня, 2014 Поделиться Опубликовано 14 июня, 2014 Спасибо большое за видео(плюсик кинуть не могу - пишет лимит)...Но, реально большое спасибо, теперь хоть как нибудь смогу разобраться!Единственное, я не понял зачем ставить ?? вместо байт? Кто расскажет суть?Когда я буду писать массив в паскале, мне что писать примеру массив байт {5a, 3a, ??, ??, 2d} заменить на {3a, 5a, ??, ??, 2d }?В некоторых играх сигнатура может изменяться, т.е. байты в сигнатуре поэтому прописываются знаки вопросаЕсли сигнатура изменилась то и байты естественно будут другими, для этого и прописывают знаки вопроса чтобы сигнатура была рабочей всегда Ссылка на комментарий Поделиться на другие сайты Поделиться
Maxs Опубликовано 15 июня, 2014 Автор Поделиться Опубликовано 15 июня, 2014 В некоторых играх сигнатура может изменяться, т.е. байты в сигнатуре поэтому прописываются знаки вопросаЕсли сигнатура изменилась то и байты естественно будут другими, для этого и прописывают знаки вопроса чтобы сигнатура была рабочей всегдаА все таки как записывать такую структуру с вопросиками в делфи? Ссылка на комментарий Поделиться на другие сайты Поделиться
DenkA003 Опубликовано 15 июня, 2014 Поделиться Опубликовано 15 июня, 2014 А все таки как записывать такую структуру с вопросиками в делфи?здесь так и писать http://forum.gamehac...81%D1%81%D0%B5/а вот здесь просто замени ?? на FF и когда будешь делать маску просто став 1 ?http://forum.gamehacklab.ru/topic/2615-%D1%81%D0%BA%D0%B0%D0%BD%D0%B5%D1%80-%D1%81%D0%B8%D0%B3%D0%BD%D0%B0%D1%82%D1%83%D1%80-%D0%B4%D0%BB%D1%8F-delphi-by-arxlex/ Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения