CrackMe Crackme ?/10 c++ get password first crackme

Начинающий
Статус
Оффлайн
Регистрация
2 Июн 2021
Сообщения
18
Реакции[?]
0
Поинты[?]
0
моя первая crackme не бейте сильно нужно найти пароль, для тех кто шарит в этом всем, думаю решить будет легко, могут быть косяки и прочее, но надеюсь что ругаться не будете
Пожалуйста, авторизуйтесь для просмотра ссылки.

Пожалуйста, авторизуйтесь для просмотра ссылки.
 
Начинающий
Статус
Оффлайн
Регистрация
25 Июн 2021
Сообщения
16
Реакции[?]
1
Поинты[?]
1K
C++:
#include <iostream>
#include <string>
#include <vector>

std::string xorEncryptDecrypt(const std::string& input, char key) {
    std::string result = input;
    for (size_t i = 0; i < input.length(); ++i)
        result[i] ^= key;
    return result;
}

int calculateChecksum(const std::string& input) {
    int checksum = 0;
    for (char c : input)
        checksum += static_cast<unsigned char>(c);
    return checksum;
}

void generatePasswords() {
    const size_t passLength = 8;
    const int targetChecksum = 300;
    std::vector<char> password(passLength, 'A');

    while (true) {
        std::string passwordStr(password.begin(), password.end());
        if (calculateChecksum(xorEncryptDecrypt(xorEncryptDecrypt(xorEncryptDecrypt(passwordStr, 75), 76), 77)) == targetChecksum)
            std::cout << "Valid password: " << passwordStr << std::endl;

        int i = passLength - 1;
        while (i >= 0 && password[i] == 126)
            password[i--] = 32;

        if (i < 0)
            break;

        password[i]++;
    }
}

int main() {
    generatePasswords();
    return 0;
}
и любой пароль подходит, к примеру AAAAAS9#
 
Начинающий
Статус
Оффлайн
Регистрация
2 Июн 2021
Сообщения
18
Реакции[?]
0
Поинты[?]
0
C++:
#include <iostream>
#include <string>
#include <vector>

std::string xorEncryptDecrypt(const std::string& input, char key) {
    std::string result = input;
    for (size_t i = 0; i < input.length(); ++i)
        result[i] ^= key;
    return result;
}

int calculateChecksum(const std::string& input) {
    int checksum = 0;
    for (char c : input)
        checksum += static_cast<unsigned char>(c);
    return checksum;
}

void generatePasswords() {
    const size_t passLength = 8;
    const int targetChecksum = 300;
    std::vector<char> password(passLength, 'A');

    while (true) {
        std::string passwordStr(password.begin(), password.end());
        if (calculateChecksum(xorEncryptDecrypt(xorEncryptDecrypt(xorEncryptDecrypt(passwordStr, 75), 76), 77)) == targetChecksum)
            std::cout << "Valid password: " << passwordStr << std::endl;

        int i = passLength - 1;
        while (i >= 0 && password[i] == 126)
            password[i--] = 32;

        if (i < 0)
            break;

        password[i]++;
    }
}

int main() {
    generatePasswords();
    return 0;
}
и любой пароль подходит, к примеру AAAAAS9#
этто первый раз бро я делал похожее, следующую сделаю сложнее
 
Начинающий
Статус
Оффлайн
Регистрация
2 Июн 2021
Сообщения
18
Реакции[?]
0
Поинты[?]
0
хорошо, бро, ждём) да и я лишь учусь
подскажи, что бы ты хотел увидеть еще, что добавить? просто я пробовал реверсить не смог особо, а вот писать похожие темки нравится
 
Сверху Снизу