NickSpirit Опубликовано 15 сентября, 2016 Поделиться Опубликовано 15 сентября, 2016 (изменено) Всем доброго времени суток! Прошу помощи во взломе онлайн игры с установленным клиентом на PC. Вообщем суть такая - игра - обычная рыбалка. Я нахожу нужный адрес в памяти и в боте просто читаю его значение. Но как всегда проблема в том что после перезапуска клиента заново приходится искать адрес. Посмотрев кучу видеоуроков по нахождению указателей - попытался сам найти. Но ни в какую. При поиске через Pointer Scan - указателей либо совсем не находит, либо находит, но после перезапуска при отсеивании - показывает ноль. При поиске в ручную - тож возникли проблемы. Ставлю отладчик, вижу инструкцию - делаю новый поиск адреса который значится в описании инструкции - не находит такого. Подскажите что я делаю не так? могу видео записать как и что я делаю... Изменено 15 сентября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
keng Опубликовано 15 сентября, 2016 Поделиться Опубликовано 15 сентября, 2016 Привет! Пожалуйста, создавай темы в правильном разделе. Я перенес твою тему в раздел о взломе ММО-игр, но если твоя игра (название тоже было бы неплохо указывать) имеет другой жанр, то скажи об том - перенесу в нужный раздел. Лучше всего, конечно, посмотреть видео твоих действий. Ссылка на комментарий Поделиться на другие сайты Поделиться
2zolo2 Опубликовано 15 сентября, 2016 Поделиться Опубликовано 15 сентября, 2016 NickSpirit, давай видео и название игры. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 15 сентября, 2016 Автор Поделиться Опубликовано 15 сентября, 2016 (изменено) Сорри за тему не в том разделе. Такс..вот сделал видео. Закинул на яндекс диск. Вообщем - сначала ищу нужный мне адрес. в данном случае это адрес который реагирует на событие в игре - а именно когда стоят три удочки и на первой происходит поклевка - на видео видно что я отсеиваю именно когда поплавок уходит под воду (да и еще - когда на удочке нет поклевки нужное значение равно 0, на видео видно что я потом отсеиваю используя и это знание тоже). В данном случае нашлось два адреса (я беру для чтения поклевки всегда верхний). Но пробовал искать указатели на оба адреса - не получалось. https://yadi.sk/i/fiWWjc8JvCHkP вот видео. Название игры Fantastic Fishing Изменено 15 сентября, 2016 пользователем NickSpirit 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 16 сентября, 2016 Автор Поделиться Опубликовано 16 сентября, 2016 Ну так что - никто не скажет что я делаю не так??? Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 18 сентября, 2016 Поделиться Опубликовано 18 сентября, 2016 Попробуй искать не указатели, а работающую с адресом инструкцию и писать скрипт. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 21 сентября, 2016 Автор Поделиться Опубликовано 21 сентября, 2016 Спасибо за совет! Уже понял это. теперь пытаюсь писать скрипты...пока не очень удачно. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 Спустя кучу времени нашел я нужную инструкцию. Написал вот такой вот скрипт: Скрытый текст { Game : FClient.exe Version: Date : 2016-10-09 Author : NickGrava This script does blah blah blah } [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat aobscanmodule(Adress,FClient.exe,D9 5F 6C 5E 5B) // should be unique alloc(newmem,$1000) label(code) label(return) label(my_flag) registersymbol(my_flag) newmem: cmp byte ptr [my_flag],1 jne code push eax mov eax,110280FC mov [eax],edi add [eax],6C pop eax mov byte ptr [my_flag],0 code: fstp dword ptr [edi+6C] pop esi pop ebx jmp return my_flag: db 0 Adress: jmp newmem return: registersymbol(Adress) [DISABLE] //code from here till the end of the code will be used to disable the cheat Adress: db D9 5F 6C 5E 5B unregistersymbol(Adress) unregistersymbol(my_flag) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "FClient.exe"+151F38 "FClient.exe"+151F13: 8B 8F 88 00 00 00 - mov ecx,[edi+00000088] "FClient.exe"+151F19: 89 5F 64 - mov [edi+64],ebx "FClient.exe"+151F1C: 8B 49 04 - mov ecx,[ecx+04] "FClient.exe"+151F1F: B8 06 00 00 00 - mov eax,00000006 "FClient.exe"+151F24: E8 97 40 ED FF - call FClient.exe+25FC0 "FClient.exe"+151F29: 89 45 F4 - mov [ebp-0C],eax "FClient.exe"+151F2C: DB 45 F4 - fild dword ptr [ebp-0C] "FClient.exe"+151F2F: D9 5D F4 - fstp dword ptr [ebp-0C] "FClient.exe"+151F32: D9 45 F4 - fld dword ptr [ebp-0C] "FClient.exe"+151F35: D9 57 70 - fst dword ptr [edi+70] // ---------- INJECTING HERE ---------- "FClient.exe"+151F38: D9 5F 6C - fstp dword ptr [edi+6C] "FClient.exe"+151F3B: 5E - pop esi "FClient.exe"+151F3C: 5B - pop ebx // ---------- DONE INJECTING ---------- "FClient.exe"+151F3D: 8B E5 - mov esp,ebp "FClient.exe"+151F3F: 5D - pop ebp "FClient.exe"+151F40: C3 - ret "FClient.exe"+151F41: CC - int 3 "FClient.exe"+151F42: CC - int 3 "FClient.exe"+151F43: CC - int 3 "FClient.exe"+151F44: CC - int 3 "FClient.exe"+151F45: CC - int 3 "FClient.exe"+151F46: CC - int 3 "FClient.exe"+151F47: CC - int 3 } Из скрипта понятно что нужная мне инструкция: Скрытый текст "FClient.exe"+151F38: D9 5F 6C - fstp dword ptr [edi+6C] Моим же кодом я пытаюсь в известный мне адрес 110280FC (который был найден через Code Caves в CE, с правами на доступ Исполняемый\Чтение\Запись) вставить адрес который содержится в [edi+6C]. Ну и сделал флаг чтобы скрипт срабатывал всего один раз. При запуске скрипта - игра вылетает. Прошу помощи - может я чего не так сделал в скрипте? оригинальную инструкцию мне нужно сохранить. она мне не мешает. цель которую я преследую в этом скрипте - просто получать автоматически адрес нужного мне значения. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 19 минуту назад, NickSpirit сказал: При запуске скрипта - игра вылетает. Попробуйте так сделать: Скрытый текст { Game : FClient.exe Version: Date : 2016-10-09 Author : NickGrava This script does blah blah blah } [ENABLE] aobscanmodule(Adress,FClient.exe,D9 5F 6C 5E 5B) // should be unique alloc(newmem,$1000) label(code) label(return) registersymbol(Adress) newmem: lea ebx,[edi+6C] mov [110280FC],ebx code: fstp dword ptr [edi+6C] pop esi pop ebx jmp return Adress: jmp newmem return: [DISABLE] Adress: db D9 5F 6C 5E 5B unregistersymbol(Adress) dealloc(newmem) { // ORIGINAL CODE - INJECTION POINT: "FClient.exe"+151F38 "FClient.exe"+151F13: 8B 8F 88 00 00 00 - mov ecx,[edi+00000088] "FClient.exe"+151F19: 89 5F 64 - mov [edi+64],ebx "FClient.exe"+151F1C: 8B 49 04 - mov ecx,[ecx+04] "FClient.exe"+151F1F: B8 06 00 00 00 - mov eax,00000006 "FClient.exe"+151F24: E8 97 40 ED FF - call FClient.exe+25FC0 "FClient.exe"+151F29: 89 45 F4 - mov [ebp-0C],eax "FClient.exe"+151F2C: DB 45 F4 - fild dword ptr [ebp-0C] "FClient.exe"+151F2F: D9 5D F4 - fstp dword ptr [ebp-0C] "FClient.exe"+151F32: D9 45 F4 - fld dword ptr [ebp-0C] "FClient.exe"+151F35: D9 57 70 - fst dword ptr [edi+70] // ---------- INJECTING HERE ---------- "FClient.exe"+151F38: D9 5F 6C - fstp dword ptr [edi+6C] "FClient.exe"+151F3B: 5E - pop esi "FClient.exe"+151F3C: 5B - pop ebx // ---------- DONE INJECTING ---------- "FClient.exe"+151F3D: 8B E5 - mov esp,ebp "FClient.exe"+151F3F: 5D - pop ebp "FClient.exe"+151F40: C3 - ret "FClient.exe"+151F41: CC - int 3 "FClient.exe"+151F42: CC - int 3 "FClient.exe"+151F43: CC - int 3 "FClient.exe"+151F44: CC - int 3 "FClient.exe"+151F45: CC - int 3 "FClient.exe"+151F46: CC - int 3 "FClient.exe"+151F47: CC - int 3 } Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 Попробовал, скрипт запускается, но когда доходит дело до этой инструкции игра вылетает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 Только что, NickSpirit сказал: Попробовал, скрипт запускается, но когда доходит дело до этой инструкции игра вылетает. Тогда вопрос - а что это за адрес? 42 минуты назад, NickSpirit сказал: известный мне адрес 110280FC Может в него и нельзя вовсе записывать адрес. И ещё вопрос - что Вы хотите сделать в игре этим скриптом? Я пока не уловил сути. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 По поводу адреса - искал его с помощью Code Caves в CE и смотрел чтобы он был доступен для Read\Write. Сейчас нажал просмотреть этот регион памяти - на этом адресе и на всех соседних - одна и та же инструкция add [eax],al. А скрипт - все просто - каждый раз искать адрес нужного параметра в игре - тяжко и долго. А код игры всегда один и тот же. Посмотрев урок про автоматический поиск указателя - решил сделать также. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 (изменено) 57 минут назад, NickSpirit сказал: По поводу адреса - искал его с помощью Code Caves в CE и смотрел чтобы он был доступен для Read\Write. Сейчас нажал просмотреть этот регион памяти - на этом адресе и на всех соседних - одна и та же инструкция add [eax],al. А скрипт - все просто - каждый раз искать адрес нужного параметра в игре - тяжко и долго. А код игры всегда один и тот же. Посмотрев урок про автоматический поиск указателя - решил сделать также. Понял, т.е. Вы просто взяли какой-то левый адрес. Переписал скрипт и вставил адрес в таблицу, скачайте табличку и попробуйте скрипт -жду резюме. Таблицу перезалил ниже Изменено 9 октября, 2016 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 (изменено) Пишет почему то - недопустимая таблица читов. Это как? CE 6.5.1. русское 32bit Изменено 9 октября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 у меня СЕ 6,5 Может из-за того что я сохранял таблицу без подключения к процессу, сейчас подключусь к тутуроиалу СЕ и попробую пересохранить таблицу. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 (изменено) Табличка ещё раз: ЗЫ: Если не получиться с таблицей и в этот раз, то выложу сам скрипт и объясню как забить адрес в таблицу. Таблицу выложил в этом сообщении. Изменено 9 октября, 2016 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 (изменено) Табличка прицепилась. Но адреса там нет. Что сделать дальше??? Судя по скрипту нужно добавить адрес Pointer? Изменено 9 октября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 2 минуты назад, NickSpirit сказал: Но адреса там нет. Есть - активируй скрипт - адрес появиться. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 (изменено) Эмм...вообщем активировал скрипт - попробовал - игра подвисла и потом вылетела. Кстати - можно такой вопрос - вот у нас при такой инъекции оригинальная инструкция остается или нет? Для наглядности могу видео записать что я делаю и что происходит. Изменено 9 октября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 3 минуты назад, NickSpirit сказал: Для наглядности могу видео записать что я делаю и что происходит. Да запишите, будет более понятно. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 (изменено) Блина) стал записывать видео на другом компе) там все получилось...а вот на основном - щас попробую все перезапустить и еще раз попробовать. Да реально, не работает на ноутбуке..работает на стационарном компе. Версии CE правда разные на компах. и на ноутбуке при активации срипта адрес появляется не оч похожий на правду... Изменено 9 октября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 8 минут назад, NickSpirit сказал: Блина) стал записывать видео на другом компе) там все получилось...а вот на основном - щас попробую все перезапустить и еще раз попробовать. Как я понял - мой скрипт заработал? Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 1 минуту назад, Garik66 сказал: Как я понял - мой скрипт заработал? Да, но не пойму почему только на одном компе....))) А так - огромное спасибо конечно! Теперь буду знать как для других инструкций сделать по аналогии. Только вот как заставить работать его везде...надо подумать. Игра реально виснет на ноуте и вылетает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 5 минут назад, NickSpirit сказал: Игра реально виснет на ноуте и вылетает. Ну это скорее всего где-то проблема на ноуте, а не в скрипте. Может нужно СЕ переустановить на ноуте. Как я видел на записи - у Вас СЕ 6,4. Поставьте 6,5 или самую свежую 6,6 Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 (изменено) Кстати на ноуте адрес не изменяется при перезапуске игры. Лан попробую переустановить CE. Не понимаю...то ли я не вижу какую то простую проблему..то ли делаю что-то не так)) но на ноуте не работает. Нужный адрес скрипт всегда выдает один и тот же. что врятли правильно. Изменено 9 октября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения