Сейчас на форуме: rtsgreg1989, ==DJ==[ZLO], Magister Yoda (+6 невидимых)

 eXeL@B —› Основной форум —› Как удобнее много писать в новую секцию?
Посл.ответ Сообщение

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

Создано: 04 апреля 2005 05:44
· Личное сообщение · #1

Первое апреля ушло, а мечта о супер инструменте для дописывания exe осталась.
Вот цитата из первоапрельской шутки:
Прикиньте, в ней код писать можно как в исходнике со всеми метками, директивами и даже вызовами API функций прямо так:
invoke MessageBox, 0, addr message, аddr title, 0
А при сохранении в файл весь код и данные раскидываются по свободным местам в концах секций. А сели не хватит, то выбор новой секции и Olly сохраняет это всё корректно добавляя в таблицу импорта и подправляя PE.

Фантазия это хорошо, но я сегодня наступил на собственные грабли

Вожусь с демоверсией. Нужно написать процедуру сохранения. Пример из предыдущий версии есть, есть ещё пример из облегчённого триала, но и там, и там кое-чего ни хватает.
В данном случае не нужно вставлять новых API, но старые юзать хорошо бы по человечески (по их имени, а не по адресу jmp'a для них). Писать я буду в новую секцию. И метки ускорили бы дело очень здорово, чёрт сними с дерективами, но хотя бы команды вписывать между строк хотелось бы.

Вопрос1 есть ли инструмент который грамотно привяжет исходный код, к exe-фалу в указанную мной секцию?
Вопрос2 если нет, кто как пишет большие участки кода в exe?
Поделитесь, пожалуйста, опытом или на статью направьте.

-----
Всем привет, я вернулся




Ранг: 384.1 (мудрец)
Активность: 0.250
Статус: Участник
www.int3.net

Создано: 04 апреля 2005 06:52
· Личное сообщение · #2

Bitfry
1. Сильно сомневаюсь

2. Однозначно добавлением новой секции

-----
Подписи - ЗЛО! Нужно убирать!




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

Создано: 04 апреля 2005 11:51
· Личное сообщение · #3

Открываешь файл в HiEW, переходишь в новую секцию,
включаешь режим ассемблирования и вперед ;)
Если кода нужно добавлять много то его оформляют в виде DLL, а в файле прописывают ее загрузку.



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

Создано: 04 апреля 2005 14:29
· Личное сообщение · #4

Asterix пишет:
Открываешь файл в HiEW

Я так и делаю, но это очень неудобно. Забыв однажды вписать команду, приходится переправлять всё заново, а потом опять отладка и опять всё заново.
Грустно...
надо обдумать этот вопрос.

-----
Всем привет, я вернулся





Ранг: 536.4 (!), 171thx
Активность: 0.660.13
Статус: Администратор
Создатель CRACKL@B

Создано: 04 апреля 2005 16:00
· Личное сообщение · #5

nice пишет:
2. Однозначно добавлением новой секции

Можно подправить размер секции ресурсов (последней), поставить нужный атрибут и писать код в неё - это проще, чем добавлять новую секцию.
Bitfry пишет:
Я так и делаю, но это очень неудобно. Забыв однажды вписать команду, приходится переправлять всё заново, а потом опять отладка и опять всё заново.

пытались мне как-то подсунуть курсовик сделать "Написание компилятора", намёк понял ?

-----
Всем не угодишь




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

Создано: 04 апреля 2005 16:38
· Личное сообщение · #6

Кстати, можно тупо заюзать fasm.
Собрать файл с необходимым смещением соответсвующим
смещению добавляемой секции в файле, по хитрому использовать
API, допустим написать свою функцию GetProcAddress,
не юзая виндовые API, тогда можно будет просто дернуть
секцию из скомпиленного fasm'ом exe'шника и прицепить ее
к нужному файлу, изменить точку входа и телемаркет.
Если целевой файл юзает LoadLibrary/GetProcAddress в импорте,
то еще проще.



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

Создано: 04 апреля 2005 17:09 · Поправил: Bitfry
· Личное сообщение · #7

Bad_guy пишет:
намёк понял ?

Угу, только времени нет.
Даже не успел начать писать редактор для авторов. А все проблемы в порядки поступления.

Asterix пишет:
заюзать fasm.

Мысль здравая, но процедура вызывает много функций из программы, а сама она не такая уж и длинная. Я пожалуй по старинки в hiew'e буду тыкать. Если не найдётся супер инструмент.

-----
Всем привет, я вернулся



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


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