Advertisement
FlyFar

Unit2.pas

Jun 7th, 2023
1,675
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pascal 6.71 KB | Cybersecurity | 0 0
  1.    unit Unit2;
  2.  
  3.    interface
  4.  
  5.    uses
  6.      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.      Dialogs, StdCtrls, ComCtrls, ExtCtrls, Menus;
  8.  
  9.    type
  10.      TForm2 = class(TForm)
  11.        MainMenu1: TMainMenu;
  12.        File1: TMenuItem;
  13.        Panel1: TPanel;
  14.        GroupBox1: TGroupBox;
  15.        Label1: TLabel;
  16.        Edit1: TEdit;
  17.        RadioGroup1: TRadioGroup;
  18.        GroupBox2: TGroupBox;
  19.        CheckBox1: TCheckBox;
  20.        Edit2: TEdit;
  21.        GroupBox3: TGroupBox;
  22.        Memo1: TMemo;
  23.        GroupBox4: TGroupBox;
  24.        RadioButton1: TRadioButton;
  25.        RadioButton2: TRadioButton;
  26.        RadioButton3: TRadioButton;
  27.        Memo2: TMemo;
  28.        GroupBox5: TGroupBox;
  29.        CheckBox2: TCheckBox;
  30.        Label2: TLabel;
  31.        Memo3: TMemo;
  32.        Label3: TLabel;
  33.        Button1: TButton;
  34.        Button2: TButton;
  35.        LoadSettings1: TMenuItem;
  36.        OpenDialog1: TOpenDialog;
  37.        SaveDialog1: TSaveDialog;
  38.        Label4: TLabel;
  39.        Edit3: TEdit;
  40.        Edit4: TEdit;
  41.        CheckBox3: TCheckBox;
  42.        Label5: TLabel;
  43.        Edit5: TEdit;
  44.        Label6: TLabel;
  45.        Edit6: TEdit;
  46.        procedure loadsettings(name: string);
  47.        Procedure ReadLine(Data, Command: String; Var Buf:String);
  48.        procedure ReadFile(Name: String; Var Buf:String);
  49.        Procedure SaveFile(Name: String);
  50.        procedure Button1Click(Sender: TObject);
  51.        procedure LoadSettings1Click(Sender: TObject);
  52.        procedure Button2Click(Sender: TObject);
  53.        procedure Edit3KeyDown(Sender: TObject; var Key: Word;
  54.          Shift: TShiftState);
  55.      private
  56.        { Private declarations }
  57.      public
  58.        { Public declarations }
  59.      end;
  60.  
  61.    var
  62.      Form2: TForm2;
  63.  
  64.    implementation
  65.  
  66.    {$R *.dfm}
  67.  
  68.    uses unit1;
  69.  
  70.    Procedure Crypt(Var Data: String);
  71.    Var
  72.      Tmp: String;
  73.      Ch : Integer;
  74.      Xo : Integer;
  75.      I  : Integer;
  76.    Begin
  77.      Tmp := '';
  78.      For I := 1 To Length(Data) Do
  79.      Begin
  80.        Ch := Ord(Data[I]);
  81.        Xo := (Ch Xor Length(Data)) Xor 3;
  82.        Tmp := Tmp + Chr(Xo);
  83.      End;
  84.      Data := Tmp;
  85.    End;
  86.  
  87.    Procedure TForm2.SaveFile(Name: String);
  88.    var
  89.      F: File;
  90.      B: String;
  91.      Len: Integer;
  92.    begin
  93.      B := 'adminserverport='+edit1.text+#1+
  94.      'adminservername='+edit3.text+#1+
  95.      'adminusefakehost='+inttostr(integer(checkbox3.Checked))+#1+
  96.      'adminfakehost='+edit4.text+#1+
  97.      'admintopic='+edit5.text+#1+
  98.      'adminpubliclevel='+inttostr(radiogroup1.ItemIndex)+#1+
  99.      'adminchannel='+edit6.text+#1+
  100.      'spoofedchecked='+inttostr(integer(checkbox1.Checked))+#1+
  101.      'spoofedhost='+edit2.text+#1;
  102.  
  103.      If RadioButton1.Checked Then
  104.      B := B+'connectiontype=1'#1 Else
  105.      If RadioButton2.Checked Then
  106.      B := B+'connectiontype=2'#1 Else
  107.      If RadioButton3.Checked Then
  108.      B := B+'connectiontype=3'#1;
  109.  
  110.      B := B+'connectionips='+memo2.text+#1+
  111.      'friendlistpublic='+inttostr(integer(checkbox2.Checked))+#1#13#10+
  112.      'welcomemessage='+trim(memo1.text)+#1+
  113.      'friendlist='+trim(memo3.Text)+#1;
  114.  
  115.      Crypt(B);
  116.  
  117.      AssignFile(F, Name);
  118.      Rewrite(F, 1);
  119.      Len := Length(B);
  120.      BlockWrite(F, B[1], Len);
  121.      CloseFile(F);
  122.    end;
  123.  
  124.    Procedure TForm2.ReadLine(Data, Command: String; Var Buf:String);
  125.    var
  126.      P: Integer;
  127.      Temp: String;
  128.    begin
  129.      P := Pos(Command, Data);
  130.      Temp := Copy(Data, P+length(Command), Length(Data));
  131.      P := Pos(#1, Temp);
  132.      Temp := Copy(Temp, 1, P-1);
  133.      Buf := Temp;
  134.    end;
  135.  
  136.    procedure TForm2.ReadFile(Name: String; Var Buf:String);
  137.    var
  138.      F: File;
  139.      B: AnsiString;
  140.      ReadBytes: Cardinal;
  141.      Len: Integer;
  142.    begin
  143.      AssignFile(F, Name);
  144.      Reset(F, 1);
  145.      Len := FileSize(F);
  146.      SetLength(B, Len);
  147.      BlockRead(F, B[1], Len, ReadBytes);
  148.      CloseFile(F);
  149.      Buf := String(B);
  150.      Crypt(Buf);
  151.    end;
  152.  
  153.    procedure TForm2.Button1Click(Sender: TObject);
  154.    begin
  155.      If SaveDialog1.Execute Then
  156.      Begin
  157.        If ExtractFileExt(SaveDialog1.FileName) <> '.bn5' Then
  158.          SaveFile(SaveDialog1.FileName+'.bn5')
  159.        Else
  160.          SaveFile(SaveDialog1.FileName);
  161.        SaveFile('default.bn5');
  162.        form1.Timer2.Enabled := true;
  163.        Close;
  164.      End;
  165.    end;
  166.  
  167.    procedure Tform2.loadsettings(name: string);
  168.    var
  169.      Data: String;
  170.  
  171.      adminChannel,
  172.      adminTopic,
  173.      adminFakeHost,
  174.      adminUseFakeHost,
  175.      adminServerName,
  176.      adminPort,
  177.      adminLevel,
  178.      spoofedCheck,
  179.      spoofedHost,
  180.      connectionType,
  181.      connectionIPS,
  182.      friendlistPublic,
  183.      welcomeMessage,
  184.      friendlist: String;
  185.    begin
  186.      If Not FileExists(name) Then Exit;
  187.      ReadFile(name, Data);
  188.  
  189.      ReadLine(Data, 'adminchannel='         , adminChannel);
  190.      ReadLine(Data, 'admintopic='           , adminTopic);
  191.      ReadLine(Data, 'adminfakehost='        , adminFakehost);
  192.      ReadLine(Data, 'adminusefakehost='     , adminUseFakehost);
  193.      ReadLine(Data, 'adminservername='      , adminServerName);
  194.      ReadLine(Data, 'adminserverport='      , adminPort);
  195.      ReadLine(Data, 'adminpubliclevel='     , adminLevel);
  196.      ReadLine(Data, 'spoofedchecked='       , spoofedCheck);
  197.      ReadLine(Data, 'spoofedhost='          , spoofedHost);
  198.      ReadLine(Data, 'connectiontype='       , connectionType);
  199.      ReadLine(Data, 'connectionips='        , connectionIPS);
  200.      ReadLine(Data, 'friendlistpublic='     , friendlistPublic);
  201.      ReadLine(Data, 'welcomemessage='       , welcomeMessage);
  202.      ReadLine(Data, 'friendlist='           , friendlist);
  203.  
  204.      CheckBox3.Checked := Boolean(StrToInt(adminUseFakeHost));
  205.      Edit3.Text := adminServerName;
  206.      Edit4.Text := adminFakeHost;
  207.      Edit5.Text := adminTopic;
  208.      Edit6.Text := adminChannel;
  209.      Edit1.Text := adminPort;
  210.      RadioGroup1.ItemIndex := StrToInt(adminLevel);
  211.      CheckBox1.Checked := Boolean(StrToInt(spoofedCheck));
  212.      Edit2.Text := spoofedHost;
  213.      Memo1.Text := welcomeMessage;
  214.      Case StrToInt(ConnectionType) Of
  215.        1: RadioButton1.Checked := True;
  216.        2: RadioButton2.Checked := True;
  217.        3: RadioButton3.Checked := True;
  218.      End;
  219.      Memo2.Text := ConnectionIPS;
  220.      CheckBox2.Checked := Boolean(StrToInt(friendlistPublic));
  221.      Memo3.Text := friendlist;
  222.    end;
  223.  
  224.    procedure TForm2.LoadSettings1Click(Sender: TObject);
  225.    begin
  226.      If OpenDialog1.Execute Then
  227.        loadsettings(opendialog1.FileName);
  228.    end;
  229.  
  230.    procedure TForm2.Button2Click(Sender: TObject);
  231.    begin
  232.      loadsettings('default.bn5');
  233.      Close;
  234.    end;
  235.  
  236.    procedure TForm2.Edit3KeyDown(Sender: TObject; var Key: Word;
  237.      Shift: TShiftState);
  238.    begin
  239.      If Key = 32 Then ZeroMemory(@Key, SizeOf(Key));
  240.    end;
  241.  
  242.    end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement