Advertisement
Guest User

Untitled

a guest
Oct 23rd, 2022
166
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. .686
  2. .model  flat, stdcall
  3. option  casemap :none   ; case sensitive
  4.  
  5. include windows.inc
  6.  
  7. ; -----------------------------------------------------------------------
  8. uselib  MACRO   libname
  9.     include     libname.inc
  10.     includelib  libname.lib
  11. ENDM
  12.  
  13. uselib  user32
  14. uselib  kernel32
  15. uselib      masm32
  16. include \masm32\macros\macros.asm
  17.  
  18. DlgProc     PROTO :DWORD,:DWORD,:DWORD,:DWORD
  19. ; -----------------------------------------------------------------------
  20. D                         EQU DWORD PTR
  21. W                         EQU WORD PTR
  22. B                         EQU BYTE PTR
  23. o                         EQU OFFSET
  24. d                         EQU DWORD PTR
  25. w                         EQU WORD PTR
  26. b                         EQU BYTE PTR
  27.  
  28. .data
  29.         align 8
  30. TinyRNG_x   dd  0
  31. TinyRNG_a   dd  100711433
  32. charset db "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZ",0
  33. caption db "key is",0
  34.  
  35.  
  36. .data?
  37.    
  38. buffer      db 256 dup(?)
  39.  
  40. .code
  41. start:
  42. gen proc
  43. local serial[13]:byte
  44. local pos[4*4]:byte
  45. new_key:
  46. lea edi,pos
  47. mov ecx,4
  48. @@:
  49.     rdtsc
  50.     adc eax, edx
  51.     adc eax, TinyRNG_x
  52.     mul TinyRNG_a
  53.     adc eax, edx
  54.     mov TinyRNG_x, eax
  55.           xor     edx,edx
  56.         mov     ebx,12
  57.         inc ebx
  58.  
  59.         sub     ebx,0
  60.         div     ebx
  61.         add     edx,0
  62. mov eax,edx  
  63. stosd
  64. loop @b
  65.  
  66. lea edi,pos
  67.  
  68. mov eax,d[edi]
  69. cmp d[edi+4],eax
  70. je new_key
  71. cmp d[edi+4+4],eax
  72. je new_key
  73. cmp d[edi+4+4+4],eax
  74. je new_key
  75. cmp d[edi+4+4],eax
  76. je new_key
  77. cmp d[edi+4+4+4],eax
  78. je new_key
  79. mov eax,d[edi+4+4]
  80. cmp d[edi+4+4+4],eax
  81. je new_key
  82.  
  83. mov ecx,12
  84. lea edi,serial
  85.  
  86. @@:
  87.     rdtsc
  88.     adc eax, edx
  89.     adc eax, TinyRNG_x
  90.     mul TinyRNG_a
  91.     adc eax, edx
  92.     mov TinyRNG_x, eax
  93.           xor     edx,edx
  94.         mov     ebx,sizeof charset-1
  95.         inc ebx
  96.  
  97.         sub     ebx,0
  98.         div     ebx
  99.         add     edx,0
  100. mov eax,edx  
  101. movzx eax,b[charset+eax]
  102. or eax,eax
  103. je new_key
  104. stosb
  105. loop @b
  106.  
  107. lea esi,pos
  108. lea edi,serial
  109. lodsd
  110. mov b[edi+eax],"W"
  111. lodsd
  112. mov b[edi+eax],"D"
  113. lodsd
  114. mov b[edi+eax],"8"
  115. lodsd
  116. mov b[edi+eax],"6"
  117. lea eax, serial
  118. mov b[eax+12],0
  119. invoke MessageBox,0,addr serial,addr caption,MB_OK
  120.  
  121.  
  122. invoke ExitProcess,0
  123.     Ret
  124. gen endp
  125.  
  126. end start
  127.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement