Сейчас на форуме: Rio, tyns777, zombi-vadim (+7 невидимых)

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

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

Создано: 02 июля 2014 13:46
· Личное сообщение · #1

Доброго времени суток. Есть один бинарник, который я маленько запатчил. В XP работает как по нотам, но в семерке все не так радужно. Чтобы к адресу моей функции автоматически прибавлялся случайный BaseAddress нужно запатчить релокации. На картинке те, что бледно синие - в таблице релокаций, а моя функция, как видно, нет. Внимание, вопрос: как это сделать в hiew?

87e9_02.07.2014_EXELAB.rU.tgz - foo.bmp




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

Создано: 02 июля 2014 13:56
· Личное сообщение · #2

Может проще убрать релоки вообще или сделать патч базонезависимым?



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

Создано: 02 июля 2014 14:00
· Личное сообщение · #3

Пробовал - не взлетело. Скорее всего просто руки кривые. Потому, собсна, и спрашиваю про патч релоков.



Ранг: 419.0 (мудрец), 647thx
Активность: 0.460.51
Статус: Участник
"Тибериумный реверсинг"

Создано: 02 июля 2014 14:05 · Поправил: ELF_7719116
· Личное сообщение · #4

im_infamous
по крайней мере, можно воспользоваться утилитами для редактирования релоков, --> например отсюды <--, а не делать все вручную в хиеве



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

Создано: 02 июля 2014 14:10 · Поправил: im_infamous
· Личное сообщение · #5

ELF_7719116 найс, но бинарник удален, а по адресу исходников выдает 400. Не поделитесь бинарником/сорцами?

Добавлено спустя 3 минуты
ELF_7719116 спасибо, что ссылку поправили. К сожалению, предыдущее сообщение удалить не могу.
сорцы еще одного редактора релоков --> https://github.com/gta126/Relocation-Section-Editor <--




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

Создано: 02 июля 2014 14:25
· Личное сообщение · #6

im_infamous пишет:
Пробовал - не взлетело

В PE хидере Dlll Flag обнули.....если это ехе.

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




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

Создано: 02 июля 2014 14:28 · Поправил: Vovan666
· Личное сообщение · #7

В районе ОЕП, если есть 5 байтов без релокации сделай джамп в нули в конце секции и напиши примерно такой код

004049D4 8B0424 MOV EAX,DWORD PTR SS:[ESP]
004049D7 90 NOP
004049D8 C3 RETN
004049D9 60 PUSHAD ; jmp сюда
004049DA 9C PUSHFD
004049DB E8 F4FFFFFF CALL 004049D4 ;
004049E0 90 NOP ;eax минус смещение и делай свои гадости
004049E1 90 NOP
004049E2 90 NOP
004049E3 90 NOP
004049E4 9D POPFD
004049E5 61 POPAD
Тут восстанавливаем, что затер при джампе сюда и делаем джамп взад



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

Создано: 02 июля 2014 14:28
· Личное сообщение · #8

Вот еще релок ребилдер из комплекта PETools

3741_02.07.2014_EXELAB.rU.tgz - RelocRebuilder.NEOx.exe

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

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

Создано: 02 июля 2014 14:45
· Личное сообщение · #9

TryAga1n, спасибо, шикарная тулза.

Добавлено спустя 2 минуты
Vovan666, спасибо, способ на будущее схоронил, но в данном случае все решилось проще.


 eXeL@B —› Программирование —› патчинг таблицы релокаций
Эта тема закрыта. Ответы больше не принимаются.
   Для печати Для печати