GSM Форум - GSMForum.SU

GSM Форум - GSMForum.SU (https://gsmforum.su/index.php)
-   Nokia BB5 - программный ремонт (https://gsmforum.su/forumdisplay.php?f=133)
-   -   Почему блок 308 нельзя считать с безлокального тела ? (https://gsmforum.su/showthread.php?t=60128)

madfighter 06.02.2010 14:58

Что мне приходит на ум : поскольку мы обращаемся не напрямую к флешке , а даем команды на считывание определенных адресов процессору , в самом процессоре может быть реализована защита от такого рода считывания некоторых блоков памяти . Одни догадки к сожалению . В нашем деле всегда самым ценным были даташиты на элементную базу , хоть ремонт хоть разработка ... А в случае с нокиевскими процами говорить о даташитах вообще смешно ... Проблема , лично моя , еще и в том , что мне не приходилось разлочивать тела . Возможно использование ТП это был именно обход такой защиты . Но ведь позже-то научились "обманывать" проц , значит , по идее , сейчас не должно быть проблем со считыванием ...

ALIDA 06.02.2010 15:32

Цитата:

Сообщение от madfighter (Сообщение 291187)
Собственно вопрос в названии . Почему сертификаты мона считать , а 308-й блок низзя . Кто-нить знает ?

:icq41:а это потому чтоб ты спросил !
это у тебя наверное на уфс так !

madfighter 06.02.2010 15:44

Цитата:

Сообщение от ALIDA (Сообщение 292056)
:icq41:а это потому чтоб ты спросил !
это у тебя наверное на уфс так !

На Джафе точно так же . Или , может у вас получается даунгрэйд сделать если тело в локал не входит ?
Кроме того , я не понял смысла вашей реплики . Если вам нечего сказать по существу , то лучше читайте .

portvein 28.02.2010 14:30

madfighter - 308 не считаешь без локала т.к. поле это вовсе не поле :) это типа - "файл" (или его подобие), который формируется при включении телефона из нескольких бинарных кусков. Кроме прочего он не лежит по четко определенным физическим адресам. При отключении-включении адреса его кусков меняются. (ведь в этом адресном пространстве лежит еще кучка разных изменяемых параметров, запись в которые соответственно теснит остальные "цифры". Слово "фрагментация" о чем нибудь говорит?).

Что это означает? Означает, что удобоваримый для человеческого восприятия (для изменения параметров, чтения, записи...) файл формируется только при запуске мцу (в которой и заложен сам принцип). Т.е. мцу "раскриптовывает" последовательность бит и формирует из них "файлы". Мцу может запуститься только если поданы соответствующие напряжения на процессор, память и запущена процедура инициализации. Это происходит в нормал моде и локальном режиме. Если тел выключен то можно прочитать только в бинарном виде адресное пространство. (например при 16-метровой NOR это будет с адреса E00000 размером 200000 - в нашем понимании это - FullPM). Но толку от этой инфы мало - ведь пока никто не научился собирать из этого слитого бина "файлы" РМ. Толк есть только для конкретного телефона - если с него слили этот бин, то залив обратно не потеряются SL, SD...

При полностью стертой NOR и запуске записанной мцу, она создает "файловую" РМ, значения для которой и берутся из последних адресов флеши, а там у нас FF, поэтому РМ у нас получается абсолютно дефолтный. Но он уже в виде сформированных файлов, которые удобоваримы для человеческого восприятия, и готовы для правки-калибровки.

Писатель из меня никакой, но надеюсь, доходчиво объяснил почему 308 можно считать только из локала?

madfighter 28.02.2010 15:11

Цитата:

Сообщение от portvein (Сообщение 299678)
Писатель из меня никакой, но надеюсь, доходчиво объяснил почему 308 можно считать только из локала?

Как бы "Писатель никакой" и "доходчиво объяснил" это вещи несколько несовместимые ... :D Но мысль понятна, спасибо за ответ. Я вообще то о таком методе защиты ПО думал еще 20 лет назад.
Цитата:

Сообщение от portvein (Сообщение 299678)
Но толку от этой инфы мало - ведь пока никто не научился собирать из этого слитого бина "файлы" РМ. Толк есть только для конкретного телефона - если с него слили этот бин, то залив обратно не потеряются SL, SD...

Так вот это же собственно и нужно ! Об этом и речь я веду !!! Когда на "Спектрумы" стали выпускать дискеты с прогами защищенными от записи, я написал утилитку, которая тупо копировала дорожки с одной дискеты на другую, целиком, вместе с форматом, от индекса до индекса. И все прекрасно работало, существовала только одна проблема - бэд блоки, дискета приемник должна была быть идеальной, без бэдов. А учитывая, что адреса во флеши "виртуальные", такая проблема возможно и не возникнет если сделать тоже самое для нашей темы. Тут другая проблема, в АРМовских ядрах бывают модули защиты памяти, насколько я понял ...

djmixer 28.02.2010 16:29

Похоже кое-то уже научился собирать из слитого бина некоторые блоки, циклона команда например:

Цитата:

WORLD'S UNIQUE : Added BB5 MCU & DSP Timestamps Reader / Diagnostic Tool. This will help diagnostic of downgraded phone, will read Security Block, decode timestamps of current installed SW (and factory one, or Dejan Hack if exists) with FLASH installed MCU/DSP timestamps. Will have ability to FULL REBUILD downgrade security zone (dead06) soon.

madfighter 28.02.2010 17:04

Цитата:

Сообщение от portvein (Сообщение 299678)
Если тел выключен то можно прочитать только в бинарном виде адресное пространство. (например при 16-метровой NOR это будет с адреса E00000 размером 200000 - в нашем понимании это - FullPM).

Попутный вопрос: почему именно с этого адреса, это адрес с которого стартует загрузчик ?

madfighter 28.02.2010 17:27

Цитата:

Сообщение от portvein (Сообщение 299678)
(ведь в этом адресном пространстве лежит еще кучка разных изменяемых параметров, запись в которые соответственно теснит остальные "цифры". Слово "фрагментация" о чем нибудь говорит?).

Нет, фрагментация мне в данном случае ни о чем не говорит. В этой области, что разметка ФАТ16 и "разные изменяемые параметры" пишутся туда в виде файлов ? Тогда это очень не эффективное использование памяти. Если же эта область есть просто кусок памяти с адресацией каждой ячейки, тогда ничего никого "теснить" не должно, во всяком случае бесконтрольно, ибо плохо кончится. Проясните пожалуйста.

madfighter 28.02.2010 18:24

Цитата:

Сообщение от portvein (Сообщение 299678)
При полностью стертой NOR и запуске записанной мцу, она создает "файловую" РМ, значения для которой и берутся из последних адресов флеши, а там у нас FF, поэтому РМ у нас получается абсолютно дефолтный. Но он уже в виде сформированных файлов, которые удобоваримы для человеческого восприятия, и готовы для правки-калибровки.

Честно говоря, здесь я вообще ничего не понял. Что значит "создает "файловую" РМ" ? Разбивает область памяти на блоки и именует их, как поля ПМ ? Тогда при чем здесь "файловая" ?
Зачем что-то брать из каких-то областей, если известно, что там FF, когда проще просто прописать куда надо FF задав это значение в качестве операнда ?
Откуда взялись "сформированные файлы, которые удобоваримы для человеческого восприятия" если там сплошные FF ?!
ЗЫ Просьба для всех участников обсуждения: не используйте выражения типа "кучка разных изменяемых параметров" (это называется - переменные) и подобных, нас читают все подряд, а очень желательно, чтобы понимали только достаточно грамотные специалисты, а не один пиванер умничал другому за кружкой пива.

portvein 28.02.2010 19:05

Загрузчик не стартует с адреса Е00000 (для 16 метровой nor). С этого адреса начинается область куда пишутся калибровки сети, АКБ, записная книга (если не смарт), значения блокировок и т.д.
Почему именно так реализовано - ХЗ.
Но мар такой какой есть.
И мцу не разбивает память на блоки.
Про то что плохо кончается когда "фрагменты" в памяти двигаются это мы постоянно видим в "дохлых" программно телах.
Область ПМ можно даже сравнить с nvram в китайцах и romeep в сименсах. Так же поля, так же переменные значения, которые так же создаются фирмварой.

madfighter 28.02.2010 19:26

Цитата:

Сообщение от portvein (Сообщение 299803)
Загрузчик не стартует с адреса Е00000 (для 16 метровой nor). С этого адреса начинается область куда пишутся калибровки сети, АКБ, записная книга (если не смарт), значения блокировок и т.д.

Все понял. Для 16ти метровой NOR с этого адреса начинается область ПМ .

Цитата:

Сообщение от portvein (Сообщение 299803)
И мцу не разбивает память на блоки.

А что делает ?
Цитата:

Сообщение от portvein (Сообщение 299803)
Про то что плохо кончается когда "фрагменты" в памяти двигаются это мы постоянно видим в "дохлых" программно телах.

Это именно и подтверждает, что двигаться они не должны, если только это не стек, который двигается только с одной стороны. :D
Цитата:

Сообщение от portvein (Сообщение 299803)
Область ПМ можно даже сравнить с nvram в китайцах и romeep в сименсах. Так же поля, так же переменные значения, которые так же создаются фирмварой.

Может и можно, я не разбирался с ними.
Цитата:

Сообщение от madfighter (Сообщение 273568)
Я за последний год практически не вырос в проф. плане . Потому , что надоели , я их просто ремонтирую и все , а копаться-разбираться вообще нет желания .

Видно пошла "вторая волна" моего интереса к телефончегам ... :D

djmixer 01.03.2010 02:44

Ну в сименсах-то переменные eep точно никуда не двигаются.

Может и в нокиях переменные pm хранятся по определенным адресам выделенной области, но только проц знает их FAT (которую возможно сам и создает)?

madfighter 01.03.2010 03:13

Цитата:

Сообщение от djmixer (Сообщение 299920)
Может и в нокиях переменные pm хранятся по определенным адресам выделенной области, но только проц знает их FAT (которую возможно сам и создает)?

Может конечно, только мне совсем не ясно: если это блок памяти содержащий переменные, зачем там ФАТ вообще ? Я больше склоняюсь либо к шифрованию, либо к защищенным областям памяти, которые нельзя считать в том режиме, в котором мы заставляем проц делать верификацию ... Черт, знать бы хотя бы как происходит прошивка... Что такое первый бут ? Какой то формат запроса под конкретный тип проца ? Второй бут ? Это уже есть загрузчик т.е. подпрограмма загружаемая в оперативу и говорящая процу что где взять и куда положить ? Каким образом проц начинает стартовать не со стандартного адреса, а с адреса загрузчика из оперативы ? Каким образом второй бут загоняется в память ? ...:icq49:

djmixer 01.03.2010 03:23

Цитата:

Сообщение от madfighter (Сообщение 299927)
Может конечно, только мне совсем не ясно: если это блок памяти содержащий переменные, зачем там ФАТ вообще ? Я больше склоняюсь либо к шифрованию, либо к защищенным областям памяти, которые нельзя считать в том режиме, в котором мы заставляем проц делать верификацию ...

Без фата никак, ибо количество переменных и их размеры могут быть разными

madfighter 01.03.2010 03:32

Цитата:

Сообщение от djmixer (Сообщение 299928)
Без фата никак, ибо количество переменных и их размеры могут быть разными

Например ?

djmixer 01.03.2010 03:57

Вложений: 1
Цитата:

Сообщение от madfighter (Сообщение 299929)
Например ?

Насколько я понимаю, количество блоков в .пм может быть разным, как и количество подблоков в каждом блоке.

Ну например, только что считал .пм с двух одинаковых 3100, оба перед этим прошил одинаковой прошивкой + сбросы.

Но размер считаных .пм разный, есть отличия, например в одном есть 150-й блок, во втором нет, с 250-м блоком такая-же история.

Если представить себе .pm как записаные подряд все файлы из одной папки, тогда все нормально.

Viktor0001 01.03.2010 03:57

Вложений: 2
Для DCT4 есть галочка "Read PM absolute". С ней UFS сливает бинарный файл, 64 килобайта. Ту область флешки, где лежит РМ. Reading PM Absolute: 0x01FF0000-01FFFFFF
Ежели интересно покопаться и поискать алгоритм дешифровки, вот РМ слитые с одного и тогоже телефона, с галочкой и без галочки.

madfighter 01.03.2010 04:12

Цитата:

Сообщение от djmixer (Сообщение 299930)
Насколько я понимаю, количество блоков в .пм может быть разным, как и количество подблоков в каждом блоке.

Ну например, только что считал .пм с двух одинаковых 3100, оба перед этим прошил одинаковой прошивкой + сбросы.

Но размер считаных .пм разный, есть отличия, например в одном есть 150-й блок, во втором нет, с 250-м блоком такая-же история.

Если представить себе .pm как записаные подряд все файлы из одной папки, тогда все нормально.

Ну, а кто мешает зарезервировать в памяти матрицу ? Максимальное количество полей ПМ есть, максимальная длина каждой переменной обязана быть известной, так в чем проблема ? Смысл ФАТа - возможность фрагментированной записи файла т.е. кусками по разным кластерам, но это же создает необходимость иметь таблицу размещения файлов и не одну, для надежности, а зачем дробить переменные на куски ? И искать потом эти куски блуждая по собственно ФАТу ? И какой размер кластера в том ФАТе может быть, учитывая размеры переменных ? Не догоняю. Ладно ФАТ в НАНДе, но здесь зачем ?

djmixer 01.03.2010 04:36

Цитата:

Сообщение от madfighter (Сообщение 299934)
Ну, а кто мешает зарезервировать в памяти матрицу ? Максимальное количество полей ПМ есть, максимальная длина каждой переменной обязана быть известной, так в чем проблема ? Смысл ФАТа - возможность фрагментированной записи файла т.е. кусками по разным кластерам, но это же создает необходимость иметь таблицу размещения файлов и не одну, для надежности, а зачем дробить переменные на куски ? И искать потом эти куски блуждая по собственно ФАТу ? И какой размер кластера в том ФАТе может быть, учитывая размеры переменных ? Не догоняю. Ладно ФАТ в НАНДе, но здесь зачем ?

Не знаю почему так, это только мое предположение, конечно проще и понятнее было бы сделать как в тех же сименсах - просто писать pm в зарезервированую область, по определенным адресам для каждой переменной. Но кто знает, что пришло в голову нокиевским разработчикам.

Возможно это сделано для затруднения возможности редактирования переменных без участия процессора, ведь если как говорит portvein при каждом включении-выключении адресация меняется, и ее знает только проц, то без него мы ничего не сможем изменить(в смысле так, чтоб потом все работало).

madfighter 01.03.2010 04:50

Цитата:

Сообщение от djmixer (Сообщение 299935)
Не знаю почему так, это только мое предположение,

Ну разумеется, мы же просто рассуждаем. Блин зачитался, пять часов почти... Кстати вот тебе и Виктору ссыль, она совсем не по теме, но познавательна:http://att-vesti.narod.ru/J13-1-1.HTM
Собственно я и засиделся из-за неё ... ;)
Цитата:

Сообщение от djmixer (Сообщение 299935)
Возможно это сделано для затруднения возможности редактирования переменных без участия процессора, ведь если как говорит portvein при каждом включении-выключении адресация меняется, и ее знает только проц, то без него мы ничего не сможем изменить(в смысле так, чтоб потом все работало).

Ты же это сам опроверг ... :D

Цитата:

Сообщение от djmixer (Сообщение 299745)
Похоже кое-то уже научился собирать из слитого бина некоторые блоки, циклона команда например:



Текущее время: 17:41. Часовой пояс GMT +3.

Powered by vBulletin®
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd. Перевод: zCarot