quieres pasar de
(4+3*(4-5)*(7-8)) a esto
+(4,*(*(3,-(4,5)),-(7,8))
(por ejemplo)????
(4+3*(4-5)*(7-8)) a esto
+(4,*(*(3,-(4,5)),-(7,8))
(por ejemplo)????
Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.
Mostrar Mensajes Menú#include <iostream>
#include <string>
using namespace std;
const string usu = "aaa";
const string pas = "cab";
int main(){
string USU;
string PAS;
do{
system("title LOGIN");
cout << "Usuario: ";
cin >> USU;
cout << "Contraseña: ";
cin >> PAS;
cin.clear();
}while(usu!=USU || pas!=PAS);
if(usu==USU && pas==PAS)
cout<<"Contraseña CORRECTA"<<endl;
return 0;
}
#include <iostream>
#include <fstream>
#include <string>
#include <Windows.h>
using namespace std;
bool enviar(string login, string pass);
int main(){
const HANDLE Consola = GetStdHandle(STD_OUTPUT_HANDLE);
string login, pswd;
ifstream pass("dico.txt");
ifstream user("dico.txt");
if(pass.is_open() && user.is_open()){
bool seguir=true;
while(!user.eof() && seguir){
getline(user,login,'\n');
while(!pass.eof() && seguir){
getline(pass,pswd,'\n');
SetForegroundWindow((HWND)Consola);
seguir=enviar(login,pswd);
Sleep(300);
}
}
}
system("pause");
return 0;
}
bool enviar(string login, string pass){
HWND hCalc = FindWindow(NULL, TEXT("LOGIN"));//Obtenemos el Handle de la ventana
if (hCalc != 0){
cout<<"User: "<<login<<endl;
cout<<"Pass: "<<pass<<endl;
SetForegroundWindow(hCalc);
/*enviar login*/
for(register int i=0;i<login.size();i++){
keybd_event((BYTE)VkKeyScan(login[i]), 0, 0, 0);
keybd_event((BYTE)VkKeyScan(login[i]), 0, 2, 0);
}
keybd_event(VK_RETURN, 0, 0, 0); //Pulsamos enter
keybd_event(VK_RETURN, 0, 2, 0); //Levantamos enter
/*enviar pass*/
for(register int i=0;i<pass.size();i++){
keybd_event((BYTE)VkKeyScan(pass[i]), 0, 0, 0);
keybd_event((BYTE)VkKeyScan(pass[i]), 0, 2, 0);
}
keybd_event(VK_RETURN, 0, 0, 0); //Pulsamos enter
keybd_event(VK_RETURN, 0, 2, 0); //Levantamos enter
return true;
}
else
return false;
}
Cita de: do-while en 21 Junio 2011, 18:17 PM
¡Buenas!
No se si se podria hacer de esta forma o no. Durante un tiempo estuve trasteando con la ingenieria inversa. Las funciones de lectura, si leen cadenas, necesitan la diereccion de memoria de la cadena en la que almacenan datos. Esta parte de la memoria supongo que sera de lectura/escritura. Lo que podrias intentar es parchear la lectura de los datos, para escribir la cadena desde fuera del programa e introducir un salto a la parte en la que se comprueba si el user/pass es correcto, y asi hasta que encuentres un par valido... Asi te olvidas de las APIs y el programa es mas portable... Pero ya te digo, solo es una idea.
¡Saludos!
Cita de: Khronos14 en 21 Junio 2011, 17:45 PM
Creo que te falta un cin.clear() en el código de la víctima.
Saludos.
Cita de: Leo Gutiérrez. en 21 Junio 2011, 17:49 PM
¿Por qué no haces la prueba con tuberías?, es decir, que el programa espere el user y el password de la entrada estándar y se lo mandas con un comando.
type words | programa
ó
cat words | programa
#include <iostream>
#include <string>
using namespace std;
const string usu = "aaa";
const string pas = "cab";
int main(){
string USU;
string PAS;
do{
system("title LOGIN");
cout << "Usuario: ";
cin >> USU;
cout << "Password: ";
cin >> PAS;
}while(usu!=USU && pas!=PAS);
return 0;
}
#include <iostream>
#include <fstream>
#include <string>
#include <Windows.h>
using namespace std;
bool enviar(string login, string pass);
int main(){
const HANDLE Consola = GetStdHandle(STD_OUTPUT_HANDLE);
string login, pswd;
ifstream pass("dico.txt");
ifstream user("dico.txt");
if(pass.is_open() && user.is_open()){
bool seguir=true;
while(!user.eof() && seguir){
user>>login;
while(!pass.eof() && seguir){
pass>>pswd;
SetForegroundWindow((HWND)Consola);
seguir=enviar(login,pswd);
Sleep(1000);
}
}
}
system("pause");
return 0;
}
bool enviar(string login, string pass){
HWND hCalc = FindWindow(NULL, TEXT("LOGIN"));//Obtenemos el Handle de la ventana de la calculadora
if (hCalc != 0){
cout<<"User: "<<login<<endl;
cout<<"Pass: "<<pass<<endl;
SetForegroundWindow(hCalc);
/*enviar pass*/
for(register int i=0;i<login.size();i++){
keybd_event((BYTE)VkKeyScan(login[i]), 0, 0, 0);
keybd_event((BYTE)VkKeyScan(login[i]), 0, 2, 0);
}
keybd_event(VK_RETURN, 0, 0, 0); //Pulsamos enter
keybd_event(VK_RETURN, 0, 2, 0); //Levantamos enter
/*enviar login*/
for(register int i=0;i<pass.size();i++){
keybd_event((BYTE)VkKeyScan(pass[i]), 0, 0, 0);
keybd_event((BYTE)VkKeyScan(pass[i]), 0, 2, 0);
}
keybd_event(VK_RETURN, 0, 0, 0); //Pulsamos enter
keybd_event(VK_RETURN, 0, 2, 0); //Levantamos enter
return true;
}
else
return false;
}
Cita de: danyhack en 20 Junio 2011, 17:06 PM
Con sockets no?Bueno eso fue lo que habimos dicho en el proyecto, además lo intente y funcionó, intentalo con sockets
#include <iostream>
#include <conio.h>
#include <string>
#include <time.h>
#include <Windows.h>
using namespace std;
const HANDLE Consola = GetStdHandle(STD_OUTPUT_HANDLE);
void textcolor(int numColor){SetConsoleTextAttribute(Consola, numColor);}
void gotoxy(int x, int y) {
COORD coord;
coord.X = x;
coord.Y = y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}
clrscr();
system("cls");
Cita de: Acermax en 20 Junio 2011, 01:38 AM
Eso que dices dany, no es cierto.
El fichero lo quiere como lectura, asi que debe ser ofstream. ifstream se usa para escritura, y no es el caso.
Cita de: Acermax en 20 Junio 2011, 01:38 AMEsa es la solucion .
El problema, probablemente, es que no está inicializada la variable 'i'.