Сейчас на форуме: asfa (+6 невидимых)

 eXeL@B —› Вопросы новичков —› Все секции сдампленной DLL грузятся в заголовок
Посл.ответ Сообщение

Ранг: 3.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 11 апреля 2010 16:34
· Личное сообщение · #1

Есть упакованная petite dll.
Запустил в OllyDbg, сдампил, подправил imagebaza, SizeOfRawData, PointerToRawData
В файле пять секций, все описаны.

После этого весь файл целиком грузится в заголовок.
Вопрос к знатокам: почему так происходит и не идет разбивка по секциям?
И еще: не смог найти описание работы загрузчика винды, т.е. что проверяется и в какой последовательности.



Ранг: 189.9 (ветеран), 334thx
Активность: 0.30
Статус: Участник

Создано: 11 апреля 2010 17:53
· Личное сообщение · #2

alt пишет:
Вопрос к знатокам: почему так происходит и не идет разбивка по секциям?И еще: не смог найти описание работы загрузчика винды, т.е. что проверяется и в какой последовательности.

Читайте маны от MS. Плохо искал www.rsdn.ru/article/baseserv/peloader.xml.




Ранг: 2014.5 (!!!!), 1278thx
Активность: 1.340.25
Статус: Модератор
retired

Создано: 11 апреля 2010 21:24
· Личное сообщение · #3

Это как это он грузится целиком в заголовок? О_о Дай хыть файлы, что ли.




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 12 апреля 2010 01:17
· Личное сообщение · #4

alt пишет:
После этого весь файл целиком грузится в заголовок

После дампа надо ещё править пe хидер,и за косяков в нём олька неотоброжает все секции...

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 3.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 12 апреля 2010 11:25 · Поправил: alt
· Личное сообщение · #5

Archer пишет
Это как это он грузится целиком в заголовок?


Сначала OllyDbg ругается "Плохой или неизвестный формат 32-bit выполняемого файла"

потом я смотрю "Выполняемые модули" и "Карту памяти"

Выполняемые модули
База Размер Вход Имя
008B0000 0006E000 0091C10B Comtls32


Memory map
Адрес Size Owner Section Contains Type Access Initial Mapped as
008B0000 0006E000 Comtls32 PE заголовок Образ 01001002 R RWE


Весь файл размером 6Е000 оказывается в заголовке. И он там реально есть.

Затем происходит ошибка на чтении памяти и Dll выгружается с разными вариантами ругательств. Типа:
"Не знаю какой поток продолжить", "Не могу загрузить"

ClockMan пишет
После дампа надо ещё править пe хидер,и за косяков в нём олька неотоброжает все секции...


Т.е. все данные должны быть абсолютно точными? (речь пока не про правильную работу, а про загрузку)
А это вообще реально сделать?
Ну например, есть поля "размер кода" и "размер инициализационных данных"
И есть одна секция, помеченная, как "код, инициализационные данные и еше что-то" . Как разобрать, сколько в них чего? Разве вручную это возможно?

Дай хыть файлы, что ли.
Сдампленый, без правки.
Заметил одну особенность. На машине, где дампил, таким образом загружается правленый файл. На другой машине таким образом загружается не правленый.


d58c_12.04.2010_CRACKLAB.rU.tgz - damp.dll




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 12 апреля 2010 11:40
· Личное сообщение · #6

Base Relocation Table указывает в некуда...Без новых релоков бибблиотека будет работать только на твоей машине и то невсегда

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 3.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 12 апреля 2010 13:09 · Поправил: alt
· Личное сообщение · #7

ClockMan пишет:
Base Relocation Table указывает в некуда...Без новых релоков бибблиотека будет работать только на твоей машине и то невсегда


Дык вопрос пока не с работой, а с загрузкой.

Кажись нашел причину, но не способ устранения.
Провел эксперемент с этой же, но еще упакованной DLL
Начал убивать данные, начинаю от описания секций и дальше наверх.
Когда убил поле NumberOfRvaAndSizes в 0 - вылезла та-же ошибка.

странно, в описании PE про это поле сказано:

указывает размер массива VA/Size который следует ниже, данная фича зарезервирована под будущие расширения формата. В данный момент его значение всегда равно 10h


Про VA там же цитата

VA есть виртуальный адрес, который уже базирован на смещение Image Base, прочитанное из PE Header'а, RVA есть относительный адрес ссылающийся на Image Base.
Size - понятно, размер. А как понимать (посчитать) VA/Size ?



Ранг: 3.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 12 апреля 2010 13:24
· Личное сообщение · #8

Суйчас посмотрел в других Dll. Там эти поля равны нулю.
Что бы это значило?




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 12 апреля 2010 13:47
· Личное сообщение · #9

alt пишет:
NumberOfRvaAndSizes

Это старый трюк где в поле вносится FFFFFFFF, для нормальной работы ставится 10, я тебе сказал что Base Relocation Table указывает в некуда забей эти значения нулями и загрузи в олли.

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.




Ранг: 3.9 (гость)
Активность: 0.010
Статус: Участник

Создано: 12 апреля 2010 14:24
· Личное сообщение · #10

ClockMan пишет:
тебе сказал что Base Relocation Table указывает в некуда забей эти значения нулями и загрузи в олли.


Большое спасибо! Помогло, но пришлось и адреса ресурсов, импорта и экспорта обнулять.




Ранг: 568.2 (!), 464thx
Активность: 0.550.57
Статус: Участник
оптимист

Создано: 13 апреля 2010 01:19
· Личное сообщение · #11

alt пишет:
Помогло, но пришлось и адреса ресурсов, импорта и экспорта обнулять.

o_O

-----
Чтобы правильно задать вопрос, нужно знать большую часть ответа. Р.Шекли.



 eXeL@B —› Вопросы новичков —› Все секции сдампленной DLL грузятся в заголовок
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати