MasterGH Опубликовано 5 июня, 2011 Поделиться Опубликовано 5 июня, 2011 У AOBScan могут быть параметры сканирования (ищите описание).Пример функции возвращающей первый найденный адрес сигнатуры в типе областей памяти с защитой "выполнение кода".function ByteScan(signature) -- return address local results = AOBScan(signature, "+X-C-W") if (results == nil) then messageDialog("Ошибка. Не найден адрес внедрения.\n\rТрейнер будет закрыт!",1, 2) closeCE() return end local address = stringlist_getString(results, 0) return addressendВажно отметить, что можно работать с несколькими возвращаемыми адресами, а не только с первым как это было в автоассемблере. Ссылка на комментарий Поделиться на другие сайты Поделиться
Beatle Опубликовано 13 декабря, 2011 Поделиться Опубликовано 13 декабря, 2011 В 05.06.2011 в 11:31, Andrey сказал: У AOBScan могут быть параметры сканирования (ищите описание).Пример функции возвращающей первый найденный адрес сигнатуры в типе областей памяти с защитой "выполнение кода".function ByteScan(signature) -- return address local results = AOBScan(signature, "+X-C-W") if (results == nil) then messageDialog("Ошибка. Не найден адрес внедрения.\n\rТрейнер будет закрыт!",1, 2) closeCE() return end local address = stringlist_getString(results, 0) return addressendЯ так понимаю, что AOBScan мы можем найти заданный массив байт? У меня задача отыскать большой массив (х х х х х х х х х х х х х) и заменить его на (у у у у у у у у у у у у у) С поиском и заменой значения в адресе проблем нет, а вот как быть с массивом? Подскажите плз. Цитата Важно отметить, что можно работать с несколькими возвращаемыми адресами, а не только с первым как это было в автоассемблере. Как быть, если таких массивов будет несколько?Пересмотрел операторы языка, но подходящего не разглядел. ЗЫ Если не туда запостил, сорри. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 13 декабря, 2011 Автор Поделиться Опубликовано 13 декабря, 2011 Для начала это.<< Я так понимаю, что AOBScan мы можем найти заданный массив байт? Можем. Можем найти адрес массива или адреса по которым находятся похожие массивы.<< У меня задача отыскать большой массив (х х х х х х х х х х х х х) и заменить его на (у у у у у у у у у у у у у)Поиск массива через AOBScan или класс MemScanЗапись байтwriteBytes(address, x,x,x,x,...) : Write the given bytes to the given address from a tablewriteBytes(address, table) : Write the given bytes to the given address from a tableВ Lua коде нужно написать, что дескать, если нашли адреса массива, то по каждом адресу записать такие-то байты. Или записать только по первому найденному адресу. Или ещё дописать условие,что если найденных адресов больше чем 1, то вывести сообщение об ошибке, о том что должен был найтись только один адрес.>> Пересмотрел операторы языка, но подходящего не разглядел.Я дал несколько подсказок, а дальше сами. Ссылка на комментарий Поделиться на другие сайты Поделиться
Beatle Опубликовано 13 декабря, 2011 Поделиться Опубликовано 13 декабря, 2011 Пасиба за подсказки, но быстро решить эту тривиальную задачу мне будет проблематично. Это первый скрипт который хочу написать. Если не затруднит, хоть какой-нить маленький примерчик, либо ссылку на пример. Просьба конечно нубская, но пока я проштудирую мануалы задача может потерять актуальность... ))Я надеялся что есть оператор который позволяет просто заменить одни значения байт на нужные без разбивки на адреса, но ситуация, как понимаю, усложняется... ( Ссылка на комментарий Поделиться на другие сайты Поделиться
d0c Опубликовано 6 апреля, 2014 Поделиться Опубликовано 6 апреля, 2014 В 13.12.2011 в 14:19, Beatle сказал: Пасиба за подсказки, но быстро решить эту тривиальную задачу мне будет проблематично. Это первый скрипт который хочу написать. Если не затруднит, хоть какой-нить маленький примерчик, либо ссылку на пример. Просьба конечно нубская, но пока я проштудирую мануалы задача может потерять актуальность... ))Я надеялся что есть оператор который позволяет просто заменить одни значения байт на нужные без разбивки на адреса, но ситуация, как понимаю, усложняется... (В чем проблема то?1 решение:Просто сделай АА(авто ассемблер) скрипт например:[ENABLE]aobscan(namesignature, XX XX XX XX XX XX XX XX XX XX XX XX XX) /*сюда естественно вставляешь сигнатуру которую тебе надо НАЙТИ и ЗАМЕНИТЬ*/label(_namesignature)registersymbol(_namesignature)namesignature:_namesignature:db XX XX XX XX. //Здесь пиши байты которыми будешь ЗАМЕНЯТЬ[DISABLE]_namesignature:db XX XX XX XX. //Здесь стандартные байты unregistersymbol(_namesignature)2 решение:Если же тебе нужно именно на Lua, то просто сделай ассемблерную вставку в Lua код. Ссылка на комментарий Поделиться на другие сайты Поделиться
d0c Опубликовано 6 апреля, 2014 Поделиться Опубликовано 6 апреля, 2014 С помощью команды autoAssembly кажется Ссылка на комментарий Поделиться на другие сайты Поделиться
Гость Иллидан Опубликовано 13 марта, 2020 Поделиться Опубликовано 13 марта, 2020 В 06.04.2014 в 00:57, d0c сказал: db XX XX XX XX. //Здесь пиши байты которыми будешь ЗАМЕНЯТЬ Показать а если мне нужно, чтобы в трейнере Cheat Engine, происходил поиск адреса по сигнатуре и после этого использовался как переменная со значением, например координат персонажа по оси Y - то что бы, по нажатию горячей клавиши трейнера, происходила замена значения данной переменной(значения в адресе) к примеру на Y+10 или *10, или -15% то как будет выглядеть пример такой математической строки кода?) была бы ещё об этом конкретная отдельная тема для Cheat Engine( Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения