c0unt3rlog1c Posted September 23, 2012 Report Posted September 23, 2012 (edited) Assembly (ASM) e considerat unul din limbajele de programare mai limitate, mici.Beneficiile acestuia sunt timpul mai mic de executie, binaryuri mai mici si limitele neexistente. Aproape orice software de computer poate fi codat in ASM dar asta ar dura mai mult timp decat intr-un limbaj mai mare precum C++ .Primul exemplu este cipherul Caesar, una din cele mai simple metode de criptare. E reprezentat printr-un cipher de inlocuire unde fiecare litera din mesaj este inlocuita de numarul specific literii din alfabet, in ordine crescatoare.Al doilea este cipherul Vigenere, unde metoda de encriptare a textului este folosirea unor serii diferite de cipheruri Caesar bazate pe o litera dintr-un cuvant. E o simpla metoda de inlocuire polialfabetica.Am modificat acesti algoritimi pentru a putea crypta un byte si , de asemenea, am implementat o versiune simpla in limbajul Assembly prin FASM. Aceste coduri pot fi folosite pentru a ascunde mesaje sau a cripta fisiere.Cipherul ASM CaesarM-am folosit de urmatorul algoritm bazat pe cipherul Caesar pentru a crypta niste bytes.crypted[i] = (text[i] + key) MOD 256text[i] = (crypted[i] + key) MOD 256Acum va voi arata un exemplu unde am simplificat codul pentru a crypta doar 1 byte, in ideea de a il face mai usor de inteles, pentru a crypta un string intreg el devine mai complicat.format PEentry EntryPointEntryPoint: ; Curatarea registrilor xor eax, eax xor ebx, ebx ; Metoda de criptare ; 5Ah e byteul care dorim sa il criptam ; 80h este cheia ce o vom folosi mov al, 5Ah add al, 80h mov bx, 100h xor edx, edx idiv bx ; Byteul nostru criptat este acum dl ; Metoda de decriptare ; dl este byteul ce dorim sa decriptam iar valoarea lui este DAh ; 80h este cheia ce o vom folosi mov ax, dx sub al, 80h mov bx, 100h xor edx, edx idiv bx ; Byteul nostru decriptat este acum 5Ah retCipherul ASM VegenereDe data aceasta va voi arata doar algoritmul de criptare, excluzand codul, cred ca il puteti face si singuri.crypted[i] = (text[i] + key[i]) MOD 256text[i] = (crypted[i] + key[i]) MOD 256Alte informatiiS-ar putea sa updatez postul cu mai multi cipheri, faceti un bookmark daca vreti.Multumesc pentru ca ati citit. Edited October 16, 2012 by c0unt3rlog1c Quote