HOME    FORUMS    MEMBERS    RECENT POSTS    LOG IN  
Баннер 1   Баннер 2

ANTICHAT — форум по информационной безопасности, OSINT и технологиям

ANTICHAT — русскоязычное сообщество по безопасности, OSINT и программированию. Форум ранее работал на доменах antichat.ru, antichat.com и antichat.club, и теперь снова доступен на новом адресе — forum.antichat.xyz.
Форум восстановлен и продолжает развитие: доступны архивные темы, добавляются новые обсуждения и материалы.
⚠️ Старые аккаунты восстановить невозможно — необходимо зарегистрироваться заново.
Вернуться   Форум АНТИЧАТ > Программирование_OLD > С/С++, C#, Delphi, .NET, Asm
   
 
 
Опции темы Поиск в этой теме Опции просмотра

  #821  
Старый 11.12.2007, 02:23
presidentua
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме:
1724067

Репутация: 806
Отправить сообщение для presidentua с помощью ICQ
Lightbulb

Цитата:
Сообщение от XIII  
а там mysql пишит почитайте мануал =)
Твоя исправленая прожка.
http://slil.ru/25218019

 

МуСкул
  #822  
Старый 11.12.2007, 04:46
presidentua
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме:
1724067

Репутация: 806
Отправить сообщение для presidentua с помощью ICQ
Post МуСкул

to XIII
Код:
procedure TForm2.Button2Click(Sender: TObject);
var s:string;
begin
s:='select * from userlist where firstName="'+Edit3.Text+'" and lastName="'+Edit6.Text+'"';
ShowMessage(s);
SimpleDataSet1.DataSet.CommandText:=s;
SimpleDataSet1.DataSet.Active:=false;
SimpleDataSet1.Active:=false;
SimpleDataSet1.DataSet.Active:=true;
SimpleDataSet1.Active:=true;

if DataSource1.DataSet.RecordCount = 0 then
  begin
    ShowMessage('Такого Логина нету');
  end
else   ShowMessage('OK');
end;
Полностью рабочая процедурка под кнопку. У меня на локальной машине с Денвером все работает безотказно.
 

  #823  
Старый 11.12.2007, 07:18
cyber$nake
Познающий
Регистрация: 27.03.2007
Сообщений: 95
Провел на форуме:
244822

Репутация: 37
По умолчанию

Цитата:
Сообщение от z01b  
Вот он, но алго простой =)
Код:
{ **** UBPFD *********** by kladovka.net.ru ****

>> Шифрование исполняемого файла

 

В данном примере реализована процедура шифрования и расшифрования одной 

только процедуры "вывода сообщения".Процедура изночально не зашифровано,

что ни есть хорошо.Для того что бы процедура была при запуске программы 

уже зашифрована надо написать внешнюю программку,которая ба сканировала 

ехе-шник и находила определенные метки(начальную и конечную)и шифровала 

бы всё между ними.Таким образом вы получите готовый ехе-шник с уже 

зашифрованой(зашифроваными)процедурой. Для того чтоб некоторым умным 

людям (crackers)жить было не легко,после расшифровки и выполнения процедуры 

можно её опять зашифровать.

 

Более потробную информацию читайте в статье на «Королевства Delphi»

http://delphi.vitpc.com/mastering/safe/safe.htm

 

Там же читайте Открытый проект "Анти крэковые мучения"

http://delphi.vitpc.com/mastering/safe/index.htm

 

Зависимости: Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, 

Forms,Dialogs, StdCtrls;

Автор:       DDA, Vologda

Copyright:   «Королевства Delphi» Защита от несанкционированного 

использования программ, написанных на Delphi

Дата:        3 марта 2004 г.

********************************************** }

 

unit Unit1;

 

interface

 

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

 

type

TForm1 = class(TForm)

   Button1: TButton;

   Button2: TButton;

   procedure Button1Click(Sender: TObject);

   procedure Button2Click(Sender: TObject);

private

   { Private declarations }

public

   { Public declarations }

end;

 

var

Form1: TForm1;

 

implementation

 

{$R *.dfm}

 

Procedure metka1;

//Начальная метка - нужна что бы находить потом в exe файле эти символы и знать

//откуда начинать шифровать

//Здесь метка представляет из себя десятичные числа от 0 до 256 через запятые

//Если метка 50,60,70,80,90 то это соответствует символам 2<FPZ

//Кстати, такого кол-во символов в метке может быть мало и лучше использовать больше

//Т.к если программа большая то такие последовательности могут встретиться не один раз

begin

asm

   DB 50,60,70,80,90 //2<FPZ это метка начальная

end;

 

end;

 

procedure TForm1.Button1Click(Sender: TObject);

begin

beep;

ShowMessage('Период использования программы истёк!');

end;

 

Procedure metka2;

//Конечная метка - нужна чтобы знать до куда нужно шифровать в файле и

//докуда расшифровывать в памяти

begin

asm

   DB 68,68,67,45,61 //DDA-= это метка конечная

end;

end;

 

procedure TForm1.Button2Click(Sender: TObject);

//Процедура Расшифрования(В даном примере и зашифрования)

var

ptrAddr: Pointer; {для Адреса процедуры вывода сообщения}

dwOldProtect: DWORD;

begin

ptrAddr := @TForm1.Button1Click;//Получаем адрес процедуры вывода сообщения

VirtualProtect(@TForm1.Button1Click, 2048, PAGE_READWRITE, @dwOldProtect);

//2048 это размер в байтах с которыми можно работать(по моему)

//Если процедура большая то нужно подбирать соответствующий размер

while ptrAddr <> @metka2 do //шифрование(слабое) выполняем пока не дойдем то конечной метки

begin

Byte(ptrAddr^) := Byte(ptrAddr^) xor $41;

//каждый байт в памяти ксорится с кодом 65'A'(к примеру)

//Используйте более надёжные алгоритмы шифрования

inc(Integer(ptrAddr));

end;

 

exit; //нужно так сделать что б компилятор включил эти процедуры

metka1;//в код,т.к Delphi не вставляет в результирующий код процедуры,

metka2;//которые никогда не используются

end;

 

//Такое шифрование взято для примера и не рекомендуется для использования серьёзной защиты

//Также рекомендуется использовать и проверочную контрольную сумму для проверки

//целостности кода программы.

//Теперь осталось только сделать отдельную программу которая искала бы

//в этом exe файле начальную и конечную метки и шифровало бы всё между ними

//

//Но для демонстрации можно посмотреть результат и сейчас

//Запустите программу и нажмите на кнопку 1 -Должно вывестись сообщение и звук.сигнал

//А если нажать на кнопку 2 - то прцедура нажатия на кнопку 1 зашифруется

//И если после этого нажать на кнопку 1 -то должно произойти что-то не предсказуемое

//т.к процедура зашифрованна и что-то нормального вы не увидите.

 

//Источник информации: CopyRight «Королевства Delphi»

//"Защита от несанкционированного использования программ, написанных на Delphi"

 

 

end.

спасибо, я тоже нашел этот пример, но.......

Цитата:
Процедура изночально не зашифровано,

что ни есть хорошо.Для того что бы процедура была при запуске программы

уже зашифрована надо написать внешнюю программку,которая ба сканировала

ехе-шник и находила определенные метки(начальную и конечную)и шифровала

бы всё между ними.Таким образом вы получите готовый ехе-шник с уже

зашифрованой(зашифрованым )процедурой
как написать эту "внешнюю программку"?

Я задал такой вопрос в надежде может ктонить поделится своим опытом с меннее опытными.
 

Шифрования
  #824  
Старый 11.12.2007, 18:29
presidentua
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме:
1724067

Репутация: 806
Отправить сообщение для presidentua с помощью ICQ
Post Шифрования

to cyber$nake.

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

