LINUX.ORG.RU

Сообщения shwwawaw

 

декриптация полей в бд

Знаю, что SQlite не шифрует ничего сам по себе. Но все же. Можно ли по файлу БД в открытом доступе, но с зашифрованными полями восстановить содержимое этих самых полей? например как здесь https://drive.google.com/open?id=1cIsmShYultD-Fnwspyl9EZV2N2bbX5IJ

 

shwwawaw
()

Детективное бюро, нужна ваша помощь))

В общем сабж такой. есть файл размером РОВНО 5 мб. предполагаю, что это сжатый обрезанный zlib или что-то такое но вполне возможно, что ошибаюсь файл - таск с древней борды 15 года, поэтому должен как-то открываться кто шарит помогите понять как и чем открывать такую хрень. https://drive.google.com/open?id=195FgN0Q0L1RqkK9HtJbcEH2s2hzBwJgk P.S. залил на гугл ибо хз как такое сюда скидывать) P.S.S заранее благодарен за конструктивные ответы =)

 

shwwawaw
()

Как зареверсировать такую пакость?

Доброго времени суток. Помогите решить одну проблему у меня есть программа следующего вида:

#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <stdio.h>
#define k "jf1ay9238x0ax0"
char f1(char a);
int a1(int a);

int main()
{
    srand(time(0));

    printf("Enter path:");
    fflush(stdout);
    char p[64];
    scanf("%s", p);
    char c;
    do {
        c = getchar();
    } while (c != '\n' && c != EOF);

    FILE* f = fopen(p, "rb");
    if (f == NULL) {
        printf("Error opening file");
        getch();
        exit(-3);
    }
    char m[64];
    fread(&m, sizeof(char), 64, f);
    fclose(f);

    printf("%s\n", p);
    printf("Cipher?(Y/n):");
    fflush(stdout);
    char r;
    scanf("%c", &r);
    do {
        c = getchar();
    } while (c != '\n' && c != EOF);
    char ot = r;

    if (ot == 'Y') {
        char s = 0;
        for (int i = 0; i < 64; ++i) {
            s ^= m[i];
        }

        for (int i = 0; i < 63; ++i) {
            m[i] ^= (m[i + 1] ^ s^r^i ^ ((0xf) << 4) ^ ((i % 2) << 7));
            m[i] = f1(m[i]);
        }
        m[63] ^= s;

        FILE* f = fopen("out.txt", "wb");
        fputc(s, f);
        fwrite(m, sizeof(char), 64, f);
        fclose(f);    
    }

    return 0;
}
char f1(char a)
{
    char ss = 0xd;
    static int t = 0;
    int b = a1(rand()) % 0xffff;

    b <<= 4;
    b ^= (k[(t++) % ss] >> 4);
    b <<= 4;
    b ^= (k[(t++) % ss]);

    a ^= (char)b;
    return a;
}

int a1(int a) {
    if (a < 0)
        return (-a);
    else
        return a;
}

Её суть в том, что она читает побайтно файл с текстом, а затем хорит его по определенному алгоритму и записывает в другой файл. В общем суть моего вопроса: помогите написать реверсирующую процедуру, т.е. чтобы подавая на вход зашифрованное сообщение получался исходный читаемый текст. Всю голову себе уже исколупал, 10 раз прошел по алгоритму, но все равно где-то я что-то упускаю (может сдвиг может еще что) И да, я знаю, что 2х xor дает исходный результат.

Спасибо большое заранее тем, кто откликнется

 ,

shwwawaw
()

RSS подписка на новые темы