![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
ConstantinXXX |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 27.5.2006 Где: U.S.A. :-) Репутация: нет Всего: 0 |
ivashkanet,
Все понятно, но вот как реализовать. ![]() --------------------
Как вы относитесь к девушкам, которые курят сигареты?Как не ослепнуть за компьютером© ORENCODE.info |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
||||
|
||||
BinaryEvil |
|
|||
Шустрый ![]() Профиль Группа: Участник Сообщений: 98 Регистрация: 4.3.2006 Репутация: -1 Всего: 2 |
я не знаю, можно так или нет, но есть же artmoney в конце концов, оно так делоет: останавливаешь процесс, копируешь все его переменные, потом можешь запустить процесс и поменять все переменные на сохранённые. кто знает, можно ли такое сделать, и как, расскажите, мне тоже интересно
|
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: нет Всего: 149 |
||||
|
||||
ConstantinXXX |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 27.5.2006 Где: U.S.A. :-) Репутация: нет Всего: 0 |
В том весь смысл, с нуля. А не в середине игры когда весь мир изменился.
--------------------
Как вы относитесь к девушкам, которые курят сигареты?Как не ослепнуть за компьютером© ORENCODE.info |
|||
|
||||
Mechanic |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 228 Регистрация: 5.5.2006 Где: Kharkov, Ukraine Репутация: 6 Всего: 7 |
А стандартный виндовый Hibernate не годится?
![]() Только он всю память выгружает.. --------------------
Tell me the extensions of the files You backup and I'll tell You who You are.. ©Mch |
|||
|
||||
Sunvas |
|
|||
![]() Соль и сахар ![]() ![]() ![]() ![]() Профиль Группа: Участник Сообщений: 3388 Регистрация: 12.3.2006 Где: Тосно Репутация: 28 Всего: 89 |
Snowy, Yanis, давайте вспомним хорошую функцию винды "спящий режим". Как это ни странно, но эта функция позволяет выключить компьютер даже когда запущена игрушка типа Red Alert и полностью восстановить ее после включения. В даном случае
ConstantinXXX хочет сделать что-то подобное за принципом, а вы говорите что это невозможно! -------------------- Воспитывая детей по своему образу и подобию, родители почему-то надеются, что они будут лучше их. |
|||
|
||||
Snowy |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 11363 Регистрация: 13.10.2004 Где: Питер Репутация: 192 Всего: 484 |
Принцип действия спящего режима:
Винда прекращает выдавать процессорное время тредам. Сбрасывает память в файл, вырубается. При включении компьютера, загрузчик загрушает не все с нуля, а подгружает память из файла. Почему нельзя сделать это програмно: Мы не можем остановить все треды одновременно. Хотя можем попробовать заморозить нужные. Самое главное. Почему в DOS это делалось легко, а в WinNT невозможно? Потому что нужно сохранять не только память программы, но и код, и объекты системы, хэндлы, выданные системой и т.д, к чему у нас просто нет доступа. А даже, если бы и был, то при восстановлении эти хэндлы преврашаются просто в числа - они уже не работают. В DOS'e небыло никаких объектов, хэндлов и етц. Была память, были прерывания системы. Всё. Доступ к коду был свободен. Скинули дамп, подгрузили в то же место. Программа работает, как небывало. Для DOS программ - ради бога. Для эмуляторов - ради бога. Пишите свою WMVare, делайте там хибернэйт, меняйте файл, запускайте снова... А тут вам просто винда не позволит ковыряться там, где не положено. |
|||
|
||||
asm2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 7.6.2006 Репутация: нет Всего: нет |
ArtMoney Pro сохраняет память процесса, некоторые системные объекты и хендлы на них, явно не все и не всегда успешно, сам проверял, но в принципе работает). У кого нет ArtMoney, искать тут http://www.artmoney.ru/rus.htm
|
|||
|
||||
Dimannn |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 318 Регистрация: 14.4.2005 Где: Владимир Репутация: нет Всего: 1 |
Сохранить и восстановить все хендлы(среди кот. динамически загружемые библиотеки, все окна и куча всякой совершенно неожиданной гадасти) у нас врядли пулучится.
А что, если действительно написать виртуальную машину? В качестве жёсткого использовать текущий жёсткий, а запись на него фильтровать. Хотя это тоже не легче... -------------------- Хотите быстро и без проблем опубликовать вашу программу в сети за 5 минут? Тогда потратьте пару минут чтобы посмотреть, что предлагает OpenProject.org.ru |
|||
|
||||
Yanis |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2937 Регистрация: 9.2.2004 Где: Москва Репутация: 72 Всего: 111 |
||||
|
||||
ConstantinXXX |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 27.5.2006 Где: U.S.A. :-) Репутация: нет Всего: 0 |
По всем рассуждения получается надо переходить на DOS. вернее возвращаться.
--------------------
Как вы относитесь к девушкам, которые курят сигареты?Как не ослепнуть за компьютером© ORENCODE.info |
|||
|
||||
Ch0bits |
|
|||
![]() Python Dev. ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2124 Регистрация: 21.2.2005 Где: Казань Репутация: нет Всего: 62 |
Snowy прав, это 99.9% невозможно сделать прикладным программированием, только на уровне ядра ОС.
Аrtmoney прошаривает всю память процесса и определяет байты (или последовательности байт) удовлетворяющие заданному критерию, потом сохраняет эти адреса, например ищет int32 (4 байта) с заданным числом. Желательно предварительно указывать тип данных, а потом в ходе процесса отсеивать левые переменные методом сравнения. Естественно ни о каких хендлах и дескрипторах речи не идёт. При следующем запуске artmoney тыкается по этим адресам, но не факт что там будут те же переменные. Это в первую очередь зависит от организации программы, её управлению памятью. Для облегчения таких замарочек можно достоверно найти одну переменную, а остальные вычислить по смещению адресов, что тоже не даёт никаких гарантий (но обычно работает). Основано всё на функциях ReadProcessMemory и WriteProcessMemory (Описание смотрите в Platform SDK). |
|||
|
||||
asm2 |
|
|||
Новичок Профиль Группа: Участник Сообщений: 2 Регистрация: 7.6.2006 Репутация: нет Всего: нет |
из справки ArtMoney
"Сохранение и загрузка процесса" Требования: Windows 2000/XP/2003 Ограничения: Нельзя перезапускать процесс. Для больших игр действует только внутри одного уровня. Пока работает не на всех играх, может повесить игру. Описание: Данная функция может использоваться для сохранения игр, где это не предусмотрено. ArtMoney сохраняет память процесса и его системное окружение. Windows всячески пытается сопротивляться, поэтому возможны сбои в процессе. Если произошел сбой, то обычно процесс просто закрывается. Имеются три дополнительных режима работы (устанавливаются в настройках). При включении каждого, ArtMoney начинает вмешиваться в работу процесса с момента сохранения, чтобы увеличить вероятность успешной загрузки. Однако, не все процессы переживают такое вмешательство. В случае, если обычным способом не получилось загрузить, можно пытаться тогда использовать эти режимы, перебирая их по очереди: Режим 1 - Отвечает за управление виртуальной памятью. Режим 2 - Отвечает за управление кучей памяти. Режим 3 - Отвечает за управление системными объектами. Внимание! Запомните следующее: - Больше шансов на успешную загрузку, если отключить музыку и звуки. - Для полноэкранных игр, горячие клавиши использовать только если вы уверены, что процесс загружается правильно. То есть, до этого пробовали грузить без клавиш. - Если вы сохраняетесь, когда игра свернута, то и грузитесь только тогда, когда она свернута. Присылайте нам название игр, в которых не получилось сохраниться, и в которых получилось тоже. Обязательно пишите версию Windows и настройки режимов. |
|||
|
||||
ConstantinXXX |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 246 Регистрация: 27.5.2006 Где: U.S.A. :-) Репутация: нет Всего: 0 |
--------------------
Как вы относитесь к девушкам, которые курят сигареты?Как не ослепнуть за компьютером© ORENCODE.info |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |