void CCOF2OMF::Convert() { // Do the conversion if (WordSize != 32) { err.submit(2317, WordSize); // Wrong word size return; } // Allocate variable size buffers SectionBuffer.SetNum(NSections + 2); // Allocate buffer for section translation list SectionBuffer.SetZero(); // Initialize SymbolBuffer.SetNum(NumberOfSymbols + 1); // Allocate buffer for symbol translation list SymbolBuffer.SetZero(); // Initialize NameBuffer.Push(0, 1); // Make first entry in NameBuffer empty // Call the subfunctions ToFile.SetFileType(FILETYPE_OMF); // Set type of output file MakeSegmentList(); // Make temporary segment conversion list MakeSymbolList(); // Make temporary symbol conversion list MakeRelocationsList(); // Make temporary list of relocations (fixups) and sort it MakeLNAMES(); // Make THEADR and LNAMES records MakeSEGDEF(); // Make SEGDEF and GRPDEF records MakeEXTDEF(); // Make EXTDEF records MakePUBDEF(); // Make PUBDEF records MakeLEDATA(); // Make LEDATA, LIDATA and FIXUPP records MakeMODEND(); // Finish output file *this << ToFile; // Take over new file buffer containing the converted file }
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 }
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-а }