Перейти к содержанию
    

TOG

Свой
  • Постов

    514
  • Зарегистрирован

  • Посещение

Сообщения, опубликованные TOG


  1. 1 minute ago, jcxz said:

    Ничего подобного: Ставим бряк на чтение области памяти с серийником (или делаем аналогичное через MPU) и дальше трассируем.

    Верно, но трассировать в мусорном коде это тот еще гемор.

  2. 1 hour ago, jcxz said:

    Каким образом Вы это себе представляете?

    Если программа выполняется процессором, значит она может быть успешно дизассемблирована. Так как дизасм может просто проследовать по пути исполнения.

    да, но этот код будет невозможно анализировать , я уж не говорю про его декомпиляцию в нечто си-подобное. Насколько я помню Exe-cryptor перемешивает машинный код с "мусорным" кодом, заменяет стандартные конструкции создаваемые компилятором на свои (очень сильно замороченные). И если в таком коде будет проверка серийного номера микроконтроллера, то ее найти будет очень не просто.

     

    1 hour ago, jcxz said:

    Каким образом Вы это себе представляете?

    Если программа выполняется процессором, значит она может быть успешно дизассемблирована. Так как дизасм может просто проследовать по пути исполнения.

    Тоже вариант. Только отправив на тот свет пару девайсов, китайцы наверняка сообразят, что нельзя отсоединять батарейку.

  3. Друзья,

    давным давно в журнале КиТ видел статью про ручной установщик smd микросхем, совсем простой и соответственно не дорогой.

    Сейчас по запросу "pick and place" вижу только автоматические установщики. Может кто знает где посмотреть ручной установщик.

  4. Друзья,

    я так понимаю, что китайцы с легкостью вскрывают прошивки практически любых микроконтроллеров. Есть ли средства для защиты от дизассемблирования памяти программ ?
    Вот для windows, была (или есть) такая штука ExeCryptor, превращающая машинный код в адское месиво не пригодное для анализа. 

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

    Технологию монтажа не меняли и вдруг брак попер аж 30%. 

  6. Друзья,

    вот смотрю я даташит на контроллер заряда литиевых батарей BQ40Z50 и есть там такой химический предохранитель (Chemical Fuse).

    Контроллер может пережечь его при необходимости.

    Нигде в инете не нашел таких химических предохранителей.

    Подскажите, может плохо искал. Или чем его заменить можно ?

     

    ChemicalFuse.jpg

  7. Товарищи,

    сейчас мы паяем по 4 платы с помощью такой вот ИК станции. Платы мелкие 40х20мм, запаивается 1 BGA чип.

    Germany-quality-IR9000-BGA-Rework-station-LY.jpg_220x220.jpg

    Прогрев очень не равномерный, много брака. Хотим купить печь оплавления припоя, чтобы по 20 плат за раз паять. Посоветуйте пожалуйста что-нибудь годное.

    (Темы по печкам почитал, смысл понятен - если нужно качество, то Ersa, если жалко денег, то Китай, но придется страдать).

  8. Друзья,
    помогите пожалуйста понять порядок действий при отладке приложения на устройстве под управлением windows CE 6.0.
    Есть устройство работающее под управлением Windows CE 6.0, я к нему подключаюсь с помощью USB кабеля и ActiveSync драйвера.
    На устройстве есть приложение, к которому нужно прицепиться отладчиком. Исходных кодов нет.
    На своем рабочем компе установил такой набор приложений:
    Windows XP,
    Visual Studio 2005 team suite,
    Windows Embedded CE 6.0

    Все это работает, могу просматривать файлы на устройстве, просматривать список запущенных процессов.
    Но не понятно как присоединиться к нужному процессу отладчиком и начать отладку.
    Пробовал с помощью IDA Pro, нажимаю "attach to process", выбираю процесс, но отладка почему-то не работает, хотя IDA пишет, что "Connection to the Windows CE device has been established." Не активны кнопки step over, step into.
    Как с помощью Visual Studio 2005 запустить отладку приложения на устройстве вообще не понимаю. Объясните пожалуйста кто нибудь ?

    (Образ системы windows CE 6.0 есть, скачал с сайта производителя. Само приложение тоже есть, скачал с устройства. Осталось понять как запустить его в режиме отладки или присоединиться к нему отладчиком).
     

  9. Друзья,

    есть устройство на Windows CE 6.0. Есть комп с Windows 7. Установил себе на комп "Windows 7 mobile device center", теперь я могу подключиться к устройству

    с помощью отладчика IDA Pro. В IDA Pro выбираю отладчик Remote WinCE debugger (ActiveSync). Отладчик показывает список запущенных процессов на устройстве,

    и может подключиться к любому процессу, но дальше происходит непонятное:

    устройство перезапускается и виснет, а в отладчике не активны функции пошаговой отладки. Активны только кнопки stop и pause, но похоже, что и они не работают.

    В общем отладка не возможна. Подскажите что я делаю не так ?

  10. Прошивку я считываю правильно, там есть строковые данные и они считываются правильно.

    Уточню, программа не моя. Я просто прицепился на шину и смотрю анализатором, что там происходит. Потом считываю прошивку с EEPROM. Результаты совпадают.

    Мне кажется это все же какая-то кодировка

  11. Друзья,

    есть EEPROM 25AA010 (Serial SPI EEPROM 128 байт). Микроконтроллер C8051F130 пишет туда значение параметра.

    Я изменяю значения параметра 0, 1, 2, 3, 4 и смотрю, что записалось в EEPROM.  Записываются 2 байта, в скобках я привожу двоичный код.

    Я что-то не могу понять эту логику. Это какая-то специальная кодировка для продления жизни EEPROMa что-ли ? 

    параметр = 0.  Это записалось в EEPROM --->    0x80  (1 0 0 0 0  0 0 0),   0x67 (0 1 1 0 0 1 1 1)

    параметр = 1.  Это записалось в EEPROM --->    0x86  (1 0 0 0 0  1 1 0),   0x6B (0 1 1 0 1 0 1 1)

    параметр = 2.  Это записалось в EEPROM --->    0x77  (0 1 1 1 0  1 1 1),   0x8A (1 0 0 0 1 0 1 0)

    параметр = 3.  Это записалось в EEPROM --->    0x7D  (0 1 1  1 1 1 0 1),   0x81 (1 0 0 0 0 0 0 1)

    параметр = 4.  Это записалось в EEPROM --->    0x83  (1 0 0  0 0 0 1 1),   0x77 (0 1 1 1 0 1 1 1)

     

  12. Друзья,

    пытаюсь загрузить прошивку в bin формате в дизассемблер IDA Pro. Он просит вручную указать точку входа. Микроконтроллер stm32f103.

    Для тренировки написал несколько своих простеньких программок и попытался понять методику поиска точки входа в main. Не помогло.

    Может есть какие-то методики поиска точки входа в main ?   

    (статью про носорога видел) 

  13. 25 minutes ago, Сергей Борщ said:

    Верно. А эта "библиотека" ждет флаг STOP только после приема указанного числа байтов. Это еще один аргумент отказаться от нее и написать свою функцию, которая будет ожидать этот флаг одновременно с ожиданием флага прихода нового байта.

    Да именно так.  Спасибо Сергей.

    Придумал вот такие костыли. Это наверно моя самая корявая программа и работает она коряво. Но работает ;) Буду пытаться сделать без этого HAL.

    while ( HAL_I2C_Slave_Receive(&hi2c, (uint8_t *)tmp, 255, TIMEOUT) != HAL_OK)
            {
                if (hi2c.XferSize == 255)    // Если за время таймаута ничего не приняли,  запускаем прием по новой
                {
                    break;
                }
                else if (hi2c.XferSize == 255 - 1)  // Если приняли 1 байт
                {

                }

                else if (hi2c.XferSize == 255 - 2)  // Если приняли 2 байта
                {

                }

                else if (hi2c.XferSize == 255 - 3)  // Если приняли 3 байта
                {

                }

  14. 21 minutes ago, Сергей Борщ said:

    Что должно произойти физически на шине, чтобы ведомый понял: байтов больше нет?

     

    Как я понял когда у мастера больше нечего передавать, он посылает STOP, т.е. при высоком уровне SCL линия SDA переходит с нуля в единицу.

  15. 18 minutes ago, Сергей Борщ said:

    А по какому признаку вы любыми другими замечательными функциями поняли бы, что вам перестали посылать байты?

    Я думаю в режиме IT или DMA как-то так:

    while ( (HAL_I2C_GetState(&hi2c) != HAL_I2C_STATE_READY) )
    {    
    }

    а как в режиме опроса не знаю.

  16. Друзья,

    не могу понять, вот есть эти замечательные функции приема данных по I2C:

    HAL_I2C_Slave_Receive(&hi2c, &Buffer,  NumBytes, Timeout )

    HAL_I2C_Slave_Receive_IT(&hi2c, &Buffer,  NumBytes)

    HAL_I2C_Slave_Receive_DMA(&hi2c, &Buffer,  NumBytes)

    Но как мне быть если неизвестно сколько байт нам пришлют ? Кучу примеров просмотрел, не понимаю.

  17. Друзья,

    понадобились прецизионные подпружиненные щупы для мультиметра, типа таких (Agilent 34133A). Но их трудно где купить да и дороговато. Может у китайцев есть что-то похожее ?

    image.thumb.png.1ad6dd69b84292a530e8b1fe3669fa07.png

  18. Друзья,

    это выход UART процессора PowerPC. Нагрузки никакой нет. Ток потребления процессора с норме, не греется.

    Измерил сопротивление (UART -- земля) = 21 кОм,  (UART -- +3.3V) = 21 кОм.

    Накрылся UART ? Или может  быть какая-то другая причина ? И можно ли что-то с этим сделать не меняя процессор ? (Доступа к прошивке у меня нет)

     

    SCR05.jpg

×
×
  • Создать...