Jump to content

SlicK

Active Members
  • Posts

    350
  • Joined

  • Last visited

  • Days Won

    5

Posts posted by SlicK

  1. MultInv vine de la "multiplicative inverse" si e necesar pentru ca d=e-1 mod phi sau alfel spus d e "multiplicative inverse" pentru e mod phi.

    Primul cod trebuie sa compileze fara probleme in Visual Studio 2008.

    Unele caractere sunt neinteligibile pentru ca sunt intre 0x00 si 0xFF adica in afara ASCII-ului printabil.

  2. RSA pe 16 biti, daca vrei mai mult trebuie sa folosesti clase de numere mari.


    #include <windows.h>
    #include <stdio.h>
    #include <math.h>
    #include <time.h>

    bool IsPrime(int nr)
    {
    for(int i=2;i<nr-1;i++)
    {
    if(nr%i==0)
    {
    return(false);
    }
    }
    return(true);
    }

    int RandPrime(int min, int max)
    {
    int nr=rand()%(max-min+1)+min;
    while(!IsPrime(nr))
    {
    nr++;
    }
    return(nr);
    }

    int GCD(int nr1, int nr2)
    {
    do
    {
    int tmp=nr1%nr2;
    nr1=nr2;
    nr2=tmp;
    } while(nr2!=0);
    return(nr1);
    }

    int MultInv(int a,int m)
    {
    a=a%m;
    for(int i=1;i<m;i++)
    {
    if(a*i%m==1)
    {
    return(i);
    }
    }
    return(0);
    }

    int modpow(int b, int e, int m)
    {
    int ret=1;
    while(e>0)
    {
    if((e&1)==1)
    {
    ret=(ret*%m;
    }
    e=e>>1;
    b=(b*%m;
    }
    return(ret);
    }

    void GenKeys(int& n,int& e,int& d)
    {

    int p=RandPrime(0x43,0x7F);
    int q=RandPrime(0x43,0x7F);
    if(p==q)
    {
    return(GenKeys(n,e,d));
    }
    n=p*q;
    e=3;

    int phi=(p-1)*(q-1);
    if(GCD(e,phi)!=1)
    {
    return(GenKeys(n,e,d));
    }
    d=MultInv(e,phi);
    if(d==0)
    {
    return(GenKeys(n,e,d));
    }
    }

    void Encrypt(int n,int e,char* src,int srclen,unsigned char* dst,int& dstlen)
    {
    for(int i=0;i<srclen;i++)
    {
    int c=modpow(src[i],e,n);
    dst[i*2] =(c>>8)&0xFF;
    dst[i*2+1]=c&0xFF;
    }
    dstlen=srclen*2;
    }

    void Decrypt(int n,int e,unsigned char* src,int srclen,unsigned char* dst,int& dstlen)
    {
    for(int i=0;i<srclen;i+=2)
    {
    int x=(src[i]<<8)|src[i+1];
    dst[i/2]=(unsigned char)modpow(x,e,n);
    }
    dstlen=srclen/2;
    }

    int main()
    {
    srand((int)time(0));

    int n,e,d;
    GenKeys(n,e,d);

    printf("n=%X\n",n);
    printf("e=%X\n",e);
    printf("d=%X\n",d);

    char plain[]="Hello RSA";
    printf("%s\n",plain);

    unsigned char encr[256]="";
    int elen;
    Encrypt(n,e,plain,strlen(plain),encr,elen);
    for(int i=0;i<elen;i++)
    {
    printf("%c",(UCHAR)encr[i]);
    }
    printf("\n");


    unsigned char decr[256]="";
    int dlen;
    Decrypt(n,d,encr,elen,decr,dlen);
    for(int i=0;i<dlen;i++)
    {
    printf("%c",decr[i]);
    }
    printf("\n");

    getchar();
    return(0);
    }

    Poti sa pastrezi invitatia ;)

  3. De ce sa fie cerc si nu un oval? sau un triunghi? :)

    Prin definitie "axa numerelor" are o singura dimensiune, adica alegand un punct oarecare ca punct de reper(sa-i spunem 0) de pe axa(X) un punct(numar) poate sa fie doar la distanta A (valoarea) fata de 0.

    Axa asta nu poate avea alta forma decat dreapta pentru ca in momentul in care ai curbat-o ai adaugat o noua dimensiune deci orice punct va fi definit prin minim 2 distante(A si B) pe 2 axe(X si Y) la fel de drepte si care se intersecteaza intr-un punct numit origine(00).

    In momentul in care ai curbat axa atunci fostele puncte -infinit si + infinit aflate intr-un spatiu unidimensional au devenit 2 puncte intr-un spatiu bidimensional definite prin 2 seturi de coordonate diferite.

    Ce vrei tu sa demonstrezi de fapt este ca un cerc are o singura dimensiune sau ca orice obiect cu n dimensiuni are de fapt n-1 dimensiuni.

    Coordinate system - Wikipedia, the free encyclopedia

  4. din pacate mie nu imi merge.

    Imi deschide o adresa in localhost..

    Asa si trebuie, mai multe detalii?

    hello! mie nu imi merge. Imi da vplay0wait has stopped working. am windows 7.

    Ai procesor pe 64 de biti?

    Merci foarte mult pentru program da din pacate la mine nu merge ruleaza dar cand introduc adresa imi arata {{{http://localhost:91/waiting/zxjxjqem/}}} si zice invalid

    Ma poate ajuta cineva va rog Frumos

    Invalid si mai ce? trimite-mi PM cu un printscreen.

  5. Cu aplicatia asta se poate trece peste cele 30 de minute de asteptare de la Vplay.ro si de asemenea downloada videoclipurile in format mp4.

    Campul "Vplay link" primeste un link de forma hxxp://www.vplay.ro/watch/XXXXXXXX/ iar butonul "Open" deschide un player localhost care afiseaza videoclipul.

    EDIT:

    Updatat la 2.0

    -Afiseaza subtitrarea

    -Suporta si link de forma hxxp://www.vplay.ro/waiting/XXXXXXXX/

    DOWNLOAD:

    http://www.fileshare.ro/9279374565.12

    http://www.mediafire.com/?h2w8no7v7y8tvwj

    http://www.easy-share.com/1911918606/Vplay0Wait.zip

    http://rapidshare.com/files/413643911/fileshare.ro_Vplay0Wait.zip

    http://www.speedyshare.com/files/23852903/fileshare.ro_Vplay0Wait.zip

    http://www.mediafire.com/?uichk5b89hc65tt

    • Upvote 2
  6. Programul permite selectarea serverului cu care se termina o conexiune TOR in esenta pemitand selectarea ip'ului din TOR.

    Ca aplicatia sa se poata conecta, TOR trebuie configurat sa permita autentificare fara parola

    Executabil

    http://www.fileshare.ro/8237785395.92

    Tut video

    http://www.fileshare.ro/8220338064.72

    Edit: Updatat la 1.1 (fixat un bug la reload)


  7. #include <stdio.h>

    #define A +
    #define AA -
    #define BB 1
    #define AAA int
    #define AAAA main
    #define AAAAA (
    #define AAAAAA )
    #define AAAAAAA {
    #define AAAAAAAA putchar
    #define AAAAAAAAA ,
    #define AAAAAAAAAA ;
    #define AAAAAAAAAAA }
    #define AAAAAAAAAAAA "
    #define AAAAAAAAAAAAA *
    #define AAAAAAAAAAAAAA /
    #define H AAA AAAA AAAAA
    #define B(AAAAAAAAAAAAAAA) AAAAAAAA AAAAA AAAAAAAAAAAAAAA AAAAAA AAAAAAAAAA
    #define BBB AAAAA BB A BB A BB A BB A BB A BB A BB A BB A BB A BB AAAAAA
    #define e AAAAAA AAAAAAA B(AAAAA AAAAA BBB AA BB AA BB AA BB AAAAAA AAAAAAAAAAAAA BBB A BB A BB AAAAAA) B(BBBB)
    #define l B(BBBB A AAAAA AAAAA BBB AA BB AA BB AA BB AAAAAA AAAAAAAAAAAAA BBB A BB A BB AAAAAA AAAAAAAAAAAAAA BBB)
    #define T B(AAAAA AAAAA BBB AA BB AA BB AA BB AAAAAA AAAAAAAAAAAAA BBB A BB A BB AAAAAA A BBB A BB A BB) AAAAAAAAAAA
    #define o B(BBBB A AAAAA AAAAA BBB AA BB AA BB AA BB AAAAAA AAAAAAAAAAAAA BBB A BB A BB AAAAAA AAAAAAAAAAAAAA BBB A BB A BB A BB)
    #define R B(AAAAA AAAAA BBB AA BB AA BB AA BB AAAAAA AAAAAAAAAAAAA BBB A BB A BB AAAAAA AA BBB AAAAAAAAAAAAA AAAAA BB A BB A BB A BB AAAAAA)
    #define BBBB AAAAA AAAAA AAAAA BBB AA BB AA BB AA BB AAAAAA AAAAAAAAAAAAA BBB A BB A BB AAAAAA A AAAAA BBB AAAAAAAAAAAAA AAAAA BB A BB A BB AAAAAA AA BB AAAAAA AAAAAA
    #define S B(AAAAA AAAAA BBB AA BB AA BB AA BB AAAAAA AAAAAAAAAAAAA BBB A BB A BB AAAAAA A BBB) B(AAAAA AAAAA BBB AA BB AA BB AA BB AAAAAA AAAAAAAAAAAAA BBB A BB A BB AAAAAA A BBB A BB)

    H e l l o R S T

    • Upvote 1
  8. ha, s-a aflat

    USCYBERCOM plans, coordinates, integrates, synchronizes and conducts activities to: direct the operations and defense of specified Department of Defense information networks and; prepare to, and when directed, conduct full spectrum military cyberspace operations in order to enable actions in all domains, ensure US/Allied freedom of action in cyberspace and deny the same to our adversaries.

    ar fi fost amuzant sa puna textul asta in loc de hash :)


  9. #include <windows.h>
    #include <stdio.h>

    DWORD rol(DWORD value, DWORD places)
    {
    return (value<<places)|(value>>(32-places));
    }

    DWORD ror(DWORD value, DWORD places)
    {
    return (value>>places)|(value<<32-places);
    }

    int main()
    {
    char name[MAX_PATH];
    printf("Name:"); gets(name);

    char str_xor[MAX_PATH];
    for(int i=0;i<strlen(name);i++)
    {
    str_xor[i]=name[i]^0x40;
    }

    DWORD fin_xor=0;
    DWORD store=0;
    BYTE first=name[0];
    for(int i=0;i<strlen(name);i++)
    {
    store=store>>8; store=store<<8;
    store|=(str_xor[i]&0xFF);
    store*=first;
    store+=first;
    store=rol(store,4);
    store^=0x14;
    store=ror(store,4);

    if(i<4)
    {
    fin_xor|=(store&0xFF)<<(i*8);
    }
    }

    DWORD serial=store^fin_xor;

    printf("Serial=%u\n",(DWORD)serial);

    getchar();
    return(0);
    }

  10. Programul nu are nimic doar ca nu probabil nu ai inteles cum trebuie sa arate serialul, StrToIntA converteste un numar din string in integer de exemplu "123" in 123. Daca stringul nu contine un numar atunci returneaza 0 bineinteles.

    La 00401118 ai serialul valid in EAX, convertit in decimal e serialul de care ai tu nevoie.

    Daca ai nevoie iti explic si algoritmul de key generation(ai grija la rol si ror) ;)

  11. Sanse de a genera codurile e destul de mica asa ca puteti sa va luati linistiti abonamente deocamdata :)

    Problema e modul de functionare(pe care il banuiesc eu), pentru ca exista o diferenta majora intre cartelele clasice(sau cardurile RFID) si codul e bare: codul de bare nu poate fi modificat(pentru a incrementa numarul de calatorii facute) deci numarul total de calatorii permise si numarul de calatorii facute trebuie stocate cumva(probabil intr-o baza de data off-site) asa ca cel mai probabil codurile sunt generate aleator sau folosind un algoritm si apoi stocate pentru a fi folosite pe post de parola in combinatie cu cele 2 numere de mai sus(cel putin):


    select calatorii_totale ,calatorii_efectuate from coduri where cod='01010101...';
    if(cod exista)
    {
    if(calatorii_efectuate<calatorii_totale)
    {
    //allow
    update coduri set calatorii_efectuate=calatorii_efectuate+1 where cod='01010101...';
    }
    else
    {
    //jet
    }
    }
    else
    {
    //jet dublu(ca Birkoff a generat un cod care nu e in baza de date)
    }

  12. Daca reusesti sa scrii codul intr-un asembler poti sa-l rulezi in dupa aceea in programul tau direct ca si cod masina(dar ai grija la adrese)


    #include <stdio.h>

    typedef void (__stdcall *tfunk)();
    char funk_raw[]="\x90\x90\x90\x90"; //crasheaza ca nu se duce nicaieri dupa ultimul NOP

    int main()
    {
    tfunk funk=(tfunk)&funk_raw;
    funk();
    return(0);
    }

×
×
  • Create New...