Сейчас на форуме: (+6 невидимых) |
eXeL@B —› Протекторы —› Загрузка dll(exe) без сопутствующих dll |
Посл.ответ | Сообщение |
|
Создано: 29 декабря 2015 09:43 · Личное сообщение · #1 Цель: имеем dll(exe) под протектором с кучей разных длл в импорте (например плуг к автокаду). Соответственно без установленного автокада в системе такую длл в отладчик не загрузить. Задача: загрузить такой файл в отладчик(лоадер, используя хуки или дебаг) без наличия всех длл из импорта. Полноценная работа такого файла не нужна, достаточно только возможности дойти до OEP (а то и меньше, начальная инициализация протектора и раскриптовка тела файла). Вариант вырезания импорта например в CFF Explorer работает 50/50, хотелось бы более стабильное решение. Может есть какое простое решение (хукать какие апи при загрузке)? |
|
Создано: 29 декабря 2015 09:55 · Личное сообщение · #2 в ида + бош семулте свой оеп и получите все раскриптованое а вообще поиск по форуму сто тем всяких по загрузке dll простой мапинг в память даже сработает итд лень все темы сюда набивать, сами найдете |
|
Создано: 29 декабря 2015 11:00 · Личное сообщение · #3 |
|
Создано: 29 декабря 2015 11:08 · Личное сообщение · #4 |
|
Создано: 29 декабря 2015 11:18 · Поправил: Tolkin · Личное сообщение · #5 |
|
Создано: 29 декабря 2015 12:20 · Поправил: DenCoder · Личное сообщение · #6 Tolkin Можно и с хуками - чтоб на загрузку какой-то dll стопить работу и готовить эту dll. Но если протектор тот, который я думаю(условия задачи в сочетании с приведённым примером очень знакомы), надо мониторить и обращение к секции экспорта нужных dll. Или найти вызов функции, откуда производится импорт, и его похукать. ) Добавлено спустя 4 минуты И вспомнил. При загрузке dll, требуемых, например, аутокаду, проверку нужного timestamp'а Вы пропустите, не разобрав работу протектора. Мониторинг хард-бряками только укажет место, откуда начнётся масса непонятных вещей ) Добавлено спустя 13 минут reversecode пишет: смутно помню что вроде с каким то флагами какая то вин апи еще грузить умеет на форуме когда то обсуждали LoadLibraryEx с флагом DONT_RESOLVE_DLL_REFERENCES может сойти Tolkin пишет: Соответственно без установленного автокада в системе такую длл в отладчик не загрузить. и вообще-то его совсем необязательно ставить, чтоб загрузить длл. ----- IZ.RU |
|
Создано: 29 декабря 2015 12:39 · Поправил: Tolkin · Личное сообщение · #7 DenCoder вероятно не то прот что подумали, это хасп конверт, пример вот |
|
Создано: 29 декабря 2015 12:42 · Личное сообщение · #8 |
|
Создано: 29 декабря 2015 13:00 · Личное сообщение · #9 LoadLibraryEx с флагом DONT_RESOLVE_DLL_REFERENCES пробую, но что-то не запускается так длл, не те ошибки лезут. если не резолвит импорт - то вероятно вообще оотуда не резолвит, а пару апи из кернела для прота то нужны. делаю типа так Code:
Добавлено спустя 5 минут Можно и с хуками - чтоб на загрузку какой-то dll стопить работу и готовить эту dll По этому способу я не понял где именно надо тормозить, на вызове какой апи, чтобы поймать. Ибо длл из импорта то нету, как там системный загрузчик ее проверяет или сразу пытается подгрузить. |
|
Создано: 29 декабря 2015 13:27 · Личное сообщение · #10 Всё это громоздко, и даже дико. Самый лучший вариант это установить AutoCAD и не безобразничать. С другой стороны, никто не может запретить написать собственные библиотеки: Code:
| Сообщение посчитали полезным: DenCoder |
|
Создано: 29 декабря 2015 13:52 · Поправил: Tolkin · Личное сообщение · #11 dosprog эта длл просто как пример. Часто такое попадается, хочется как-то автоматизировать, получить первичные необходимые данные из протектных файлов(также часто один конверт имеет в импорте кучу других файлов с конвертами, и пока все до не замулить этот не запустить). Да, как вариант возможно на лету генерить пустые длл с нужным импортом (там по 1 апи зачасчтую в длл), но тоже надо проверять захавает ли такое (подтянет ли олька без ошибок например). |
|
Создано: 29 декабря 2015 15:17 · Личное сообщение · #12 |
|
Создано: 29 декабря 2015 17:42 · Личное сообщение · #13 |
|
Создано: 29 декабря 2015 23:46 · Личное сообщение · #14 Вообщем пока один рабочий вариант найден - это ручная загрузка dll(exe) и настройка импорта. Причем если длл из импорта нету - то просто настраиваем дальше(не обязательно даже забивать какими либо другими значениями или вырезать)(системный загрузчик и отладчики в этом месте прекращают загрузку целевой длл). Единственный пока недостаток, при передаче управления в ехе или длл со временем она безвозвратно падает и вместе с ним и сам лоадер, по try except ничего не ловит(может VEH стоит использовать), т.е для перебора всех файлов сразу не идет, надо запускать по экземпляру на каждый файл. |
eXeL@B —› Протекторы —› Загрузка dll(exe) без сопутствующих dll |