Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
Господа, будьте снисходительны, не бросайтесь сразу штрафовать за, как вам кажется, глупые вопросы - beginners на то и beginners.
| | |
Не стоит тратить время. 14.07.04 13:05 Число просмотров: 1437
Автор: amirul <Serge> Статус: The Elderman
|
Асм нужен для программирования крайне редко. Для отладки чаще - но там он тоже элементарно изучается по ходу дела.
|
<beginners>
|
APi 11.07.04 14:53
Автор: int8h Статус: Незарегистрированный пользователь
|
объясните пожалуйста, как записать код в последнюю секцию PE файла и поменять заголовок, чтобы он указывал на эту секцию. если можно на с++ . спасибо если кто ответит
|
| |
спасибо, стал изучать асм, очень интересно... 13.07.04 18:49
Автор: int8h Статус: Незарегистрированный пользователь
|
> Лучшая реализация будет на ASM, пока с этим чётко не > разберёшься, то на си ничего не сделаешь > Есть куча статей по этому поводу: > http://www.wasm.ru/publist.php?list=6 > http://z0mbie.host.sk/ > > P.S. Почему APi?
спасибо, стал изучать асм, очень интересно. http://www.cracklab.ru/pro/asm/ - отсюда скачал учебник для начинающих, учу пока и вроде бы все понятно. там правда асм для доса описан, но видимо пока не поймешь асм для 16 бит то на 32 бита переходить бессмысленно так ведь?
P.S. APi это я глюкнул, хотел вначале про функции спросить, потом в голову пришло другое =)
|
| | |
Не стоит тратить время. 14.07.04 13:05
Автор: amirul <Serge> Статус: The Elderman
|
Асм нужен для программирования крайне редко. Для отладки чаще - но там он тоже элементарно изучается по ходу дела.
|
| | | |
Я всё таки считаю, что асм нужно знать 14.07.04 15:49
Автор: choor Статус: Elderman
|
Каждый уважающий себя программер должен иметь представлении об асме. А то программируешь что-то и как оно в памяти отображается не пойми.
|
| |
Ни фига асм не лучше 12.07.04 13:21
Автор: amirul <Serge> Статус: The Elderman
|
> Лучшая реализация будет на ASM, пока с этим чётко не > разберёшься, то на си ничего не сделаешь В winnt.h есть структуры IMAGE_NT_HEADERS и прочие. И ими вполне удобно пользоваться при разборе COFF/PE
> Есть куча статей по этому поводу: > http://www.wasm.ru/publist.php?list=6 > http://z0mbie.host.sk/ > > P.S. Почему APi?
|
| | |
Да, согласен, есть... а что ты положешь в nt_image_header? и... 12.07.04 15:53
Автор: choor Статус: Elderman
|
Да, согласен, есть... а что ты положешь в NT_IMAGE_HEADER? и как?
|
| | | |
Зачем ложить? 12.07.04 16:56
Автор: amirul <Serge> Статус: The Elderman
|
> Да, согласен, есть... а что ты положешь в NT_IMAGE_HEADER? > и как? Я чего то не понимаю. Мепишь файл в память, находишь заголовок, накладываешь на него структуру и работаешь.
Кстати, NT-шный лоадер ПОЛНОСТЬЮ написан на С. Даже без ассемблерных вставок
|
| | | | |
ре 13.07.04 11:43
Автор: choor Статус: Elderman
|
Я то понял что он вирус пишет, и надо же что-то дописывать в последнюю секцию, а вот что и где это взять с помощью nt_image_headers? Если всё положить в один файл...
|
| | | | | |
Если почитать доку по PE, то увидим, что сразу за за... 13.07.04 12:11
Автор: amirul <Serge> Статус: The Elderman
|
> Я то понял что он вирус пишет, и надо же что-то дописывать > в последнюю секцию, а вот что и где это взять с помощью > nt_image_headers? Если всё положить в один файл... Если почитать доку по PE, то увидим, что сразу за за IMAGE_NT_HEADERS-ами идут IMAGE_SECTION_HEADER-ы. Добавить туда чего нибудь не составляет труда. Вообще разбор PE-формата - очень простая задача. Главное взять доку.
|
| | | | | | |
Я разбирал PE очень подробно, и это понятно, что нужно... 13.07.04 18:28
Автор: choor Статус: Elderman
|
Я разбирал PE очень подробно, и это понятно, что нужно добовлять в IMAGE_SECTION_HEADER, НО! Вопрос стоит в том, где взять символы чтобы добовлять их в IMAGE_SECTION_HEADER? в асме как это очень просто, а вот в Си?
|
| | | | | | | |
Я тоже разбирал 14.07.04 13:04
Автор: amirul <Serge> Статус: The Elderman
|
> Я разбирал PE очень подробно, и это понятно, что нужно > добовлять в IMAGE_SECTION_HEADER, НО! Вопрос стоит в том, Повторюсь. Следом за IMAGE_NT_HEADERS-ами идет набор IMAGE_SECTION_HEADER-ов. По одной на каждую секцию. Добавить еще одну и подправить в FileHeader-е количество секций. Дописать в конец кусок данных с необходимым выравниванием тоже не бог весть какая программа.
> где взять символы чтобы добовлять их в Какие такие символы? Не надо там никаких символов.
> IMAGE_SECTION_HEADER? в асме как это очень просто, а вот в > Си? В С все практически всегда ПРОЩЕ, чем в асме. Писать на асме (особенно на интеловском асме) - извращение. Практически никаких преимуществ, зато куча геморроя.
|
| | | | | | | | |
Что ты добавишь в секцию? 14.07.04 15:47
Автор: choor Статус: Elderman
|
printf("i'm good virus"); ?
или всё таки асмовские инструкции?
|
| | | | | | | | | |
Полагаю скопировать в чужую секцию секцию ехешника откуда... 14.07.04 15:59
Автор: Killer{R} <Dmitry> Статус: Elderman
|
> printf("i'm good virus"); ? > или всё таки асмовские инструкции? Полагаю скопировать в чужую секцию секцию ехешника откуда сам стартовал. Через memcpy. Хотя если писать "правильный" вирь со всякими полиморф-штучками то наверно сетаки без асма не обойтись.
|
| | | | | | | | | | |
Я кстати написал один полиморфный движок 14.07.04 16:33
Автор: amirul <Serge> Статус: The Elderman
|
> > printf("i'm good virus"); ? > > или всё таки асмовские инструкции? > Полагаю скопировать в чужую секцию секцию ехешника откуда > сам стартовал. Через memcpy. Хотя если писать "правильный" > вирь со всякими полиморф-штучками то наверно сетаки без > асма не обойтись. Со всей ответственностью заявляю, что обошелся там практически без асма. Асм и тот инлайновый был только при создании фрейма функции (загрузчике), которая или передавала управление оригинальному файлу или выходила с ошибкой - ну никак к стандартным С-шным фреймам это прикрутить иначе нельзя было, вот и пользовался __declspec(naked).
Ну а что до криптора/декриптора, которые кстати, были АБСОЛЮТНО полиморфными, то бишь не содержали никаких сигнатур и генерировались случайно. Так там тоже никаким асмом и не пахло. Напротив сильно разило машинным кодом. Но я бы не призывал всех программировать прямо в маш коде только потому, что без этого фиг напишешь полиморфик :-)
|
| | | | | | | | | | | |
А можно src глянуть? 14.07.04 18:18
Автор: choor Статус: Elderman
|
|
| | | | | | | | | | | | |
Оно проприетарное :-( 15.07.04 11:27
Автор: amirul <Serge> Статус: The Elderman
|
Принадлежит той самой конторе, о которой я говорил в хуморе.
Так что, я хоть и не питаю особо теплых чувств к той конторе, но распространять их коммерческую тайну совесть не позволит.
Общий смысл: взял что то около 30-40 (точнее не помню) кодов операций, которые могут не трогать память. Разбил их по классам: без агрументов и не меняют регистров, без агрументов и меняют один регистр, непосредственный агрумент и меняют один регистр и т.д.
Сохраняю состояние всех регистров (определенное/неопределенное) и флага переноса. Цикл расшифровки состоит из двух частей: введение всех регистров и флага в определенное состояние и собственно расшифровка. Регистр переходит в определенное состояние, когда загружается непосредственным значением или значением другого определенного регистра. При любых операциях с неопределенным регистром/флагом регистр опять переходит в неопределенное состояние.
Ну а цикл расшифровки представляет из себя просто последовательность кучи операций, генерирующих гамму и в случайном месте стоит собственно xor (хотя можно было бы использовать и любые другие обратимые операции) с зашифрованным кодом.
|
|
|