![]() |
eXeL@B —› Вопросы новичков —› Можно ли создать "типа дамп" запущенной программы, и в дальнейшем запускать её с этого дам |
Посл.ответ | Сообщение |
|
Создано: 24 июня 2013 10:55 · Личное сообщение · #1 |
|
Создано: 24 июня 2013 11:10 · Поправил: ZX-CodeR · Личное сообщение · #2 |
|
Создано: 24 июня 2013 11:10 · Личное сообщение · #3 |
|
Создано: 24 июня 2013 15:59 · Личное сообщение · #4 ZX-CodeR : "Что значит типа дамп ? Это и называется дамп, слепок процесса в памяти". Но дамп нельзя взять и запустить. Его можно просматривать, изучать и т.д. tihiy_grom : "снапшот в VmWare спасёт отца русской демократии" Спасибо. Это понятно. Идея хорошая. снапшот в VmWare сохр. полн. всё состояние Вирт. машины. Но это не совсем то, что хотелось бы. Не все ОС подд. VmWare . Громоздко как-то. Да это и не для слабых компов. А можно это сделать без VmWare ? С пом. какой нить утилиты ? ![]() |
|
Создано: 24 июня 2013 16:11 · Личное сообщение · #5 Вы бы нормально сформулировали свой вопрос ... А то вообще непонятно чего вы хотите добиться. ![]() |
|
Создано: 24 июня 2013 16:26 · Поправил: ARCHANGEL · Личное сообщение · #6 tihiy_grom Я, как магистр телепатии, поясняю. Вот есть у нас прекрасная тулза, называется IDA Pro 6.4. Всё в ней хорошо, но нельзя сохранять базы, т.к. это демка. А что, если б мы нашли какой-то способ считать всю виртуальную память, инфу про загруженные библиотеки и прочее, чтоб можно было все эти объекты сериализовать хоть в каком-нибудь виде в файл на диске, а потом с этого файла восстановить всё состояния процесса. Ответ (специально для SergZZ). Как бы это ни было грустно, но сделать этого нельзя. Дело в том, что помимо выделения памяти и загрузки библиотек, создаётся ещё масса объектов ядра (мьютексы, семафоры), открываются файлы и т.д. и всё это пользовательский процесс не контроллирует, ему просто становятся доступны дескрипторы. Эти самые дескрипторы (числовые константы) после восстановления из какого-нибудь дампа нихрена не будут работать, ибо их надо заново создать. Плюс если в момент дампа некий поток ждёт на каком-то объекте синхронизации, то и это надо в пользовательском потоке воссоздать. И всё упирается в несколько нетривиальных проблем реализации: 1. Загрузка пользовательских библиотек по нужному адресу (пусть даже вручную), но так, чтоб потом любой другой код мог бы с ними работать, т.е. чтоб они отображались в РЕВ, чтоб работал GetProcAddress для их функций и, что самое главное - чтоб работали колбэки на DLL_THREAD_ATTACH/DETACH. 2. Объекты ядра. Да, в EPROCESS есть указать на таблицу дескрипторов, но проблема в том, что с каждым объектом в этой таблице надо уметь работать - т.е. вручную создавать его в ядре. А инфы по этой проблеме - ну, не много. Т.е. сказать, чтоб прям совсем нельзя - это неправльно, но это очень большой геморрой, на практике нереализуемый. ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 24 июня 2013 16:30 · Поправил: tihiy_grom · Личное сообщение · #7 |
|
Создано: 24 июня 2013 17:18 · Личное сообщение · #8 tihiy_grom, Вы не совсем правы. "игру от диска отучить" я научился ещё в далёком детстве. ![]() Есть прога, которая тормозит и сильно грузит ЧПУ в полноэкранном режиме (ПЭР). В оконном тоже, но поменьше. ( кстати, я всю жизнь думал, что ПЭР жрёт меньше ресурсов ЧПУ , чем оконный . Я не прав ? ) Но иногда, при её запуске происходит "сбой" , пропускается рекл. баннер, загр. ЧПУ снижается в 7,4 раза. И вообще всё тип-топ. Вот я и думаю, как сделать, чтоб этот "сбой" был всегда ? ![]() Я комп. (ноут НР 650 ; ОС Вин7старт.) никогда не выключаю, а отправляю в сон. Это конечно какой-то выход, но иногда приходится перегружаться и . . . тогда счастью конец. ![]() Пробовал делать короткий обход рекл. баннера, но тогда прога не запускается совсем. А при "сбое" рекл. баннера нет, а всё работает ОК. ![]() |
|
Создано: 24 июня 2013 17:38 · Поправил: VodoleY · Личное сообщение · #9 |
|
Создано: 24 июня 2013 17:44 · Личное сообщение · #10 |
|
Создано: 24 июня 2013 17:46 · Личное сообщение · #11 ARCHANGEL пишет: Т.е. сказать, чтоб прям совсем нельзя - это неправльно, но это очень большой геморрой, на практике нереализуемый. Вообще то вполне реализуемый =) Вот есть на linux http://en.wikipedia.org/wiki/Application_checkpointing , смотреть DMTCP и CRIU. Можно взять, к примеру IDA, запустить под wine (вполне нормально работает) и заюзать DMTCP или CRIU. Если нужно прям под винду, то думаю, можно взять WRK и реализовать. ![]() |
|
Создано: 24 июня 2013 20:12 · Личное сообщение · #12 gloomdemon Эх, как бы все вам были благодарны за такую штуку под виндой. Вот пишу я одну хрень расчётную для работы, так мне надо думать, как сохранять в файле на диске исходные данные для расчёта, как их потом оттуда загрузить, а так пыщщщ - и благодаря вашей волшебной софтине я бы уже не напрягался. Да и для иды пригодится. Так что если вам надо взять WRK и реализовать, то чё ж там - не сдерживайте себя. ----- Stuck to the plan, always think that we would stand up, never ran. ![]() |
|
Создано: 25 июня 2013 12:59 · Поправил: SergZZ · Личное сообщение · #13 |
|
Создано: 30 июня 2013 10:52 · Личное сообщение · #14 ARCHANGEL > 2. Объекты ядра. Допустим имеется тред, он крутится дето в диспатче хелловорлда. Имеется соответствующая среда, в которой он работает - тонны переменных, описателей, хипов, стек етц. И для воссоздания этого не достаточно иметь обьекты с прежними описателями. Без полной гибернации сия задача в принципе не разрешима. > при "сбое" рекл. баннера нет, а всё работает ОК. Это что, прикол какой то ? ![]() |
|
Создано: 30 июня 2013 22:07 · Личное сообщение · #15 |
|
Создано: 30 июня 2013 23:00 · Личное сообщение · #16 |
|
Создано: 01 июля 2013 00:10 · Личное сообщение · #17 SergZZ пишет: Да нет. Не думаю. Написал то что есть. Если честно, не понял вопроса Dr0p. ему непонятно что за "сбой". по-моему тут никому непонятно)) программа выполняется всегда команда за командой и сбоев быть практически не может(если токо проблемы с памятью какие, или с процом) но в таком случае вообще ничего не работало бы. тут этот "сбой" явно не сбой - а тот путь программы при каких-то обстоятельствах - например ошибка выделения памяти для чего либо - т.к. занята например. из-за этой ошибки и не выполняется какая-то функция.(какой-то банер не показывается) SergZZ пишет: Пробовал делать короткий обход рекл. баннера, но тогда прога не запускается совсем. А при "сбое" рекл. баннера нет, а всё работает ОК. хреново пробывал видимо)что вообще за банер такой? что за программа - мб там делов-то снести пару видео-файлов/картинок из папки с игрой и этот "сбой" будет всегда. про "типо дамп" всё уже ответили) ![]() |
|
Создано: 01 июля 2013 03:11 · Личное сообщение · #18 tihiy_grom пишет: снапшот в VmWare спасёт отца русской демократии А как сообщить, что сообщение бесполезное или несодержательное? Не читая дальнейших ответов, ответ напрашивается сам собой - вам нужно из переменных сохранять только "математику", а дескрипторы выделять заново. Что значит - никак без реверса игры! Но! 7 лет назад на удачу пробовал в сложной ситуации снимать дамп работающей игры, чтобы пойти другим путём (типа как чувак в фильме, который видел на 2 минуты вперёд) - 90% случаев прокатит, иногда с приемлемыми глюками, 10% - нет! и потому, что хендлы(т.е. описатели для некоторых) меняются. ----- IZ.RU ![]() |
|
Создано: 01 июля 2013 19:57 · Личное сообщение · #19 Недавно воспользовался программой М.Руссиновича "ProcessExplorer", но он показывает в основном: одна программа --> один процесс. А чем бы ещё можно было детальнее посмотреть, из чего состоит процесс ? dfnsff что за программа - мб там делов-то снести пару видео-файлов/картинок из папки с игрой Программа, это игра "Z". Точнее даже Мод Антареса ( http://imasters.org.ru/viewtopic.php?id=60 ) + Мод Мееку. Можете посмотреть в википедии "Z, игра". И здесь: http://zzone.lewe.com/forum/viewtopic.php?f=12&t=500 http://zzone.lewe.com/forum/viewtopic.php?p=4339#p4339 Кого интересует, можете бегло просмотреть посты в этих ссылках. ![]() |
|
Создано: 01 июля 2013 20:13 · Личное сообщение · #20 SergZZ пишет: Программа, это игра "Z". Точнее даже Мод Антареса ( http://imasters.org.ru/viewtopic.php?id=60 ) + Мод Мееку. Можете посмотреть в википедии "Z, игра". И здесь: http://zzone.lewe.com/forum/viewtopic.php?f=12&t=500 http://zzone.lewe.com/forum/viewtopic.php?p=4339#p4339 Кого интересует, можете бегло просмотреть посты в этих ссылках. папку с игрой заархивировать бы. и залить на ргхост какой-нить) чёт у меня ничего не ставится. да и для чистоты эксперимента версия со "сбоями" нужна ![]() |
|
Создано: 01 июля 2013 21:07 · Личное сообщение · #21 dfnsff пишет: папку с игрой заархивировать бы. и залить на ргхост какой-нить) чёт у меня ничего не ставится. да и для чистоты эксперимента версия со "сбоями" нужна Игра устанавливается только строго с СД или Образа (разм. 30мб). Для игры СД или Образ в дальнейшем не нужны. Моды затем вставляются в папку с игрой. У меня пока куда-то затерялся СД или Образ. Найду сразу выложу. Да он где-то есть на ссылках выше. Я как-то соседу пост. эту игру. У него всё раб. ОК со"сбоем" . А себе, когда я от него перенёс, сбой исчез у меня. Так что " чистота эксперимента " Вам не поможет. ![]() |
|
Создано: 01 июля 2013 21:56 · Личное сообщение · #22 SergZZ Ужас короче с этой игрой) у меня от неё видюху так колбасило что аж страшно за неё стало, под win 7)) radeon 7770 у меня, видимо не совместима с ней эта игра. скачал с рутрекера. после полтора часа мучений результата ноль абсолютно, только убедился в бесполезности всего этого занятия. по теме: тестировал всё это на VMWare. снапшоты кривые получаются, хотя и работают переодически) да и сама игра в полноэкранный режим не хочет заходить под виртуалкой нормально - видимо VMWare с direct-ом особенно древним не дружит) Итого: гибернация, шнапшоты VMware, типодампы - это утопия всё. "цель не оправдывает средства". хотя VMware всётаки что-то может. ![]() |
|
Создано: 02 июля 2013 05:56 · Поправил: SergZZ · Личное сообщение · #23 |
|
Создано: 02 июля 2013 14:21 · Личное сообщение · #24 |
|
Создано: 02 июля 2013 19:29 · Поправил: SergZZ · Личное сообщение · #25 |
![]() |
eXeL@B —› Вопросы новичков —› Можно ли создать "типа дамп" запущенной программы, и в дальнейшем запускать её с этого дам |