Jump to content

    

UniSoft

Свой
  • Content Count

    124
  • Joined

  • Last visited

Community Reputation

0 Обычный

About UniSoft

  • Rank
    Частый гость
  • Birthday 08/02/1979

Контакты

  • Сайт
    http://
  • ICQ
    345012614
  • Yahoo
    uniskz

Информация

  • Город
    China, Shenzhen

Recent Profile Visitors

13353 profile views
  1. Кейл. Вставить crc бинарник.

    Она идет в комплекте с keil'ом... C:\Keil_v5\ARM\BIN\ElfDwT.exe
  2. EWARM + bin файл...

    В общем удалось как-то победить данную проблему, правда через ж... зад.. 1. В постбилд'е переименовывается (копируется) firmware.out в firmware_orig.out 2. Своя утилита обрабатывает бинарник и запихивает его в elf файл firmware.out (одной секцией без дебаг инфы, если кому нужно, исходник функции во вложении) 3. Во вкладке Debugger включаем использование макроса execUserReset() { __var value; __message "---- execUserReset ----" ; // включаем возможность отладки в sleep (__WFI) value = __readMemory32(0xE0042004, "Memory"); value |= 0x00000027; __writeMemory32(value, 0xE0042004, "Memory"); } execUserPreload() { __message "---- execUserPreload ----" ; // тут грузим отладочную инфу из оригинального elf __loadImage("C:\\projects\\Test\\EWARM\\firmware\\Exe\\firmware_orig.out", 0, 1); } execUserSetup() { __message "---- execUserSetup ----" ; } elf.rar
  3. EWARM + bin файл...

    В моем случае так проще... Постоянно перешивать устройство на debug/release муторно... это только основная прошивка, а там же еще есть и бутлоадер (точнее 2) которые не пропустят не подписанную прошивку. А это отдельные проекты. Это нужно открывать и пере-компилировать каждый проект отдельно, плюс еще внешнюю утилиту. А так подпись добавляется в автомате за миллисекунды, и не нужно никаких лишних движений. На массовое производство я итак написал для шефа свою одно-кнопочную утилиту, которая и прошивает и защищает контроллер как нужно, без всяких jflash'ей и прочей хрени, лишь JLinkARM.dll. У меня начальник китаец, хорошо знает как копировать девайсы, так как мы сами этим занимались неоднократно, отсюда и некоторые требования в плане защиты. А я по больше степени реверсер, так что хорошо знаю, как усложнить жизнь таким же реверсерам как я. --- P.S.: С IAR'ом я просто эксперементировал, просто интересно было попробовать. Не пользовался я им с 2014 года. С тем, чем пользуюсь сейчас, таких проблем у меня даже не возникало. У меня в email уже множество запросов на то, чтобы обновил свой кейген IARkg14_Unis (хотя последняя версия была IARkg15_Unis, но я ее никогда не выкладывал). Вы же знаете, что он более не справляется с последней версией EWARM, уверен данная тенденция продолжится и на остальные продукты. Вот и пробовал IAR, так бы может хоть стимул появился...
  4. EWARM + bin файл...

    Так а в чем проблема? Вы же не меняете положение функций и переменных... просто добавляется подпись в конец файла подпись это RSA-2048... т.е. 256 байт... и нет, не проще скриптом, да и зачем, все же нормально работает, но не в IAR. VS2019 + visualGDB - лучшего редактора не видел.
  5. EWARM + bin файл...

    Это Вы так троллите? Я знаю, что это elf, я же об этом написал в сообщении, зачем повторять? У меня 20-летний опыт в реверс-инженеринге! Читайте внимательнее! К тому же я писал про "Browse Information" а не про "debug information"... Это совершенно разные вещи.
  6. EWARM + bin файл...

    Это вы про время компиляции? Вы в Keil в Options на вкладке Output снимите галочку с Browse Information... И увидите реальную скорость компиляции.
  7. EWARM + bin файл...

    А в контроллер по вашему пишется что? ну ведь не .elf (он же .out)... Линкер выплевывает .elf файл, из которого получается бинарник, и в IAR есть опция. Далее этот бинарник подписывается, и его и нужно загрузить в контроллер, он ведь по прежнему соответствует .out, адреса функций, переменных все осталось на своих местах. Поэтому отладчик свободно берет инфу из elf, но в контроллер грузится бинарник. Тут нет никакой магии. Я же говорю, оно работает, просто контроллер прошивается дважды, сначала .out а потом hex... мне не проблема создать bin или hex. С elf'ом нет желания возится... так то можно и его создать, и там уже опцией --debugfile указать. Просто мне не верится, что подобной задачи (когда требуется некоторая постбилд обработка файла) ни у кого никогда не возникало. И что нет простого и очевидного решения. Во Flash...
  8. EWARM + bin файл...

    Так там в настройках только одна опция для отключения прошивки "suppress download" ... установив ее, оно подавляет всю запись, даже из макроса. а *.out он итак подхватывает, даже с подавленной загрузкой.
  9. EWARM + bin файл...

    Для отладки... очевидно же... Что-то отредактировал, поставил бряки/метки/printf, жмакнул отладку и отлаживай, без лишних телодвижений с отдельными тулзами.
  10. EWARM + bin файл...

    Так и JLink.exe понимает, но это же не вариант в постбилде шить устройство. Прежде чем задать вопрос я это все прочитал, но не нашел ничего подходящего. __loadImage это то-же самое, что вы привели на скриншоте. В принципе как-то работает через ж..у, если указать hex файл, но и только двойная прошивка, сначала пишет *.out, а поверх этот hex... Не нравится мне такой поход. Ну да ладно, ну его на хрен этот IAR... не зашел он мне как-то... Во первых, это самый наихудший редактор (IDE), я уж думал с 2014 года (как написал кейген к нему) что-то улучшилось, но увы нет... Очень медленный компилятор! Но создает более оптимальный код (это единственный плюс).
  11. EWARM + bin файл...

    Да это я видел, только толку мало... Не понимает оно bin файлы совсем. HEX файл принимает, но на вкладке Download нужно снять опцию Use Flash Loader(s), тогда загрузка производится средствами самого JLink... Но сначала грузится *.out, а потом уже поверх указанный hex... Как отменить загрузку *.out пока не нашел. Есть опция suppress download, но она подавляет все, включая эти extra image(s). Так что вопрос все еще в силе... Может кто уже делал что-то подобное.
  12. EWARM + bin файл...

    Задача... Есть проект, компилится, на выходе включено создание bin файла... Далее в post-build этот бинарник подписывается, получаем новый бинарник, пусть будет project_signed.bin... Так вот как заставить IAR загружать в контроллер именно этот файл вместо *.out? (Естественно, чтобы отладочную инфу брал из *.out, но грузил в контроллер именно указанный бинарный файл) Пока что использую Visual Studio + VisualGDB + Keil compiler, там это легко реализуется, target remote :$$SYS:GDB_PORT$$ mon reset monitor halt #load monitor loadbin "$(TargetDir)\$(TargetFileNameWithoutExtension)_signed.bin", 0x08020000 monitor SWO EnableTarget 216000000 10000000 0x1 0 monitor reg sp = (0x08020000) monitor reg pc = (0x08020004) set *0xE0042004 = (*0xE0042004) | 0x00000007 А вот как подобное реализовать в IAR?
  13. ULink это чисто KEIL'овский отладчик, поддерживается исключительно keil'ом. В целом он лучше при работе с keil, как-то более глубже интегрирован. Но он не продается отдельно, а дается в довесок при покупке кейла (ULINK PRO). А те клоны, что продаются, являются очень старой версией - ULINK 2.
  14. Ну что сказать, плохо вычитали тему... Не банятся серийники (ну да, есть там несколько забаненых в dll серийников типа 11111111, ... ну и все)... Но тут нет никакой гарантии, что не добавят позже... мало ли что им на ум придет. Тем более, что функция уже реализована, достаточно просто добавить серийник в список. Клон можно выловить по нескольким факторам: другой контроллер + пропатчен бутлоадер, фэйковая связка (серийник + unique ID + RSA-signature). Я уже не раз тут писал, серийник + unique ID контроллера (знаете что это?) подписаны RSA подписью... Эти 3 составляющие мертво связанны! В клоне используется небольшой патч, который как раз таки и подменяет unique ID (как именно? ключевое слово FlashPatch...). А так как сеггеровцы однажды просекли эту фишку, то просто, в начале прошивки добавили отключение FlashPatch'а и обнуление всех его регистров. Отсюда и попадали все клоны. Итак, чтобы подменить серийник, вам нужно считать всю связку "серийник + unique ID + и саму подпись" с оригинального линка. найти способ подменить unique ID программно, пропатчить бутлоадер воткнув считанные данные и добавив функцию которая как раз и подменит unique ID, ну и все. Ну наверное в том, что исправляют косяки... Всю историю можно посмотреть на сайте. А насчет "постоянно получают проблемы", ну это вы преувеличиваете... Один раз это не постоянно... Нет, не сложно... только вот зачем? Чтобы потом это делать для каждой новой версии? Обновитесь новой версией и сразу кирпич будет. Вырезать ничего не нужно, можно просто обойтись небольшой функцией добавленной в бутлоадер, и все работает и обновляется.
  15. Да есть она там, J-Link V11... контроллер тот-же... видел где-то на каком-то китайском форуме, что китайцы прошивали V10 этой версией V11 и работало...