Конвертация Pe -> Bin
Во многих EXE-файлах (и во всех посроенных tlink-ом) CodeBase равен 1000h ну и EntryPoint тоже указывает на 1000h. Можно ли убрать это долбаное смещение при использовании tlink-а?
Тут озадачился конвертацией PE -> BIN, поискал по инету и ничего не нашел. Решил сам сделать, в общем сделал, но возникла проблема логического плана.
Во многих EXE-файлах (и во всех посроенных tlink-ом) CodeBase равен 1000h ну и EntryPoint тоже указывает на 1000h. Можно ли убрать это долбаное смещение при использовании tlink-а?
А куда ты хочешь его убрать-то? На ImageBase чтоли? Да и чем-оно тебе мешает-то?
А куда ты хочешь его убрать-то? На ImageBase чтоли? Да и чем-оно тебе мешает-то?
Я уже понял как его убрать :) Надо релокейшен сделать на соответствующий адрес. Просто не хотелось с этим заморачиваться, но прийдется.
А задача грузить биарник по определенному адресу в память и что бы точка входа была с нуля бинарника.
Я уже понял как его убрать :) Надо релокейшен сделать на соответствующий адрес. Просто не хотелось с этим заморачиваться, но прийдется.
А задача грузить биарник по определенному адресу в память и что бы точка входа была с нуля бинарника.
Извини за нескромный вопрос - а зачем именно с нуля бинарника? Я просто не совсем понимаю что может принципиально измениться от того, что точка входа будет например распологаться по RVA 0x1000 например?
Извини за нескромный вопрос - а зачем именно с нуля бинарника? Я просто не совсем понимаю что может принципиально измениться от того, что точка входа будет например распологаться по RVA 0x1000 например?
Вопрос ещё в том, что ты будешь делать с другими секциями? Например с секцией ресурсов?
А так же с таблицей импорта, TLS, SEH и т.п.
Рекомендую посмотреть исходники UPX.
Извини за нескромный вопрос - а зачем именно с нуля бинарника? Я просто не совсем понимаю что может принципиально измениться от того, что точка входа будет например распологаться по RVA 0x1000 например?
На самом деле практически ничего не измениться :) Просто когда у тебя бинарник, то предполагается что точка входа начинается с нуля :)
Я вообще с бинарником заморочился только ради некоторых экспериментов в защищенном режиме, просто его легче всего загрузить :)
т.е. временное решение.
Вопрос ещё в том, что ты будешь делать с другими секциями? Например с секцией ресурсов?
А так же с таблицей импорта, TLS, SEH и т.п.
Рекомендую посмотреть исходники UPX.
Мне реально нужны только секции кода и данных, все остальное вырезается. PE-файл используется поскольку их генерит софт с помощью которого я веду разработку.