Системные процедуры Delphi

Тема в разделе "WASM.RESEARCH", создана пользователем Serg50, 2 мар 2010.

  1. Serg50

    Serg50 New Member

    Публикаций:
    0
    Регистрация:
    17 фев 2010
    Сообщения:
    48
    У меня возникла необходимость(или скорее прихоть :) извлечь алгоритм из одной DLL, причем именно алгоритм, а не код. Она написана на Delphi, и я с трудом продираюсь через это безобразие, и только только подхожу к открытию рабочего файла. Очень много времени уходит на всяческие процедуры с резервированием памяти, бессмысленным перекидыванием строк и т. п. Вопрос:

    Есть ли возможность где нибудь посмотреть назначение кучи системных процедур которые идентифицирует Ida, например с такими витеватыми названиями:
    @System@@LStrCat3$qqrv
    unknown_libname_14
    @System@@ClassCreate$qqrp17System@TMetaClasso

    и т. п. А то жалко времени разбираться с каждой...
     
  2. crypto

    crypto Active Member

    Публикаций:
    0
    Регистрация:
    13 дек 2005
    Сообщения:
    2.533
    Serg50
    Посмотреть можно, во-первых, в исходниках, поставляемых с каждой версией Дельфи (в соответствующих модулях system.pas,...), правда, назначение там не описано, смысл можно понять (если его не знаешь) из исходного кода. В ваших двух примерах первая функция конкатенатит две строки, передаваемые ей через регистры edx и ecx, результат помещается по адресу, заданному регистром eax. Вторая функция создает экземпляр класса.
    Во-вторых, можно взять мой реконструктор IDR (Interactive Delphi Reconstructor) и посмотреть все это безобразие в нем. В нем, в частночти, можно посмотреть прототипы всех функций и процедур, которые будут распознаны во время анализа, более того, некоторые юзерские функции тоже могут быть с прототипом (частично или полностью). Если нужна ссылка, обращайтесь в личку.