Pages

Jumat, 29 April 2011

tips n triks : Kombinasi Serial Number dengan CHIPERTEXT

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 :

1. Tidak memperhatikan Nama user, biasanya serial number ini dapat digunakan oleh semua user. Metode yang dipakai biasanya adalah membagi suatu bilangan dengan bilangan tertentu kemudian sisa hasil baginya yang digunakan.
Contoh : Misalkan kombinasi serial number dengan mod
" Angka dari 1000001 sampai 3000001 kemudian mod 87184.
" Jika sisa hasil baginya 0 maka cetak hasil pembagiannya.
" Sisa hasil pembagiannya itulah yang digunakan untuk memproteksi software.
Contoh aplikasi yang menggunakan metode ini :
ACDSee (kombinasi serialnya xxxxx-xxxxx-xxxxx-xxxxx).

2. Memperhatikan Nama User, serial number akan berbeda untuk setiap user name yang berbeda. Metode ini menggunakan kombinasi yang dari hasil enkripsi user name yang digunakan. Ada berbagai macam metode untuk mengenkripsi user name tersebut, dari hasil enkripsi itulah yang merupakan serial number yang valid untuk satu user name tersebut.

Baik, mari kita mulai membahasnya bersama :
Ada beberapa hal yang perlu diperhatikan yakni :
* 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.
* 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.
* 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 :
BALIHACK `a~bD!c@d#E$e%f^F&g*h(G)i-jJ=k+l\M|m{n}N;o:p'O"qs.t?Q/uvRwxSyzT01U23V45W67X89Y0Z
* Kunci penggesernya adalah serial number drive C: misalkan 2941-13F8
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 best_ajum@yahoo.com

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\M|m{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.!
Untuk mendapatkan contoh program anda dapat mendownload di www14.brinkster.com/putu4niki/chiperspc.zip

0 komentar:

Posting Komentar