Advertisement
markyrocks

simple string obfuscation

Aug 3rd, 2021
303
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.15 KB | None | 0 0
  1.     extern "C" __declspec(dllexport) void encode(char* user) {
  2.  
  3.         string filename = Get_List_Directory() + "\\preferences.ini";
  4.         string tmp{};
  5.         string username = string(user);
  6.         fstream f;
  7.         stringstream ss;
  8.         bool containsKey = false;
  9.         f.open(filename, fstream::out | fstream::in | fstream::app);
  10.  
  11.         if (!f.is_open()) {
  12.             Log("error  failed to open file preferences.ini");
  13.             return;
  14.         }
  15.         while (getline(f, tmp)) {  //read file into ss
  16.             if (tmp.find("username=") != tmp.npos) {
  17.                 containsKey = true;
  18.             }
  19.             ss << tmp << '\n';
  20.         }
  21.  
  22.         srand(time(0));
  23.         tmp = "";
  24.         int num = 0;
  25.         for (int i = 0; i < username.size() + 1; i++) {
  26.             int j = 0;
  27.             while (j < i + 1) {
  28.                 num = 0;
  29.                 while (num < 33) {
  30.                     num = rand() % 127;
  31.                 }
  32.                 tmp += (char)num;
  33.                 j++;
  34.             }
  35.             if (i == username.size()) {
  36.                 break;
  37.             }
  38.             tmp += username[i];
  39.         }
  40.         f.close();
  41.         f.open(filename, fstream::out | fstream::app);
  42.         if (!containsKey) {
  43.             cout << tmp;
  44.             f << "username=" << tmp;
  45.             return;
  46.         }
  47.         f.close();
  48.         f.open(filename, fstream::out);
  49.         containsKey = false;
  50.         while (getline(ss, username)) {
  51.             cout << username << '\n';
  52.             if (username.find("username=") != username.npos) {
  53.                 containsKey = true;
  54.             }
  55.             else if (containsKey && username.find("=")) {
  56.                 containsKey = false;
  57.                 f << username << '\n';
  58.             }
  59.             else if (!containsKey) {
  60.                 f << username << "\n";
  61.             }
  62.         }
  63.         f << "username=" << tmp;
  64.         f.close();
  65.     }
  66.     extern "C" __declspec(dllexport) int decode(int num) {
  67.         string filename = Get_List_Directory() + "\\preferences.ini";
  68.         string tmp{};
  69.         fstream f;
  70.         bool containskey = false;
  71.         f.open(filename, fstream::in);
  72.         if (!f.is_open()) {
  73.             Log(" error failed to open file");
  74.             return 0;
  75.         }
  76.         while (getline(f, tmp)) {
  77.             if (tmp.find("username=") != tmp.npos) {
  78.                 containskey = true;
  79.                 break;
  80.             }
  81.         }
  82.  
  83.         if (containskey) {
  84.             tmp = tmp.substr(tmp.find("=") + 1, tmp.size() - (tmp.find("=") + 1));
  85.             int n = 1;
  86.             int b = 0;
  87.  
  88.             b += num;
  89.             while (n < num + 2) {
  90.  
  91.                 b += n;
  92.                 n++;
  93.                 if (b > tmp.size() - 1) {
  94.                     return 0;
  95.                 }
  96.             }
  97.             return (int)tmp[b];
  98.         }
  99.         return 0;
  100.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement