Pages: [1]   Go Down
Author Topic: Bypassing facebooks IM filtering.  (Read 313 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Edison Member
*
Karma: 30
Posts: 2494
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

You'll find that "Certain" websites are blocked and you can't share the content no matter how great the video is lol, it reminded me of the time yahoo chat was around I wrote a tool which encoded a string / decoded it back, very simple stuff, the idea was not to keep the url safe but to make it infact easy to decode thus bypassing the filters.

So i wrote an app to do just that years ago, today I updated it removing the [yurl] tags etc cleaned it up recompiled and upload and in memory of yahoo chat, i'll keep the binary's orginal name YUrl.exe

How's it work, enter a string, it spits out a string (Both ways)

EG

hello becomes ayhhv
www.google.com  becomes  sss3ovvohy3evz

The idea is you copy the encoded version into facebook's IM box the other person decodes it and off they go to the "spammy" or banned website.

If you want the tool, I uploaded it to my box account.

https://app.box.com/s/mul6yy83q7vullfjrl0t

Any bugs let me know, the main bulk of the code I wrote to do this is here.

Code:
unit cjencrypt;

interface

Uses Windows,Classes,Sysutils;


Const KeyEncArray: Array[1..78,1..2] of Char = (('!','7'),('"','-'),('#','2'),('$',','),('%','$'),('&','6'),('''','#'),('(','+'),(')','%'),('*','9'),('+','8'),(',','!'),('-','*'),('.','3'),('/',':'),('0','4'),('1','/'),('2',''''),('3',')'),('4','&'),('5','5'),('6','"'),('7','('),('8','.'),('9','1'),(':','0'),('a','t'),('b','r'),('c','e'),('d','c'),('e','y'),('f','p'),('g','o'),('h','a'),('i','n'),('j','m'),('k','i'),('l','h'),('m','z'),('n','d'),('o','v'),('p','x'),('q','k'),('r','j'),('s','l'),('t','q'),('u','b'),('v','f'),('w','s'),('x','w'),('y','g'),('z','u'),('A','Z'),('B','R'),('C','J'),('D','V'),('E','Y'),('F','L'),('G','M'),('H','C'),('I','N'),('J','U'),('K','T'),('L','E'),('M','Q'),('N','O'),('O','S'),('P','F'),('Q','X'),('R','W'),('S','H'),('T','B'),('U','D'),('V','I'),('W','G'),('X','K'),('Y','P'),('Z','A'));

//Const KeyNumericArray: Array[1..26,1..2] of Char = (('!','7'),('"','-'),('#','2'),('$',','),('%','$'),('&','6'),('''','#'),('(','+'),(')','%'),('*','9'),('+','8'),(',','!'),('-','*'),('.','3'),('/',':'),('0','4'),('1','/'),('2',''''),('3',')'),('4','&'),('5','5'),('6','"'),('7','('),('8','.'),('9','1'),(':','0'));
//Const KeyLowerAlphaArray: Array[1..26,1..2] of Char = (('a','t'),('b','r'),('c','e'),('d','c'),('e','y'),('f','p'),('g','o'),('h','a'),('i','n'),('j','m'),('k','i'),('l','h'),('m','z'),('n','d'),('o','v'),('p','x'),('q','k'),('r','j'),('s','l'),('t','q'),('u','b'),('v','f'),('w','s'),('x','w'),('y','g'),('z','u'));
//Const KeyUpperArray: Array[1..26,1..2] of Char = (('A','Z'),('B','R'),('C','J'),('D','V'),('E','Y'),('F','L'),('G','M'),('H','C'),('I','N'),('J','U'),('K','T'),('L','E'),('M','Q'),('N','O'),('O','S'),('P','F'),('Q','X'),('R','W'),('S','H'),('T','B'),('U','D'),('V','I'),('W','G'),('X','K'),('Y','P'),('Z','A'));

Type TEncrypt = Class(Tobject)
   Public
    Constructor Create;
    Destructor Destroy;
    Procedure FillArray;
    Function ShuffleAndCreateArray: String;
    function ShuffleAndCreateArray2: String;
    function ShuffleAndCreateArray3: String;   
    Function EncryptStr(Str: String): String;
    Function DecryptStr(Str: String): String;
    Function LookUp(C: Char): Char;
   Private
     KeyArray: Array[1..26,1..2] of Char;
    function RevLookUp(C: Char): Char;
   Published
 End;



implementation

{ TEncrypt }

constructor TEncrypt.Create;
begin

end;

function TEncrypt.DecryptStr(Str: String): String;
Var
 N: Integer;
 C: Char;
begin
 For N:=1 to Length(Str) Do
   Begin
    C:=Str[N];
    Str[N]:=RevLookUp(C);
   End;
 Result:=Str;   
end;

destructor TEncrypt.Destroy;
begin

end;

function TEncrypt.EncryptStr(Str: String): String;
Var
 N: Integer;
 C: Char;
begin
 For N:=1 to Length(Str) Do
   Begin
    C:=Str[N];
    C:=LookUp(C);
    Str[N]:=C;
   End;
 Result:=Str;   
end;

procedure TEncrypt.FillArray;
begin

end;

function TEncrypt.RevLookUp(C: Char): Char;
Var
  N: Integer;
begin
// C:=LowerCase(C
Result:=C;
 For N:=1 to High(KeyEncArray) do
  Begin
   If KeyEncArray[N,2]=C Then
    Begin
     Result:=KeyEncArray[N,1];
     Break;
    End;
  End;
end;

function TEncrypt.LookUp(C: Char): Char;
Var
  N: Integer;
begin
// C:=LowerCase(C
Result:=C;
 For N:=1 to High(KeyEncArray) do
  Begin
   If KeyEncArray[N,1]=C Then
    Begin
     Result:=KeyEncArray[N,2];
     Break;
    End;
  End;
end;

function TEncrypt.ShuffleAndCreateArray: String;
Var
 R,R2,N2,N: Integer;
 C1,C2: Char;
 Tmp: String;
begin
 Randomize;
 Result:='';
 For N:=1 to 26 do
  Begin
   KeyArray[N,1]:=Chr(N+96);
   KeyArray[N,2]:=Chr(N+96);
  End;

 For N:=1 to 26 do
  for N2:=1 to 26 Do
    Begin
     R:=Random(26)+1;
     R2:=Random(26)+1;
     C1:=KeyArray[R,2];
     C2:=KeyArray[R2,2];
     KeyArray[R,2]:=C2;
     KeyArray[R2,2]:=C1;
    End;

//Const KeyArray: Array[1..2,1..2]
//of Char = (('a','a'),('b','b'));

 Result:='Const KeyArray: Array[1..26,1..2] of Char = (';
 For N:=1 to 26 Do
   Begin
    Tmp:='(''';
    Tmp:=Tmp+KeyArray[N,1]+''''+','+''''+KeyArray[N,2]+''''+'),';
    Result:=Result+Tmp;
   End;
 SetLength(Result,Length(Result)-1);
 Result:=Result+');';
end;

function TEncrypt.ShuffleAndCreateArray3: String;
Var
 R,R2,N2,N: Integer;
 C1,C2: Char;
 Tmp: String;
begin
 Randomize;
 Result:='';
 For N:=1 to 26 do
  Begin
   KeyArray[N,1]:=Chr(N+64);
   KeyArray[N,2]:=Chr(N+64);
  End;

 For N:=1 to 26 do
  for N2:=1 to 26 Do
    Begin
     R:=Random(26)+1;
     R2:=Random(26)+1;
     C1:=KeyArray[R,2];
     C2:=KeyArray[R2,2];
     KeyArray[R,2]:=C2;
     KeyArray[R2,2]:=C1;
    End;

//Const KeyArray: Array[1..2,1..2]
//of Char = (('a','a'),('b','b'));

 Result:='Const KeyArray: Array[1..26,1..2] of Char = (';
 For N:=1 to 26 Do
   Begin
    Tmp:='(''';
    Tmp:=Tmp+KeyArray[N,1]+''''+','+''''+KeyArray[N,2]+''''+'),';
    Result:=Result+Tmp;
   End;
 SetLength(Result,Length(Result)-1);
 Result:=Result+');';
end;


function TEncrypt.ShuffleAndCreateArray2: String;
Var
 R,R2,N2,N: Integer;
 C1,C2: Char;
 Tmp: String;
begin
 Randomize;
 Result:='';
 For N:=1 to 26 do
  Begin
   KeyArray[N,1]:=Chr(N+32);
   KeyArray[N,2]:=Chr(N+32);
  End;

 For N:=1 to 26 do
  for N2:=1 to 26 Do
    Begin
     R:=Random(26)+1;
     R2:=Random(26)+1;
     C1:=KeyArray[R,2];
     C2:=KeyArray[R2,2];
     KeyArray[R,2]:=C2;
     KeyArray[R2,2]:=C1;
    End;

//Const KeyArray: Array[1..2,1..2]
//of Char = (('a','a'),('b','b'));   

 Result:='Const KeyArray: Array[1..26,1..2] of Char = (';
 For N:=1 to 26 Do
   Begin
    Tmp:='(''';
    Tmp:=Tmp+KeyArray[N,1]+''''+','+''''+KeyArray[N,2]+''''+'),';
    Result:=Result+Tmp;
   End;
 SetLength(Result,Length(Result)-1);
 Result:=Result+');';
end;


end.


It's messy, but i'm working on a Java application with remote send text capability, may even throw in an Arduino for fun smiley


* YUrl.png (26.3 KB, 548x183 - viewed 20 times.)
Logged

Maine
Offline Offline
Sr. Member
****
Karma: 14
Posts: 418
Caution: Explosives in use.
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Would be good for eBay as well. eBay prevents you from sending people email addresses, or posting URLs in listings. A client-side browser plugin that decrypted this would make it even more awesome.
Logged

"Anyone who isn't confused really doesn't understand the situation."

Electronic props for Airsoft, paintball, and laser tag -> www.nightscapetech.com

Pages: [1]   Go Up
Jump to: