25-03-2013, 10:21 PM
بسم الله الرحمن الرحيم
السلام عليكم ورحمة الله وبركاته
خطأ error i/o 104 عند انشاء ملف exe
شرح فكرة البرنامج المراد برمجته :
برنامج يقوم بقراءة سورس اي ملف exe وتشفيرها عن طريق خوارزمية RC4 وانتاج ملف مشفر exe جديد
[COLOR="Red"]
وهذه هي وحدة ال RC4 [/COLOR]
على حسب التحليل الذي توصلت اليه من تفكيري <<< تحليلي على قدر ما فهمته من عالم التشفير:p
وهو برمجة برنامج يقوم بقراءة سورس الملف وتمريرة على خوارزمية تشفير حيث انه عند التنفيذ يقوم بفك التشفير والعمل ...
السلام عليكم ورحمة الله وبركاته
خطأ error i/o 104 عند انشاء ملف exe
شرح فكرة البرنامج المراد برمجته :
برنامج يقوم بقراءة سورس اي ملف exe وتشفيرها عن طريق خوارزمية RC4 وانتاج ملف مشفر exe جديد
كود :
[align=left]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs,rc4, StdCtrls;
type
TForm1 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
Button1: TButton;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
procedure Button1Click(Sender: TObject);
procedure Edit1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var
f,n:TextFile;
r,w:string;
begin
if not SaveDialog1.Execute then
exit;
while not Eof(f) do
begin
Read(f,r);
AssignFile(f,SaveDialog1.FileName);
Rewrite(f);
Write(f,rc4code(r,'123'));
end;
closefile(f);
AssignFile(n,'crypted.exe');
Rewrite(n);
write(n, RC4Code(r,'123'));
closefile(n);
ShowMessage(SysErrorMessage(GetLastError));
try
if not SaveDialog1.Execute then
exit;
AssignFile(f,SaveDialog1.FileName);
//Append(f);
while not eof(f) do
begin
Rewrite(f);
write(f,RC4Code(r,'123'));
end;
closefile(f);
ShowMessage('Crypted !');
finally
end;
end;
procedure TForm1.Edit1Click(Sender: TObject);
begin
if not OpenDialog1.Execute then
exit;
edit1.Text:=OpenDialog1.FileName;
end;
end.
[/align]وهذه هي وحدة ال RC4 [/COLOR]
كود :
[align=left]
{************************************************************}
{ RC4 }
{ Copyright (c) 2004 Hagen Reddmann }
{************************************************************}
unit RC4;
interface
uses
SysUtils;
type
TRC4Context = record
D: array[Byte] of Byte;
I,J: Byte;
end;
procedure RC4Init(var RC4: TRC4Context; const Key: String);
procedure RC4Done(var RC4: TRC4Context);
procedure RC4Code(var RC4: TRC4Context; const Source; var Dest; Count: Integer); overload;
function RC4Code(var RC4: TRC4Context; const Value: String): String; overload;
function RC4Code(const Value, Password: String): String; overload;
implementation
procedure RC4Init(var RC4: TRC4Context; const Key: String);
var
R,S,T,K: Byte;
U,L: Integer;
begin
{$R-}
{$Q-}
L := Length(Key);
with RC4 do
begin
I := 0;
J := 0;
for S := 0 to 255 do D[S] := S;
R := 0;
U := 0;
for S := 0 to 255 do
begin
if U < L then K := PByteArray(Key)[U] else K := 0;
Inc(U);
if U >= L then U := 0;
Inc(R, D[S] + K);
T := D[S];
D[S] := D[R];
D[R] := T;
end;
end;
end;
procedure RC4Done(var RC4: TRC4Context);
begin
FillChar(RC4, SizeOf(RC4), 0);
end;
procedure RC4Code(var RC4: TRC4Context; const Source; var Dest; Count: Integer); overload;
var
S: Integer;
T: Byte;
begin
with RC4 do
for S := 0 to Count -1 do
begin
Inc(I);
T := D[I];
Inc(J, T);
D[I] := D[J];
D[J] := T;
Inc(T, D[I]);
TByteArray(Dest)[S] := TByteArray(Source)[S] xor D[T];
end;
end;
function RC4Code(var RC4: TRC4Context; const Value: String): String; overload;
var
Count: Integer;
begin
Count := Length(Value);
SetLength(Result, Count);
RC4Code(RC4, Value[1], Result[1], Count);
end;
function RC4Code(const Value, Password: String): String; overload;
var
RC4: TRC4Context;
begin
RC4Init(RC4, Password);
try
Result := RC4Code(RC4, Value);
finally
RC4Done(RC4);
end;
end;
end.
[/align]وهو برمجة برنامج يقوم بقراءة سورس الملف وتمريرة على خوارزمية تشفير حيث انه عند التنفيذ يقوم بفك التشفير والعمل ...

