Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 Только что, NickSpirit сказал: Все отработало. Игра не вылетела. Скрипт 2 ? Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 (изменено) 2 минуты назад, Garik66 сказал: Скрипт 2 ? Скрипт 3 ну второй тож норм отработал. Изменено 9 октября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 Проверьте и Скрипт 3 тоже. Отпишитесь. Жду результатов. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 Только что, NickSpirit сказал: Скрипт 3 ну второй тож норм отработал. ОК!!! Рад!!! Люблю - когда всё работает. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 Только что, Garik66 сказал: Проверьте и Скрипт 3 тоже. Отпишитесь. Жду результатов. Скрипт 3 - все отработало. Игра не вылетела. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 Ну правда я не понял что они делают))) ну лан) Есть шанс что основной скрипт будет работать?)) Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 47 минуты назад, Garik66 сказал: Кстати видно, где проверка значения идёт. Если сработает скрипт, который я напишу, то объясню где она. Обещанное объяснение: 1. Обратите внимание на эти 3 строчки кода: "FClient.exe"+151F32: D9 45 F4 - fld dword ptr [ebp-0C] "FClient.exe"+151F35: D9 57 70 - fst dword ptr [edi+70] // ---------- DONE INJECTING ---------- "FClient.exe"+151F38: D9 5F 6C - fstp dword ptr [edi+6C] 2. Из [ebp-0C] идёт выгрузка значения в FPU регистр. Кстати значения у Вас в игре во float. 3. И оно выгружаются в два соседних адреса [edi+70] и [edi+6C]. 4. [edi+6C] - это наш адрес. 5. А [edi+70] - я думаю это контрольный адрес. Т.е. скорее всего, где то дальше по коду игры идёт проверка - а равно ли значение в адресах [edi+70] и [edi+6C] и, если не равно, то вылет. Так что потестите ещё и Скрипт 2 и Скрипт 3. Скорее всего при активном Скрипт 2 через некоторое время произойдёт вылет. А на Скрипт 3 вылета не должно быть. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 (изменено) Вылет вылетом...только мне этот скрипт нужен не для того чтобы что-то писать в память. мне важно просто иметь адрес который я потом просто буду читать в боте. Так что по идее - вылета не должно быть. Скрипты поюзаю. Ну вроде как второй скрипт вылета не вызывает пока. Изменено 9 октября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 8 минут назад, NickSpirit сказал: Ну правда я не понял что они делают))) Всё просто, поясню: У Вас на видео значение в адресе, который Вы нашли вручную было в DEC - 1102577664, что в Hex - 41B80000 или во float - 23. Так вот я в скрипте просто записываю это значение: в Скрипт 3: mov dword ptr [ebp-0C],(float)23 и в Скрипт 2: mov [edi+6C],41B80000 Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 Сейчас поставил CE 6.6 подгрузил таблицу последнюю. Скрипт 2 не активируется. Скрипт 3 работает. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 Только что, NickSpirit сказал: Скрипт 2 не активируется. Скрипт 3 работает. Скрипт 3 более правильный, хотя опять странно - почему не активируется Скрипт 2 - должен. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 35 минуты назад, Garik66 сказал: Скрипт 3 более правильный Хм...щас буду пытаться значение [ebp-0C] куда нить в известное место засовывать. думаю так прокатит. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 Только что, NickSpirit сказал: Хм...щас буду пытаться значение [ebp-0C] куда нить в известное место засовывать. думаю так прокатит. Так это же просто мы это уже делали в первом скрипте, сейчас сделаю Скрипт 4 и выложу таблицу. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 (изменено) 2 минуты назад, Garik66 сказал: Так это же просто мы это уже делали в первом скрипте, сейчас сделаю Скрипт 4 и выложу таблицу. Это да, я уже сделал. Щас буду пробовать. Ой, чет напрямую не дает копирнуть. Надо через что-то. Изменено 9 октября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 Попробуйте Скрипт 4. ForNickSpirit.CT Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 (изменено) Опа...вроде прокатило. Только я строчку про mov float 23 стер. дабы ничего не писать в память. Щас адрес ручками найду - и буду сверять те ли данные мы получаем. Изменено 9 октября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 Только что, NickSpirit сказал: Щас адрес ручками найду Опять же - зачем ручками? Есть же инструкция. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 1 минуту назад, Garik66 сказал: Опять же - зачем ручками? Есть же инструкция. Точно!))) обалдеть) я чет и не подумал что теперь можно так адрес находить... Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 1. Перейдите в "Отладчик" или "Редактор памяти". 2. Перейдите на Вашу инструкцию "FClient.exe"+151F38: D9 5F 6C - fstp dword ptr [edi+6C] я уже описывал, ка это делать ранее. 3. ПКМ по инструкции "Найти адреса к которым обращается инструкция". 4. В новом окне будет Ваш адрес. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 Спасибо!!!! 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 9 октября, 2016 Поделиться Опубликовано 9 октября, 2016 5 минут назад, NickSpirit сказал: Спасибо!!!! Не за что. Рад, что всё работает. 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 9 октября, 2016 Автор Поделиться Опубликовано 9 октября, 2016 По факту значение что выдает скрипт и то что есть на самом деле разные. Попытаюсь разобраться почему так. Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 11 октября, 2016 Автор Поделиться Опубликовано 11 октября, 2016 (изменено) Вообщем вот рабочий вариант скрипта! Скрытый текст [ENABLE] registersymbol(myAddr) alloc(newmem,64) alloc(myAddr,4) label(returnhere) newmem: fstp dword ptr [edi+6C] // Оригинальный код игры lea ebx,[edi+6C] // Загружаем в EAX адрес EDI+6C mov [myAddr],ebx // Сохраняем адрес в myAddr, скопировав его из EAX pop esi pop ebx jmp returnhere "FClient.exe"+151F38: jmp newmem returnhere: [DISABLE] "FClient.exe"+151F38: db D9 5F 6C 5E 5B dealloc(newmem) dealloc(myAddr) unregistersymbol(myAddr) Как дошел до такого)) - 1) сначала перенес мои действия после оригинальной инструкции. Игра вылетала. 2) А потом заметил одну малость и добавил строчку dealloc(myAddr) которой не было - и ведь заработало!!! P.S. в комментах к скрипту от Keng - регистр EAX - c ним не пошло почему то. Пошло с EBX. Изменено 11 октября, 2016 пользователем NickSpirit Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 11 октября, 2016 Поделиться Опубликовано 11 октября, 2016 (изменено) 39 минуты назад, NickSpirit сказал: добавил строчку dealloc(myAddr) А для чего вообще нужно было выделять отдельную память. Сделали бы просто так: Скрытый текст [ENABLE] registersymbol(myAddr) alloc(newmem,64) label(myAddr) label(returnhere) newmem: fstp dword ptr [edi+6C] // Оригинальный код игры lea ebx,[edi+6C] // Загружаем в ebx адрес EDI+6C mov [myAddr],ebx // Сохраняем адрес в myAddr, скопировав его из EAX pop esi pop ebx jmp returnhere myAddr: dd 0 "FClient.exe"+151F38: jmp newmem returnhere: [DISABLE] "FClient.exe"+151F38: db D9 5F 6C 5E 5B unregistersymbol(myAddr) dealloc(newmem) И не нужно тогда строки dealloc(myAddr) Зы: Вернул назад - не обратил внимание, что keng делал скрипт без аобскана. Изменено 11 октября, 2016 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
NickSpirit Опубликовано 11 октября, 2016 Автор Поделиться Опубликовано 11 октября, 2016 Ну скрипт делал не я изначально. Его предложил Keng. Я просто немного переделал. А главное он заработал) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения