MasterGH Опубликовано 15 декабря, 2016 Поделиться Опубликовано 15 декабря, 2016 Бывает отсеиваем адрес, а адресов бывает 10, 20, 100 и более. Значения одинаковые и не хотят отсеиваться. Чтобы вручную не искать рабочий адрес (заморозками, изменениями значений) можно попробовать воспользоваться скриптом Lua, который я написал. Показать контент function SetRedColor(memoryRecord) memoryRecord.Color = 255 end local addressList = getAddressList() local countRecords = addressList.Count for index = 1, countRecords do local memoryRecord = addressList.getMemoryRecord(index-1) -- Поддержка типов от vtByte до vtDouble if (memoryRecord.Type <= 5) then memoryRecord.Description = index + 1 memoryRecord.Value = index + 1; end end if (messageDialog('Если значения изменились от порядковых 2,3,4,5 и т.д, то нажми "ок". Если нет или ты не понял, то зайди в игру и что-то сделай в ней. Вернись и нажми "Ок". Красным цветом выделится один рабочий адрес', mbHelp, mbOK) == mrOK) then for index = 1, countRecords do local memoryRecord = addressList.getMemoryRecord(index-1) -- Поддержка типов от vtByte до vtDouble if (memoryRecord.Type <= 5) then if (memoryRecord.Description == memoryRecord.Value) then SetRedColor(memoryRecord) memoryRecord.Description = 'Рабочий адрес' end end end end Я тестил этот скрипт на игре TimeShift при поиске патронов на пистолете. Рабочий адрес определился верно после захода в игру, возврата и нажатия на кнопку Ок. Логика работы Значения и имена адресов заполняются порядковыми номерами. Идем в игру. Игра перезаписывает значения "по рабочему адресу". Скриптом сравниваем рабочий адрес и значение, и красим в красный цвет эту запись. Недостатки: 1. Таблица CE должна хранить адреса среди которых ищем, без других записей (без АА скриптов, без читов и т.п.) 2. Типы данных целые, что будет с float или другими не тестил 3. Копировать/вставлять Lua скрипт и выполнят его, вместо клика по контекстному меню Вот когда не отсеиваемых адресов этак за 100 штук, то наверно этот скрипт бы пригодился, чтобы вручную не искать. Сделал пока так, а дальше посмотрим. 5 Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 15 декабря, 2016 Поделиться Опубликовано 15 декабря, 2016 Удобный инструмент, надо будет потестировать. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 15 декабря, 2016 Поделиться Опубликовано 15 декабря, 2016 В 15.12.2016 в 15:50, Xipho сказал: Удобный инструмент, надо будет потестировать. Показать Это ты наверное Хипхо о Doome подумал В котором у тебя много адресов было... Подобное конечно не часто встретишь, но всё же... Ссылка на комментарий Поделиться на другие сайты Поделиться
Xipho Опубликовано 15 декабря, 2016 Поделиться Опубликовано 15 декабря, 2016 Разумеется ) Ссылка на комментарий Поделиться на другие сайты Поделиться
partoftheworlD Опубликовано 16 декабря, 2016 Поделиться Опубликовано 16 декабря, 2016 (изменено) В 15.12.2016 в 15:14, MasterGH сказал: 2. Типы данных целые, что будет с float или другими не тестил Показать C float работает. C byte выделяет все адреса рабочими. В которых значение может быть только 1 или 0. Изменено 16 декабря, 2016 пользователем partoftheworlD Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 16 декабря, 2016 Автор Поделиться Опубликовано 16 декабря, 2016 Да, с порядком может быть проблема, когда значение должно быть 0, 1 или вещественные 0,0-1,0. Пока идеи такие 1. Делать заморозку процесса перед записью всех значений, чтобы не успели поменяться. Есть игры, которые работаю в фоном режиме. 2. Сделать как плагин и пункт в контекстное меню. Еще подумать над этим как удобнее. Окон новых не хочется и не хочется чтобы в таблице CE находилось много адресов. Скорее всего, будет контекстное меню над областью найденных адресов (там где адреса отображаются после отсева) 3. Подумать над порядком значений и типами. Скачать игры, где много рабочих и не рабочих адресов и на них потестить. Помню HalfLife здоровье. Конечно, Doom как на видео. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 17 декабря, 2016 Автор Поделиться Опубликовано 17 декабря, 2016 Обновление 1. FindMasterAddress.lua 2. Репозиторий Для установки плагина перетащить lua файл в папку autorun. Подсказка как пользоваться. Ищем адреса как обычно, кроме типов: "строк", "цепочки байт", "всех типов", "группа поиска" и "бинарный". Если настал момент, что адреса ну никак не отсеиваются до одного, то на области адресов вызываем всплывающее меню правой кнопкой мыши и активируем опцию Потом начнут появляться последовательно окна: 1. Ввод стартового значения. По умолчанию 2, можно брать другое. 2. Ввод максимального значения. Оставить по умолчанию или написать свое. Если адресов будет больше чем максимальное значения, то запись по адресам будет продолжаться со стартового значения 3. Диалог с информацией. Заходим в игру, выходим. В игре ничего не делали, т.е. не изменяли значение рабочего адреса. Жмем ок и рабочий адрес добавляется в таблицу. Тестил с типом integer. Остальные типы еще на проверке. P.S. Что интересного в скрипте. 1. Пример того как писать и читать тип word и byte через Lua. 2. Встраивание меню и подписка на событие показа меню. В функции-обработчике делаем меню активным или не активным, когда можно или нельзя пользоваться 3. Узнать тип поиска из формы Cheat Engine. 4. Чтение данных адресов, которые были найдены при поиске 5. Ну, и добавление записи в таблицу адресов 1 Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 18 декабря, 2016 Поделиться Опубликовано 18 декабря, 2016 Мастер, а на пример функцию завершения процесса, можно реализовать в СЕ То есть смотри, вот я щас на пример ковырялся в игре и сделал кое что не так и игра просто зависла и всё. Не мышки нет на раб столе не чего нет.. Задачу не снимешь в диспетчере тоже - так как мыши нет, да и окно игры перекрыло панель эту.. В СЕ же есть функция заморозки процесса, а если сделать что нажал на клавишу - бам и процесс отвалился К игре же СЕ подрублен, а значит как процесс морозит, так же его и снять может. Эта функция не плохая в обще и очень полезная.. Я вот щас на пример сидел пол часа, искал гранаты какие то кодированные в Сталкере - осталось 4 адреса, я их на отладчик посадил, иструкции посмотрел, но только решил попробовать, да видать что то сделал не так и всё игра встала.. Единственный выход - это выход из системы, так как он быстрее перезагрузки, но данные то уже потеряны и искать по новой надо.. Наверное скажешь, надо сохранить было, а потом уже пробовать - но игра встать может даже во время пробы и вот снять бы задачу как бы в СЕ реализовать возможно эту... Прям очень удобно было бы. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 19 декабря, 2016 Автор Поделиться Опубликовано 19 декабря, 2016 Надо гуглить. Либо shellExecute(command, parameters OPTIONAL, folder OPTIONAL, showcommand OPTIONAL): Executes a given command Либо сторонняя программа. Либо инжект в саму CE и исполнение. Я всегда игры ставлю в оконный режим и у меня никогда таких проблем не бывает. Если что-то подвисает очень редко и намертво, то "Process Explorer" убивает игру спокойно. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 19 декабря, 2016 Поделиться Опубликовано 19 декабря, 2016 В 18.12.2016 в 19:32, LIRW сказал: Единственный выход - это выход из системы, так как он быстрее перезагрузки, но данные то уже потеряны и искать по новой надо.. Показать А в Диспетчере задач убить процесс? Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 19 декабря, 2016 Поделиться Опубликовано 19 декабря, 2016 В 19.12.2016 в 15:10, Garik66 сказал: А в Диспетчере задач убить процесс? Показать Игорь - там в обще окно игры всё блокирует... Единственный выход из подобной ситуации, это жать выход из системы и всё. Есть такие игры чудные - вот как раз Сталкер и она не единственная такая, где окно если зависнет - то всё. Либо аварийная перезагрузака, либо выход из системы,а с нею и потеря данных. Надо как не будь дарк байту намекнуть. Ну а что Игорь - процесс замораживает и к нему подключен, а значит на клавишу и завершить его можно реализовать. Не уж то у тебя не разу подобного не было ? Есть такие игры и они обычно такого раритетного образца. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 19 декабря, 2016 Поделиться Опубликовано 19 декабря, 2016 В 19.12.2016 в 15:43, LIRW сказал: Не уж то у тебя не разу подобного не было ? Показать Сталкивался, действительно всё висло и как ты и написал - использовал выход из системы, а потом уже по новой вход, загрузка игры и т.д. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 19 декабря, 2016 Поделиться Опубликовано 19 декабря, 2016 В 19.12.2016 в 15:06, MasterGH сказал: Я всегда игры ставлю в оконный режим и у меня никогда таких проблем не бывает. Показать Мастер я тоже был в оконном режиме - Сталк завис и всё... Это окно какое то как буд то оно всё перехватывает - ну не шеволится мышка (её по сути в обще нету на рабочем столе) после зависания игры. Диспетчер задач не проблема вызвать, но мышки то нет. И окно перекрывает его - как буд то у него функция такая по верх всего работать. Игра кстати по дифолту от админа работает, а значит наверное и делать может что угодно. Есть же игры такие настырные, которые даже в окно не как не свернуть. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 19 декабря, 2016 Поделиться Опубликовано 19 декабря, 2016 В 19.12.2016 в 15:46, Garik66 сказал: Сталкивался, действительно всё висло и как ты и написал - использовал выход из системы, а потом уже по новой вход, загрузка игры и т.д. Показать Вот я об этом моменте и говорю. А вот представь кнопка была завершения процесса в СЕ бам и завершили бы.. Я вот видел на пример, что СЕ сам то активен и замораживает процесс игры, даже после её зависания, а значит он бы и снять смог этот процесс. Вот эта опции именно хороша - что бы данные не потерять, а более она не к чему. PS: Игорь я не буду цитировать, а тут допишу... Что СЕ сам активен - я прям видел, что процесс и замораживается и размораживается. Ты видать просто писал и не успел прочитать сообщение моё и отправил уже своё. Да и ещо одно - Игорь я прям мог переключится на любое окно активное, но в этом окне не чего не сделать - так как мышки нету. А вот клавиша думаю бы сработала на завершения.. 100% не уверен - это надо думаю тестировать всё, а пока и функции то этой нету. Её же дописать не сложно - главное знать как Просто вот по сути если подумать - то СЕ подрублен к процессу игры, а если он его замораживает и размораживает, значит может и вырубить его. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 19 декабря, 2016 Поделиться Опубликовано 19 декабря, 2016 В 19.12.2016 в 15:43, LIRW сказал: Есть такие игры и они обычно такого раритетного образца. Показать ЗЫ: только я ещё не всё дописал - доступа к СЕ тоже нет (после зависания), так что опция, которую ты хочешь скорее всего будет бесполезная. Ссылка на комментарий Поделиться на другие сайты Поделиться
Vlad2 Опубликовано 19 декабря, 2016 Поделиться Опубликовано 19 декабря, 2016 В 18.12.2016 в 19:32, LIRW сказал: Мастер, а на пример функцию завершения процесса, можно реализовать в СЕ Показать Можно, и это не сложно. Протестируй. Закинуть в папку autorun директории СЕ. Активация по клавишам F12+Delete. KillProcess.lua 3 Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 19 декабря, 2016 Поделиться Опубликовано 19 декабря, 2016 В 19.12.2016 в 16:07, Vlad2 сказал: Закинуть в папку autorun директории СЕ. Активация по клавишам F12+Delete. Показать Испытаем - Спасибо! кнопки случай чего свои там подрисовать можно.. Как подобная проблема опять возникнет - проверю сразу. Так как надо именно момент зависания, а не что бы возник краш игры, а тут раз на раз не приходится. Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 19 декабря, 2016 Автор Поделиться Опубликовано 19 декабря, 2016 В 19.12.2016 в 15:50, LIRW сказал: я прям мог переключится на любое окно активное, но в этом окне не чего не сделать - так как мышки нету Показать Помню у меня тоже было пропадание курсора мышки. Точнее мышка работает, но ты не видишь курсора. Это было на играх про Сталкера, то ли в пошаговой отладке, то ли при брейкпоинтах с остановкой процесса. Вот только я не помню способ как я курсор включал. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 19 декабря, 2016 Поделиться Опубликовано 19 декабря, 2016 В 19.12.2016 в 16:19, MasterGH сказал: Точнее мышка работает, но ты не видишь курсора. Это было на играх про Сталкера Показать Мастер игра как раз Сталкер... в принципе я и имел введу курсор мыши, а то не то, что прям сама мышка не работает. Ну думаю тут и так понятно, что я имел введу. Подобная проблема не только на такой игре как сталкер возникает. Обычно она возникает на старых играх - это когда оконный режим был ещо не так продвинут и игры то бывает не как не скинешь в трей. Вот на подобной игре если зависнуть - то всё... На мертво. Ссылка на комментарий Поделиться на другие сайты Поделиться
Garik66 Опубликовано 19 декабря, 2016 Поделиться Опубликовано 19 декабря, 2016 В 19.12.2016 в 16:15, LIRW сказал: кнопки случай чего свои там подрисовать можно. Показать Можно: Показать контент createHotkey(function() os.execute('taskkill /PID '..getOpenedProcessID()..' /F /T') end, VK_F12, VK_DELETE) -- меняй на свои Ссылка на комментарий Поделиться на другие сайты Поделиться
MasterGH Опубликовано 19 декабря, 2016 Автор Поделиться Опубликовано 19 декабря, 2016 Я еле-еле вспомнил. Я включал курсор двумя способами. Первый способ очень костыльный вспомнил, а второй не помню. Была у меня такая платная программа для снятия скриншотов Snagit. Если её умудришься запустить без мышки, с помощью клавиатуры из меню "Пуск", то после запуска и нажатия на кнопку "Prt Scr" на клавиатуре курсор появится. Если Snagit запускать при старте системы, то просто нажимаешь на клаве "Prt Scr" и курсор появляется. Есть какие-то функции из API, которые работают с курсором. Если поковыряться, то я думаю, можно найти решение через Cheat Engine. Ссылка на комментарий Поделиться на другие сайты Поделиться
aliast Опубликовано 27 января, 2017 Поделиться Опубликовано 27 января, 2017 В 19.12.2016 в 15:43, LIRW сказал: Единственный выход из подобной ситуации, это жать выход из системы и всё. Показать А если вместо выхода из системы попробовать заблокировать комп (Win+L) и разблокировать - не поможет? Тогда ничего не потеряется, открытые программы не закроются. Мне вроде бы помогало, но со Сталкером не пробовал. Ссылка на комментарий Поделиться на другие сайты Поделиться
LIRW Опубликовано 27 января, 2017 Поделиться Опубликовано 27 января, 2017 В 27.01.2017 в 04:25, aliast сказал: А если вместо выхода из системы попробовать заблокировать комп (Win+L) и разблокировать - не поможет? Показать Я не пробовал так... Как не будь попробую - ну как ещо подобная игра попадется. Подобное обычно только в старых играх случается и особенно часто в тех, которые не имеют оконного режима - да какой там оконный, они даже не сворачиваются в трей. Вот игра то про вампиров с кубиком то ещо как то обсуждали - там надо за определенное время семью спасти и через какое то время 1 член семьи умирает. Так вот у меня когда был монитор под 1024х768 максимум - прям свернуть и развернуть можно было за просто, а щас вот стоит 22 и уже и не свернуть, а если даже каким то способом это и получится, то уже её не развернуть... Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения