• XSS.stack #1 – первый литературный журнал от юзеров форума

ищется код

не понял, там то кода...
находишь ->IMAGE_NT_HEADERS.OptionalHeader.DataDirectory[ IMAGE_DIRECTORY_ENTRY_IMPORT ].VirtualAddress , по указателю массив таких вот структур, добавляй еще одну структурку в массив и наслаждайся
Код:
typedef struct _IMAGE_IMPORT_DESCRIPTOR {
    union {
        DWORD   Characteristics;            // 0 for terminating null import descriptor
        DWORD   OriginalFirstThunk;         // RVA to original unbound IAT (PIMAGE_THUNK_DATA)
    };
    DWORD   TimeDateStamp;                  // 0 if not bound,
                                            // -1 if bound, and real date\time stamp
                                            //     in IMAGE_DIRECTORY_ENTRY_BOUND_IMPORT (new BIND)
                                            // O.W. date/time stamp of DLL bound to (Old BIND)

    DWORD   ForwarderChain;                 // -1 if no forwarders
    DWORD   Name;
    DWORD   FirstThunk;                     // RVA to IAT (if bound this IAT has actual addresses)
} IMAGE_IMPORT_DESCRIPTOR;
typedef IMAGE_IMPORT_DESCRIPTOR UNALIGNED *PIMAGE_IMPORT_DESCRIPTOR;
 
все это собсно понятно , но ввиду ограниченности времени - хотел бы готовый вариант если у кого есть и кому не жалко , а позжее и сам тот кодес добью - к сожаленью , после того кода таблица импорта грохалась
 
очень сильно подозреваю эту строчку
Код:
pe_head =(IMAGE_FILE_HEADER*)((char*)hMapFile + mz_head->e_lfanew+sizeof(DWORD));

менять на
Код:
pe_head =(IMAGE_FILE_HEADER*)((char*)hMapFile + mz_head->e_lfanew);
строка нумер 58
 
Обратите внимание
1 у успешно пропатченного файла FileAlignment == SectionAlignment, а у неуспешно - неравно.
2 У битого файла в секции с импортами записана часть данных, так что либо пункт1 и гдето ошибка в пересчете смещений, либо "не хватило нулей"(своеобразный алгоритм выявления свободного места в секции, где находятся импорты, хотя это фатальная штука, может быть разброс по разным секциям).
 
karabas-barabas попробуй сделать реалигн decrypttc.exe с FileAlignment == SectionAlignment, после этого добавить импорт. Чтоб "хватало нулей" можно добавить новый импорт через добавление новой секции или же пересобирать РЕ файл.
 


Напишите ответ...
  • Вставить:
Прикрепить файлы
Верх