Guest User

Untitled

a guest
Apr 23rd, 2018
95
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.20 KB | None | 0 0
  1.  
  2. void process_serial(char *name, char *serial_out)
  3. {
  4. char name_buffer[255]={0};
  5. strcpy(name_buffer,name);
  6. int name_len=strlen(name);
  7.  
  8. char serialbuffer[255]={0};
  9.  
  10. char serialtable[255]={0};
  11. strcpy(serialtable,"ACDEFGHJKLMNPRSTUWXY34679");
  12. int serialtablelen = strlen(serialtable);
  13. char notabene[255]={0};
  14. char* appname = "VitalSparks";
  15.  
  16. //strcpy(notabene,"notabene");
  17. strcpy(notabene,"picospell");
  18.  
  19. strncat(notabene,appname,4);
  20. int notabene_len = 12;
  21.  
  22.  
  23.  
  24. DWORD name_sum;
  25. DWORD notabene_sum;
  26. DWORD keypos;
  27. DWORD letterbuf;
  28. DWORD notabenebuf;
  29.  
  30.  
  31. _asm
  32. {
  33. XOR EAX,EAX
  34. XOR EBX,EBX
  35. MOV name_sum, EAX
  36. jmp1:
  37. //name sum
  38. MOVSX EAX,BYTE PTR [EBX+name_buffer]
  39. ADD name_sum,EAX
  40. INC EBX
  41. CMP EBX,name_len
  42. JNE jmp1
  43. XOR EAX,EAX
  44. XOR EBX,EBX
  45. MOV notabene_sum, EAX
  46. jmp2:
  47. //appsum sum
  48. MOVSX EAX,BYTE PTR [EBX+notabene]
  49. ADD notabene_sum,EAX
  50. INC EBX
  51. CMP EBX,notabene_len
  52. JNE jmp2
  53.  
  54. XOR EAX,EAX
  55. XOR EBX,EBX
  56. XOR ECX,ECX
  57. MOV keypos,EAX
  58. JMP License_00402360
  59.  
  60. License_004022DB:
  61. MOV ECX,keypos ; load notabene buffer position
  62. MOVSX EAX,BYTE PTR SS:[ECX+notabene] ; get letter from notabene buffer
  63. MOV notabenebuf,EAX ; put letter into notabene buffer
  64. MOV EAX,keypos ; get pos
  65. MOV EDX,name_len
  66. MOV ECX,EDX
  67. XOR EDX,EDX
  68. DIV ECX
  69. MOV EAX,name ; load name from buffer
  70. MOVSX EAX,BYTE PTR DS:[EAX+EDX] ; get letter from name
  71. MOV letterbuf,EAX ; put letter into letter buffer
  72. MOV EBX,notabene_len
  73. MOV EAX,notabenebuf
  74. MOV EDX,notabene_sum
  75. ADD EAX,EDX
  76. IMUL EBX,EAX
  77. MOV EAX,name_len
  78. MOV ECX,letterbuf
  79. MOV EDX,name_sum
  80. ADD ECX,EDX
  81. IMUL ECX
  82. ADD EBX,EAX
  83. MOV EAX,serialtablelen
  84. XCHG EAX,EBX
  85. XOR EDX,EDX
  86. DIV EBX
  87. MOV AL,BYTE PTR SS:[EDX+serialtable] ; get element from serial table and append to genned serial
  88. MOV EDX, keypos
  89. MOV BYTE PTR [EDX+serialbuffer],AL
  90. INC keypos
  91. License_00402360:
  92. MOV EDX,keypos
  93. CMP notabene_len,EDX ; compare EDX result of notabene buffer strlen
  94. JA License_004022DB
  95. }
  96. wsprintf(serial_out,"%s",serialbuffer);
  97. }
Add Comment
Please, Sign In to add comment