- This topic has 25 replies, 8 voices, and was last updated 17 years ago by Ponies.
-
AuthorPosts
-
September 3, 2006 at 3:25 pm #185256MrAl3nMember
lol yep we waitin right here
September 5, 2006 at 1:09 am #185255DarkCoderMemberblah not even the best programmer should waste there time on doing this.. unless it was being made ONLY for personal use and no one else will have it. Otherwise.. i give it.. at the most.. a week before paltalk changes the algorithem.
September 5, 2006 at 9:52 pm #185254AdminAdministratortrue man…..this is like the kind of thing that if u did figure it out u should keep it to ur self or maybe share it wit some close friends…….cus if paltalk finds out they will change it and then all the work was in vain……
i like to crack codes and stuff so this project was appealing to me and wen i saw some patterns i though this could be some fun lol….. 😀
November 9, 2006 at 2:07 pm #185253s k 8 e rMemberwell, its been about a year or two, so i may be rusty, but cant you just make an autoloader for making pt nicks, just make it auto, and add a digit to the end of the name, you know
pt1
pt2
pt3and see if you can make about 7 nicks in 30 seconds, how it would effect the passes then :s, or i may not just know what im talking about anymore 🙁
November 9, 2006 at 2:59 pm #185252AdminAdministratorok, do it…
-waits for skater to come back and say ‘I couldn’t do it because paltalk restricted my ip for excessive server hits.’
November 9, 2006 at 8:47 pm #185251AdminAdministratoryea an auto nik maker would be a good idea so u could make niks at different intervals of time….but i could either be on to something or completely off base….
lol….i havnt spent any time figuring this out since my last post….. 😆
November 13, 2006 at 2:15 pm #185250s k 8 e rMemberwell, i would try, but i dont even have a pc. i have been posting from school… taking a ged class.. i will be back on,programming soon enough, then i will do it..
March 21, 2007 at 11:18 pm #185249nice_fox102Memberloooooooooool
interesting. just some hours ago i was trying to decrypt registry passwords and post a question in the pt program request forum to see if such program already exist. and now i found this hot topic here.
i didnt completly analyze this algorithm yet so for now I can say the first step::
paltalk get the serial number of drive wich installed on it and then combine it with username for example if nick is restive543 and serial number of drive is 013B830C it make this “r0e1s3tBi8v3e05C43” then strcat this to itself twice and this is the result
“r0e1s3tBi8v3e05C43r0e1s3tBi8v3e05C43r0e1s3tBi8v3e05C43”ths string and each byte of password and a random number and a result from _time function used to make 4 digit for each byte of password
March 22, 2007 at 12:04 am #185248AdminAdministratorinteresting…but really wen u thing of it…..if ur able to copy the registry where the password r stored u dont need to decrypt them….u could just make new keys and new strings containing the pw n other data …put it in ur registry…n u open up paltalk n the nik will be there n u can login wit it…lol…n if u want to know the pw u just download a password decryptor…easy to find…and it will take the ******* that u see in the password field n u will see the actual password…so really i dont see a need to decrypt this stuff….although it is interesting…lol
March 22, 2007 at 10:52 pm #185247nice_fox102Memberdone.
loooooooool 😀
here is small delphi source code for decrypting these passwords. this can be used in our own client for paltalk.thanx Mike. your old post help me a lot in finding the algorithm.
March 24, 2007 at 11:01 am #185246codemastr_Member
unit MainUnit;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Registry;
type
TMainForm = class(TForm)
UsersCombo: TComboBox;
Label3: TLabel;
SerialLabel: TStaticText;
EncPassLabel: TStaticText;
DecPassLabel: TStaticText;
procedure FormShow(Sender: TObject);
procedure UsersComboChange(Sender: TObject);
private
{ Private declarations }
function GetVolumeSerial: string;
function GivePassword(UserName, EncPass, VolumeSerial: string): string;
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
uses StrUtils;
{$R *.dfm}
procedure TMainForm.FormShow(Sender: TObject);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
if Reg.OpenKey('SoftwarePaltalk',False) then
begin
Reg.GetKeyNames(UsersCombo.Items);
if UsersCombo.Items.Count>0 then
UsersCombo.ItemIndex := UsersCombo.Items.IndexOf(Reg.ReadString('cur_user'));
Reg.CloseKey;
end;
Reg.Free;
SerialLabel.Caption := GetVolumeSerial;
UsersComboChange(Self);
end;
function TMainForm.GetVolumeSerial: string;
var
SerialNo: Cardinal;
Tmp: Cardinal;
begin
GetVolumeInformation('C:',nil,0,@SerialNo,Tmp,Tmp,nil,0);
Result := IntToHex(SerialNo,8);
end;
procedure TMainForm.UsersComboChange(Sender: TObject);
var
Reg: TRegistry;
begin
Reg := TRegistry.Create;
Reg.OpenKey('SoftwarePaltalk'+UsersCombo.Text,False);
EncPassLabel.Caption := Reg.ReadString('pwd');
Reg.CloseKey;
Reg.Free;
DecPassLabel.Caption := GivePassword(UsersCombo.Text,EncPassLabel.Caption,SerialLabel.Caption);
end;
function TMainForm.GivePassword(UserName, EncPass,
VolumeSerial: string): string;
var
i,j,k: Integer;
MixedUserSerial: string;
begin
while (Length(UserName)+Length(VolumeSerial)>0) do
begin
if Length(UserName)>0 then
begin
MixedUserSerial := MixedUserSerial + LeftStr(UserName,1);
Delete(UserName,1,1);
end;
if Length(VolumeSerial)>0 then
begin
MixedUserSerial := MixedUserSerial + LeftStr(VolumeSerial,1);
Delete(VolumeSerial,1,1);
end;
end;
i := Length(MixedUserSerial);
MixedUserSerial := MixedUserSerial + MixedUserSerial + MixedUserSerial;
j := 0;
while Length(EncPass)>0 do
begin
k := StrToInt(LeftStr(EncPass,3));
Delete(EncPass,1,4);
k := k - j - $7A - Byte(MixedUserSerial);
Result := Result + Char(k);
Inc(j);
Inc(i);
end;
end;
end.
We Must take a look at the source code from Delphi… =)
It uses GetVolumeSerial etc.. to do get a number then calculate … So it has something to do with the Volume Information — which helps Decrypt.
Calculation:
i,j,k: Integer;
MixedUserSerial: string;
begin
while (Length(UserName)+Length(VolumeSerial)>0) do
begin
if Length(UserName)>0 then
begin
MixedUserSerial := MixedUserSerial + LeftStr(UserName,1);
Delete(UserName,1,1);
end;
if Length(VolumeSerial)>0 then
begin
MixedUserSerial := MixedUserSerial + LeftStr(VolumeSerial,1);
Delete(VolumeSerial,1,1);
end;
end;
i := Length(MixedUserSerial);
MixedUserSerial := MixedUserSerial + MixedUserSerial + MixedUserSerial;
j := 0;
while Length(EncPass)>0 do
begin
k := StrToInt(LeftStr(EncPass,3));
Delete(EncPass,1,4);
k := k - j - $7A - Byte(MixedUserSerial);
Result := Result + Char(k);
Inc(j);
Inc(i);
end;
How to Get Serial in C++
#include
#include
int main() {
char filesys[9];
char vollabel[13];
char buf[4] = "C:";
unsigned long flen,flgs,sn ; /* (only sn used) */;
int x = GetVolumeInformation(buf,vollabel,12L,&sn,&flen,&flgs,filesys,8L);
std::cout << sn;
return 0;
}
It will return a number such as (192819381) and then Convert it to Hex you will get the same Value the Delphi Decryptor has in the Volume Serial:
-
AuthorPosts
Related
- You must be logged in to reply to this topic.