[asm] Obfuscator (gmatwacz kodu) dla asemblera

d3vil

Były Moderator
Dołączył
Lipiec 25, 2005
Posty
495
<
k: przyda się
smile.gif
tylko szkoda że płatne...
pozdro
 

bw_

Użytkownik
Dołączył
Marzec 10, 2006
Posty
6
w wersji demo tez jest calkiem uzyteczne, bo mixowanie kolejnosci wykonywania instrukcji znacznie utrudnia zrozumienie dzialania dowolnego algorytmu czy funkcji
 

alder

Użytkownik
Dołączył
Marzec 10, 2006
Posty
5
może i przydatny program, ale ja go juz zcrackowałem
<

file offset 0x97B41,0x98917,0x993A8,0x9975C - wpisz 5 nop'ów
Pierwszy offset pozwala na wpisanie dowolnego seriala (bez sprawdzenia na serwerze), któryśtam kolejny blokuje sprawdzanie seriala na starcie programu,
reszta (raczej wszystkie) blokuje połączenia z serwerem

Gdyby program nie zachowywał sie jak trojan to bym się dłuzej tym pobawił :pPP
(dla napalonych: button obsfucate powoduje próbę nawiązania połączenia ... blah jakieś trojany sie ściągają, i pewnie wszystko online działa, a sam program nie jest nic wart)

screen: img75.imageshack.us/img75/8093/obfuscator5uc.jpg
Kod:
// refs to sub_499094

// original_1 = TfrmEnterCode.btnVerifyClick

#emit original_1: db 0xE8, 0x4E, 0x09, 0x00, 0x00; offset 0x97B41 

#emit original_2: db 0xE8, 0x78, 0xFB, 0xFF, 0xFF; offset 0x98917 

#emit original_3: db 0xE8, 0xE7, 0xF0, 0xFF, 0xFF; offset 0x993A8 

#emit original_4: db 0xE8, 0x33, 0xED, 0xFF, 0xFF; offset 0x9975C 





global sub main()

{

    HANDLE hFile = OpenFile("obfuscator.exe", MODE_READ|MODE_WRITE);

    if (hFile = INVALID_HANDLE_VALUE)

        return MessageBoxA(0, "obfuscator.exe not found", 0, 16);



    BOOL ok = fix(hFile, 0x97B41, &original_1, 5);

    ok     &= fix(hFile, 0x98917, &original_2, 5);

    ok     &= fix(hFile, 0x993A8, &original_3, 5);

    ok     &= fix(hFile, 0x9975C, &original_4, 5);



    if ok MessageBox(0, "path ok!", "", 32)

    else MessageBox(0, "path failed", "", 16);



    return CloseHandle(hFile);

}







sub fix(HANDLE hFile, int offset, byte *origin, int count),BOOL

{

    BOOL ok = true;

    byte *buff = new(byte, count);

    seek(hFile, offset);

    read(hFile, buff, count);



    if (memcmp(buff, origin, count) != 0) {

        ok = false;

        MessageBox(0, "bad file version! 0x"+NumToHex(offset), 0, 16);

    }

    memset(buff, 0x90, count);

    seek(hFile, offset);

    write(hFile, buff, count);

    delete buff;

    return ok;

}
 

bw_

Użytkownik
Dołączył
Marzec 10, 2006
Posty
6
gratuluje pracy na marne :glupek2: , ten exek to tylko backend, cala praca wykonuje sie po stronie serwera i bez klucza aktywacyjnego nie zdzialasz nic za chiny ludowe
smile.gif
, a to, ze ci zaakceptuje exe nic nie znaczy, zreszta sam sprawdz i sprobuj wlaczyc wszystkie opcje

ale podziwiam twoj zapal
smile.gif
, wprawiles mnie w dobry nastroj :hahaha:
 
Do góry Bottom