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

 eXeL@B —› Программирование —› Редактирование LIB (obj)
Посл.ответ Сообщение


Ранг: 104.1 (ветеран)
Активность: 0.070
Статус: Участник
искатель истЕны

Создано: 06 августа 2006 06:26
· Личное сообщение · #1

Чем можно отредактировать obj, чтобы это обошлось малой кровью? Надо дописать примерно 60-100 строк кода. Чем проще всего это сделать?



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

Создано: 06 августа 2006 06:39
· Личное сообщение · #2

Разве что в хекс-редакторе... Если obj 32-битный, то это не так трудно. Я бы забил новый код в Olly, потом copy + paste в obj в WinHex. Если obj в формате OMF, то после этой операции нужно будет увеличить на кол-во новых байтов размер текущего сегмента (см. описание OMF). В COFF, возможно, также просто. Плохо, если в этих новых байтах есть релоки.




Ранг: 104.1 (ветеран)
Активность: 0.070
Статус: Участник
искатель истЕны

Создано: 06 августа 2006 08:14
· Личное сообщение · #3

Quantum формат - COFF.
Quantum пишет:
Плохо, если в этих новых байтах есть релоки

В этом весь косяк.

Есть мысль сделать dll - пропатчить, потом заюзать dll to lib. Но что-то от этого метода попахивает



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

Создано: 06 августа 2006 10:16
· Личное сообщение · #4

Paxan пишет:
Есть мысль сделать dll

от релоков ты никуда не денешься. но мысль с DLL хорошая.

-----
MicroSoft? Is it some kind of a toilet paper?





Ранг: 120.6 (ветеран)
Активность: 0.090
Статус: Участник
rootkit developer

Создано: 06 августа 2006 10:25
· Личное сообщение · #5

Paxan пишет:
Но что-то от этого метода попахивает

Ага, прямо страшно воняет
Если obj не большой, то лучше дизасми его полностью в иде, и компиль заново в фасме с внесенными исправлениями.

-----
Скажем дружно - нафиг нужно.





Ранг: 104.1 (ветеран)
Активность: 0.070
Статус: Участник
искатель истЕны

Создано: 06 августа 2006 10:43
· Личное сообщение · #6

Ms-Rem пишет:
дизасми его полностью в иде, и компиль заново в фасме с внесенными исправлениями

так скорее всего и будет, но уж очень не хочется =(



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

Создано: 06 августа 2006 12:05
· Личное сообщение · #7

Ms-Rem пишет:
лучше дизасми его полностью в иде

вот это воняет по-настоящему! ида непонять что продьюсит...

-----
MicroSoft? Is it some kind of a toilet paper?





Ранг: 104.1 (ветеран)
Активность: 0.070
Статус: Участник
искатель истЕны

Создано: 07 августа 2006 00:12
· Личное сообщение · #8

Tim
нормально ида продьюсит, надо просто уметь её готовить



Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 07 августа 2006 12:38
· Личное сообщение · #9

Можно добавить свой obj в либу чтоб не писать много в хекс редакторе




Ранг: 104.1 (ветеран)
Активность: 0.070
Статус: Участник
искатель истЕны

Создано: 07 августа 2006 12:53
· Личное сообщение · #10

Asterix мне надо не просто дописать некую функу, а пропатчить существующую, плюс дописать туда же. Поэтому вариант с обжем не катит.



Ранг: 450.1 (мудрец)
Активность: 0.260
Статус: Участник

Создано: 07 августа 2006 13:36
· Личное сообщение · #11

Paxan
дык это я предложил чтоб меньше патчить, ведь проще добавить jmp или call на новую функцию
в добавленном obj, которая выполнит требуемую задачу, чем писать много кода в хекс редакторе



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

Создано: 08 августа 2006 01:50
· Личное сообщение · #12

Asterix пишет:
ведь проще добавить jmp или call на новую функцию
в добавленном obj, которая выполнит требуемую задачу, чем писать много кода в хекс редакторе

На этот jmp/call понадобится добавить один фиксап и один extern. Это не сложно, но придётся предварительно поизучать COFF формат.



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

Создано: 08 августа 2006 02:18
· Личное сообщение · #13

Quantum
фиксап = релок. или я чего-то не понимаю?

Quantum пишет:
Плохо, если в этих новых байтах есть релоки.

тогда уже плохо.

-----
MicroSoft? Is it some kind of a toilet paper?




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

Создано: 08 августа 2006 02:50
· Личное сообщение · #14

Tim пишет:
фиксап = релок

релок - это в экзешнике (или dll), а фиксап - это в обьектнике. Других отличий нет. Поэтому, можно считать, что фиксап = релок, со скидкой на формат.


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


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