Released for beneficial purposes. These are rare due to unknown reasons, but one of the reasons apparent is because of the lack of value. It's a 3-4 step procedure to "steal" profiles on Gaia.
Anyways, enjoy.
Made in Object Pascal, my favorite RAD programming language.PHP Code:
{
Stable version - V1.0 change logs: updated GUI via the XP Manifest control to
eradicate the old-school GUI theme which lead to bugs on Linux. Also decided to switch
the GUI-style to the Win32 Tool Window. Added Exit commands to prevent blanks in the
CSS-box (sometimes you'll still get blanks on Linux, I'll look into this). Detracted
version to a more suitable number (1.0 / 1). The sCSS variable is now declared globally
instead of locally. Renamed the variables. Don't ask why, I just felt it was necessary.
Remember kids, works best on Windows.
}
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, Clipbrd, Registry, ShellAPI, IdURI, XPMan;
type
ThForm = class(TForm)
hInput: TEdit;
hBtn: TButton;
hEdit: TMemo;
hLabel: TLabel;
hBtn2: TButton;
IdHTTP: TIdHTTP;
XPManifest: TXPManifest;
procedure hBtnClick(Sender: TObject);
procedure hBtn2Click(Sender: TObject);
procedure hLabelClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
hForm: ThForm; sCSS: string;
implementation
{$R *.dfm}
function InStr(sIni: string; sSubStr: string): Boolean;
var
iPos: integer;
begin
iPos := Pos(sSubStr, sIni);
If iPos <> 0 Then
Result := True
Else
Result := False
end;
function ProfileEncode(sUser: string): String;
var
sStr: string;
begin
sStr := StringReplace(sUser, ' ', '-', [rfReplaceAll, rfIgnoreCase]);
Result := sStr;
end;
function URLEncode(const S: string; const InQueryString: Boolean): String;
var
Idx: Integer;
begin
Result := '';
for Idx := 1 to Length(S) do
begin
case S[Idx] of
'A'..'Z', 'a'..'z', '0'..'9', '-', '_', '.':
Result := Result + S[Idx];
' ':
if InQueryString then
Result := Result + '+'
else
Result := Result + '%20';
else
Result := Result + '%' + SysUtils.IntToHex(Ord(S[Idx]), 2);
end;
end;
end;
function GetStrBetweenTags(Const Value, TagI, TagF : string): String;
var
i, f: integer;
begin
i := Pos(TagI, Value);
f := Pos(TagF, Value);
If (i > 0) And (f > i) Then
Result := Copy(Value, i + length(TagI), f - i - length(TagF) + 1);
end;
function OpenURL(const sURL: string): Boolean;
var
Browser: string;
begin
Result := True;
Browser := '';
with TRegistry.Create do
try
RootKey := HKEY_CLASSES_ROOT;
Access := KEY_QUERY_VALUE;
if OpenKey('\htmlfile\shell\open\command', False) then
Browser := ReadString('') ;
CloseKey;
finally
Free;
end;
if Browser = '' then
begin
Result := False;
Exit;
end;
Browser := Copy(Browser, Pos('"', Browser) + 1, Length(Browser)) ;
Browser := Copy(Browser, 1, Pos('"', Browser) - 1) ;
ShellExecute(0, 'open', PChar(Browser), PChar(sURL), nil, SW_SHOW) ;
end;
procedure ThForm.hBtnClick(Sender: TObject);
var
sUser: string; strHTML: string; strValue: string; strBetween: string; StrVal: string;
strBetw: string; sResponse: string; sUserID: string;
begin
hEdit.Text := '';
sUser := ProfileEncode(hInput.Text);
sResponse := IdHTTP.Get('http://gaiaonline.com/chat/gsi/index.php?m=121' + Char(01) + URLEncode(hInput.Text, False));
hInput.Text := '';
sResponse := StringReplace(sResponse, IntToStr(121) + Char(01) + Char(05), '', [rfReplaceAll, rfIgnoreCase]);
sResponse := Trim(sResponse);
sUserID := sResponse;
try
strHTML := IdHTTP.Get('http://www.gaiaonline.com/profiles/' + sUser + '/' + sUserID + '/');
except
on e: Exception do
begin
ShowMessage('Error! gStealer has encountered a terminal error due to the following reason(s):' + #10#13 + #10#13 +
'A). The program couldnt evaluate the validity of the specified user.' + #10#13 + #10#13 + 'Refer to the readme text file for more information.');
end;
end;
If InStr(strHTML, 'This profile is not available to the public') Then
begin
hEdit.Text := 'This profile is not available to the public.';
Exit;
end;
If InStr(strHTML, 'No user ID specified or user does not exist!') Then
begin
hEdit.Text := 'User not found; invalid user specified.';
Exit;
end
Else
begin
If InStr(strHTML, 'Profiles v1 |') And InStr(strHTML, '//s.cdn.gaiaonline.com/src/css/profiles/v1/classic_theme.css') Then
begin
strHTML := IdHTTP.Get('http://s.cdn.gaiaonline.com/src/css/profiles/v1/classic_theme.css');
sCSS := strHTML;
hEdit.Text := sCSS;
Exit;
end;
StrValue := strHTML;
strBetween := GetStrBetweenTags(strHTML, '<style type="text/css">', '</head>');
If InStr(strHTML, 'Profiles v1 |') Then
begin
Delete(strBetween, Pos('</style>', strBetween), Pos('<body id', strBetween));
sCSS := Trim(strBetween);
hEdit.Text := sCSS;
Exit;
end
Else
StrVal := strBetween;
strBetw := GetStrBetweenTags(StrVal, '<style type="text/css">', '</head>');
Delete(strBetw, Pos('</style>', strBetw), Pos('<body id', strBetw));
sCSS := Trim(strBetw);
hEdit.Text := sCSS;
end;
end;
procedure ThForm.hBtn2Click(Sender: TObject);
begin
Clipboard.AsText := sCSS;
end;
procedure ThForm.hLabelClick(Sender: TObject);
begin
OpenURL('http://www.wonoes.com/downloads');
end;
end.
Note: Code is redundant and could be simplified. Due to boredom I pretty much rushed through this.
Results 1 to 3 of 3
- 03 Aug. 2011 06:41pm #1
[Source] GaiaOnline Profile Stealer
Last edited by Protozoid; 03 Aug. 2011 at 06:48pm.
- 04 Aug. 2011 01:13pm #2
- Join Date
- Apr. 2010
- Location
- When freedom is outlawed only outlaws will be free
- Posts
- 5,113
- Reputation
- 195
- LCash
- 0.71
Ooh nice. I saw this for download on Wonoes
- 05 Aug. 2011 03:00am #3
yee homeboy, it b' made in dat old-school language Delphi, or oidahwise known as Object Pascal. dis language isn't used much anymore so i daught i'd be cool if i started to use it for RAD Windows prgrmming. njoy this junk n shiz dawg.
c# and .net cn gtfo, kno wat i mean on da 411??