kohlrak

Untitled

Jul 18th, 2017
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.75 KB | None | 0 0
  1. [kohlrak@kohlrak-server mixed]$ dir
  2. input.txt main.cpp makefile prng.S
  3. [kohlrak@kohlrak-server mixed]$ cat input.txt
  4. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Quisque non aliquam urna. Duis quis augue sit amet nisl sagittis molestie. Vestibulum egestas et mauris id ornare. Donec placerat pharetra turpis, vitae faucibus diam facilisis id. Proin accumsan metus nec diam ullamcorper, ut vulputate nisl feugiat. Fusce pharetra, erat eu faucibus elementum, arcu massa gravida leo, non pharetra sapien justo nec dui. Etiam hendrerit ante et lorem semper, non posuere augue consequat. Sed mauris mi, varius eget vulputate eu, commodo nec metus. Curabitur malesuada lorem elit. Vestibulum luctus, mi eget dapibus cursus, dolor nunc efficitur ligula, at bibendum turpis dui lobortis risus. Aenean sed massa id mauris aliquet cursus.
  5.  
  6. Nullam orci massa, finibus vitae eros et, gravida placerat sem. Morbi vehicula odio eget lobortis scelerisque. Praesent gravida euismod rutrum. Proin magna elit, sollicitudin sollicitudin sodales eget, hendrerit eu purus. Aliquam lobortis dui ac tortor dignissim, vel facilisis arcu interdum. Pellentesque elit nisl, imperdiet ut leo quis, feugiat porta neque. Nunc quis urna in odio facilisis porttitor. Pellentesque commodo dictum velit nec viverra. Aliquam a cursus dui. Phasellus ultricies mattis dapibus. Aliquam leo risus, scelerisque vitae nibh non, lobortis tincidunt lorem. Cras porta dolor non mauris elementum posuere. Curabitur rutrum at nibh ut iaculis. Integer faucibus massa pharetra, varius lectus bibendum, volutpat urna.
  7.  
  8. Nunc et risus nec sem placerat lobortis eget eget mauris. Aliquam lobortis, ligula quis vestibulum mollis, risus lorem suscipit erat, sit amet auctor orci neque a elit. Suspendisse in felis sagittis, placerat turpis ut, dignissim lacus. Etiam consectetur imperdiet rhoncus. Fusce aliquam, diam eu euismod sodales, justo felis vestibulum leo, at bibendum elit velit vitae odio. Nunc imperdiet augue nulla, id suscipit purus interdum vitae. Suspendisse eu enim metus. Pellentesque quis nisi tempus, elementum eros sit amet, luctus augue. Etiam nulla elit, viverra in euismod quis, tincidunt ultrices nulla. Sed eleifend, eros sed ornare convallis, turpis ante suscipit purus, sed faucibus eros tortor ac ipsum. Proin sit amet mauris nibh.
  9.  
  10. Curabitur sodales vulputate lectus, sit amet laoreet nisi facilisis vitae. Vivamus sit amet ex egestas, pretium justo ut, scelerisque arcu. Cras tortor nibh, fermentum vitae ipsum eget, blandit sollicitudin velit. Phasellus ornare urna non magna pulvinar fringilla. Quisque vitae eros auctor, sollicitudin eros id, porta orci. Phasellus maximus elementum lacus, at scelerisque lectus pellentesque at. Nullam eleifend vulputate aliquam. Donec in tristique justo, eu tempus massa. Curabitur nec tristique neque. Integer quis nibh viverra, molestie elit sed, blandit nunc. In tempor, tellus nec volutpat convallis, ex tellus tempus magna, ut efficitur libero orci et ipsum. Nunc et turpis vulputate, fringilla magna vel, pulvinar diam. Mauris accumsan ex ut tellus faucibus tristique. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Nulla scelerisque auctor elit, eu convallis neque mattis non.
  11.  
  12. Praesent at massa at enim sollicitudin fringilla. Pellentesque habitant morbi tristique senectus et netus et malesuada fames ac turpis egestas. Maecenas et sodales ex. Curabitur at dictum nulla. Proin mauris nibh, sollicitudin at felis et, pulvinar ornare tellus. Fusce eu lacus sit amet sapien volutpat tempus eget eget risus. Fusce venenatis non odio sit amet congue. Nulla vehicula, lacus sed hendrerit commodo, magna arcu malesuada dui, sed vestibulum sem lorem eget risus. Cras pharetra massa ac interdum cursus. Ut vestibulum neque a tortor vestibulum, a mollis felis consectetur. Donec id tristique neque.
  13.  
  14. Donec bibendum odio pulvinar dolor facilisis sodales. Donec a facilisis mauris, eget ornare est. Fusce sed aliquet purus, a vulputate tortor. Vestibulum ante ipsum primis in faucibus orci luctus et ultrices posuere cubilia Curae; Donec in viverra magna, et pellentesque nulla. Proin at nisl viverra, porttitor volutpat.
  15. [kohlrak@kohlrak-server mixed]$ cat makefile
  16. all:
  17. gcc main.cpp prng.S -o main
  18. run:
  19. make all
  20. ./main 373593668 input.txt
  21. [kohlrak@kohlrak-server mixed]$ cat main.cpp
  22. #include <stdio.h>
  23. #include <stdlib.h>
  24.  
  25. extern "C" int seed;
  26. extern "C" short prng();
  27. extern "C" int encrypt(char* input, int size);
  28.  
  29.  
  30. int main(int argc, char** argv){
  31. int seed=atoi(argv[1]), read;
  32. char buffer[1024];
  33. for(int loopy = 0; loopy<1024; loopy++) buffer[loopy]=0;
  34. FILE *fin = fopen(argv[2], "rb"), *fout = fopen("output.txt", "wb+");
  35. if(!fin){
  36. printf("Error! Could not find file!\n");
  37. return 1;
  38. }
  39. while(read=fread(buffer, 1, 1024, fin)){
  40. encrypt(buffer, read);
  41. fwrite(buffer, read, 1, fout);
  42. }
  43. fclose(fin);
  44. fclose(fout);
  45. return 0;
  46. }
  47. [kohlrak@kohlrak-server mixed]$ cat prng.S
  48. .intel_syntax noprefix
  49. .code32
  50.  
  51. .global seed
  52. .global prng
  53. .global encrypt
  54.  
  55. .section .text
  56.  
  57. prng: #Our random number generator
  58. mov eax, seed
  59. shr eax, 3
  60. xor eax, seed
  61. rol eax, 5
  62. mov seed, eax
  63. and eax, 0xFFFF
  64. ret
  65.  
  66. prnge: mov edx, seed
  67. shr edx, 3
  68. xor edx, seed
  69. rol edx, 5
  70. mov seed, edx
  71. ret
  72.  
  73. encrypt:
  74. mov esi, [esp+4]
  75. mov esi, esi
  76. mov edi, esi
  77. mov ecx, [esp+8]
  78. encrypt_loop:
  79. lodsb
  80. call prnge
  81. xor al, dl
  82. stosb
  83. loop encrypt_loop
  84. ret
  85.  
  86. .section .data
  87.  
  88. seed: .long 0xdeaddead
  89. [kohlrak@kohlrak-server mixed]$
Advertisement
Add Comment
Please, Sign In to add comment