Andymit Опубликовано 19 октября, 2018 Поделиться Опубликовано 19 октября, 2018 (изменено) Всем доброго времени суток. Такой вопрос: нашел нужную мне инструкцию, открываю в дизассемблере, нажимаю на Tools -> Auto Assemble -> AoB Injection. Но СЕ мне пишет, что массив байтов не уникален: Спойлер И соответственно, при активации скрипта, СЕ бы не нашел, куда инжектить мой код (я же правильно понял?). Погуглив, на форуме CheatEngine я нашел ответ, что нужно от этой инструкции выбрать еще несколько, выделить их, и нажать на Copy to clipboard -> Bytes only. Так и сделал: Спойлер И после этих манипуляций, вроде как находит место, куда внедрять код, но получается вот такая петрушка: Спойлер то есть вроде как заинжектил, но инструкцию на jmp не поменял. Как исправить, скажите, пожалуйста? Изменено 19 октября, 2018 пользователем Andymit Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 19 октября, 2018 Поделиться Опубликовано 19 октября, 2018 1 час назад, Andymit сказал: то есть вроде как заинжектил, но инструкцию на jmp не поменял. Потому что твоя сигна, хоть ты её и удлинил, так и осталась не уникальной, т.е. ещё несколько (две, три, х.з сколько то инструкций имеют такую же сигу) и при активации скрипта, прыжок делается с первой же попавшейся инструкциию 1 час назад, Andymit сказал: Как исправить, скажите, пожалуйста? удлиняя сигну, нужно её проверять на уникальность - либо посредством самого СЕ, либо например с помощью Ссылка на комментарий Поделиться на другие сайты Поделиться
Andymit Опубликовано 19 октября, 2018 Автор Поделиться Опубликовано 19 октября, 2018 37 минут назад, Garik66 сказал: удлиняя сигну, нужно её проверять на уникальность - либо посредством самого СЕ, либо например с помощью Спасибо за ответ и скрипт. Ещё вопрос: получается, что чем длиннее сигнатура, тем меньше вероятность появления такой же где-то ещё? То есть я могу просто увеличивать сигнатуру до момента, пока она не станет уникальной и тогда он станет нормально инжектить? Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 19 октября, 2018 Поделиться Опубликовано 19 октября, 2018 36 минут назад, Andymit сказал: получается, что чем длиннее сигнатура, тем меньше вероятность появления такой же где-то ещё? Не всегда, можно ведь сделать уникальную сигнатуру на соседнюю инструкцию, а после получения адрес инструкции, сложить/отнять количество байт с адресом до нужной тебе инструкции. AOB(89 86 ? ? ? ? 41 F7 86 ? ? ? ? ? ? ? ? 74 0B) = 00000001410691C7 (адрес уникальной инструкции, рядом с нужной черная линия) 0x1410691C7 + 30(байт) = 0x1410691E5 (адрес нужной инструкции, красная линия) Количество байт между инструкциями может быть любое, но не стоит использовать дистанцию между инструкциями больше 100-150 байт. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 20 октября, 2018 Поделиться Опубликовано 20 октября, 2018 7 часов назад, Andymit сказал: получается, что чем длиннее сигнатура, тем меньше вероятность появления такой же где-то ещё? Продолжу за уважаемым @partoftheworlD, не всегда - иногда удлиняя сигну, можно попасть на другой модуль/функцию, который/которая к примеру работает только в определенный момент и соответственно твоя сигна может не сработать. Так что удлинение тоже чревато. Ссылка на комментарий Поделиться на другие сайты Поделиться
Andymit Опубликовано 20 октября, 2018 Автор Поделиться Опубликовано 20 октября, 2018 9 часов назад, partoftheworlD сказал: Не всегда, можно ведь сделать уникальную сигнатуру на соседнюю инструкцию, а после получения адрес инструкции, сложить/отнять количество байт с адресом до нужной тебе инструкции. А как это реализовать? Допустим я нашел инструкцию с уникальной сигной. Высчитал разницу между этой и нужно инструкцией. Жму на ней Auto Assemble. Если при этом я здесь дописываю смещение до моей инструкции нужной: Спойлер то СЕ все равно говорит, что AoB не уникальный: Спойлер А если не дописывать смещение, а написать его здесь: Спойлер то инжектит на найденную инструкцию с уникальной сигной. Что я в этом случае делаю не так? 4 часа назад, Garik66 сказал: Так что удлинение тоже чревато. Да, спасибо. Только что проверил на практике. Удлинил еще сильнее, вплоть до return и все равно нашел еще 2 таких же сигны. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 21 октября, 2018 Поделиться Опубликовано 21 октября, 2018 23 часа назад, Andymit сказал: Что я в этом случае делаю не так? Я вопроса не понял. Первый вариант (quazar+BB56F0)- делаешь не правильно. Второй вариант (GodMode+11)- делаешь правильно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Andymit Опубликовано 21 октября, 2018 Автор Поделиться Опубликовано 21 октября, 2018 28 минут назад, Garik66 сказал: Я вопроса не понял. Это я решил уточнить по способу, когда выбираешь инструкцию с уникальной сигнатурой, о которой мне повевдал @partoftheworlD. К чему я должен прибавлять/отнимать количество байтов, чтобы СЕ инжектил на мою инструкцию? Я в данном случае спрашивал за 12 строчку. Я там дописывал +78 к адресу инструкции с уникальной сигной. Но те 2 способа, которые я описал в предыдущем посте не сработали, т.к. я скорее всего сделал какую-то глупость, но из-за того, что я чайник еще, мне сложно сориентироваться где именно я что-то делаю не так. В общем, попытаюсь переформулировать немного свой вопрос: когда я нашел инструкцию с уникальной сигнатурой, куда мне нужно дописывать ту разницу в байтах, чтобы инжект был на инструкцию нужную мне? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 21 октября, 2018 Поделиться Опубликовано 21 октября, 2018 19 минут назад, Andymit сказал: В общем, попытаюсь переформулировать немного свой вопрос: когда я нашел инструкцию с уникальной сигнатурой, куда мне нужно дописывать ту разницу в байтах, чтобы инжект был на инструкцию нужную мне? Допустим я хочу сделать инъекцию на эту инструкцию: Спойлер Но она не уникально. и я выбираю допустим вот эту инструкцию: Спойлер Делаю скрипт из неё, добавляю 3 байта (59 89 С3 - смотри в отладчике столбец байты) к адресу который нашел аобскан и не забываю про выравнивание нопами, получаю такой скрипт: Спойлер Активирую полученный скрипт: Спойлер И как видишь в отладчике прыжок на инъекцию в нужном нам месте. Так что дерзай, но в каких-то видео у меня такое уже точно было. Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 21 октября, 2018 Поделиться Опубликовано 21 октября, 2018 9 минут назад, Garik66 сказал: Делаю скрипт из неё, добавляю 3 байта (59 89 С3 - смотри в отладчике столбец байты) к адресу который нашел аобскан и не забываю про выравнивание нопами, получаю такой скрипт: Только ты забыл написать, что надо ещё байты на восстановление изменить, а то в скрипте то сделал, но не объяснил.? 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 21 октября, 2018 Поделиться Опубликовано 21 октября, 2018 1 минуту назад, partoftheworlD сказал: Только ты забыл написать, что надо ещё байты на восстановление изменить, а то в скрипте то сделал, но не объяснил.? Вот поэтому я обычно и записываю видео - описывать текстом шаги сложнее. Ссылка на комментарий Поделиться на другие сайты Поделиться
Andymit Опубликовано 21 октября, 2018 Автор Поделиться Опубликовано 21 октября, 2018 5 часов назад, Garik66 сказал: Так что дерзай, но в каких-то видео у меня такое уже точно было Все, спасибо, разобрался) Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения