G
hier mal ein code den ich für ein freund geschreiben habe, es simmuliert einen user der ein passwort eintipt, müsste natürlich für Mediator angepasst werden
#include <string>
#include <iostream>
#include <fstream>
#include <stdexcept>
#include <ctime>
#include <cstdlib>
#include <cassert>
#include <windows.h>
using namespace std;
#define for if(0);else for
char password[64] = {};
void next_pass(char * element)
{
switch(*element)
{
case 'z':
{
if(element == (password + sizeof( password ) / sizeof( password[0] )))
throw std::runtime_error("");
*element = 'a';
next_pass( element + 1 );
break;
}
case '\0':
{
*element = 'a';
break;
}
default:
{
++*element;
break;
}
}
}
void select_all()
{
keybd_event( VK_RSHIFT, 0, 0, 0 );
keybd_event( VK_HOME, 0, 0, 0 );
keybd_event( VK_HOME, 0, KEYEVENTF_KEYUP, 0 );
keybd_event( VK_RSHIFT, 0, KEYEVENTF_KEYUP, 0 );
}
void strg_v()
{
keybd_event( VK_LCONTROL, 0, 0, 0 );
keybd_event( 0x56, 0, 0, 0 );
keybd_event( 0x56, 0, KEYEVENTF_KEYUP, 0 );
keybd_event( VK_LCONTROL, 0, KEYEVENTF_KEYUP, 0 );
}
void enter()
{
keybd_event( VK_RETURN, 0, 0, 0 );
keybd_event( VK_RETURN, 0, KEYEVENTF_KEYUP, 0 );
}
void send_to_clipboard(const char * str)
{
struct auto_GlobalFree
{
HGLOBAL to_free;
~auto_GlobalFree()
{
if(to_free)
GlobalFree( to_free );
}
};
if(!OpenClipboard( NULL ))
throw std::runtime_error("");
if(EmptyClipboard())
return;
HGLOBAL clipboard_buffer = GlobalAlloc( GHND, 64 );
if(!clipboard_buffer)
throw std::bad_alloc();
auto_GlobalFree instanz = { clipboard_buffer };
char * const buffer = static_cast<char *>( GlobalLock( clipboard_buffer ) );
copy( str, str + std::strlen( str ) + 1, buffer );
if(!SetClipboardData( CF_TEXT, clipboard_buffer ))
throw std::runtime_error("");
if(!CloseClipboard())
throw std::runtime_error("");
}
int main()
{
try
{
int start_wert = 0;
cout << "Starte mit: ";
std::cin >> start_wert;
for(unsigned i = 0; i < start_wert; ++i)
next_pass( password );
HWND programm;
while(!(programm = FindWindow( 0, "Kremlin Decrypt" )));
SetForegroundWindow( programm );
std::time_t t = std::time( NULL );
for(unsigned i = start_wert; ; ++i)
{
next_pass( password );
send_to_clipboard( password );
while(GetForegroundWindow() != programm);
select_all();
while(GetForegroundWindow() != programm);
strg_v();
while(GetForegroundWindow() != programm);
enter();
while(GetForegroundWindow() != FindWindow( 0, "Error"));
enter();
if((i % 10000) == 0 && i != 0)
{
ofstream( "log.txt" ) << i;
cout <<"\b\b\b\b\b\b\b\b\b\b\b\b\b\b" << i << " | " << std::time( NULL ) - t;
t = std::time( NULL );
}
}
}
catch(const std::runtime_error &)
{
cout << "unglaublich aber wahr\n";
}
}