Можно ли с помощью ассемблера поменять значение в памяти

Тема в разделе "WASM.ASSEMBLER", создана пользователем tellor, 6 июл 2011.

  1. tellor

    tellor New Member

    Публикаций:
    0
    Регистрация:
    6 июл 2011
    Сообщения:
    5
    ОС - Windows CE 5.0, процессор ARMv4.
    Задача поменять после загрузки прошивки значение по абсолютному адресу (т.е. в физической памяти),
    Писать для этого драйвер - очень уж сложная задача

    Технически поменять можно с помощью HaRET команда pfh
    HaRET - не требует установки, но не получилось запустить его в безответном режиме, почитать можно здесь
    http://forum.xda-developers.com/wiki/index.php?title=HaRET
    официальный сайт HaRET лежит с марта

    Можно поменять значение в физической памяти с помощью ассемблера?
     
  2. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    tellor
    Если я правильно понял описание HaReT прежде всего выгружает WinCE и менять уже что-то после этого бессмысленно.
    Система обязана защищать свое ядро - именно поэтому и пишут драйвера. А вы думаете ассемблер чем-то лучше Си? Кое что там действительно удобнее, но вам это не поможет :)
    А прошивку проще менять до загрузки в память... Только это тоже СЛОЖНАЯ ЗАДАЧА.
     
  3. tellor

    tellor New Member

    Публикаций:
    0
    Регистрация:
    6 июл 2011
    Сообщения:
    5
    Одна из возможностей HaRET действительно загрузка другого ядра ОС.
    При использовании в HaRET команды pfh выгрузки WinCE не происходит, HaRET можно закрыть и работать дальше.
    Прошивку менять не требуется, необходимо изменить одно значение в физической памяти.

    Вопрос остался - можно ли это сделать с помощью ассемблера?
     
  4. dinoweb

    dinoweb Дмитрий

    Публикаций:
    0
    Регистрация:
    12 окт 2005
    Сообщения:
    129
    Адрес:
    Россия. Красноярск
    Если нет необходимых привилегий, - то нельзя, и от языка это не зависит.
     
  5. tellor

    tellor New Member

    Публикаций:
    0
    Регистрация:
    6 июл 2011
    Сообщения:
    5
    Запуская HaRET не даю ему никаких привилегий, драйверов он не устанавливает.
    Как он это делает? В смысле как ему удается записать в физ.память значение?
     
  6. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    tellor
    HaRET использует дырку в WinCE.
    И он позволяет править то, что вам нужно? Тогда нафига вам свою прогу для этого делать?
    Нет волшебных ключиков! И скажите "спасибо" вирусописателям - разработчикам приходится ЗАКРЫВАТЬ простые способы влазить в систему :) УВЫ.
     
  7. tellor

    tellor New Member

    Публикаций:
    0
    Регистрация:
    6 июл 2011
    Сообщения:
    5
    Вирусы здесь не причем.
    В пакетном режиме заставить работать HaRET не получилось.
    Средств С/С++ позволяющих изменить значение в физической памяти не нашел.

    Есть такие средства в ассемблере?
     
  8. valterg

    valterg Active Member

    Публикаций:
    0
    Регистрация:
    19 авг 2004
    Сообщения:
    2.105
    tellor
    Я не про тебя. Я говорю : простые средства записи в память закрыты, чтобы уберечься от вирусописателей.
    Ассемблер в твоей задаче не поможет - нужны привелегии. Для их получения - либо драйвер, либо использование дырок в системе.
    Т.к. возможность писать в память путь к написанию вируса, то никто не будет тебя учить :) Я этого просто не умею, хотя конечно мог бы попытатся разобраться с HaRET, но сейчас у меня есть занятия...
     
  9. tellor

    tellor New Member

    Публикаций:
    0
    Регистрация:
    6 июл 2011
    Сообщения:
    5
    to valterg
    Есть такая программа HaRET, где это реализовано.

    Вопрос к тем, кто может ответить по существу:
    возможно ли с помощью ассемблера изменить значение в физической памяти?
     
  10. klzlk

    klzlk New Member

    Публикаций:
    0
    Регистрация:
    2 июн 2011
    Сообщения:
    449
    tellor
    Нет.