Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 11
  1. #1
    Tron
    Registriert seit
    29.06.2007
    Beiträge
    864

    Standard Bitte compilieren

    Tach,

    kann mir bitte jemand folgendes compilieren und irgendwo hochladen?

    /* This program is public domain. Share and enjoy.
    *
    * Example:
    * $ gcc -O2 -fomit-frame-pointer mysqlfast.c -o mysqlfast
    * $ mysqlfast 6294b50f67eda209
    * Hash: 6294b50f67eda209
    * Trying length 3
    * Trying length 4
    * Found pass: barf
    *
    * The MySQL password hash function could be strengthened considerably
    * by:
    * - making two passes over the password
    * - using a bitwise rotate instead of a left shift
    * - causing more arithmetic overflows
    */

    #include <stdio.h>

    typedef unsigned long u32;

    /* Allowable characters in password; 33-126 is printable ascii */
    #define MIN_CHAR 33
    #define MAX_CHAR 126

    /* Maximum length of password */
    #define MAX_LEN 12

    #define MASK 0x7fffffffL

    int crack0(int stop, u32 targ1, u32 targ2, int *pass_ary)
    {
    int i, c;
    u32 d, e, sum, step, diff, div, xor1, xor2, state1, state2;
    u32 newstate1, newstate2, newstate3;
    u32 state1_ary[MAX_LEN-2], state2_ary[MAX_LEN-2];
    u32 xor_ary[MAX_LEN-3], step_ary[MAX_LEN-3];
    i = -1;
    sum = 7;
    state1_ary[0] = 1345345333L;
    state2_ary[0] = 0x12345671L;

    while (1) {
    while (i < stop) {
    i++;
    pass_ary = MIN_CHAR;
    step_ary = (state1_ary & 0x3f) + sum;
    xor_ary = step_ary*MIN_CHAR + (state1_ary << 8);
    sum += MIN_CHAR;
    state1_ary[i+1] = state1_ary ^ xor_ary;
    state2_ary[i+1] = state2_ary
    + ((state2_ary << 8) ^ state1_ary[i+1]);
    }

    state1 = state1_ary[i+1];
    state2 = state2_ary[i+1];
    step = (state1 & 0x3f) + sum;
    xor1 = step*MIN_CHAR + (state1 << 8);
    xor2 = (state2 << 8) ^ state1;

    for (c = MIN_CHAR; c <= MAX_CHAR; c++, xor1 += step) {
    newstate2 = state2 + (xor1 ^ xor2);
    newstate1 = state1 ^ xor1;

    newstate3 = (targ2 - newstate2) ^ (newstate2 << 8);
    div = (newstate1 & 0x3f) + sum + c;
    diff = ((newstate3 ^ newstate1) - (newstate1 << 8)) & MASK;
    if (diff % div != 0) continue;
    d = diff / div;
    if (d < MIN_CHAR || d > MAX_CHAR) continue;

    div = (newstate3 & 0x3f) + sum + c + d;
    diff = ((targ1 ^ newstate3) - (newstate3 << 8)) & MASK;
    if (diff % div != 0) continue;
    e = diff / div;
    if (e < MIN_CHAR || e > MAX_CHAR) continue;

    pass_ary[i+1] = c;
    pass_ary[i+2] = d;
    pass_ary[i+3] = e;
    return 1;
    }

    while (i >= 0 && pass_ary >= MAX_CHAR) {
    sum -= MAX_CHAR;
    i--;
    }
    if (i < 0) break;
    pass_ary++;
    xor_ary += step_ary;
    sum++;
    state1_ary[i+1] = state1_ary ^ xor_ary;
    state2_ary[i+1] = state2_ary
    + ((state2_ary << 8) ^ state1_ary[i+1]);
    }

    return 0;
    }

    void crack(char *hash)
    {
    int i, len;
    u32 targ1, targ2, targ3;
    int pass[MAX_LEN];

    if ( sscanf(hash, "%8lx%lx", &targ1, &targ2) != 2 ) {
    printf("Invalid password hash: %s\n", hash);
    return;
    }
    printf("Hash: %08lx%08lx\n", targ1, targ2);
    targ3 = targ2 - targ1;
    targ3 = targ2 - ((targ3 << 8) ^ targ1);
    targ3 = targ2 - ((targ3 << 8) ^ targ1);
    targ3 = targ2 - ((targ3 << 8) ^ targ1);

    for (len = 3; len <= MAX_LEN; len++) {
    printf("Trying length %d\n", len);
    if ( crack0(len-4, targ1, targ3, pass) ) {
    printf("Found pass: ");
    for (i = 0; i < len; i++)
    putchar(pass);
    putchar('\n');
    break;
    }
    }
    if (len > MAX_LEN)
    printf("Pass not found\n");
    }

    int main(int argc, char *argv[])
    {
    int i;
    if (argc <= 1)
    printf("usage: %s hash\n", argv[0]);
    for (i = 1; i < argc; i++)
    crack(argv);
    return 0;
    }

  2. #2
    Gesperrt
    Registriert seit
    23.03.2009
    Beiträge
    438

    Standard

    Man könnte sich jetzt einen Spass erlauben und den Source kompilieren mit einer "reverse shell" und seinen Spass haben.
    Fazit: Wenn du nicht in der Lage bist, einen Source selbst zu kompilieren, solltest du es lassen.
    (Nein, ich hab mir weder den Source genau angeschaut noch werde ich es kompilieren).

  3. #3
    Tron
    Registriert seit
    29.06.2007
    Beiträge
    864

    Standard

    Dann hättest du dir deinen Kommentar auch sparen können!

  4. #4
    Gesperrt
    Registriert seit
    23.03.2009
    Beiträge
    438

    Standard

    Nein, definitiv nicht!

  5. #5
    has one Avatar von noctem
    Registriert seit
    08.06.2008
    Beiträge
    392

    Standard

    $ gcc -O2 -fomit-frame-pointer mysqlfast.c -o mysqlfast
    Da steht doch wie es geht. Wo liegt das Problem?
    noctem{aet}jabber.ccc.de

  6. #6
    Fortgeschrittener Avatar von gulp
    Registriert seit
    26.12.2008
    Beiträge
    48

    Standard

    Also ich bekomme beim compilieren folgende Fehler:



  7. #7
    Tron
    Registriert seit
    29.06.2007
    Beiträge
    864

    Standard

    Mit geht es mit Dev-C++ genauso.
    Hab die exe aber mittlerweile auf meinem Rechner gefunden. Hatte ich mir von einem Kollegen bereits einmal compilieren lassen.
    Und "gcc" is kacke. Muss aus den Daten ja erstmal was basteln, damit es auf Windows läuft.

  8. #8
    Gesperrt
    Registriert seit
    23.03.2009
    Beiträge
    438

    Standard

    Was bitte ist an "gcc" nicht gut?

  9. #9
    has one Avatar von noctem
    Registriert seit
    08.06.2008
    Beiträge
    392

    Standard

    Zitat Zitat von kingweed Beitrag anzeigen
    Mit geht es mit Dev-C++ genauso.
    [...]
    Und "gcc" is kacke. Muss aus den Daten ja erstmal was basteln, damit es auf Windows läuft.
    :p

    Also ich finde gcc super.
    Was soll man denn da für Windows basteln müssen?

    Und Dev-C++ nutzt MinGW, sprich den gcc port auf Windowsplatformen.
    Wenn gcc also so schlecht ist, dann darfst du auch kein Dev-C++ verwenden. :p

    ~noctem
    noctem{aet}jabber.ccc.de

  10. #10
    Der mit Anatidaephobie Avatar von blackberry
    Registriert seit
    11.07.2008
    Beiträge
    2.350

    Standard

    @kingweed Wenn GCC "kacke" ist, dann solltest du dich fragen wieso du Dev-C++ als IDE benutzt, da dieses MinGW32 als Compilersystem benutzt (welches, kurz gesagt, die Windows-Version von GCC darstellt).

    @hpoc "einen Spaß erlauben" könnte man auch wie folgt:
    - die Datei als ELF-Binary compileren
    - ihm dem Objektcode aushändigen (es wurde ja nicht nach linken gefragt)


    mfG. BlackBerry

    EDIT: noctem denkt das gleiche <3

    PDFTT cr3w a.E. — ReiDC0Re, lindor, Sera, berry
    please do feed the trolls crew and elk
    Ehrenwerte Mitglieder im Ruhestand: OpCodez, SFX.
    "Was sich blackberry gerade denkt" — Vorsicht! Frei laufender Wahnsinn!
    Zitat von fuckinghot19: "PS: Blackberry ist auf FH der Trollkönig ^^."
    An dieser Stelle danke ich all meinen Fans und Hatern gleichermaßen ^.^

Seite 1 von 2 12 LetzteLetzte

Stichworte

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •