Табличка памяти венди уайт как удалить
Каждый раз, когда Windows случается завершить свою работу сбоем с экраном BSOD, в системной папке %SystemRoot% создаётся отчёт — бинарный файл дампа памяти в формате DMP. Также файлы дампов могут создаваться сторонним программным обеспечением, например, популярным браузером Chrome. Дампы бывают весьма полезны в деле диагностики возникающих в работе системы и программ проблем, с другой стороны, они могут занимать на диске немало места, что не есть хорошо для небольших SSD-дисков.
↑ Как удалить дампы памяти
Поэтому поставленный вопрос вполне закономерен и естественен — можно ли удалять файлы дампов и если можно, то как это правильно делать? Ответ на этот вопрос — да, файлы дампов можно удалять, это никак не повредит системе и установленным на компьютере программам. Более того, вы вообще можете отключить создание дампов, по крайней мере тех, которые создаются операционной системой при критических сбоях.
↑ Типы дампов
Windows поддерживается несколько типов системных дампов: полный, памяти ядра и малый дамп памяти. Полный дамп содержит всю физическую память системы, дамп памяти ядра — только ту часть ОЗУ, которая используется ядром, малый дамп содержит сведения об ошибках, загруженных драйверах и прочую служебную информацию. «Большие» дампы сохраняются в каталоге %SystemRoot% (Windows), под хранение минидампов в системе отведена папка %SystemRoot%\Minidump. Дампы сторонних программ обычно хранятся в папках профиля пользователя. Существуют также дампы отдельных процессов, создать такой дамп можно из Диспетчера задач или с помощью небезызвестной утилиты Process Explorer.
↑ Удаление дампов вручную
Этот способ сводится к поиску всех файлов в формате DMP и их удалению. Как уже было сказано, системные файлы дампов располагаются в папках C:\Windows и C:\Windows\Minidump, для обнаружения дампов, созданных другими программами можно задействовать встроенный поиск Windows или сторонние утилиты, например, MasterSeeker . Запустите утилиту и вставьте в поле поиска запрос «.dmp» без кавычек, и утилита тут же выведет список всех имеющихся на жёстком диске файлов дампов. Чтобы удалить дампы, выделите их кликом левой кнопкой мыши с зажатой Shift и нажмите Shift + Del или выберите опцию «Delete Permanently» в контекстном меню.
↑ Удаление дампов в приложении Параметры
В Windows 10 удалить файлы дампов можно через приложение Параметры. Открыв последнее, перейдите в раздел Система → Память → Временные файлы, отметьте флажком пункт «Файлы дампа памяти и системных ошибок» и нажмите кнопку «Удалить файлы».
Более универсальным способом очистки (работает в Windows 10, 8.1 и 7) является использование классической утилиты cleanmgr. Запустите ее одноименной командой через диалоговое окошко «Выполнить», выберите очищаемый диск C и нажмите в открывшемся окне очистки диска кнопку «Очистить системные файлы».
Опять выберите системный раздел, нажмите «OK» и дождитесь завершения сканирования. Отметьте в открывшемся окошке флажками пункты файлов дампов, нажмите «OK» и подтвердите действие.
↑ Удаление дампов в сторонних чистильщиках
Наконец, для удаления временных файлов дампов можно использовать сторонние программы-чистильщики, ту же CCleaner. Кстати, по умолчанию этот чистильщик уже настроен на удаление дампов памяти, в чём вы сами можете убедиться, внимательно изучив список удаляемых данных в категории «Система» на вкладке «Система». Примечательно, что CCleaner обнаруживает дампы, созданные не только Windows, но и другими программами, в частности, браузером Google Chrome.
Приводить инструкцию по использованию чистильщика здесь не будем, программа достаточно известная, отметим лишь, что по сравнению с ручным поиском она выводит меньше результатов, но она же предлагает и более безопасное решение проблемы.
Недавно понадобилось поставить новую wifi карточку стандарта ac в свой ноутбук Lenovo x230, в котором есть whitelist для wlan карточек. Ниже опишу свои изыскания по отключению whitelist'а.
Для начала нам надо слить дамп нашего биоса, сделать это можно с помощью утилиты FPT
fpt -d bios.rom -BIOS
Далее нам понадобится утилита PhoenixTool 2.52. Запускаем её, выбираем наш bios.rom и ждём, пока она его распакует, далее в поле Manufacturer выбираем Lenovo и жмём кнопку Advanced, там ставим галочки «Allow user to modify other modules» и «No SLIC»
Нажимаем «Done» и «Go», когда откроется окошко
ничего не нажимаем и идём в папку DUMP, куда распакован наш биос. Далее нужно найти файл отвечающий за whitelist. Ищем просто по тексту ошибки (в кодировке UTF-16), которая выводится на экран при вставленном модуле не из вайтлиста «1802: Unauthorized network card is plugged in»
Находим файл 79E0EDD7-9D1D-4F41-AE1A-F896169E5216_2207.ROM — это модуль биоса для вайтлиста.
Далее грузим его в IDA, смотрим код и ищем нашу строку «1802: Unauthorized network card is plugged in»
К этой строке идёт обращение в процедуре Sub_A0C. Т.е. процедура Sub_A0C предположительно занимается выводом ошибки на экран, смотрим откуда она вызывается (кликаем по имени процедуры и нажимем клавишу X на клавиатуре)
Видим что это процедура Sub_B20. Идём в эту процедуру и нажимаем пробел для перехода к схематичному представления кода.
Видим что процедура Sub_A0C вызывается из блока кода на метке Loc_BDD. Далее можно проследить условные переходы к этой метке и т.д. Но я решил, чтобы лучше понять код работы этой процедуры, пройти код от начала процедуры.
Итак, первое условное ветвление проверяет регистр edx на ноль
т.к. регистр edx выше в этой процедуре нигде не инициализируется, то понятно, что ему должно присваиваться значение перед вызовом процедуры Sub_B20. Это можно увидеть в коде
и
Что означает значение в регистре edx я не понял, поэтому пройдёмся по обоим веткам ветвления.
Пойдём для начала по правой веке, на Loc_C6E
В eax кладётся адрес данных qword_270, двойным щелчком по qword_270 переходим к просмотру этой записи, далее переходим на вкладку Hex View-A. Это и есть наш whitelist, он идёт с адреса 270h до 3FFh. С форматом тоже всё просто, каждая запись длинной в 16 байт (4 слова по 32bit) соответствует одному устройству: первое слово — какой-то флаг, принимающий значение 0, 1, 5 или 6, второе слово — это system id, третье — subsystem id, четвёртое — ещё один флаг, имеющий значение 0 или 1. Предполагаю что первый флаг определяет тип устройства: 0 — wifi карточка, 1 — модем, 5 — ?, 6 — конец списка.
Вернёмся к коду. Сравниваем eax с шестёркой, а шестёрка у нас — это конец вайтлиста, т.е. если вайтлист получается пустой, то идём сразу на Loc_BDD, которая у нас вызывает ошибку. Это условие нам не интересно, т.к. вайтлист у нас не пустой, и условие не выполнится. Далее кладём адрес qword_270 в регистр rdx, проверяем eax (первый флаг записи в вайтлисте) на ноль, если флаг отличный от нуля, переходим к ошибке. Это условие нас тоже не интересует. Это же условие является началом цикла обхода вайтлиста.
Дальше командами
Помещаем system id из вайтлиста в регистр ecx. Регистр r8 здесь выступает в роли инкремента в цикле, изначально он равен нулю.
Далее сравниваем ecx (system id из вайтлиста) и значение в памяти по адресу в регистре rdi.
Несложно догадаться, что по адресу в регистре rdi у нас лежит идентификатор нашей вставленной wifi карточки, а в начале процедуры в регистр rdi мы кладём r8, т.е. процедуре Sub_B20 в качестве параметра использется регистр r8, где должен лежать адрес ячейки памяли с идентификатором нашей карточки.
Если идентификатор не совпал, то идём на Loc_CBA, там мы увеличиваем инкрементный регистр r8 на 10h (для этого в регистре r13w у нас заранее должна лежать единица)
и проверяем, не в конце ли мы вайтлиста
Если в конце, то выходим из цикла и выдаём ошибку, если не в конце, то идём в начало цикла.
Понятно, что для обхода вайлиста, нам надо убрать условный переход при сравнении system id, т.е. заменить jnz short loc_CBA на jmp $+2 .
Далее, если system id совпал, идёт аналогичный код для сравнения subsystem id
Так, с правой веткой разобрались, теперь пройдёмся по левой ветке.Там у нас код работы с вайтлистом начинается с метки Loc_C18. Аналогично проверяется, не пустой ли whitelist:
Далее сравнивается eax (первый флаг) и r13d (что за параметр лежит в r13d я так и не разобрался, в начале процедуры него кладётся значение по адресу [rbx+1]), далее в зависимости от выполнения этого условия, попадаем сразу на код проверки system id, либо выполняем интересное сравнение
Проверяем первый флаг в записи вайтлиста на 5, если условие выполняется, то пропускаем эту запись вайтлиста (т.е. игнорируем wifi карточку) и идём далее по циклу проверки.
Чтобы понять что же это за такой интересный флаг, надо понимать, что передаётся в процедуру Sub_B20. Если помните, в правой ветке кода, если этот флаг был отличный от нуля, то выдавалась ошибка о неподдерживаемой карте. Т.е. чтобы карточка с флагом 5 загрузилась, должны выполниться следующие условия вызова процедуры Sub_B20: регистр edx должен быть отличным от нуля, а регистр r13d не должен быть равен пяти ( cmp eax, r13d , а в eax у нас лежит наш флаг равный пяти). Можно лишь догадаться, что для запуска карточки с таким флагом, требуется ещё какое-то условие, кроме нахождения её в вайтлисте. Дальше выполнять анализ для меня было довольно сложно, поэтому, что же это за условие, узнать не удалось.
Далее по коду, мы аналогично правой ветке, проверяем в цикле system id
Здесь нам надо также заменить условный переход jz loc_DF3 на безусловный jmp loc_DF3 .
Что интересно, далее в левой ветке нет проверки subsystem id, т.е. достаточно совпадения system id. Из вышеизложенного можно предположить, что правая ветка — проверка wifi карточек, а левая проверка модемов. А в регистре edx при вызове функции содержится тип устройства: 0 — wifi, 1 — модем. Но тут тоже непонятка, т.к. каточка 0087:8086 с флагом 5 — это wifi+wimax, а не модем, да и в edx может быть больше единицы, т.к. из edx вычитается r13d, а потом сравнивается с четвёркой:
Собственно на этом анализ можно заканчивать. Нужные места для патча мы нашли.
Переводим команды в опкоды и делаем замены в hex редакторе, в итоге получаем такой патч:
Сохраняем пропатченый файл 79E0EDD7-9D1D-4F41-AE1A-F896169E5216_2207.ROM и нажимеам в окне PhoenixTool кнопку Ok.
PhoenixTool соберёт новый биос с именем bios_SLIC.rom.
Осталось дело за малым, необходимо прошить новый биос. В свежих ноутбуках Lenovo, включая мой x230, изменённый bios нельзя прошить программно, поэтому шьём его программатором. Фото процесса прошивки через программатор к сожалению не делал. Биос находится в микросхеме MX25L3206E рядом с разъёмом ExpressCard. Эта микросхема представляет из себя обычный SPI EEPROM 25ой серии, простой программатор для которой стоит 300р.
ВСЕ НИЖЕПРИВЕДЕННОЕ ВЫ МОЖЕТЕ ДЕЛАТЬ НА СВОЙ СТРАХ И РИСК.
ВСЕ НИЖЕПРИВЕДЕННОЕ ЯВЛЯЕТСЯ ОБЫЧНЫМ ИССЛЕДОВАНИЕМ И НЕ ВЛЕЧЕТ НИКАКОЙ ВЫГОДЫ.
У DV4 единый модуль на всё.
1. скачиваем с сайта HP последний родной BIOS
2. скаченный файл распаковываем WINRAR
3. на полученный 30F7. EXE натравливаем WINRAR
4. получаем директорию:
- 30F7F. fd
- Ding.wav
- InsydeFlash.exe
- iscflash.dll
- iscflash.sys
- noname
- platform.ini
HP/Compaq DV4 BIOS white list dirty hack : 20 комментариев
Спасибо огромное автору! 😉
Может я просто не с теми исходниками пытаюсь работать?
@DenisCW, скачать штатный bios и распаковывать до получения файла .fd
т.е. на мой взгляд можно пробовать безболезненно ковырять ранние версии, но душу туплит надежда, что HP убрал для старой модели эту проверку и можно спокойно поставить новую и тоже решить проблему.
В общем ввожу сюда и тут не находит 🙁
@DenisCW, не в файле, а в списке модулей, модуль начинающийся на E62F92F2
@icelord, это то же что и я о нем нашел ))) удивлялся, думал, мож ошибка какая )) ноут еще не пошел в серию, а ты его уже сломал )))
@FireFog, японии продается, я тут попонцу помогал его поломать вот знание и сохранились 🙂
Добавить комментарий Отменить ответ
Для отправки комментария вам необходимо авторизоваться.
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Архивы
DONATE
If you like this page, please donate BTC:
1MQSgkydW1Gq3YQQK1amZr2EjaRRGSXon3
Выкладываем сюда свои работы и делимся опытом работы в редакторе
управление в редакторе
Lshift фокус на объекте
Lshift +lm удалить
Сетка
z- сетка
lm- отменить выбор секции
Lalt- показать границы секции
G- hold- двигать секцию мышкой
G- hold(sp,c,w,s,a,d) двигать секцию поблочно
Lshift+G- hold - изменить размер секции
l- заполнить выбранным блоком
j- очистить секцию от блока
x- поворот секции
lctrl+g поворот блоков в секции
bcps- удалить выборку с готовой секции
ctrlc-ctrlv копировать - вставить
Сегодня ломал голову как же в свой префаб добавить зомби из креатива, спящие которые. Методом тыка получилась такая схема. Видео снимать не буду, опишу на словах.
В префабе к примеру в комнате расставляем sleeper зомби из креатива. В меню во вкладке Level Tools должна стоять галочка Show sleeper volume. Далее нажимаем F6 ставим галочку From Static Spawner и внизу нажимаем Sleeper Volume. Появляется куб
зеленый куб. Его можно двигать (G- hold- двигать секцию мышкой). А также менять размер (Lshift+G- hold - изменить размер секции) щелкаем на стрелочки и меняем размер. Примерно подгоняем куб под комнату. Это будет зона спавна где расставлены наши зомби. Когда закончили с размером куба нажимаем z. Все зона готова и становится синей как на скрине. Если нужно настроить зону ее нужно выбрать Lshift +lm. И нажимаем k, появятся настройки зоны и какие группы зомбей там можно выбрать для спавна.
теперь в игре в этом префабе будут спавнится выбранные зомби. У каждого маникена-зомби можно настроить отдельно параметры реагирования на слух и зрение как я понял.
Читайте также: