Наверное большая половина пользователей мотофана (и не только) занимаются или занимались когда то поиском способов обхода РСА. Вот и я решил, неотставать... И как мне кажется кое в чем преуспел.
И так, что имеем (если я в чем то ошибась, поправте меня):
Метод, предложенный для LTE2-RSA заключается в том, что бы заставит проверять CG7 вместо CG1+CG3. Проверка CG7 выполняется не полностью... блок проверки начинается с адреса 0х1000 потому мы и передаем управление в подписаную зону (адрес 0х1140). а там джамп, выкидывающий из нее в неподписаную зону (адрес 0хС80) и там мы пишем свой код перехода на оригиналюную точку входа в CG1. Джамп этот на самом деле просто чать ресурсной строки (просто мы туда подаем управление, а значит процессор рассматривает его как код). То, что в подписаном блоке оказался именно такой набор байт - совпадение, которым авторы идеи обхода РСА и воспользовались.
Ну а суть вот в чем:
Проверка прошивки естественно не одна. Проверка подписи RSA, лишь одна из многих. Если в наглую поправить (пропатчить) CG1, то естественно при загрузке мобила ругнется, что подпись не совпадает... А знаете, как она ругнется? "Sig error 35:02" - ошибка, мол RSA не сходится. А знаете, что будет если по старой методе отключить РСА?
1. Поправим только СG7 и заливаем в паре с оригинальной cg18 - результат - ничего, мобила все проглатила и даже ничего не заметила...
2. Правим CG1 и заливаем в паре с оригинальной CG3. Результат - ругается сиг еррор 35:02. Естественно, мы сказали вместо CG1+СG3 провероить CG7. Но адрес подписи (в CG18) не правили и проверяет она старой подписью (от CG1+CG3).
3. Знаете, что происходит, еслди теперь поправить CG18? Проверка на РСА проходит нормально, то есть сарый метод РАБОТАЕТ! Но мобила при загрузке выплевывает Сиг еррор 39:02. Поняли разницу? ошибка другая... Дополнительная проверка есть, на то что б в подпись для CG1+CH3 была в пределах сг18...
Теперь поробуем просто в наглую скопировать подпись из CG7 в CG18 (в CG7 она начинается с оффсета 0 и ее длинна 45F байт, в CG18 она начинается с оффсета 0x10). Заливаем в мобилу - иполучаем.... sig error 55:02. Опять новая ошибка - что подтверждает теорию, о том, что sig error 39:02 проверял наличие подписи для CG1+CG3 в пределах CG18.
Только что это за новая ошибка 55:02. На что теперь мобила может ругаться???
Адреса конца CG1 в буте нет, следовательно вряд ли он проверяет, что точка входа в сг1 должна быть в пределах СG1... больше в CG1 мы ни чего не меняли. на CG7 он вообще не реагирует. Значит остается только CG18 или вся прошива в целом...
Народ, если у кого есть идеи - буду рад услышать.
З.ы. огромная просьба не флудить!!! иначе тему просто закроют.
И так, что имеем (если я в чем то ошибась, поправте меня):
Метод, предложенный для LTE2-RSA заключается в том, что бы заставит проверять CG7 вместо CG1+CG3. Проверка CG7 выполняется не полностью... блок проверки начинается с адреса 0х1000 потому мы и передаем управление в подписаную зону (адрес 0х1140). а там джамп, выкидывающий из нее в неподписаную зону (адрес 0хС80) и там мы пишем свой код перехода на оригиналюную точку входа в CG1. Джамп этот на самом деле просто чать ресурсной строки (просто мы туда подаем управление, а значит процессор рассматривает его как код). То, что в подписаном блоке оказался именно такой набор байт - совпадение, которым авторы идеи обхода РСА и воспользовались.
Ну а суть вот в чем:
Проверка прошивки естественно не одна. Проверка подписи RSA, лишь одна из многих. Если в наглую поправить (пропатчить) CG1, то естественно при загрузке мобила ругнется, что подпись не совпадает... А знаете, как она ругнется? "Sig error 35:02" - ошибка, мол RSA не сходится. А знаете, что будет если по старой методе отключить РСА?
1. Поправим только СG7 и заливаем в паре с оригинальной cg18 - результат - ничего, мобила все проглатила и даже ничего не заметила...
2. Правим CG1 и заливаем в паре с оригинальной CG3. Результат - ругается сиг еррор 35:02. Естественно, мы сказали вместо CG1+СG3 провероить CG7. Но адрес подписи (в CG18) не правили и проверяет она старой подписью (от CG1+CG3).
3. Знаете, что происходит, еслди теперь поправить CG18? Проверка на РСА проходит нормально, то есть сарый метод РАБОТАЕТ! Но мобила при загрузке выплевывает Сиг еррор 39:02. Поняли разницу? ошибка другая... Дополнительная проверка есть, на то что б в подпись для CG1+CH3 была в пределах сг18...
Теперь поробуем просто в наглую скопировать подпись из CG7 в CG18 (в CG7 она начинается с оффсета 0 и ее длинна 45F байт, в CG18 она начинается с оффсета 0x10). Заливаем в мобилу - иполучаем.... sig error 55:02. Опять новая ошибка - что подтверждает теорию, о том, что sig error 39:02 проверял наличие подписи для CG1+CG3 в пределах CG18.
Только что это за новая ошибка 55:02. На что теперь мобила может ругаться???
Адреса конца CG1 в буте нет, следовательно вряд ли он проверяет, что точка входа в сг1 должна быть в пределах СG1... больше в CG1 мы ни чего не меняли. на CG7 он вообще не реагирует. Значит остается только CG18 или вся прошива в целом...
Народ, если у кого есть идеи - буду рад услышать.

З.ы. огромная просьба не флудить!!! иначе тему просто закроют.