Skip to content

PT Registry Decrypting!!!!!!!

Viewing 11 posts - 16 through 26 (of 26 total)
  • Author
    Posts
  • #185256
    MrAl3n
    Member

    lol yep we waitin right here

    #185255
    DarkCoder
    Member

    blah 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.

    #185254
    Admin
    Administrator

    true 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….. 😀

    #185253
    s k 8 e r
    Member

    well, 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
    pt3

    and 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 🙁

    #185252
    Admin
    Administrator

    ok, do it…

    -waits for skater to come back and say ‘I couldn’t do it because paltalk restricted my ip for excessive server hits.’

    #185251
    Admin
    Administrator

    yea 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….. 😆

    #185250
    s k 8 e r
    Member

    well, 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..

    #185249
    nice_fox102
    Member

    loooooooooool
    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

    #185248
    Admin
    Administrator

    interesting…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

    #185247
    nice_fox102
    Member

    done.
    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.

    #185246
    codemastr_
    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:

Viewing 11 posts - 16 through 26 (of 26 total)
  • You must be logged in to reply to this topic.