SerVick Опубликовано 2 мая, 2016 Поделиться Опубликовано 2 мая, 2016 Уважаемые гейм -хакеры помогите разобраться как в скрипт вписать адреса. В общем суть такова, есть 8 -мь адресов, находятся рядом друг с другом. Обращаются к инструкции по одному. По отдельности скрипты сделал, работают. Но хотелось -бы в один скрипт записать. Мне не надо готового решения, мне надо понять принцип как это сделать Вот 3 -и скрипта для примера, думаю все смысла нет выкладывать. 1-ый скрипт. Скрытый текст [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: mov [ebp-00000088],#98 originalcode: push [ebp-00000088] exit: jmp returnhere "Eschalon Book I.exe"+104147: jmp newmem nop returnhere: [DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) "Eschalon Book I.exe"+104147: push [ebp-00000088] //Alt: db FF B Второй скрипт. Скрытый текст [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: mov [ebp-0000008C],#98 originalcode: push [ebp-0000008C] exit: jmp returnhere "Eschalon Book I.exe"+1040DC: jmp newmem nop returnhere: [DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) 3 -ий скрипт. Скрытый текст [ENABLE] //code from here to '[DISABLE]' will be used to enable the cheat alloc(newmem,2048) label(returnhere) label(originalcode) label(exit) newmem: mov [ebp-00000084],#98 originalcode: push [ebp-00000084] exit: jmp returnhere "Eschalon Book I.exe"+1041B4: jmp newmem nop returnhere: [DISABLE] //code from here till the end of the code will be used to disable the cheat dealloc(newmem) Смещения рядом, один операнд, один регистр используют. Но вот, что интересно адреса к инструкции обращаются по одному. Как -то интересно нельзя было на одну инструкцию повесить?! Помогите разобраться как с этим бороться? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 2 мая, 2016 Поделиться Опубликовано 2 мая, 2016 (изменено) Убрал лишние метки, попробуй скрипт: Скрытый текст [ENABLE] alloc(newmem,2048) label(newmem1) label(newmem2) label(returnhere) label(returnhere1) label(returnhere2) newmem: mov [ebp-00000088],#98 push [ebp-00000088] jmp returnhere newmem1: mov [ebp-0000008C],#98 push [ebp-0000008C] jmp returnhere1 newmem2: mov [ebp-00000084],#98 push [ebp-00000084] jmp returnhere2 "Eschalon Book I.exe"+104147: jmp newmem nop returnhere: "Eschalon Book I.exe"+1040DC: jmp newmem1 nop returnhere1: "Eschalon Book I.exe"+1041B4: jmp newmem2 nop returnhere2: [DISABLE] "Eschalon Book I.exe"+104147: push [ebp-00000088] "Eschalon Book I.exe"+1040DC: push [ebp-0000008C] "Eschalon Book I.exe"+1041B4: push [ebp-00000084] dealloc(newmem) //Alt: db FF B А потом, добавь и остальные адреса. Изменено 3 мая, 2016 пользователем Garik66 Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 3 мая, 2016 Поделиться Опубликовано 3 мая, 2016 Не проще всё записать по одному смещению\коду. Типа так... newmem:mov byte ptr [ebp-84],62mov byte ptr [ebp-88],62mov byte ptr [ebp-8C],62push [ebp-84] jmp returnhere Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 3 мая, 2016 Поделиться Опубликовано 3 мая, 2016 1 час назад, krocki сказал: Не проще всё записать по одному смещению\коду. Проще, но не видя кода игры, мы не знаем точно, а вдруг перед каждым push [ebp-00000084] в коде игры например есть строчка mov [ebp-00000084],eax и тогда, твоя запись изменит только одно смещение, соответствующее инструкции инъекции. Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 3 мая, 2016 Поделиться Опубликовано 3 мая, 2016 Точняк!!! Неизвестно какие инструкции рядом стоят...отладку бы глянуть...ноооооо!!!... как говорится! Методом тычка попробовать всё равно можно! Ссылка на комментарий Поделиться на другие сайты Поделиться
SerVick Опубликовано 5 мая, 2016 Автор Поделиться Опубликовано 5 мая, 2016 Ребята спасибо! Извините, что сразу не ответил. Проблемы были, в общем не до компа было... . Сейчас всё испытаю отпишусь. В 03.05.2016в13:18, krocki сказал: Не проще всё записать по одному смещению\коду. Типа так... newmem:mov byte ptr [ebp-84],62mov byte ptr [ebp-88],62mov byte ptr [ebp-8C],62push [ebp-84] jmp returnhere krocki привет! В сущности понятно, что в твоём варианте происходит, но не понятно почему "push" ниже смещений и нет выброса смещения из стека...? Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 5 мая, 2016 Поделиться Опубликовано 5 мая, 2016 1 час назад, SerVick сказал: krocki привет! В сущности понятно, что в твоём варианте происходит, но не понятно почему "push" ниже смещений и нет выброса смещения из стека...? push [ebp-84] в данном случае - это оригинальная инструкция игры, krocki выбрал одну из твоих инструкций ( originalcode: push [ebp-00000084] и повесил всё на неё. Ссылка на комментарий Поделиться на другие сайты Поделиться
krocki Опубликовано 5 мая, 2016 Поделиться Опубликовано 5 мая, 2016 Угу!!! Ведь там адреса рядом стоят, поэтому можно повесить всё на одну! Просто я делаю чит-моды...мне так проще делать...и меньше кода приходится использовать. Ссылка на комментарий Поделиться на другие сайты Поделиться
SerVick Опубликовано 5 мая, 2016 Автор Поделиться Опубликовано 5 мая, 2016 7 часов назад, Garik66 сказал: push [ebp-84] в данном случае - это оригинальная инструкция игры, krocki выбрал одну из твоих инструкций ( originalcode: push [ebp-00000084] и повесил всё на неё. Игорь это всё я понимаю но я о другом обычно записывают примерно так, если этот операнд используют. Скрытый текст push ebp // в общем загнали в стек регистр mov ebp,#99 // запсали значение mov [eax +04],ebp // записали в адрес pop pop // извлекли из стек originalcode: То обязательно внизу есть вывод из стека. А там в предложенном варианте загружаем в стек, но не выгружаем и самое интересное, что загрузка идёт после смещений, а не до них.... . Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 5 мая, 2016 Поделиться Опубликовано 5 мая, 2016 10 минуту назад, SerVick сказал: но я о другом обычно записывают примерно так, если этот операнд используют. Это тоже всё понятно, но в данном случае - это твои же оригинальные инструкции игры: "Eschalon Book I.exe"+104147: push [ebp-00000088] Вот этот push у krocki здесь: push [ebp-84] только взят из третьей твоей инструкции и всё. Ссылка на комментарий Поделиться на другие сайты Поделиться
SerVick Опубликовано 5 мая, 2016 Автор Поделиться Опубликовано 5 мая, 2016 Ребята я же не решение просил, конечно спасибо! Но мне можно было из вашей практики, не обязательно на этих смещениях -они для примера. А т.е. варианты как можно записать в скрипте. Ведь не только в этой игре встречается, а мне доя опыта уже буду знать как бороться... . Но в любом случае получилось 2 -а варианта здесь и один ещё прислал Евгений в личку. Спасибо!!! Завтра на смене будет чем заняться по экспериментировать. Ссылка на комментарий Поделиться на другие сайты Поделиться
ZOCKIR Опубликовано 5 мая, 2016 Поделиться Опубликовано 5 мая, 2016 newmem: mov [ebp-00000084],#70 mov [ebp-00000088],#70 mov [ebp-0000008c],#70 Ссылка на комментарий Поделиться на другие сайты Поделиться
SerVick Опубликовано 5 мая, 2016 Автор Поделиться Опубликовано 5 мая, 2016 Не много наверное я не правильно объяснил. Вот в варианте krocki push операнд стоит в нижней строке кода, а не в верхней как обычно, а на этом месте стоит обычно операнд выгрузки. В обычном понятно загрузили в стек, по мудрили и выгрузили. Т.е. срабатывание кода с верху в низ происходит. А тут я просто не понимаю что происходит в коде, ну не совсем. Логику кода не понимаю. Что есть не гут... . И в основном вопросе наверное не правильно выразил мысль, плохо что скрин загрузить не знаю как, там наглядней обрисовал бы тему... . Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 5 мая, 2016 Поделиться Опубликовано 5 мая, 2016 Вот ты зациклился. Не обращай внимания на этот push, Он из твоей оригинальной инструкции. Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения