eXeL@B —› Основной форум —› Изменение CMOS под Windows XP |
Посл.ответ | Сообщение |
|
Создано: 10 декабря 2010 19:52 · Личное сообщение · #1 Вопрос к разбирающимся людям, есть машинка ASUS Eee Box B202. Возможно ли поменять одно из значений в bios не заходя туда? Подобная машина для экспериментов есть. Опция AI Overclocking в данном биосе имеет значения Auto, Level1, Level2, Level3. Интересует смена например с Auto на Level1. Что пробовал: С помощью cmossave.com делал дампы с переключая режимы. Ничего внятного не обнаружил. Потом убедился что cmosrest.com под XP не записывает. Далее использовал HWDIRECT 1.88.0.08. Показывает она другие данные CMOS, но редактировать позволяет. Дампа не делает по этому искать изменения очень трудно... Что посоветуете? Может не в ту сторону капаю или есть утилиты получше? Или тут другой подход нужен? |
|
Создано: 10 декабря 2010 20:10 · Личное сообщение · #2 |
|
Создано: 10 декабря 2010 20:35 · Поправил: SaNX · Личное сообщение · #3 |
|
Создано: 10 декабря 2010 21:30 · Личное сообщение · #4 Hexxx пишет: rom.by копать там, по BIOS и CMOS люди там Понял, спасибо! Интересный ресурс. SaNX пишет: Дык можно же как раньше, с портами работать. Только из под дровины Ну HWDIRECT так и делает. Через дровину всё - по этому проблем нет под виндой. Для себя хочу прояснить, сам BIOS это программа, а все настройки которые я могу делать Enable/Disable и т.д. по-любому должны сохранятся в CMOS? Сам CMOS память размером 7F или FF в зависимости от материнки. То есть мне не в биос лезть нужно, а просто найти несколько бит указывающих режим в CMOS и исправить с помощью того же HWDIRECT? Я правильно всё представляю? |
|
Создано: 10 декабря 2010 22:32 · Личное сообщение · #5 Code:
Code:
Я думаю, тут надо искать. ----- SaNX | Сообщение посчитали полезным: ToBad |
|
Создано: 11 декабря 2010 01:10 · Поправил: ToBad · Личное сообщение · #6 SaNX следуя совету написал утилитку которая вычитывает дамп. Использовал delphi + inpout32.dll Эксперементировал на своём компе с каким-то параметром у которого есть выбор: авто, 64, 128, 256, 512мб... Где находится значение - нашёл, написал утилитку записи. Записал другое значение, после перезагрузки получил CMOS по дефолту. Далее пригляделся и обнаружил CRC. Записал с CRC - всё получилось, значение поменял. Далее погуглил и заметил, что в кмосе несколько контрольных сумм, по адресу 32-33 - отвечает за область 10-31, и ещё как мне показалось 2E-2F. Мой тестовый параметр находится по адресу 55, а контрольная сумма этого участка по 7B-7C. Непонятно только одно - как считать. Пробовал разные онлайн CRC калькуляторы - и близко не то... Буду благодарен если кто-то подскажет какой именно алгоритм используется. Знаю, что можно любой биос пореверсить, но мне кажется это долгий и тяжёлый путь... Вот примеры: Code:
3e7c_10.12.2010_CRACKLAB.rU.tgz - 2010.txt p.s. Заметил что у HWDirect при рефреше данные разнятся. Думаю проблема с интервалах между записью значения адреса в порт 70Н и чтения результата из порта 71Н. Если поставить маломальскую паузу - вычитываются нули. Видимо таймаут существует и он очень мал. Дельфи тоже периодически 1-2 байта сбой даёт, не успевает. Для этого и нужно сверяться с CRC. p.p.s. С CRC разобрался, помогло |
|
Создано: 11 декабря 2010 09:42 · Личное сообщение · #7 |
|
Создано: 11 декабря 2010 13:15 · Личное сообщение · #8 SaNX пишет: пока читал, хотел тебе об этом сказать. Потом увидел, что ты сам нашел Ага, а я нашёл пока постил предыдущее. Ну знаешь как наоткрываешь сотню складок, перечитаешь часть, постишь и параллельно дочитываешь... А самое прикольное когда что-то тупо не получается, решаешь спросить на форуме, а что-бы это сделать нужно всё по-человечески объяснить и разложить по полочкам. Пока пишешь рождаются новые идеи, проверяешь - дописываешь, а потом бах и всё получилось, постить уже нет смысла... |
|
Создано: 11 декабря 2010 14:57 · Поправил: SergX · Личное сообщение · #9 Думаю, что это и так понятно, но на всякий случай напишу… В каком формате хранятся настройки в CMOS и сколько, где и каких КС - зависит от версии BIOS. Если пишешь софт, который должен работать на разных компах, то придётся это учесть. Что-то универсальное сделать вряд ли выйдет. Когда-то игрался с BIOS, получилось полностью пересобрать и засунуть вместо одного из блоков демку которая вызывалась хоткеем при запуске. |
|
Создано: 11 декабря 2010 16:10 · Поправил: ToBad · Личное сообщение · #10 SergX пишет: Если пишешь софт, который должен работать на разных компах Не, не, под конкретную модельку. Я понял уже что в кмосе от конкретного биоса зависит... SergX пишет: Когда-то игрался с BIOS, получилось полностью пересобрать и засунуть вместо одного из блоков демку которая вызывалась хоткеем при запуске. Круто! На |
|
Создано: 13 декабря 2010 00:02 · Личное сообщение · #11 Сделал много дампов на ASUS-e при разных положениях нужной опции, вычислил что меняется, а что нет. Нашёл где хранится нужная опция и где CRC, но не пойму какая часть туда включена, а какая нет. CMOS в виде двух блоков по 128 байт, вычитываю из 70/71h и 72/73h. Вот три примера, где самая верхняя строка это адрес, данные в виде двух строк где первая прочитана с 70/71h, вторая с 72/73h соответственно. Как известно в первой строке данные по адресам с 00 до 09 не учитываются. С 10 по 2D - CRC в виде суммы всех байтов хранится в 2E и 2F, 3E и 3F - CRC с подсчётом которого возникла проблема. Нужная мне опция живёт во второй строке по адресу 2F, а по адресу 17 второй строки кажется младший байт другого CRC который в свою очередь не влияет на подсчёт основного CRC с которым проблема. Известно точно, что на нужный CRC влияют так же байты первой строки от 4С до 50 включительно, от 5A до 5F включительно, 68, 69. Буду очень благодарен за помощь в понимании формирования этого CRC и байта с адресом 2F второй строки! Code:
|
|
Создано: 13 декабря 2010 01:09 · Поправил: OKOB · Личное сообщение · #12 |
|
Создано: 13 декабря 2010 01:50 · Поправил: ToBad · Личное сообщение · #13 OKOB пишет: Может поможет --> CMOS Memory Map and other <-- Это всё читал. У Асуса CMOS 256 байт, а большая часть у каждого производителя своими данными заполнена. В принципе появилась идея, если менять всего один байтик (а мне больше и не нужно), то вычитываем текущее значение, вычисляем разницу между тем, что хотим установить, вычитываем CRC и корректируем его согласно этой разницы. Единственная загвоздка это байт по адресу 17H во второй строке. Он на CRC не влияет, но каждый раз меняется в диапазоне 31-36H. Блин, может они позицию в меню где последний раз был туда впихнули??? |
|
Создано: 14 декабря 2010 14:30 · Личное сообщение · #14 |
eXeL@B —› Основной форум —› Изменение CMOS под Windows XP |
Эта тема закрыта. Ответы больше не принимаются. |