Перейти к содержанию

MasterGH

Ветераны
  • Постов

    2 999
  • Зарегистрирован

  • Победитель дней

    129

Весь контент MasterGH

  1. На CE 6.6. еще не все исправлено. Поэтому пока ненадо. V240_G66-2.lua сейчас как черновой вариант, пока его не качайте.
  2. Хм.. странно. У меня aamaker V240_G66-2.lua в папке \autorun и я удалил V240_G66-1.lua ошибок нет. Выводятся просто логи
  3. Скинь пожалуйста свой Tutorial-i386.exe в архиве. У меня по адресу Tutorial-i386.exe+1D0551 от CE 6.6 другие инструкции и сигнатуру не могу найти.
  4. Вроде исправил. Норм. add ah,[edx] и add ah,[edx + 00] отличаются по размеру на 1 байт, но лишний байт все равно бы нопился при восстановлении. Даже если бы не исправляли, то не должно было приводить к ошибке. Исправлено 3.01 3.02 3.03 Исправлена для cmp инструкции. Набор стал таким PATTERN = { ['inc'] = 'mov->>type[x],->>value', ['cmp'] = 'mov->>type[x],->>value\r\n->>originalCode', ['mov'] = 'mov->>type[x],->>value\r\n->>originalCode', ['fld'] = 'mov->>type[x],->>value\r\n->>originalCode', ['fstp'] = '->>originalCode\r\n'..'mov->>type[x],->>value' } На других инструкциям mov [x], value не будет и нужно этот набор заполнять ими. Cmp я добавил Не исправлено: 3.04. Отображение в логах в скриптах адресов в таком виде. Тут проблемка с тем чтобы получить модуль плюс оффест, а не модуль + символьное имя + оффест. Пример print(getNameFromAddress('00439D10')) --Получит Tutorial-i386.exe+39D10 --Но, если будет символьное имя, то мог бы вернуть что-то типа Tutorial-i386.exe+СТРОКА.СТРОКА + 39D10 Покак такой вариант aamaker V240_G66-2.lua Остальным займусь как время будет. Пока можно потестить что есть.
  5. MasterGH

    FPU инструкция FINCSTP. Очистка ST(0)

    FINCSTP Похожа на FSTP, также вращает стек регистров FPU (я кстати не знал, увидел при тестах в CE), но только не перемещает значение по адресу. FSTP [здесь указывается адрес или регистр] FINCSTP Если нужно вытолкнуть значение из ST(0), а адрес куда его выталкивать не нужен, то можно сделать так FINCSTP Или аналог FSTP ST(0) При использовании стоит обратить внимание на флаги, возможно их состояние будет влиять на исполнение кода. *Вообще не помню почему я пишу "выталкивать значение" через fstp, когда оно появляется снизу в ST(8). Т.е. не выталкивается по сути.
  6. Для ret 8. Сначала возврат по [ESP] (как обычно) и после этого (либо одновременно) esp сдвигается на 8.
  7. Респект за статью! Просьба хостить скриншоты на форум, потому что на чужих хостингах через некоторое время картинки как правило пропадают.
  8. Submarina, медленный файловый обменник, видео проверять нужно и Дарк Байту объяснять.... Я хотел помочь, но пропало желание и ничего поделать не могу с собой. Я прощу прощения у тебя за потраченное время. Может быть потом как-нибудь, в ближайшее время совсем не хочу этим заниматься.
  9. Ну, показать коротко, что поиск работает и не работает и общее время чтобы было примерно не дольше 10 минут. Видео переделывать не надо, просто промежутки времени. Я думаю, что Дарк Байт не будет смотреть 56 минут.
  10. Спасибо за видео. Я прошу, если это возможно, написать временные рамки на видео для того чтобы Дарк Байт посмотрел. Cheat Engine 5.6 - пример поиска, когда ищет указатели правильно "от время до время" Cheat Engine 6.6 Realease - пример поиска, ищет указатели не правильно "от время до время" Cheat Engine 6.7 Beta 1 - пример поиска, ищет указатели не правильно "от время до время" Общее время не должно быть более 10 минут. Лучше если это будет минут 5.
  11. Я сейчас поправлю, проверю и вышлю файл
  12. У меня такое предложение к тебе, естественно, его делать не по принуждению, а если есть огромное желание. Если сделаешь видео с правильным поиском на старой версии CE и не правильным поиском на бета версии, я напишу о проблеме на форуме CE.
  13. Я забыл скобку добавить Прошу прощения script = string.gsub(script,'{$PrintLog}', GetTextLog(getAddress(address)) )
  14. Вот эту строчку можно заменить script = string.gsub(script,'{$PrintLog}', GetTextLog(getNameFromAddress(address), getNameFromAddress(length + address))) на эту script = string.gsub(script,'{$PrintLog}', GetTextLog(getAddress(address) ) Функцию GetTextLog можно взять из поста выше. Если не получится, то можно оставить прошлый вариант. Я потом попроавлю
  15. Вот как заменить формат такой xrGame.CDialogHolder::CDialogHolder+1E1C71: F7 05 3C5C7D07 00040000 - test [077D5C3C],0400 На такой "xrGame.dll"+2785A1: F7 05 3C 5C 7D 07 00 04 00 00 - test [xrGame.dll+635C3C],0400 Пока не знаю. Надо подумать как это написать.
  16. Там нет ошибки Скриншот сверху показывает сравнение. Последовательность инструкций верная
  17. Измененный код логов АА Сравнение строк АА скриптов CE (оригинальный шаблон CE) и кода выше При сравнении вижу отличия в названии символов адресов слева и внутри инструкций. Последовательность инструкций верная
  18. Для слияния изменений может быть необходимо сравнивать два файла. Я делаю это через плагин Compare в Notepad++. Пример Сразу видим отличия и вносим их. Если нужна моя поддержка по поводу плагина. Мне будет проще, если очень подробно будут описаны проблемные места 1. Текст АА кода с ошибками (текстом, не скриншотом) 2. Текст АА кода "как должно быть" (текстом, не скриншотом) 3. Подопытные кролики Tutorial-i386.exe и Tutorial-x86_64.exe 4. Версия CE не ниже 6.6 И самое главное, если есть файл кода с изменениями например Последняя версия плагина здесь , то и его прикрепить к сообщению. Ведение лога как у CE в комментах к АА. Запощу, а то забуду
  19. Обновил первый пост. Добавлены новые ссылки (отмечены) Особый интерес представляет сайт по описанию x86 архитектуры на русском. Даже скриншот прилагаю, чтобы показать содержание
  20. Особенности 1) переход на следующий адрес по инструкциям ветвления вычисляется Lua кодом по ret, jmp, jmp condition до исполнения кода 2) определение опкодов ветвления по readmem без дизассемблериования 3) по тестам последний брейкпоинт снимается на ближайшем цикле Пример лога до близжайшего цикла, когда поднимается из рутины вверх Код: Справка Если трейсить трейслогом 1000 инструкций поверх call, то видим многократное повторение пути внутри цикла между 00437A34 и 0044DFAF. С помощью скрипта можно выйти на цикл не используя трейслог Можно использоваться функции определения куда прыгнет поток, до его выполнения. Можно оперировать таблицей адресов с брейкпоинтами в пошаговой отладке.
  21. Все равно не понятно. Ладно. Закрываю тему. Решение заголовка темы уже написали.
  22. Ручных операций не так много и думаю, их не надо делать очень часто и в большом объеме. Думаю, ты можешь вручную это сделать или пользоваться групповым поиском. В чем смысл автоматизации поиска адреса на Lua?
  23. Конечно, нужен скрипт, без него ничего конкретного не написать. Только гадать. Использовать инструкции, которые влияют на флаги. test, cmp, Если надо, предварительно сохранить регистр флагов, а потом восстановить. PUSHF и POPF сохранение и восстановление Еще есть такой сброс флагов или перезапись флагов (ими никогда не пользовался) Сброс carry flag - CLC Сброс interrupt flag - CLI Сброс direction flag - CLD SAHF запись из AH в SF ZF xx AF xx PF xx CF (SF:ZF:xx:AF:xx:PF:xx:CF := AH;)
×
×
  • Создать...

Важная информация

Находясь на нашем сайте, Вы автоматически соглашаетесь соблюдать наши Условия использования.