| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Asm: Общие вопросы > Вирус на асме |
| Автор: Roman_ 28.1.2003, 15:27 |
| Помогите найти исходник вируса... тема: Вирус который в определенной папке при открывания текстового фаила записывает в начало 20 байт... и к нему же анивирус... если не трудно... помогите... |
| Автор: MuToGeN 28.1.2003, 15:31 | ||
|
| Автор: Baa 28.1.2003, 17:24 |
| Долго думал, за что же проголосовать... за "вирус на асме" или за "очень прошу". Роман, в инете полно исходников вирусов, да и такой "вирус" можно легко написать самому, так что не ленись и купи себе книгу, вместо того, чтобы всякими глупостями заниматься. |
| Автор: Chingachguk 28.1.2003, 17:55 |
| Судя по формулировке, это не вирус, а обычный резидент, сторожащий ОДНУ функцию int 21h (ну или 2) - 3Сh и 3Dh. При вызове этой функции резидент должен проверить имя по ds:dx и выполнить обычную блочную перезапись файла или cmd с ">, >>". |
| Автор: Baa 28.1.2003, 18:40 |
| Chingachguk все намного проще в винде |
| Автор: Chingachguk 28.1.2003, 18:45 |
| Baa извини, не въехал - зачем блокнот ? И почему в винде легче ? Или ты про cmd ? |
| Автор: Baa 28.1.2003, 19:42 |
| Chingachguk все просто |
| Автор: Chingachguk 28.1.2003, 20:25 |
| Интересно ;) А как ты хочешь ловить момент "двойного щелчка" ? Или ты хочешь пропатчить notepad.exe ? |
| Автор: Baa 28.1.2003, 21:13 |
| А зачем мне его патчить? перемещаю его куда-нить и сажусь вместо него. Затем порчу файл и запускаю нотепад перемещенный... вот и все |
| Автор: Chingachguk 28.1.2003, 22:19 |
| Неплохо ! ТОлько придется немного повозится с вызовом старого пад-а. |
| Автор: Cepera 28.1.2003, 22:26 |
| голосование - шутка? |
| Автор: Step 28.1.2003, 22:45 |
| не понял смысла ответов... |
| Автор: гостек 28.1.2003, 22:49 |
| http://sbvc.host.sk -- тут описания дофига |
| Автор: Baa 29.1.2003, 00:40 |
| Chingachguk почему повозиться? общий ходь трепанации 1. ren blacknote.exe blacknote1.exe 2. copy MegaVirus.exe blacknote.exe 3. далее идет открытие текстового файла (вызывается наш "Blacknote.exe c:\test.txt") 4. делаем гадости с файлом текстовым 5. запускаем "blacknote1.exe c:\test.txt" и никакой возьни И ведь на первый взгляд и не заметно |
| Автор: Chingachguk 29.1.2003, 01:20 | ||
Я предполагал патчить notepad.exe, поскольку винда начнет показывать окошки с именами приложений. Например, если у тебя есть заготовленный старый notepad_back.exe, а ты сам - notepad.exe, то ты должен будешь опосля (или во время своего выполнения) себя вызвать этот "back". Это отдельный процесс, и он будет виден именно как "back". Да, ты не будешь виден (графическое приложение без окон), на три клавиши либо забьешь, либо победишь их даже, но вот как будет виден настоящий notepad ? А если еще кто-то в пиф-файл заглянет за "свойствами" ? |
| Автор: Baa 29.1.2003, 02:00 |
| Забиваешь в начало нормального notepade.exe 0x0160 символ Правда не выход |
| Автор: stab 29.1.2003, 07:44 |
| Аморальные вещи обсуждаются на этом форуме |
| Автор: Baa 29.1.2003, 19:47 |
| cully твоя идея не катит :\ потому как исправление реестра будет намного заметней, чем пропатчивание блокнота... з.ы. мы еще будем антивирус обсуждать |
| Автор: RA 12.2.2003, 01:19 |
| Вот вам простой до безобразия способ: Читаем название Shella из INI (обычно Explorer.exe) Копируем вирь на с:\ под именем Shella После перезагрузки запустится с:\Shell а не с:\Windows\Shell Копируем себя куда угодно и закрываем старый процесс что на с:\ (но не удаляем) Запустились ! Теперь запускаем настоящий Shell Усё! |
| Автор: Baa 12.2.2003, 01:46 |
| RAdmin эээ... эт ты к чему? мы вообще текстовые файлики заражали... наш способ под конкретную задачу, а не вообще... |
| Автор: RA 12.2.2003, 07:01 | ||
я тему не от начала читал, думал вы автозагрузку обсуждаете. |
| Автор: [auxx] 12.2.2003, 07:34 | ||
Переименовал блокнот во чтото там. Запустил. Все нормально. И в трех клавишах тоже. Пропатчить блокнот конечно хорошо, но для такой цели это слишком сложно. А можно обмануть еще юзера: 1. Записываемся вместо блокнота, его переименовываем. 2. После запуска нашего блокното-заменителя работаем с нужным файлом. 3. После работы с файлом создаем и запускаем батник, который: а. переименовывает ваш ехе-файл, б. переименовывает и запускает блокнот, в. пытается переименовать блокнот обратно (в цикле), г. переименовывает обратно ваш ехе-файл. 4. завершаем свою работу |
| Автор: [auxx] 12.2.2003, 07:42 |
| А можно проще. 1. Переименовываем нотепад 2. Себя вместо него. 3. После запуска нашей проги работаем с нужным файлом. 4. Подгружаем к себе в адресное пространство блокнот и запускаем (можно отдельным потоком) |
| Автор: stab 13.2.2003, 07:10 | ||
Это как? |
| Автор: Baa 13.2.2003, 17:30 |
| Гы %) действительно, как это? |
| Автор: [auxx] 18.2.2003, 06:38 | ||
Ну просто пытаемся загрузить ее по imagebase, указанному в ее заголовке. Для этого у себя другое imagebase делаем. Вот тока память еще под это выделить надо по определенному адресу. И запускаем. Мне кажется, так проще, ведь не надо к нему приделываться. А главное, ни в каких списках процессов лишнего блокнота не будет |
| Автор: stab 19.2.2003, 22:44 | ||
А как же импорты и фиксапы? Все ручками? или LoadLibrary? |
| Автор: [auxx] 20.2.2003, 07:31 | ||
Ручками! Загружаешь, настраиваешь... Но я не говорю, что это лучший и простой способ. Просто в голову пришел. Зато способ универсален: не надо подстраиваться пон конкретный блокнот в конкретной версии винды. |
| Автор: stab 20.2.2003, 13:42 |
| Идея такая появилась: - В PE заголовке у блокнота EntryPoint поставить в NULL. - Использовать LoadLibrary("notepad.exe"). - Вызвать сохраненую ранее реальную EntryPoint блокнота. может тогда все будет ОК? |
| Автор: [auxx] 20.2.2003, 22:39 | ||
Идея интересная. Но а как быть с контрольной суммой? у ехе обычно равна нулю, а у библиотек высчитывается линкером. Виндам может это не понравится, попозже проверю. А еще можно File System API Hook. Под 9х даже драйвера не нужны. |
| Автор: [auxx] 20.2.2003, 23:22 | ||
Значит так. Блокнот прекрасно загружается, на контрольную сумму винды не жалуются. Вызываю EntryPoint. Вызов проходит успешно, блокнот че-то делает, потом вызывает ExitProcess. В чем дело? Винды - Миллениум. |
| Автор: stab 21.2.2003, 23:08 |
| Может notepad не по своей Image Base загружается? У твоей проги Image Base какая? и еще правельнее будет вместо jmp eax поставить call eax. |
| Автор: stab 21.2.2003, 23:10 | ||
а может и не правильнее |
| Автор: [auxx] 22.2.2003, 10:31 |
| image base стандартный (0400000h). call eax тока зря потратит место в стеке, т.к. нотепад завершается вызовом ExitProcess, а не ret. Он сразу сам завершит и нашу программу. Интересно то, что блокнот некоторое время нормально выполняется, а потом завершаатся. В качестве примера, попробовал тоже самое сделать со своей прогой на С++ (довольнл большой и серьезной) - работает отлично. А вот с калькулятором та же проблема |
| Автор: [auxx] 22.2.2003, 10:41 | ||
У loader'а и блокнота image base совпадают. По нормальному, винды должны за этим следить. Но проблема врядли в этом, т.к. у моей проги на С++ (см. выше) image base такой же. |
| Автор: stab 22.2.2003, 16:49 |
| У блокнота могут быть убраны фиксапы, а без них он по другой ImageBase не загрузится, т.е. загрузится, но работать не будет. Попробуй задай у лоадера другой ImageBase, ниже notepd'a, скажем, 60000000h будет самое то что нужно, т.к. начиная с этого адреса (и до 68000000h) MS рекомендует загружать собственные DLL. |
| Автор: stab 22.2.2003, 16:54 |
| У мя (WinXP) нету фиксапов у блокнота. Попробовал на Delphi прогу написать с ImgBase 60000000h -- все работет. Так, что я думаю и у тя все заработает. |