Зачастую в процессе разработки собственных устройств или моддинга уже существующих, встаёт задача выполнения стороннего кода: будь то ваши собственные программы с SD-флэшек, или программы, написанные другими пользователями с помощью SDK для вашего устройства. Тема компиляторов и кодогенерации достаточно сложная: чтобы просто загрузить ELF или EXE (PE) программу, вам нужно досконально разбираться в особенностях вашей архитектуры: что такое ABI, релокации, GOT, отличие -fPIE от -fPIC, как писать скрипты для ld и т. п. Недавно я копал SDK для первых версий Symbian и основываясь на решениях из этой ОС понял, каким образом можно сделать крайне «дешевую» загрузку любого нативного кода практически на любом микроконтроллере, совершенно не вникая в особенности кодогенерации под неё! Сегодня мы с вами: узнаем, что происходит в процессе загрузки программы ядром Linux, рассмотрим концепцию, предложенную Symbian Foundation и реализуем её на практике для относительно малоизвестной архитектуры — XTensa (хотя она используется в ESP32, детали её реализации «под капотом» для многих остаются загадкой). Интересно? Тогда добро пожаловать под кат!
Читать полностью »
Рубрика «dll»
Выполняем сторонние программы на микроконтроллерах с Гарвардской архитектурой: как загружать программы без знания ABI?
2024-01-05 в 8:01, admin, рубрики: Atmega, attiny, avr, bodyawm_ништячки, C, c++, cc, dll, elf, esp32, esp8266, exe, executable, gcc, gnu ld, ld, linker, pic, timeweb_статьи, xtensa, бинарные файлы, загрузчик, исполняемый файл, компоновщик, микроконтроллеры, микропроцессоры, программа, программы, системное программированиеКомпилируем быстрые консольные .exe приложения на PHP 8.1 в 2023 году, а почему бы и нет?
2023-03-13 в 8:01, admin, рубрики: c++, dll, enigma, exe, ffi, jit, php, PHP 8, timeweb_статьи, WinAPI, Блог компании Timeweb Cloud, интерпретатор, компиляция, консоль, приложение, разработка под windows, утилита, франкенштейнУ многих в своё время, наверное, было желание легкого написание консольных и оконных приложений. Ребята рунета иногда писали незаменимые приложения для решения мелких задач и делились на форумах, хотя некоторые из них и содержали костыли.
Однако времена меняются, и люди начали осознавать свои ошибки, переходя, скажем, на ООП.
Чтобы поностальгировать и продемонстрировать нового Франкенштейна, мы соберем полноценное консольное exe-приложение на PHP.Читать полностью »
Jli.dll по-новому: как хакеры использовали известную DLL в фишинге якобы от имени Минцифры
2022-06-09 в 6:00, admin, рубрики: dll, Malware, информационная безопасность, Минцифры, фишингВ конце мая стало известно о том, что хакеры пытались организовать вредоносную рассылку якобы от Минцифры. Архив из этой рассылки получили для анализа специалисты Solar JSOC CERT. В нем мы обнаружили jli.dllЧитать полностью »
DLL & Python
Недавно меня заинтересовала тема использования DLL из Python. Кроме того было интересно разобраться в их структуре, на тот случай, если придется менять исходники библиотек. После изучения различных ресурсов и примеров на эту тему, стало понятно, что применение динамических библиотек может сильно расширить возможности Python. Собственные цели были достигнуты, а чтобы опыт не был забыт, я решил подвести итог в виде статьи — структурировать свой знания и полезные источники, а заодно ещё лучше разобраться в данной теме.
Под катом вас ожидает статья с различными примерами, исходниками и пояснениями к ним.
Передача двумерных списков из python в DLL
2019-09-07 в 15:05, admin, рубрики: C, c++, ctypes, dll, pythonВсем привет.
Решил несколько дополнить статью C/C++ из Python.
Передача стандартных типов, таких как int, bool, float и так далее довольно проста, но мало необходима. С такими данными быстро справится и сам python, и врядли у кого-то возникнет необходимость вынесения части такого кода в библиотеку C/C++.
А вот передача больших массивов данных, или еще лучше двумерных массивов данных, или даже двумерных массивов объектов.
Тут уже все не так очевидно, и есть ряд вещей, которые думаю можно осветить для тех кто хочет существенно ускорить трудные для интерпретатора python участки кода.
Приведенный под катом пример не очень полезный для применения, но думаю достаточный, чтобы осветить все нюансы данной процедуры.
Модификация к игре на основе dll-wrapper’a
2019-01-28 в 16:31, admin, рубрики: dll, WinAPI, wrapper, разработка под windowsИмеется игра In Verbis Virtus с необычной механикой — творить заклинания с помощью микрофона.
Это не симулятор Амаяка Акопяна, это головоломка от первого лица с нетипичным управлением.
Для этого в игре используется библиотека распознавания речи Sphinx.
Задумка выглядит интересной, но реализация вышла так-себе (распознавание очень часто промахивается), да и кастовать после первых 20 минут откровенно надоедает.
О том, как это выглядит со стороны — вообще молчу.
Разработчики, к сожалению, не оставили возможности управления заклинаниями с клавиатуры, и я решил это исправить.
Читать полностью »
Пишем загрузчик ПЛИС в LabVIEW. Часть 2
2018-11-12 в 4:27, admin, рубрики: dll, fpga, ftdi, LabVIEW, mpsse, national instruments, виртуальный прибор, загрузчик, ненормальное программирование, ошибки, ПЛИС, Промышленное программирование, прототипированиеЗагрузка конфигурации в ПЛИС через USB или разбираем FTDI MPSSE
Пишем загрузчик ПЛИС в LabVIEW. Часть 1
В первой статье мы обкатали алгоритм загрузки на старом добром Си, во второй статье разобрались, как в LabVIEW можно организовать программу и реализовать простой интерфейс пользователя. В этот раз мы познакомимся с новыми приемами работы в LabVIEW, разберем особенности обработки ошибок и завершим проект: реализуем протокол загрузки файла конфигурации в ПЛИС.Читать полностью »
Пишем загрузчик ПЛИС в LabVIEW
2018-10-25 в 11:59, admin, рубрики: dll, fpga, ftdi, LabVIEW, mpsse, national instruments, виртуальный прибор, загрузчик, ненормальное программирование, ПЛИС, Промышленное программирование, прототипирование
У большинства "нормальных" программистов, мягко говоря, неоднозначное отношение к технологии LabVIEW. Тут спорить можно долго и безрезультатно. Ситуацию усугубляет то, что в сети масса примеров программ на LabVIEW, но все они ориентированы на новичка и сводятся к "ой, смотрите как все просто, соединил крутилку с индикатором, кручу ручку, меняется циферка", или в лучшем случае на график в цикле выводится случайное число или синус, все это сопровождается зубодробительным интерфейсом в виде гигантских тумблеров, крутилок и стрелочных индикаторов. Лично меня такой подход сознательного упрощения раздражает. В небольшом цикле статей я постараюсь познакомить читателя с процессом разработки прикладного ПО на LabVIEW. Для того, чтобы не уделять много времени предметной области, воспользуемся подробно описанным алгоритмом загрузки файла конфигурации в ПЛИС через FTDI в режиме MPSSE (Загрузка конфигурации в ПЛИС через USB или разбираем FTDI MPSSE). В этой статье я покажу как реализовать такой же загрузчик ПЛИС, но на языке LabVIEW.
Использование FPC-библиотеки «InternetTools» в Delphi
2018-07-04 в 21:07, admin, рубрики: Delphi, dll, FPC, Free Pascal, html, InternetTools, ПрограммированиеНа самом деле, статья несколько шире – она описывает способ, позволяющий прозрачно задействовать и многие другие библиотеки (причём не только из мира Free Pascal), а InternetTools выбрана из-за своего замечательного свойства – это тот случай, когда (как ни удивительно) отсутствует Delphi-вариант с такими же широкими возможностями и удобством использования.
Эта библиотека предназначена для извлечения информации (парсинга) из веб-документов (XML и HTML), позволяя использовать для указания нужных данных как языки запросов высокого уровня, такие как XPath и XQuery, так и, в качестве одного из вариантов, предоставляя прямой доступ к элементам дерева, построенного по документу.
Читать полностью »
Теперь я тебя вижу: выявление бесфайловых вредоносных программ
2018-03-30 в 7:34, admin, рубрики: 365, defender, dll, microsoft, Petya, powershell, WannaCry, windows, антивирусная защита, атака, безопасность, Блог компании Microsoft, вирус, информационная безопасность, угрозаЗлоумышленники твердо намерены применять для обхода средств защиты все более сложные методы. Использование бесфайловых вредоносных программ повышает незаметность и эффективность атаки. В прошлом году бесфайловые методы применялись в ходе двух крупномасштабных кампаний по распространению программ-вымогателей (Petya и WannaCry).
В основе бесфайловых атак лежит простая идея: если на устройстве уже имеются средства, способные выполнить задачи злоумышленника (например, PowerShell.exe или wmic.exe), то зачем размещать на нем специальные программы, которые могут быть распознаны как вредоносные? Если злоумышленник сможет перехватить управление процессом, запустить в пространстве памяти такого процесса свой код и использовать его для вызова средств, которые уже имеются на устройстве, обнаружить атаку будет сложнее.
Читать полностью »