CHIPERTEXT merupakan metode enkripsi dengan menggeser deretan karakter yang sudah ditentukan. Disini saya mengambil contoh yang sederhana untuk penerapannya. Beberapa software yang diproteksi dengan serial number menggunakan metode ini untuk kombinasinya. Software yang didistribusikan shareware, trialware maupun Evaluation version menggunakan metode kombinasi serial number untuk melindungi software yang dibuat. Versi Shareware dan EValution version mungkin saja menggunakan Nag Screen atau mungkin ada fungsi dari software yang tidak dapat digunakan jika tidak di register dengan serial number yang tepat.
Ada beberapa metode serial number yang digunakan :
Input Karakter.
merupakan inputan karakter yang nantinya di enkripsi sehingga menghasilkan kode enkripsi.
Ada beberapa metode serial number yang digunakan :
Input Karakter.
merupakan inputan karakter yang nantinya di enkripsi sehingga menghasilkan kode enkripsi.
Deretan Karakter merupakan Kunci yang akan digeser.
dari inputan diatas maka digeser berdasarkan deretan karakter.
dari inputan diatas maka digeser berdasarkan deretan karakter.
Kunci Penggeser, kita ambil serial number dari volume drive C:.
nilai serial number dari volume drive C biasanya bilangan hexadesimal sehingga perlu dirubah ke bilangan ascii.
nilai serial number dari volume drive C biasanya bilangan hexadesimal sehingga perlu dirubah ke bilangan ascii.
Output Karakter.
hasil dari proses berupa kode kombinasi serial number.
Kita mulai dengan contoh aplikasinya :
* Inputan karakter misalnya : BALI HACK
* Kita mengambil contoh deretan kunci yang digeser sebagai berikut :
BALIHACKmailto:BALIHACK%60a~bD!c@d#E$e%f^F&g*h(G)i-jJ=k+l\Mm{n}N;o:p
hasil dari proses berupa kode kombinasi serial number.
Kita mulai dengan contoh aplikasinya :
* Inputan karakter misalnya : BALI HACK
* Kita mengambil contoh deretan kunci yang digeser sebagai berikut :
BALIHACKmailto:BALIHACK%60a~bD!c@d#E$e%f^F&g*h(G)i-jJ=k+l\Mm{n}N;o:p
* Kunci penggesernya adalah serial number drive C: misalkan 2941-13F8
kemudian kita terjemahkan ke kode ascii 294113F8 = 5057524949517056.
kemudian kita terjemahkan ke kode ascii 294113F8 = 5057524949517056.
* Mari kita mulai manggeser :
B digeser 6 karakter menjadi A
A digeser 9 karakter menjadi A
L digeser 7 karakter menjadi K
I digeser 0 karakter menjadi a
H digeser 9 karakter menjadi `
A digeser 5 karakter menjadi I
C digeser 7 karakter menjadi a
K digeser 6 karakter menjadi @
Sehingga BALIHACK di enkripsi menjadi AAKa`Ia@, kode tersebutlah merupakan serial number yang dihasilkan. Metode tersebut merupakan metode sederhana, anda dapat mengembangkannya sendiri. Misalkan anda membuatkan tabel kunci atau anda menggunakan serial port I/O sebagai nilai penggeser(tentunya anda harus mengerti bilangan biner) dan lainya sebagainya.
source code dengan menggunakan delphi
//dibuat oleh balihack.or.id (spc).
//anda dapat memodifikasi sesuai dengan keinginan anda
//mohon kirimkan hasil modifikasi anda ke email [email protected]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
function GetChar(chSource: Char; Dictionary: string; intShift: integer): Char;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function Tform1.GetChar(chSource: Char; Dictionary: string; intShift: integer): Char;
var
i, j: Integer;
begin
Result := chSource;
i := 1;
j := Length(Dictionary);
while (i <= j) do if (Dictionary[i] = chSource) then begin Result := Dictionary[(i + intShift) mod j]; exit end else Inc(i); end; procedure TForm1.Button1Click(Sender: TObject); var i, j, intLenSource: Integer; strDictionary : string; begin if edit1.Text = '' then begin MessageDlg('Inputkan karakter yang akan di generate !', mtError, [mbOk], 0); exit; end; strDictionary:= 'BALIHACK `a~bD!c@d#E$e%f^F&g*h(G)i-jJ=k+l\Mm{n}N;o:p'+#39+'O"qs.t?Q/uvRwxSyzT01U23V45W67X89Y0Z'; intLenSource := Length(edit1.Text); edit4.Clear; j := 1; for i := 1 to intLenSource do begin edit4.text := edit4.text + GetChar(edit1.Text[i], strDictionary,strtoint(edit3.Text[j])); Inc(j); //melakukan pegeseran mulai dari 1 ke panjang key if (j > Length(edit3.Text)) then
j := 1;
end;
end;
procedure TForm1.FormActivate(Sender: TObject);
var VolumeSerialNumber: DWORD;
MaximumComponentLength: DWORD;
FileSystemFlags: DWORD;
//SerialNumber: string;
jawab,i : integer;
hasil,str : string;
begin
GetVolumeInformation('C:\',
nil,
0,
@VolumeSerialNumber,
MaximumComponentLength,
FileSystemFlags,
nil,
0);
str:=IntToHex(HiWord(VolumeSerialNumber), 4) +
//'-' +
IntToHex(LoWord(VolumeSerialNumber), 4);
edit2.Text:=IntToHex(HiWord(VolumeSerialNumber), 4) +
'-' +
IntToHex(LoWord(VolumeSerialNumber), 4);
//showmessage(str);
for i:=1 to length(str) do
begin
hasil:=copy(str,1,length(str));
if (hasil[i] in ['a'..'z']) then
jawab:=ord(hasil[i])
else
if (hasil[i] in ['A'..'Z']) then
jawab:=ord(hasil[i])
else
if (hasil[i] in ['0'..'9']) then
jawab:=ord(hasil[i])
else
if (hasil[i] in [' ','!','"','#','$','%','&','(',')','*','+',',','-','.','/',':',';','<','=','>','?','@','[',']','^','_','`','{','','}','~'] ) then
jawab:=ord(hasil[i])
else
begin
jawab:=39;
end;
edit3.Text:=edit3.Text+inttostr(jawab);
end;
end;
end.
Andalah yang tahu apa yang harus anda lakukan setelah membaca artikel ini, anda membuangnya, menyimpan, menggunakan atau lainnya. Positif atau Negatif. Terimakasih buat semua anak-anak moron brother, keep a live for our land. Terima kasih buat capil yg selalu ngeganggu tidur siang aku.!
B digeser 6 karakter menjadi A
A digeser 9 karakter menjadi A
L digeser 7 karakter menjadi K
I digeser 0 karakter menjadi a
H digeser 9 karakter menjadi `
A digeser 5 karakter menjadi I
C digeser 7 karakter menjadi a
K digeser 6 karakter menjadi @
Sehingga BALIHACK di enkripsi menjadi AAKa`Ia@, kode tersebutlah merupakan serial number yang dihasilkan. Metode tersebut merupakan metode sederhana, anda dapat mengembangkannya sendiri. Misalkan anda membuatkan tabel kunci atau anda menggunakan serial port I/O sebagai nilai penggeser(tentunya anda harus mengerti bilangan biner) dan lainya sebagainya.
source code dengan menggunakan delphi
//dibuat oleh balihack.or.id (spc).
//anda dapat memodifikasi sesuai dengan keinginan anda
//mohon kirimkan hasil modifikasi anda ke email [email protected]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Button1: TButton;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit4: TEdit;
Timer1: TTimer;
procedure Button1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
private
{ Private declarations }
function GetChar(chSource: Char; Dictionary: string; intShift: integer): Char;
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
function Tform1.GetChar(chSource: Char; Dictionary: string; intShift: integer): Char;
var
i, j: Integer;
begin
Result := chSource;
i := 1;
j := Length(Dictionary);
while (i <= j) do if (Dictionary[i] = chSource) then begin Result := Dictionary[(i + intShift) mod j]; exit end else Inc(i); end; procedure TForm1.Button1Click(Sender: TObject); var i, j, intLenSource: Integer; strDictionary : string; begin if edit1.Text = '' then begin MessageDlg('Inputkan karakter yang akan di generate !', mtError, [mbOk], 0); exit; end; strDictionary:= 'BALIHACK `a~bD!c@d#E$e%f^F&g*h(G)i-jJ=k+l\Mm{n}N;o:p'+#39+'O"qs.t?Q/uvRwxSyzT01U23V45W67X89Y0Z'; intLenSource := Length(edit1.Text); edit4.Clear; j := 1; for i := 1 to intLenSource do begin edit4.text := edit4.text + GetChar(edit1.Text[i], strDictionary,strtoint(edit3.Text[j])); Inc(j); //melakukan pegeseran mulai dari 1 ke panjang key if (j > Length(edit3.Text)) then
j := 1;
end;
end;
procedure TForm1.FormActivate(Sender: TObject);
var VolumeSerialNumber: DWORD;
MaximumComponentLength: DWORD;
FileSystemFlags: DWORD;
//SerialNumber: string;
jawab,i : integer;
hasil,str : string;
begin
GetVolumeInformation('C:\',
nil,
0,
@VolumeSerialNumber,
MaximumComponentLength,
FileSystemFlags,
nil,
0);
str:=IntToHex(HiWord(VolumeSerialNumber), 4) +
//'-' +
IntToHex(LoWord(VolumeSerialNumber), 4);
edit2.Text:=IntToHex(HiWord(VolumeSerialNumber), 4) +
'-' +
IntToHex(LoWord(VolumeSerialNumber), 4);
//showmessage(str);
for i:=1 to length(str) do
begin
hasil:=copy(str,1,length(str));
if (hasil[i] in ['a'..'z']) then
jawab:=ord(hasil[i])
else
if (hasil[i] in ['A'..'Z']) then
jawab:=ord(hasil[i])
else
if (hasil[i] in ['0'..'9']) then
jawab:=ord(hasil[i])
else
if (hasil[i] in [' ','!','"','#','$','%','&','(',')','*','+',',','-','.','/',':',';','<','=','>','?','@','[',']','^','_','`','{','','}','~'] ) then
jawab:=ord(hasil[i])
else
begin
jawab:=39;
end;
edit3.Text:=edit3.Text+inttostr(jawab);
end;
end;
end.
Andalah yang tahu apa yang harus anda lakukan setelah membaca artikel ini, anda membuangnya, menyimpan, menggunakan atau lainnya. Positif atau Negatif. Terimakasih buat semua anak-anak moron brother, keep a live for our land. Terima kasih buat capil yg selalu ngeganggu tidur siang aku.!
Ditulis oleh spc(semarapura punk crew)
0 komentar
Posting Komentar