Advertisement
Guest User

Untitled

a guest
Sep 20th, 2017
61
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. global main
  2.  
  3. extern printf
  4. extern scanf
  5. extern strcmp
  6. extern strlen
  7. extern getch
  8. extern wsprintfA
  9. extern strcat
  10.  
  11. segment .data
  12. sUser   DB  `Usuario: \0`
  13. sSerial    DB  `Serial: \0`
  14. cCad    DB  `Yo-Mismo\0`
  15. Ftoi    DB  `%i\0`
  16. Ftos  DB  `%s\0`
  17. Ftosi DB  `%u\0`
  18. sBien DB  `--------------------\nFelicidades, cracker\n--------------------\0`
  19. sMal    DB  `Sigue intentando...\0`
  20.  
  21. segment .bss
  22. User resb    16
  23. Serial    resb    16
  24. FinSer1   resb    16
  25. FinSer2   resb    16
  26. FinSer3   resb    16
  27. FinSer4   resb    16
  28. sLen1 resb    4
  29.  
  30. segment .text
  31. main:
  32.    PUSH    EBP
  33.    MOV     EBP,ESP
  34.    SUB     ESP,0xC
  35.    MOV     [ESP],dword sUser
  36.    CALL    printf
  37.    MOV     [ESP],dword Ftos
  38.    MOV     [ESP+4],dword User
  39.    CALL    scanf
  40.    MOV     [ESP],dword User
  41.    CALL    strlen
  42.    CMP     EAX,4
  43.    JB      MAL
  44.    MOV     [ESP],dword sSerial
  45.    CALL    printf
  46.    MOV     [ESP],dword Ftos
  47.    MOV     [ESP+4],dword Serial
  48.    CALL    scanf
  49.    MOV     [ESP],dword Serial
  50.    CALL    strlen
  51.    CMP     EAX,4
  52.    JB      MAL
  53.    XOR     ECX,ECX
  54. bucle:
  55.    MOV     DL,byte [User+ecx]
  56.    MOV     AL,byte [cCad+ecx]
  57.    XOR     AL,DL
  58.    MOV     byte [FinSer1+ECX],AL
  59.    INC     ECX
  60.    CMP     ECX,4
  61.    JNE     bucle
  62.    PUSH    FinSer1
  63.    CALL    strlen
  64.    MOV     EDX,EAX
  65.    XOR     EAX,EAX
  66.    XOR     ECX,ECX
  67. Fu1:
  68.    CMP     ECX,EDX
  69.    JE      Fu2
  70.    ADD     AX,word [FinSer1+ECX]
  71.    INC     ECX
  72.    JMP     Fu1
  73. Fu2:
  74.     IMUL    EAX,EAX,0x666
  75.     SHR     EAX,2
  76.     ROL     EAX,14
  77.     ROR     EAX,0x14
  78.     IMUL    EAX,EAX,2
  79.     NOT     EAX
  80.     ADD     EAX,0x999
  81.     MOV     dword [FinSer2],EAX
  82.  
  83.     PUSH    dword [FinSer2]
  84.     PUSH    Ftosi
  85.     PUSH    FinSer3
  86.     CALL    wsprintfA
  87.     PUSH    FinSer3         ;strcat(Destino,Origen);
  88.     PUSH    User
  89.     CALL    strcat
  90.     PUSH    User
  91.     MOV     [ESP+4],dword Serial
  92.     CALL    strcmp
  93.     CMP     EAX,0
  94.     JE      BIEN
  95.     JMP     MAL
  96. BIEN:
  97.    MOV     [ESP],dword sBien
  98.    CALL    printf
  99.    CALL    getch
  100.    LEAVE
  101.    RET
  102. MAL:
  103.    MOV     [ESP],dword sMal
  104.    CALL    printf
  105.    CALL    getch
  106.    LEAVE
  107.    RET
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement