C++ Code in PureBasic wandeln

Fragen zu allen anderen Programmiersprachen.
Marc-21
Beiträge: 39
Registriert: 11.02.2008 19:37

C++ Code in PureBasic wandeln

Beitrag von Marc-21 »

Hi bin gerade dabei ein programm zuschreiben was sich mit einen server verbindet.
Man erhält vom server einen Code der verändert werden muß und diesen zurück schicken
an den Server. Ein anders programm was dieses kann wird es über C++ geregelt verstehe es aber nicht 100%
was da passiert.

Code: Alles auswählen

static const char *cccamstr="CCcam";


void Xor(unsigned char *data, int length) 

  {

        if(length>=16)

        for(int index=0; index<8; index++) {

             data[8]=index*data[0];

             if(index<=5) data[0]^=cccamstr[index];

            data++;

            }

       }

würde das gerne in Purebasic um wandeln .
Danke für eure hilfe
Zuletzt geändert von Marc-21 am 15.02.2010 21:33, insgesamt 1-mal geändert.
Benutzeravatar
Tur0k
Beiträge: 187
Registriert: 16.02.2009 21:41
Computerausstattung: 4.00 GB RAM, 2x 2.20Ghz, 340GB+500GB

Re: Verständins Frage

Beitrag von Tur0k »

Wenn du schon mit C++ arbeitest, solltest du wissen was for, if...else.. usw. ist.
Dann versteht du auch den Code ohne Probleme.
buuh* :D
Marc-21
Beiträge: 39
Registriert: 11.02.2008 19:37

Re: C++ Code in PureBasic wandeln

Beitrag von Marc-21 »

Das mit if und else keine problem

Code: Alles auswählen



  {

        if(length>=16)  Wenn die länge 16 ist weiter

        for(int index=0; index<8; index++)  hier wird eine schleife gemacht und bist 7 gezählt

{

             data[8]=index*data[0];  Keine ahnung was hier passiert

             if(index<=5)  wenn Index kleiner gleich 5 ist geht es weiter

             data[0]^=cccamstr[index]; ^= steht für Xor  aber passiert hier genau das in den Klammer steht das für die länge?

            data++; hier wird hinzugefügt aber wohin

            }

       }
Benutzeravatar
Tur0k
Beiträge: 187
Registriert: 16.02.2009 21:41
Computerausstattung: 4.00 GB RAM, 2x 2.20Ghz, 340GB+500GB

Re: C++ Code in PureBasic wandeln

Beitrag von Tur0k »

data++;
ist wie data + 1

data[8]=index*data[0];
data[8] ist gleich = index mal data[0]
data ist ein Array

also multiplizieren.


Ich bin auch ein Anfänger in C++. Falls etwas nicht stimmt, bitte korrigieren! :lol:

Edit: Unten ist eh die Lösung.
Zuletzt geändert von Tur0k am 16.02.2010 00:16, insgesamt 2-mal geändert.
buuh* :D
Marvin
Beiträge: 497
Registriert: 17.07.2005 14:42
Wohnort: Krikkit

Re: C++ Code in PureBasic wandeln

Beitrag von Marvin »

Weil ich gerade nicht viel zu tun habe und nett bin (bei mir ist eher das Problem, dass ich PB weniger kann :mrgreen:):

Code: Alles auswählen

EnableExplicit

Global cccamstr.s="CCcam"

Procedure _Xor(*dat, length)
    If length >= 16
        For index = 0 To 7
            PokeB(*dat + 8, (index * (PeekB(*dat) & $FF)) & $FF)
            If index <= 5
                PokeB(*dat, ((PeekB(*dat) & $FF) ! (PeekB(@cccamstr + index) & $FF)) & $FF)
            EndIf
            *dat + 1
        Next
    EndIf
EndProcedure
Ungetestet. :wink:

EDIT: Ich hab die Prozedur mal _Xor statt Xor genannt, weil der Compiler bei "Xor" meckern könnte.
Marc-21
Beiträge: 39
Registriert: 11.02.2008 19:37

Re: C++ Code in PureBasic wandeln

Beitrag von Marc-21 »

Hi Danke für eure mühe

verstehe es noch nicht ganz wenn ich den code benutzte kommen nur eine länge von 8.
Wird also nicht die ganze code verändert.
dieser Code kommt vom server der verändert werden muß.
Ich weiß auch die lösung aber keine ahnug wie man das schaft.
FB6F4D20F9485A81204FCDC514067466
Dieser Code wied mit dem Code den ich gepostet habe verändert
So läuft es bei den anderen program ab.

Xor(buffer,len);
unsigned char buff2[64];
SHA1(buffer,len,buff2);
decr.Init(buff2,20);
decr.Decrypt(buffer,buffer,16);
encr.Init(buffer,16);
encr.Encrypt(buff2,buff2,20);
das geht wieder zurück mit einen anderen Programm raus gefunden

EA7FB11563F31E6193CA64DA02E4502C23ECADC5
Benutzeravatar
Tur0k
Beiträge: 187
Registriert: 16.02.2009 21:41
Computerausstattung: 4.00 GB RAM, 2x 2.20Ghz, 340GB+500GB

Re: C++ Code in PureBasic wandeln

Beitrag von Tur0k »

So viel "Code" im Text. :freak:
Was möchtest du genau?
buuh* :D
Marc-21
Beiträge: 39
Registriert: 11.02.2008 19:37

Re: C++ Code in PureBasic wandeln

Beitrag von Marc-21 »

Ist das richtig das der Code den ich geschrieben habe im ersten Post nur eine länge von 8 rausgibt das ist erstmal die frage?
Marvin
Beiträge: 497
Registriert: 17.07.2005 14:42
Wohnort: Krikkit

Re: C++ Code in PureBasic wandeln

Beitrag von Marvin »

Der Code, den du im ersten Post gepostet hast, macht gar nix, weil die Funktion nirgends aufgerufen wird...
Marc-21
Beiträge: 39
Registriert: 11.02.2008 19:37

Re: C++ Code in PureBasic wandeln

Beitrag von Marc-21 »

Okay wenn er so auf gerufen wird

Xor(buffer,len);
Antworten