Начну с шифрования исходников: в Делфи это бесполезная вещь. Если не хоч давать исходники не давай, давай сам екзешник. Применения шифрования к исходникам я видел лишь один раз - в фирме старый програмист позаменял название переменных и функций на случайные комбинации. С одной стороны все просто, но с другой - пришлось заново переписывать с нуля прогу ведь розобраться в исходниках стало нереально.

Шифрование екзешников: Здесь проше и эфективнее будет использовать уже готовый продукт. Например тотже разрекламированый АспПротект последней версии или другой не очень известный. Если грамотно поставить эти крипторы, то этим задача крякеров осложняется в несколько раз, а для средняков и насчинающих это капец. В том же АспПротекте кажется можно указывать шифровать участки кода. И для последней версии в паблике нету автоматического расшифровщика.
 

  #825  
Старый 11.12.2007, 21:34
W!z@rD
Reservists Of Antichat - Level 6
Регистрация: 12.02.2006
Сообщений: 891
Провел на форуме:
1892597

Репутация: 836


Отправить сообщение для W!z@rD с помощью ICQ
По умолчанию

1 - Виртуальная машина - VMProtect
2 - пакеры/крипторы/протекторы - DotFix FakeSigner
3 - имена функций типа FFFFx0
4 - Delphi String Protect прога защитит string-овые данные.

думаю хватит... проблем с поиском софта не возникнет, поэтому не дал линков.
__________________
*********************************
*Я не волшебник ٩(๏̯͡๏)۶, только учусь...*
*********************************
Программы на заказ
Times to fly...
 

  #826  
Старый 11.12.2007, 23:29
XIII
Участник форума
Регистрация: 06.02.2006
Сообщений: 137
Провел на форуме:
656903

Репутация: 15
Отправить сообщение для XIII с помощью ICQ
По умолчанию

presidentua спасибо больше, тока вот оно выдаёт всю строку а как сделать чтобы отдельное поле только
--
уже разобрался

Последний раз редактировалось XIII; 11.12.2007 в 23:44..
 

  #827  
Старый 11.12.2007, 23:43
z01b
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме:
2360904

Репутация: 1393


По умолчанию

Цитата:
Сообщение от XIII  
presidentua спасибо больше, тока вот оно выдаёт всю строку а как сделать чтобы отдельное поле только
delete();
 

  #828  
Старый 11.12.2007, 23:48
presidentua
Постоянный
Регистрация: 04.11.2007
Сообщений: 331
Провел на форуме:
1724067

Репутация: 806
Отправить сообщение для presidentua с помощью ICQ
По умолчанию

Цитата:
presidentua спасибо больше, тока вот оно выдаёт всю строку а как сделать чтобы отдельное поле только
Один из вариантов
Код:
if DataSource1.DataSet.RecordCount = 0 then
  begin
    ShowMessage('Такого Логина нету');
  end
else
  begin
    ShowMessage('OK');
    ShowMessage(DBGrid1.Fields[1].AsString);
  end;
выводит на экран Логин. А по сути, выводит 2 столбец из текущей строки, поскольку строка одна - то она всегда текущая.
 

  #829  
Старый 12.12.2007, 00:22
XIII
Участник форума
Регистрация: 06.02.2006
Сообщений: 137
Провел на форуме:
656903

Репутация: 15
Отправить сообщение для XIII с помощью ICQ
По умолчанию

а можно как в label вставить ? чтонить типа Label4.Caption:= 'DBGrid1.Fields[1].AsString';
-----
уже понял =) правельно Label4.Caption:= DBGrid1.Fields[1].AsString;

Последний раз редактировалось XIII; 12.12.2007 в 00:29..
 

  #830  
Старый 12.12.2007, 00:29
z01b
Постоянный
Регистрация: 05.01.2007
Сообщений: 508
Провел на форуме:
2360904

Репутация: 1393


По умолчанию

Цитата:
Сообщение от XIII  
а можно как в label вставить ? чтонить типа Label4.Caption:= 'DBGrid1.Fields[1].AsString';
Будет без ковычек, чтото типа такого Label4.Caption:=DBGrid1.Fields[1].AsString;
 
 





Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