Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   Реверсинг (https://forum.antichat.xyz/forumdisplay.php?f=94)
-   -   чем открыть не стандартный файл? (https://forum.antichat.xyz/showthread.php?t=117529)

Veteriuz 24.04.2009 15:10

чем открыть не стандартный файл?
 
Вот файлик (851.35KB)
В универе его через прогу открывают. Говорят что кто то сам написал. Я думаю что должны быть аналогичные методы открытия(преобразования до более традиционного вида). Сам нарыл некую склонность к rtf.
в файле вопросы и 4 варианта ответа(первый правильный) через прогу порядок и варианты в рэндоме.
сам не видел. прогу скачать возможности нет. По сути это база вопросов.

буду благодарен за любую помощь

/me пошёл дальше в гугл

desTiny 24.04.2009 20:21

совсем поверхностный осмотр пациента показал - в начале файла какая-то чепуха, но которая видимо имеет смысл, потом идёт что-то похожее на ртф, но вордом как ртф не воспринимаемое, но если в этом "что-то" вручную раскодировать \'e0 и тп, то получаются куски чего-то, похожего на вопрос, но не полностью, а потом куски, видимо, ответов.
Потом мне на глаза попалось слово "Социология", и моя рассовая неприязнь к этим идио.., тьфу, учёным запретила мне делать что-бы то ни было дальше с этим файлом.

Veteriuz 25.04.2009 09:31

Большое спасибо :)
тест по психологии

desTiny 25.04.2009 11:11

да, кстати.. я не сказал почему-то.. Veteriuz, было бы лучше, если бы ты дал несколько условий вопросов из теста и вариантов к ним, желательно с пометкой правильного...

neprovad 26.04.2009 11:31

да и для полного анализа не помешало бы наличие самой программы

ncNxonAT 06.05.2009 12:56

А если в Access'е открывать, то он пароль требует.

Gar|k 07.05.2009 17:44

ну чисто поверхностный осмотр
в начале идут 04 XX - это unicode строка русская
потом идет хрен знает че потом rtf

вот функцию я писал для mail history reader (я в курсе что она не совершенна)

Код:


#include <stdio.h>

#define BYTE(l,h) (((l)<<4)|((h)&0xFF))

void rtf2char(unsigned char *data,size_t max,FILE *f)
{


        size_t uk=0;
        unsigned char c;

        while(uk<max)
        {
        // 5C = \
        // 27 = '

        // \'
        if(data[uk]==0x5C && data[uk+1]==0x27)
                {
                uk+=2;

                while(data[uk]<0x40){fputc(data[uk],f);uk++;}

                if(data[uk]>=0x60){data[uk]-=0x57;}
                else if(data[uk]>=0x30){data[uk]-=0x30;}

                if(data[uk+1]>=0x60){data[uk+1]-=0x57;}
                else if(data[uk+1]>=0x30){data[uk+1]-=0x30;}

                c=BYTE(data[uk],data[uk+1]);
                                fputc(c,f);

                uk+=2;

                while(data[uk]<0x40){fputc(data[uk],f);uk++;}
                                }
                  else{uk++;}

        }
}


int main(int argc, char* argv[])
{
FILE *f,*out;
int szbuffer=0;
unsigned char *buffer;
unsigned long si=0;

f=fopen("psix.test","rb");
if(f==NULL){printf("Error open!"); return 0;}

out=fopen("test.txt","w");
if(out==NULL){printf("Error open out file!"); return 0;}

fseek (f , 0 , SEEK_END);
szbuffer = ftell (f);
rewind (f);

buffer=(unsigned char *)malloc(szbuffer);
if (buffer == NULL) {printf("Memory Error\n"); exit (2);}
if (fread (buffer,1,szbuffer,f) != szbuffer) {printf ("Reading error\n"); free(buffer); exit (3);}

rtf2char(buffer,szbuffer,out);

free(buffer);
fclose(out);
fclose(f);


        return 0;
}

воть, програмулина тебе в test.txt выдаст все че было в rtf :) можно поколдавать и сделать еще красивее.



а вообще правильно надо хоть часть знать что там должно быть, что бы пытатся писать прогу читалку


Время: 17:02