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

 eXeL@B —› Вопросы новичков —› Нахождение(создание) свободной области
Посл.ответ Сообщение

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

Создано: 21 октября 2013 17:01
· Личное сообщение · #1

Добрый день. Подскажите, как в OllyDbg можно создать пустую область или найти ее программным методом? Есть программа и нужно сделать переход в пустую область, дам выполнить нужный мне код и вернуться обратно. Места на мой код не хватает в исходном расположении нужного мне участка и надо создать где то в отдельном месте, не повредив при этом программу. Надеюсь вы поймете то, что я настрочил)) Спасибо




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 21 октября 2013 17:05
· Личное сообщение · #2

skew, создай секцию. Делается это легко: обнуляешь в LordPE Bound Imports, создаешь заголовок секции, назначаешь ей нужные атрибуты, затем расширяешь при помощи хекс-редактора файлик на размер секции.

Всё, осталось только исправить EntryPoint (тем же LordPE).

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




Ранг: 617.3 (!), 677thx
Активность: 0.540
Статус: Участник

Создано: 21 октября 2013 17:53
· Личное сообщение · #3

Crawler
К чему столько много непонятных телодвижений?
CFF Explorer -> Section Headers -> Add Section (Empty Space)

| Сообщение посчитали полезным: Dr0p

Ранг: 441.3 (мудрец), 297thx
Активность: 0.410.04
Статус: Участник

Создано: 21 октября 2013 20:42
· Личное сообщение · #4

А дальше будет "ой, после добавления секции программа перестала запускаться. что мне делать дальше?"




Ранг: 328.7 (мудрец), 73thx
Активность: 0.170.01
Статус: Участник

Создано: 21 октября 2013 21:17
· Личное сообщение · #5

skew пишет:
как в OllyDbg можно создать пустую область или найти ее программным методом?

вопрос такой был



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

Создано: 21 октября 2013 21:56
· Личное сообщение · #6

XDD ну тогда добавлю, чтобы программа работала)) после создания этой области стабильно




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 21 октября 2013 22:52
· Личное сообщение · #7

skew, почитай про PE формат чтоле, а то следующий вопрос будет - какие атрибуты выставлять.

-----
Array[Login..Logout] of Life




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

Создано: 21 октября 2013 23:03
· Личное сообщение · #8

http://exelab.ru/art/?action=view&id=146 <=== PE tutz




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 11 ноября 2013 13:18
· Личное сообщение · #9

Vovan666 пишет:
К чему столько много непонятных телодвижений?


Ок, создай секцию и запусти файл. Посмотрим, отработает ли он)))

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.




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

Создано: 11 ноября 2013 14:36
· Личное сообщение · #10

Crawler для чего необходимо обнулять Bound Import?




Ранг: 216.9 (наставник), 85thx
Активность: 0.310.15
Статус: Участник
X-Literator

Создано: 11 ноября 2013 15:10 · Поправил: Crawler
· Личное сообщение · #11

JKornev, а ты подумай. Структуру PE представляешь? Если заявлена bound-таблица, загрузчик будет ее использовать. А если ты затрешь ее при добавлении секции, но не обнулишь поле BoundImports, то получится полное говно. Либо пересчитывай и двигай таблички, либо, что наиболее легко и логично, просто обнуляй.

-----
Харе курить веники и нюхать клей, к вам едет из Америки бог Шива, и он еврей.


| Сообщение посчитали полезным: JKornev

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

Создано: 11 ноября 2013 17:46 · Поправил: JKornev
· Личное сообщение · #12

Хм ... забавно, никогда не обращал внимания на то что Bound Import складывается в заголовок




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 12 ноября 2013 13:36 · Поправил: Dr0p
· Личное сообщение · #13

> как в OllyDbg можно создать пустую область или найти ее программным методом?

Пустую область где и с какими атрибутами ?

RWE ?

Обычно W и E не совместимы. Абсолютно не понятный вопрос. Ваш код как то где то откуда то выполянется, значит это лодер, не иначе. В таком случае нет смысла искать пустое место в секциях. Имхо бред полнейший.




Ранг: 337.6 (мудрец), 224thx
Активность: 0.210.1
Статус: Участник
born to be evil

Создано: 12 ноября 2013 18:41 · Поправил: ajax
· Личное сообщение · #14

Dr0p пишет:
Обычно W и E не совместимы

почему? в старые-старые времена, кодя всякие мемпатчеры на XP, тупо не задумывался о восстановлении аттрибутов. все пахало. сейчас, естественно, возвращаю взад. на вин7-8 началось огребание проблем?
ps: стоп. а тот же upx? hiew: UPX0 xxx xxx xxx xxx E0000080

Crawler пишет:
Ок, создай секцию и запусти файл. Посмотрим, отработает ли он)))

пистелли где-то накосячил? у меня работало. но, не уверен, что руками до ума не доводил что-нибудь

-----
От многой мудрости много скорби, и умножающий знание умножает печаль




Ранг: 431.7 (мудрец), 391thx
Активность: 0.730.32
Статус: Участник

Создано: 12 ноября 2013 22:14 · Поправил: dosprog
· Личное сообщение · #15

ajax,
да вроде, нормально и на Win7 работает запись в секцию RWE.
В крайнем случае, можно сделать её изначально RE, а атрибуты поменять уже в процессе выполнения.
Почему бы нет? Упаковщики же так делают...




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 14 ноября 2013 13:04 · Поправил: Dr0p
· Личное сообщение · #16

ajax

У меня уже давно идея(на руткитсах обсуждалось) созрела по выпиливанью патчей на x86. Заокнчу текущие прожекты, займусь вплотную этим. Вся малварь будет даже в самом принципе выпилена. Конечно и легал софт тоже. Но нормальный софт не должен кодосекции писать, если он пишет, значит он малварь. Если бы я был авером, то любую попытку изменения даных в RE секциях сразу блочил, даже попытку открыть запись. Можно чучуть поправить мап секций(даже в юзермоде, зачем лишний раз в ядро лазать, типо как EMET; я это в крякме капче заюзал), чтобы далее нельзя было из юзермода в них писать. Хотя признаюсь - у меня в опциях линкера установлен RWE для кода, но это сугубо в целях упрощения дебага.



Ранг: 262.5 (наставник), 337thx
Активность: 0.340.25
Статус: Участник

Создано: 14 ноября 2013 14:19
· Личное сообщение · #17

Dr0p пишет:
если он пишет, значит он малварь.

Железно конечно. А как же навесные протекторы/пакеры и просто хитроумные защиты от самих авторов софта?




Ранг: 72.3 (постоянный), 133thx
Активность: 0.380
Статус: Участник

Создано: 14 ноября 2013 14:23 · Поправил: Dr0p
· Личное сообщение · #18

TryAga1n

Пусть выделяют буфер и там исполняют код. Или виртуализируют. Стопицот есть способов. На стеке например код исполняться не должен. Так же и переменных в RE памяти быть не должно. А школота, которая крипторы пищет даже общих концептов защиты не понимает. Они и в ядре до сих пор Cr3.WP сбрасывают. А за это нужно руки отрезать. Да и вообще, RWE память это потенциальная дырка. Если переменные исполняемые, их можно изменить и выполнить. Вот свежак http://yadi.sk/d/X5i3wXE3CXtFu но на старших версиях системы не заведётся и всё благодаря RE -> R памяти.

| Сообщение посчитали полезным: TryAga1n
 eXeL@B —› Вопросы новичков —› Нахождение(создание) свободной области
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


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