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

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   С/С++, C#, Delphi, .NET, Asm (https://forum.antichat.xyz/forumdisplay.php?f=24)
-   -   Пароли в опере (https://forum.antichat.xyz/showthread.php?t=77814)

_nic 20.07.2008 15:47

Пароли в опере
 
Пробую считать wand.dat только почему ниче не выходит :( Пытаюсь сделать это так
Код:

char *text=new char[(1024*1024)*5];
void opera(void)
{
DWORD rd;
char app[500];char *pat=new char[1024*1024];
ExpandEnvironmentStrings("%APPDATA%",app,500);
strcpy(pat,"\\\\.\\");
strcat(pat,app);
strcat(pat,"\\opera\\opera\\profile\\wand.dat");
SetLastError(0);
HANDLE f=CreateFile(pat,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_FLAG_RANDOM_ACCESS,NULL);
ReadFile(f,text,(1024*1024)*5,&rd,NULL);
cout<<GetLastError()<<endl;
CloseHandle(f);
cout<<pat<<endl;
}
main()
{
opera();
cout<<text<<endl;
getch();
}

Пытался напрямую вбивать строку в CreateFile
Код:

\\\\.\\C:\\Documents and Settings\\user\\Application Data\\opera\\opera\\profile\\wan.dat
Нечитает :( Хотя если в Выполнить ввести %APPDATA%\opera\opera\profile\wand.dat то этот самый ванддат открывается в блокноте.Ткните плиз где у меня ошибка.

Feonor 25.07.2008 13:16

А вот это \\\\.\\ зачем?
Убери и попробуй...

_antony 25.07.2008 13:32

Цитата:

Сообщение от Feonor
А вот это \\\\.\\ зачем?
Убери и попробуй...

Диск С является символической ссылкой =)

GetLastError() ?

_nic 25.07.2008 17:28

Цитата:

Сообщение от Feonor
А вот это \\\\.\\ зачем?
Убери и попробуй...

Что с \\\\.\\ что без \\\\.\\ толку 0.

SlyBit 25.07.2008 19:20

_nic

У тебя ошибка в пути. Во-первых, ты пишешь, что тебе нужен файл wand.dat, а сам
Цитата:

Пытался напрямую вбивать строку в CreateFile
Код:

\\\\.\\C:\\Documents and Settings\\user\\Application Data\\opera\\opera\\profile\\wan.dat

Во-вторых, в моей опере файл wand.dat лежит в "C:\Program Files\Opera\profile\wand.dat", папки opera в %APPDATA% вообще нет.

Prod 25.07.2008 19:25

Цитата:

Сообщение от SlyBit
У тебя ошибка в пути. Во-первых, ты пишешь, что тебе нужен файл wand.dat, а сам Во-вторых, в моей опере файл wand.dat лежит в "C:\Program Files\Opera\profile\wand.dat", папки opera в %APPDATA% вообще нет.

Зависит от опции "Для всех пользователей" при установке.

_antony 25.07.2008 21:40

может автор все таки напишет , что GetLastError возрашает =)

_nic 25.07.2008 21:41

Цитата:

Сообщение от _antony
может автор все таки напишет , что GetLastError возрашает =)

Нуль как нестранно :(

Feonor 26.07.2008 00:14

НЕ! Я не понимаю в чем проблема, запусти под отладкой и проверь путь к файлу, и проверь хендл.
if (h == INVALID_HANDLE_VALUE)
<значит хендл говно и точно дело в пути>

если не получится, пиши в личку, помогу все равно делать нех...

Feonor 26.07.2008 00:19

Цитата:

Сообщение от SlyBit
_nic

...в моей опере файл wand.dat лежит в "C:\Program Files\Opera\profile\wand.dat", папки opera в %APPDATA% вообще нет.

Не он првильно пишет, ибо у меня тут:
C:\Documents and Settings\user_name\Application Data\Opera\Opera\profile\wand.dat

_nic 26.07.2008 00:35

Влепил после CreateFile вот это
Код:

if (f == INVALID_HANDLE_VALUE)
{
MessageBox(0,"err","err",MB_OK);
}

эффекта никакого.мессага невыскакивает :(

izlesa 26.07.2008 00:52

2_nic
скинь скомпиленную прогу и исходник
меня заинтересовало, чтото ошибки не вижу ^___^
ослеп чтоле

Feonor 26.07.2008 12:11

Цитата:

Сообщение от _nic
Влепил после CreateFile вот это
Код:

if (f == INVALID_HANDLE_VALUE)
{
MessageBox(0,"err","err",MB_OK);
}

эффекта никакого.мессага невыскакивает :(

Если так то у тебя хендл нормальный, нужно ошибку искать в фкц чтения.

Ты бы исходник выложил, дело бы быстрей пошло :)

nc.STRIEM 26.07.2008 12:25

а чем тебе fopen() не нравиться?

_nic 26.07.2008 13:32

Код:

char *text=new char[(1024*1024)*5];
void opera(void)
{
DWORD rd;
char app[500];char *pat=new char[1024*1024];
ExpandEnvironmentStrings("%APPDATA%",app,500);
strcpy(pat,"\\\\.\\");
strcat(pat,app);
strcat(pat,"\\opera\\opera\\profile\\wand.dat");
SetLastError(0);
HANDLE f=CreateFile(pat,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_FLAG_RANDOM_ACCESS,NULL);
if (f == INVALID_HANDLE_VALUE)
{
MessageBox(0,"err","err",MB_OK);
}
ReadFile(f,text,(1024*1024)*5,&rd,NULL);
cout<<GetLastError()<<endl;
CloseHandle(f);
cout<<pat<<endl;
}
main()
{
opera();
cout<<text<<endl;
getch();
}

Исходник

nc.STRIEM 26.07.2008 13:56

мож так
Код:

#include<windows.h>
#include <stdio.h>
#include<IO.h>

int main()
{
        char path[1024];

        ExpandEnvironmentStrings("%APPDATA%", path, 900);
        strcat(path, "\\opera\\opera\\profile\\wand.dat");
        FILE *f = fopen(path, "rb");
        if(!f)
                return printf("File \"%s\" not found\n", path);

        int fl = filelength(fileno(f));
        char *cont = new char[fl+1];
        fread(cont, fl, 1, f);
        cont[fl] = 0;
        printf("%s\n", cont);
        fclose(f);
        return 1;
}


_nic 26.07.2008 15:28

Как нестранно ниче невыводится.В cont пусто ,мистика какя то :( Если ввести в выполнить это %APPDATA%\opera\opera\profile\wand.dat то wand.dat открывается в блокноте.

Aracul 26.07.2008 16:23

пиши в личку - помогу...)

izlesa 26.07.2008 16:30

2nc.STRIEM
функции из стандартной библиотеке лучше не использовать в win32 приложениях, тк они более тормознуты и в конечном итоге всё равно обращаются к API

AlexTheC0d3r 28.01.2009 22:45

Ну, что, смогли или нет? Очень интересная функция :)

xcedz 28.01.2009 22:49

http://www.reteam.org/blog/archives/unwand.cpp

https://forum.antichat.ru/showpost.php?p=1078514&postcount=3


Время: 05:54