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

Discussion in 'WASM.RESEARCH' started by Serg50, Mar 2, 2010.

  1. Serg50

    Serg50 New Member

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

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

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

    crypto Active Member

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