Пример #1
0
void CELF2ASM<ELFSTRUCTURES>::Convert() {
    // Do the conversion

    // Find image base and executable type
    FindImageBase();

    // Tell disassembler
    Disasm.Init(ExeType, ImageBase);                       // Set image base

    // Make Sections list in Disasm
    MakeSectionList();

    // Make Symbols list in Disasm
    MakeSymbolList();

    // Make relocations for object and executable files
    MakeRelocations();

    if (ImageBase) {
        // Executable file
        MakeImportList();                          // Make imported symbols for executable files
        MakeExportList();                          // Make exported symbols for executable files
        MakeListLabels();                          // Put labels on all image directory tables
    }
    Disasm.Go();                                  // Disassemble
    *this << Disasm.OutFile;                      // Take over output file from Disasm
}
Пример #2
0
void CCOF2ASM::Convert() {
   // Преобразовать
   if (ImageBase) Disasm.Init(2, ImageBase);     // Исполнимый файл или DLL. Установить основание имиджа
   MakeSectionList();                            // Создать список секций и Релокаций в Disasm-е
   MakeSymbolList();                             // Сделать список символов в Disasm-е
   if (ImageBase) {
      // Исполнимый Файл
      MakeDynamicRelocations();                  // Make dynamic base relocations for executable files
      MakeImportList();                          // Make imported symbols for executable files
      MakeExportList();                          // Make exported symbols for executable files
      MakeListLabels();                          // Put labels on all image directory tables
   }
   Disasm.Go();                                  //Дизассемблировать
   *this << Disasm.OutFile;                      // Вывесть выходной файл из Disasm-а
}