![]() |
eXeL@B —› Вопросы новичков —› Недовостановленная таблица импорта |
Посл.ответ | Сообщение |
|
Создано: 24 января 2016 02:13 · Поправил: Dart Sergius · Личное сообщение · #1 Доброе время суток. Есть у меня 1 программа. Накрыта была VMProtect. Покурив маны и скрипты - вмпрот я снял. Импорт правда скрипт восстановить не смог, но я его восстановил руками с помощью ImpRec. Однако - есть в импорте 1-а либа, которая крайне нестабильно загружается. Часть таблицы импорта выглядит так ( когда все хорошо ) Code:
Но бывает ( брякаюсь я не на EP, а на system breakpoint ) вот так: Code:
Когда он заполняет правильно - программа работает. Когда нет - естественно падает. Самое интересное что без olly падает - т.е. без отладчика не может правильно заполнить таблицу импорта. Винда свежеустановленная на виртуалку. win7 x32. Активирована. ASLR выключен. Я могу конечно денек посидеть и написать в TLS код - чтобы он восстанавливал через GetProcAddress нужные функции ( библиотека загружается всегда! ), но сама ситуация очень странная.. ![]() |
|
Создано: 24 января 2016 03:25 · Поправил: dosprog · Личное сообщение · #2 |
|
Создано: 24 января 2016 03:54 · Поправил: Dart Sergius · Личное сообщение · #3 dosprog пишет: Зачем обязательно TLS? просто с TLS ещё не работал ) Вот и подумал - почему не попробовать. dosprog пишет: ASLR-то можно и включить, а в библиотеках установить бит relocatoins_stripped в CFFExplore это флаг "Can move DLL" ? Если в библиотеке выставлять этот флаг и пытаться загружаться - то ничего ваще не выходит. Библеотека нужная мапиться сразу после нашего фала ( по адресам )... При внимательном просмотре секции(с которого с ImpRec хватал таблицу) обнаружил там адреса... Буду разбираться куда мапиться реальная таблица импорта... ---- Импорт нашелся. В другой секции... Надо лишь взять - да бережно jmp поправить в нужную секцию. ![]() |
|
Создано: 24 января 2016 05:32 · Личное сообщение · #4 Code:
и Code:
1.Вы сами дописали названия айпи? ![]() 2.Если нет то адреса у вас одинаковые в заполненной и как бы в незаполненной в таких случаях просто откройте окно памяти ALT+M и закройте))) ----- Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли. ![]() |
|
Создано: 24 января 2016 06:02 · Личное сообщение · #5 ClockMan, да, я нашел нормальную таблицу импорта. У меня было 2 таблицы - 1-а сплошная, которая была выковыряна со скрипта анпака vmprotect, и вторая, которая была восстановлена с помощью ImpRec. А JMP были на "старую" ( ту которую я показал ). А подписаны были функции потому что модули грузились по "правильным адресам". В итоге немного говнокода на свободный участок кода, и все поправлено ) Code:
![]() |
![]() |
eXeL@B —› Вопросы новичков —› Недовостановленная таблица импорта |