We don't display ads so we rely on your Bitcoin donations to 1KWEk9QaiJb2NwP5YFmR24LyUBa4JyuKqZ
Post date: Sep 7, 2010 11:04:47 PM
Unit:
{*****************************************}{ Edit Server Unit Coded By Bubzuru }{ http://bubzuru.info }{ http://evilzone.org }{ Thanx To Aphex }{*****************************************}unit EditSvr;interfacetype SArray = array of string; //Loader Class TLoader = class(TObject) Settings:SArray; procedure LoadSettings; end; //Builder Class TBuilder = class(TObject) Settings:array[0..100] of string; procedure WriteSettings(filen:string); end;implementationuses Windows;const ID = '[{#}]';//Simple Xor Encryptionfunction Encrypt(s:string):string;var i:integer;begin for i := 1 to length(s) do s[i] := char(ord(s[i]) xor 444); result := s;end;//Split String Function To Seperate Settingsfunction Split(const Source,Delimiter:String):SArray;var iCount,iPos,iLength: Integer; sTemp: String; aSplit:SArray;begin sTemp := Source; iCount := 0; iLength := Length(Delimiter) - 1;repeat iPos := Pos(Delimiter, sTemp); if iPos = 0 then break else begin Inc(iCount); SetLength(aSplit, iCount); aSplit[iCount - 1] := Copy(sTemp, 1, iPos - 1); Delete(sTemp, 1, iPos + iLength); end;until False; if Length(sTemp) > 0 then begin Inc(iCount); SetLength(aSplit, iCount); aSplit[iCount - 1] := sTemp; end; Result := aSplit;end;//////////////////////////////////////////////////// Read Settings From Exe /////////////////////////////////////////////////////function _LoadSettings: string;var ResourceLocation: HRSRC; ResourceSize: dword; ResourceHandle: THandle; ResourcePointer: pointer;begin ResourceLocation := FindResource(hInstance, 'BUBZ', RT_RCDATA); ResourceSize := SizeofResource(hInstance, ResourceLocation); ResourceHandle := LoadResource(hInstance, ResourceLocation); ResourcePointer := LockResource(ResourceHandle); if ResourcePointer <> nil then begin SetLength(Result, ResourceSize - 1); CopyMemory(@Result[1], ResourcePointer, ResourceSize); FreeResource(ResourceHandle); end;end;procedure TLoader.LoadSettings;var i:integer;begin Settings := Split(_LoadSettings,ID); for i := 0 to High(Settings) do begin if Settings[i] <> '' then Settings[i] := Encrypt(Settings[i]); end;end;/////////////////////////////////////////////////////////////////////////////////////////////// Write Settings To Exe //////////////////////////////////////////////////////procedure _WriteSettings(ServerFile: string; Settings: string);var ResourceHandle: THandle; pwServerFile: PWideChar;begin GetMem(pwServerFile, (Length(ServerFile) + 1) * 2); try StringToWideChar(ServerFile, pwServerFile, Length(ServerFile) * 2); ResourceHandle := BeginUpdateResourceW(pwServerFile, False); UpdateResourceW(ResourceHandle, MakeIntResourceW(10), 'BUBZ', 0, @Settings[1], Length(Settings) + 1); EndUpdateResourceW(ResourceHandle, False); finally FreeMem(pwServerFile); end;end;procedure TBuilder.WriteSettings(filen:string);var Settingsn:string; i:integer;begin for i := 0 to 100 do begin if Settings[i] <> '' then Settingsn := Settingsn + Encrypt(Settings[i]) + ID; end; _WriteSettings(filen, Settingsn);end;///////////////////////////////////////////end.Builder:
program Builder;{$APPTYPE CONSOLE}uses SysUtils, EditSvr in 'EditSvr.pas';var Build:TBuilder;begin Build := TBuilder.Create; Build.Settings[0] := '127.0.0.1'; Build.Settings[1] := '999'; Build.Settings[2] := 'setting'; Build.WriteSettings('server.exe'); ReadLn;end.Stub:
program Stub;{$APPTYPE CONSOLE}uses SysUtils, EditSvr in 'EditSvr.pas';var Load:TLoader;begin Load := TLoader.Create; Load.LoadSettings; WriteLn(Load.Settings[1]); ReadLn;end.