Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Операционные системы > Софт
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 10.08.2016, 12:47   #1
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию Cheat Engine, поиск значений

Всем привет.
Часто сталкиваюсь с такой проблемой: программа Cheat Engine (CE) очень не любит искать нули в памяти процессов, что естественно - ибо их всегда больше, чем весит сам процесс в ОЗУ.
Если запустить поиск нулей и просто дождаться - то CE будет нехило протормаживать как себя, так и обрабатываемый процесс; если же случайно запустить поиск нулей, а потом нажать кнопку "Отмена" - то CE вешается примерно на одну минуту.
А если дождаться окончания поиска нулей (случайного, или не очень), а после запустить отсев со следующим значением, равным 0 - то CE вообще сума сойдёт, и повесится минут на пять (что тоже вполне естественно, из-за количества).
Так вот: с последним описанным мною случаем я столкнулся сегодня.

Исходя из имеющейся проблемы возник вопрос: можно ли как нибудь запретить программе искать нули ? В настройках не нашёл; может какой нибудь фикс/плагин etc. ?

P. S. CE использую как в играх для читерства, так и для проверки багоустойчивости некоторых (иногда даже собственных) exe-шников в "реальных условиях" (без отладчика IDE). Что касается самих нулей - то в любом процессе весом более 10 мегабайт этих самых нулей набирается более 10 мулионов, и CE начинает тупить, вместе с обрабатываемой программой (что уже было упомянуто).
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 10.08.2016, 14:08   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
ибо их всегда больше, чем весит сам процесс в ОЗУ.
ага, откуда берутся-то?
бред не несите, их не мало, да. но явно не больше.
(исключение если вы ищете тип All)
Цитата:
можно ли как нибудь запретить программе искать нули ?
программа слушается пользователя, запретите себе искать нули.
Цитата:
Если запустить поиск нулей и просто дождаться - то CE будет нехило протормаживать как себя, так и обрабатываемый процесс; если же случайно запустить поиск нулей, а потом нажать кнопку "Отмена" - то CE вешается примерно на одну минуту.
чем больше значений, тем больше торможений, в силу того что это все надо где-то хранить, CE хранит это на диске.
Цитата:
А если дождаться окончания поиска нулей (случайного, или не очень), а после запустить отсев со следующим значением, равным 0 - то CE вообще сума сойдёт, и повесится минут на пять (что тоже вполне естественно, из-за количества).
надо понимать что делаете, если вы ищете и у вас миллионы значений, лаги неизбежны, тут уже не важно ноль или не ноль(поиск неизвестного значения, тоже выдаст лаги)
природа больших объемов.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.08.2016, 10:37   #3
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
ага, откуда берутся-то?
бред не несите, их не мало, да. но явно не больше.
(исключение если вы ищете тип All)
Даже если искать тип All - то по вашей логике всё равно возникает вопрос: откуда они берутся ? И я говорю в общем случае - для любого отдельного типа нулей будет больше, чем весит процесс ОЗУ. А теперь пример:
Моя программа (точнее - игра) в диспетчере задач занимает 834 с лишним мегабайта (854 768 кб). Когда я запускаю поиск нулей, тип "4 байта" - после пол минуты загрузки я вижу количество загруженных значений: "Всего 736 005 148, отображается 10 000 000". А теперь вспоминаем математику: 736 005 148 * 4 = 2 944 020 592 - ровно столько байт я "нашёл" в процессе. А это 2 944 020 592 / 1024 / 1024 = 2 807,6368255615234375 мегабайта. Ну, вы поняли.
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
программа слушается пользователя, запретите себе искать нули.
В моём посте речь идёт о том, что я могу случайно сделать то, или иное действие. И такая случайность может произойти с каждым пользователем. Именно исходя из этого и возник вопрос: как программно заблокировать ?
Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
(поиск неизвестного значения, тоже выдаст лаги)
Не правда: во всяком случае для меня. В GTA V занимался поиском неизвестных значений (тип all) - проблем не было.

P. S. Проблема так и не решена.
Я случайно запустил отсев "нулей от нулей", и ждал пять минут, пока CE отойдёт. Поиск нулей сделал случайно, отсев сделал по дебильному - не успел нажать на кнопку "Отмена", как появилась кнопка "Отсев".
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Старый 11.08.2016, 10:57   #4
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Цитата:
откуда они берутся ?
Как не странно, но вы оба правы. "Больше" нулей берется из простого факта - берем два 4 байтовых нуля в памяти: 00000000 00000000. Теперь вопрос сколько 4 байтовых нулей найдется, учитывая, что минимальная адресация 1 байт? По факту, конечно, для игры там будет не больше 2х, но...

Цитата:
В моём посте речь идёт о том, что я могу случайно сделать то, или иное действие.
Обычно в этом случае тренируются, концентрируются...

Цитата:
как программно заблокировать ?
Самый простой вариант - написать разработчикам о введении доп. опции. Програмно можно, но это доп. нагрузка и теоретически будут проскоки.

Цитата:
Проблема так и не решена.
Купить ссд и плашку памяти.
p51x вне форума Ответить с цитированием
Старый 11.08.2016, 11:07   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Цитата:
Даже если искать тип All - то по вашей логике всё равно возникает вопрос: откуда они берутся ?
по вашему для чего я написал что тип All исключение?
Цитата:
И я говорю в общем случае - для любого отдельного типа нулей будет больше, чем весит процесс ОЗУ.
ну не может их там быть больше
хотя...похоже с настройками вы уже поиграли.(выравнивание, какие секции учитывать), тогда вполне возможно.
ну не суть, речь не об этом.
Цитата:
В моём посте речь идёт о том, что я могу случайно сделать то, или иное действие. И такая случайность может произойти с каждым пользователем. Именно исходя из этого и возник вопрос: как программно заблокировать ?
Cheat Engine не имеет искусственных ограничений.
следите за собой просто, ибо в CE такого нет.
Цитата:
Не правда: во всяком случае для меня. В GTA V занимался поиском неизвестных значений (тип all) - проблем не было.
сам первый запуск он быстрый, отсеивание уже дольше.
Цитата:
P. S. Проблема так и не решена.
Я случайно запустил отсев "нулей от нулей", и ждал пять минут, пока CE отойдёт. Поиск нулей сделал случайно, отсев сделал по дебильному - не успел нажать на кнопку "Отмена", как появилась кнопка "Отсев".
а проблема не в Cheat Engine, внимательнее просто будьте.
скока патчил игры...сколько фильтровал, все ок было.

порою можно еще и ограничить поиск если знаете в какой секции может быть значение.

далее, подумайте о такой вещи как поиск кода, а именно, нашли значение, нашли адрес кода где оно пишется/читается, сохранили адрес кода(он не при перезапуске изменяется для большинства игр), потом по адресу кода быстро нашли значение обратно.
Цитата:
"Больше" нулей берется из простого факта - берем два 4 байтовых нуля в памяти: 00000000 00000000. Теперь вопрос сколько 4 байтовых нулей найдется, учитывая, что минимальная адресация 1 байт?
я об этом и упомянул, значит настройки по умолчанию сбиты(а по факту это редко надо)
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 11.08.2016, 12:55   #6
OmegaBerkut
Спокойный псих
Участник клуба
 
Аватар для OmegaBerkut
 
Регистрация: 19.03.2013
Сообщений: 1,538
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
далее, подумайте о такой вещи как поиск кода, а именно, нашли значение, нашли адрес кода где оно пишется/читается, сохранили адрес кода(он не при перезапуске изменяется для большинства игр), потом по адресу кода быстро нашли значение обратно.
Можно об этом по подробнее ?
Не то, что бы мне тяжело искать одни и те же значения каждый раз при запуске игры (а зная диапазоны адресов, диапазоны значений и тип данных это вообще не сложно), но я просто не умею так, как написали вы.
Как искать "адрес кода" ?
Подпись ? Не, не слышал ...
OmegaBerkut вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск нескольких значений zenner Microsoft Office Excel 14 27.01.2012 17:43
CRASH-FAW Cheat EXE not info YRASOV Общие вопросы Delphi 2 24.08.2010 11:57
Поиск на совпадение значений chandrasecar Microsoft Office Excel 1 04.07.2010 19:22
Поиск значений Rom1k06 Microsoft Office Excel 11 04.09.2008 05:14
Поиск повторяющихся значений Flangini Microsoft Office Excel 23 22.02.2008 15:57