• Ломаем хаКс полностью. Читаем машинные коды как открытую книгу

    • Tutorial
    Если haXe оттранслирован в C++, а из него — в машинные коды, это может показаться безнадёжным, тем более, на первый взгляд этот код пестрит вызовами виртуальных методов, которые, не запуская отладчик, трудно соотнести с адресами тел методов.

    Но всё не так уж плохо. Даже при отключенной поддержке сценариев (HXCPP_SCRIPTABLE) в файле можно обнаружить строки с названиями методов и полей. Разбираем, как можно размотать этот клубок, сопоставить имена методов с их адресами и смещениями в таблице виртуальных методов.
    Читать дальше →
    • +11
    • 8,4k
    • 2
  • Интеграция внешней объектной системы в Delphi на примере IBM SOM

      SOM Technology: Making the Pieces Fit4 года назад вышла моя статья про IBM SOM, где я констатировал крайне плачевную ситуацию, когда утерян значимый инструментарий, и чем дальше, тем меньше шансов восстановить. За прошедшее время много, чего случилось, нашлись и SOM 3.0 для Windows, и SOM 2.1, и открытый клон somFree, и рабочий компилятор DirectToSOM C++ для Windows, и мост в OLE Automation.

      Один из моих проектов реализует поддержку SOM в Delphi. Разработка начиналась на Delphi, пришлось часть привязок делать вручную и не так красиво, в процедурном стиле, без проверки типов. Используя эти привязки, был написан генератор привязок в объектном стиле, а затем и сам генератор был переписан на новые привязки, став подтверждением их работоспособности. Ради красоты пришлось хакнуть объектную систему Delphi, и, может быть, вам будет интересно, как это вообще можно делать.
      Читать дальше →
      • +11
      • 2,9k
      • 2
    • Началось соревнование «Make with Ada» для разработчиков встраиваемых систем



        AdaCore организует новый конкурс для разработчиков. Как и в прошлые разы, на подготовку даётся существенно больше времени, чем в олимпиадах по иноформатике. Это как раз подходит тем, кому не нравятся соревнования по быстрому написанию страшного кода, который потом только выбросить.

        Сегодня на повестке дня — разработка для ARM на голом железе и технологии верификации. Общий призовой фонд — более 8000€.
        Читать дальше →
      • Об одном нестандартном способе борьбы с блокировками: инфошантаж

          Охотник имеет возможность поразить зверя в разные части тела с разной эффективностью. Имеет смысл пробовать разные методы. Вот и в случае противодействия блокировкам можно искать нестандартные вектора атаки. Например, информационный шантаж.

          Одной из причин, по которой идут блокировки, является то, что с точки зрения людей, обладающих властью, а власть — это реализуемая на практике способность управлять, например, ТНК и банкстеров, а не только силовиков, состояние после блокировки предпочтительнее состояния до блокировки. I2P, CJDNS, Byzantium — это средства обороны, а не нападения. Акцент сделан на интересах тех, кто противодействует блокировкам, а не на интересах тех, кто в этих блокировках заинтересован. Под нападением я понимаю такие законные действия, чтобы состояние после блокировки становилось хуже, чем до, с точки зрения людей, обладающих властью и заинтересованных в блокировках. И блокировки начнут саботироваться изнутри. Претензии правообладателей начнут активно оспариваться или правообладатели вдруг как по волшебству начнут терпеть это безобразие и перестанут добиваться блокировки.

          Хотелось бы обратить внимание на то, как скудно используется потенциал заблокированных страниц. Где–то владельцы сайтов сами убрали информацию, где–то провайдер показывает свою заглушку. Почти всегда эти заглушки меня разочаровывают. Пропадает зря большой нереализованный потенциал. Вот об этих заглушках и хотелось бы подбросить материал для размышлений.
          Читать дальше →
        • Расставляем точки над i в Delphi RAII

            Тема RAII в Delphi обычно замалчивается или же информация по этому вопросу ограничивается обсуждением полезности интерфейсов. Но интерфейсы поодиночке не дают многих желаемых возможностей. Когда в Delphi 2006 появилась перегрузка операций, приватные поля записей, собственные конструкторы и методы в записях и, казалось, было бы логично увидеть и автоматически вызываемый деструктор. И run-time позволяет, и в разделе запроса новых фич Delphi на протяжении нескольких лет в ТОП–10 висит запрос №21729 «Record Operator Overloading: Please implement «Initialize» and «Finalize» operators». Наверное, не судьба. Ничего, я покажу, как обойтись без несостоявшихся фич. Так как Delphi 7 живее всех живых, будут рассмотрены решения, совместимые с Delphi 7 в том числе

            Времени найти обходные пути было достаточно
          • IBM SOM: внешняя объектная система с поддержкой наследования

            image Хотел бы поделиться своей находкой: IBM SOM. Согласно Википедии, жил да был некогда Microsoft с COM, и был IBM с SOM. В Windows и OS/2, соответственно. И были для них средства межсетевого взаимодействия: DCOM и — как вы думаете? — правильно, DSOM. Такая вот идиллия, что может сложиться впечатление, что это близнецы. Только вот в SOM было наследование, а в COM — нет, и в журналистских статейках, на которые ведут ссылки из Википедии, только об этом и речь.

            Но это лишь начало путешествия в кроличью нору