This is a mobile optimized page that loads fast, if you want to load the real page, click this text.

Desktop & Văn phòng FastStone Capture 9.0 Full Key | Phần Mềm Chụp – Quay Màn Hình Siêu Nhẹ!

NgoHungCuong

Rìu Vàng Đôi
Ý là trên máy em hiện tại. Em xóa thư mục đó đi rồi chạy phần mềm nó vẫn không đòi đăng ký?
Nếu đăng ký chỉ lưu ở mỗi chỗ đó thì khi xóa thư mục đó đi rồi chạy phần mềm nó phải đòi đăng ký chứ bác?
 

@sec0

Rìu Chiến Vàng Chấm
Nó nhớ vào registry , nhưng bạn chỉ cần lưu thư mục FastStone ở roaming , khi cài máy mới or đem sang máy khác là có bản quyền
 

NgoHungCuong

Rìu Vàng Đôi
Nó nhớ vào registry , nhưng bạn chỉ cần lưu thư mục FastStone ở roaming , khi cài máy mới or đem sang máy khác là có bản quyền
Em đang muốn tìm cách xóa key đi mà không phải uninstall bác ạ.
Bác có biết nó lưu vào chỗ nào registry không?
 

NgoHungCuong

Rìu Vàng Đôi
Đây là log cài đặt của nó
Bác xem giúp hoặc là khi xóa: Nó xóa những file nào, những khóa nào trong registry?
Hoặc khi đăng ký key, nó tạo ra những file nào? Ghi những khóa nào vào Registry?
Chứ cái log cài đặt chưa thấy thông tin gì cả bác ạ.
 

laquadao

Búa Gỗ
Cảm ơn bạn, phần mềm này hồi xưa mình hay dùng để đọc truyện tranh (mình nén từng chương lại để giảm dung lượng, muốn xem nội dung file ảnh trong đó cũng không cần giải nén ra)
 

@sec0

Rìu Chiến Vàng Chấm
Khi cài đặt thì nó nằm trọn các khóa theo dường dẫn trong Registry , nếu có thêm key thì nó cũng tạo thêm khóa mới thôi , hoặc là thay đổ giá trị chứ đâu phát sinh thêm đường dẫn khác .
Mà tôi cài xong run nó là có luôn bản quyền cũ , và các thiết lập lối tắt , vẫn còn nguyên ko mất giá trị thiết lập từ người dùng , lý do là nó load file sfc.db ở roaming

 

NgoHungCuong

Rìu Vàng Đôi
code k3yg3n trọn gói viết bằng Delphi
Mã:
unit Unit1;

interface

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

type
  TForm1 = class(TForm)
    Label1: TLabel;
    Label2: TLabel;
    edName: TEdit;
    edSerial: TEdit;
    btnGen: TButton;
    XPManifest1: TXPManifest;
    btnCopy: TButton;
    btnCopy2: TButton;
    Label3: TLabel;
    cbType: TComboBox;
    procedure FormCreate(Sender: TObject);
    procedure btnGenClick(Sender: TObject);
    procedure btnCopyClick(Sender: TObject);
    procedure btnCopy2Click(Sender: TObject);
    procedure FormMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form1: TForm1;

implementation

{$R *.dfm}
uses
  DCPsha1, DCPblowfish, DCPsha512, DCPidea;
function MakeKey(input: String; progIndex: integer): String;
var
  s: String;
  name: String;
  head: String;
  serial: String;
  blowfish: TDCP_blowfish;
  idea: TDCP_idea;
  i, n: Integer;
  salt: String;
function TronXau(a, b: String): String;
var
  s: String;
  i, j, m, n, l, k: integer;
begin
  s := '';
  m := length(a);
  n := length(b);
  l := m + n;
  i := 1;
  j := 1;
  k := 1;
  while k <= l do
  begin
    if i <= m then
    begin
      s := s + a[i];
      i := i + 1;
      k := k + 1;
    end;
    if j <= n then
    begin
      s := s + b[j];
      j := j + 1;
      k := k + 1;
    end;
  end;
  Result := s;
end;
function SinhXau: String;
var
  s: String;
  i: integer;
begin
  //ky tu thu 1 3 5 7 la ky tu ngau nhien
  s := 'ABCDEFGH';
  i := random(ord('Z') - ord('A') + 1);
  s[1] := chr(ord('A') + i);
  i := random(26);
  s[3] := chr(ord('A') + i);
  i := random(26);
  s[5] := chr(ord('A') + i);
  i := random(26);
  s[7] := chr(ord('A') + i);
  i := random(ord('Z') - ord('O') + 1);
  s[2] := chr(ord('O') + i);
  i := random(ord('Z') - ord('M') + 1);
  s[4] := chr(ord('M') + i);
  i := random(ord('Z') - ord('I') + 1);
  s[6] := chr(ord('I') + i);
  i := random(ord('Z') - ord('D') + 1);
  s[8] := chr(ord('D') + i);
  if (s[4] = 'M') and (s[8] = 'D') and (s[6] = 'I') and (s[2] = 'O') then
  begin
    s[2] := 'P';
  end;
  Result := s;
end;
function ChonXau(a: String; len: Integer): String;
var
  s: String;
  i, n, pos: Integer;
begin
  n := length(a);
  s := '';
  pos := 0;
  for i := 1 to n do
  begin
    if (a[i] <= 'Z') and (a[i] >= 'A') then
    begin
      s := s + a[i];
      pos := pos + 1;
      if pos = len then
      begin
        break;
      end;
    end;
  end;
  Result := s;
