Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <string>
- #include <windows.h>
- #include <sstream>
- #include <vector>
- #include <sys\stat.h>
- template <class T>
- std::string to_string(const T& t) {
- std::stringstream ss; ss << t;
- return ss.str();
- }
- bool read_file(const char *filename, std::vector<char> &array) {
- FILE *fp = fopen(filename, "rb");
- if (fp != NULL) {
- struct stat st;
- fstat(fileno(fp), &st);
- int N = st.st_size;
- array.resize(N);
- fread(&array[0], 1, N, fp);
- fclose(fp);
- return true;
- }
- return false;
- }
- bool save_to_tmpfile(const char *filename, std::vector<char> &array, int h) {
- if(array.size() > h) {
- FILE *fp = fopen(filename, "wb");
- if (fp != NULL) {
- fwrite(&array[h], 1, array.size() - h, fp);
- fclose(fp);
- return true;
- }
- }
- return false;
- }
- int main() {
- int choice;
- std::string str;
- while(1) {
- system("cls");
- std::cout << "\n\t1. RC4 generator\n";
- std::cout << "\t2. ZK-Crypt generator\n";
- std::cout << "\t3. Archives\n";
- std::cout << "\t4. other files\n";
- std::cout << "\t0. exit\n\t";
- std::cin >> choice;
- switch(choice) {
- case 1: {
- for(int i = 23; i < 33; ++i) {
- std::cout << "sequence size: " << (1ULL << i) << "\n";
- str = "rc4 -n "
- + to_string(1ULL << i)
- + " | bs -w 16 -u 16 -q >> rc4_res_"
- + to_string(i) + ".txt";
- for(int j = 0; j < 100; ++j) {
- system(str.c_str());
- Sleep(1000);
- }
- }
- break;
- }
- case 2: {
- for(int i = 24; i < 33; ++i) {
- std::cout << "sequence size: " << (1ULL << i) << "\n";
- str = "zk -n "
- + to_string(1ULL << i)
- + " | bs -w 32 -u 65536 -q >> zk_res_"
- + to_string(i) + ".txt";
- for(int j = 0; j < 100; ++j) {
- system(str.c_str());
- Sleep(1000);
- }
- }
- break;
- }
- case 3: {
- std::string tmp;
- std::cout << "\t\tenter filename: ";
- std::cin >> tmp;
- std::vector<char> array;
- if (read_file(tmp.c_str(), array)) {
- int h;
- std::cout << "\t\tnumber of bytes to remove from the begining file: ";
- std::cin >> h;
- if(save_to_tmpfile("tmp", array, h)) {
- while(1) {
- std::cout << "\t\tcontinue [1/0]: ";
- std::cin >> choice;
- if(choice == 1) {
- int iw, ib, iu;
- std::cout << "\t\tenter w, b, u: ";
- std::cin >> iw >> ib >> iu;
- str = "bs -f tmp -w "
- + to_string(iw) + " -b "
- + to_string(ib) + " -u "
- + to_string(iu);
- system(str.c_str());
- system("pause");
- }else if(choice == 0)
- break;
- }
- }else
- std::cout << "Failed to write to tmpfile\n";
- }else
- std::cout << "Could not open file\n";
- break;
- }
- case 4: {
- std::string tmp;
- std::cout << "\t\tenter filename: ";
- std::cin >> tmp;
- FILE *fp = fopen(tmp.c_str(), "rb");
- if (fp != NULL) {
- int iw, iu;
- std::cout << "\t\tenter w, u: ";
- std::cin >> iw >> iu;
- fclose(fp);
- str = "bs -f "
- + tmp + " -w "
- + to_string(iw)
- + " -u "
- + to_string(iu);
- system(str.c_str());
- system("pause");
- }else
- std::cout << "Could not open file\n";
- break;
- }
- case 0:
- exit(0);
- default:
- break;
- }
- }
- return 0;
- }
Add Comment
Please, Sign In to add comment