end;
begin
  //68386 max view
  //96332
  //98332
  case progIndex of
  0:
    salt := '96338';
  1:
    salt := '96332';
  2:
    salt := '68386';
  3:
    salt := '98332';
  end;
  head := SinhXau;
  serial := head;
  s := Concat('me4T6cBLV', head, 'CpCwxrvCJZ30pKLu8Svxjhnhut437glCpofVssnFeBh2G0ekUq4VcxFintMix52vL0iJNbdtWqHPyeumkDUC+4AaoSX+xpl56Esonk4=');
  blowfish := TDCP_blowfish.Create(nil);
  idea := TDCP_idea.Create(nil);
  blowfish.InitStr(s, TDCP_sha1);
  name := input;
  name := Uppercase(name);
  s := Concat(head, salt, TronXau(name, head));
  idea.InitStr(s, TDCP_sha512);
  s := TronXau(name, head);
  s := blowfish.EncryptString(s);
  s := idea.EncryptString(s);
  s := ChonXau(s, 8);
  serial := serial + s;
  blowfish.InitStr('09232849248398340903834873297239340547237623242043324398489390309284343843223493299435', TDCP_sha512);
  s := Concat(head, salt, TronXau(name, head));
  idea.InitStr(s, TDCP_sha1);
  n := ord(head[1]) - $32;
  for i:= 1 to n + 1 do
  begin
    s := idea.EncryptString(TronXau(name, head));
  end;
  s := blowfish.EncryptString(s);
  serial := serial + ChonXau(s, 4);
  Insert('-', serial, 6);
  Insert('-', serial, 12);
  Insert('-', serial, 18);
  Result := serial;
end;
procedure TForm1.FormCreate(Sender: TObject);
var
  key: String;
begin
  Randomize;
  cbType.Items.Add('FastStone Capture 9.0');
  cbType.Items.Add('FastStone Image Viewer 7.2');
  cbType.Items.Add('FastStone MaxView 3.3');
  cbType.Items.Add('FastStone Photo Resizer 4.3');
  cbType.ItemIndex := 0;
  key := MakeKey(edName.Text, 0);
  edSerial.Text := key;
end;

procedure TForm1.btnGenClick(Sender: TObject);
var
  key: String;
  name: String;
begin
  name := edName.Text;
  name := Trim(name);
  if length(name) < 5 then
  begin
    ShowMessage('Name greater than 5 characters');
    Exit;
  end;
  key := MakeKey(name, cbType.ItemIndex);
  edSerial.Text := key;
end;

procedure TForm1.btnCopyClick(Sender: TObject);
begin
  ClipBoard.AsText := edName.Text;
end;

procedure TForm1.btnCopy2Click(Sender: TObject);
begin
  ClipBoard.AsText := edSerial.Text;
end;

procedure TForm1.FormMouseDown(Sender: TObject; Button: TMouseButton;
  Shift: TShiftState; X, Y: Integer);
begin
  if Button = mbLeft then
  begin
    ReleaseCapture;
    Perform(WM_SYSCOMMAND, $F012, 0);
  end;
end;

end.




Mã nguồn full
Mã:
https://drive.google.com/open?id=1m5_CaDhj8iqMd-mwvtS036LWu8sSlVPk
 

Hamano Kaito

Moderator
@NgoHungCuong | Sao sếp đánh dấu tui, mà tui chả thấy hiện nhắc tin nhắn gì hết vậy ?
Như vậy rốt cuộc có tìm được nơi cần tìm chưa ? Hay tui phải ra tay trợ giúp 1 phát...!
---------------------------------
Dưới đây là danh sách mà mình đã trace được khi sử dụng 2 phiên bản là cài đặt và di động (di động từ trang chủ, ko áp dụng cho các bản di động từ các bạn khác làm)
Thư mục cài đặt mặc định <== ko thay đổi, mà có thay đổi thì cũng vậy
Mã:
C:\Program Files (x86)\FastStone Capture
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\FastStone Capture
Khóa tạo được đăng ký
Mã:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\FSCapture.exe
HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\FastStone Capture
Thư mục lưu file trial
Mã:
%userprofile%\AppData\Local\FastStone
%userprofile%\AppData\Roaming\FastStone
Khóa đăng ký lưu trial <== số có thể thay đổi hoặc ko !? chưa test full
Mã:
HKEY_CURRENT_USER\Software\8322898
Nơi lưu file
Mã:
C:\ProgramData\FastStone
Đối với bản đi động quá trình tạo trial ko giống bên trên khi tạo tệp trial (DK) <== tệp trial (DK) được tạo vào thư mục gốc của soft luôn và khóa trial thì giống bên trên (bản cài đặt)

P/s: Như vậy là hết lăng tăng nhé !
Thêm 1 ý nữa, là khi dk thì các nơi lưu tệp trial sẽ là nơi lưu thông tin DK luôn đấy nhé
 
Sửa lần cuối:

@sec0

Rìu Chiến Vàng Chấm
Có 1 điều tôi chưa hiểu lắm về khóa DK của nó trên máy của tôi .
Khi có ver mới tôi tải file setup cài đặt , cài vào part khác C , DK = serial lấy từ gen , sau đó lưu thư mục của nó ở roaming .
Khi cài mới lại windows , trước khi chạy file exe từ thư mục gốc , copy thư mục đã lưu vào roaming xong chạy exe thì giống như là chưa cài lại win mới vậy , ko có gì thay đổi hết
 

Hamano Kaito

Moderator
@sec0 | Khi cài khác phân vùng thì cũng như nhau thôi, vì cơ chế soft tạo ban đầu là lưu vào chỗ như vậy rồi !
Câu diễn đạt của sếp khó hiểu quá, mình thông ko nỗi !? Ý của sếp là backup lại file đã dk rồi past vào lúc win mới cài lại phải ko vậy ? Sau đó chạy thì soft như đã dk rồi phải ko ???