Beiträge von Twice

    Du musst keinen Typen zum casten erstellen. Ich find's hässlich und unnötig, da du den sowieso nur einmal brauchst und dann auch ganz normal casten kannst.

    Code
    1. orig_connect = ( int ( __stdcall * )( SOCKET, const struct sockaddr*, int ) )DetourCreate( <...and so on...> );


    Das einfach mit Inline Assembler zu machen ist eine elegante aber auch gefährliche möglichkeit. Bei mir klappt das nicht immer, weil ich nicht weiß, was mir der Compiler am Ende daraus macht.


    Zu deinem Problem:
    Hast du schonmal versucht zu debuggen? Die Werte zur Laufzeit ausgegeben?
    Ich tippe darauf, dass du das Ergebnis von GetProcAddress noch in einen void* casten musst. Sonst wird das falsch interpretiert meine ich mich zu erinnern.


    MfG

    WinSock ist eine große Bibliothek. Was möchtest du genau hooken? Die connect Funtion?
    Was verstehst du an meinen Funktionen nicht?


    MfG

    Dankeschön :)


    @kuhkuh:
    Die CoD-Serie lässt sich im Vergleich zu anderen Ego-Shootern, wie Battlefield, ein bisschen einfacher hacken, weil auch die neusten Titel immernoch auf der alten idTech3 Engine basieren, die Open-Source ist. Das sie darauf "basieren" ist vielleicht schon ein wenig hoch gegriffen, denn es finden sich oft nur noch Spuren (u.a. aber auch noch Debug-Strings) der mitlerweile über ein Jahrzehnt alten Engine. Trotzdem kennt man den Aufbau des Spiels. Man weiß also bspw., dass es ein Entity-Array gibt, in der alle vom Spiel benötigten Entities liegen. Als eine Entity wird alles bezeichnet, was sich bewegt (das ist zwar keine korrekte Definition, aber so kann man es am leichtesten verstehen). In einer solchen Entity-Struktur stehen Infos darüber. Zum Beispiel die LERP-Position (Linear interpolierte). Damit und mit dem Wissen, über deine eigene EyePosition kannst du dir die Radarpunkte ausrechnen. Wo das alles in der Struktur steht, kann man mit ReClass rausfinden.


    Die geometrische Berechnung sieht so aus:
    Du berechnest die Gierung zum Ziel:

    Code
    1. vec3_t delta;
    2. VectorSubtract( targetPosition, viewOrigin, delta );
    3. float angle = RAD2DEG( atan( delta[ 1 ] / delta[ 0 ] ) );


    Die meisten Engines bieten dir dafür schon Funktionen (vectoangles, oder in der Source Engine VectorAngles).


    Diesen Winkel musst du noch in Relation mit deinen ViewAngles setzen, also diese subtrahieren.


    Dann nimmst du sinus/cosinus, um den Winkel zu einer Kreiskoordinaten zu machen, berechnest dann die Distanz (Vektorlänge des Deltas), teilst diese durch den Radarradius und multiplizierst mit der Breite/Höhe des Radarschirms.


    MfG

    Was soll man dazu noch sagen? Mein Projekt der letzten 2 Wochen.
    Ein paar Screenshots sind in meiner Galerie.


    Download


    Kompilierte DLL liegt schon im Release Ordner, aber es gibt keine Einstellungsmöglichkeiten. Aimbot aktiviert sich beim Zoomen und wartet 100ms nachdem das Ziel erfasst wurde.


    Credits:
    - kingorgy
    - Sonst stehen die Links zu GD-Posts im Source-Code aber die Namen der Leute habe ich vergessen.


    MfG

    Ich habe damit keine Probleme.
    Aber wenn du eine Windows-Anwendung erstellst, hast du eine WinMain und keine main Funktion.


    MfG

    Ja, das meine ich. Sonst irgendwas in den Einstellungen geändert? Und wie hast du das Projekt erstellt?


    MfG


    PS: In ANSI C++ muss die main-Funktion nicht zwangsläufig was zurückgeben.

    Code
    1. HANDLE hProcess = OpenProcess( PROCESS_ALL_ACCESS, FALSE, <Your_PID_Here> );
    2. BYTE iDontKnowIfTheseVarsAreStringsIntsOrWhatEver[ 1337 ];
    3. #define dick iDontKnowIfTheseVarsAreStringsIntsOrWhatEver
    4. ReadProcessMemory( hProcess, ( void* )( *( DWORD* )( ( DWORD )GetRemoteModuleHandle( "QtCore4.dll" ) + 0x0021F30C ) + 0x11C ), dick, sizeof( dick ), NULL ); // "size of dick" HeHe


    Setz das halt in AutoIt um...
    Wenn du das nicht schaffen solltest (wie ich zum Beispiel), fang mit was leichterem an und lern, wie das große Thema "Fucking Memory-Reading In Freakin' AutoIt" funktioniert.


    Problem dürfte natürlich sein, das ModuleHandle eines Prozesses rauszufinden. Kann AutoIt sowas? Man munkelt...
    Ist AutoIt für sowas gemacht? Nein! Wer ist überhaupt auf die verballerte Idee gekommen, AutoIt für sowas zu benutzen. Makros sind darin kein Problem und dafür wurde AutoIt gemacht, aber ihr glaubt doch nicht im Ernst, man könnte Erfolge mit etwas erzielen, was dazu gezwungen wurde etwas sein zu wollen, was es nicht ist und nie sein wird.
    Die Pseudo-Lösungen, indem man AutoIt Zugriff auf die WinAPI gab sind ein Schritt dahin und können das vielleicht ermöglichen, aber niemand wird damit glücklich.
    Warum lernt man nicht etwas passendes? .Net? Ihr könnt euch sogar Forms zusammenklicken und wir alle wissen, wie viel Spaß das macht.
    Oder vielleicht gibt man sich ja mal die Unbequemlichkeit sich an C++ oder Delphi ranzutasten damit funktioniert das nicht nur viel, viel besser. Man hat natürlich nicht mehr nur mit einem Datentyp zu tun...kompliziert!
    Naja, ich bewundere zumindest den Ehrgeiz derjeniger, die sich trotzdem trauen und Erfolg haben Low-Level Geschichten in einer Skriptsprache umzusetzen.


    MfG

    Du merkst dir einfach die letzte Position des zu Verfolgenden Objekts und bewegst dann in jedem Tick deinen Verfolger dahin.
    Was ist daran Mathematik?


    MfG

    Das liegt an C++ und seinem Linker.
    Jede Funktion, Variable, Klasse, Methode, usw. wird in ein Obj-File kompiliert und hat dort ein Symbol. Aus diesen .obj-Dateien und den Symbolen macht der Linker die .exe.
    Deine Templates haben aber nur etwas mit der Syntax und dem Compiler zu tun, denn eine Klasse Stack< typename T > kennt der Linker nicht und braucht für T einen Datentyp. [EDIT\\ er kennt die schon, aber du kannst sie nicht verwenden, weil du eben einen Datentyp mit angeben musst.]
    Du musst die Klasse direkt in das Header-File schreiben, weil du sonst nach dem Kompilieren eine Klasse hast, die keinen festen Typ hat und diese Klasse wird zwar im Source-File definiert, aber wenn du dann eine Instanz mit dem Datentyp int erstellst, wird diese nicht gefunden, sondern nur das Symbol ohne festen Typ.


    MfG

    Er hat die Klasse doch selbst geschrieben. Warum sollte eins seiner Symbole dann in einer anderen Lib definiert sein?
    Außerdem sind top und max keine Konstanten also kann du sie ganz normal im Konstruktor initialisieren und musst sie nicht hinter die Argumentenliste schreiben.
    Du kannst übrigens auch boolsche Ausdrücke zurückgeben und nicht nur "true"/"false".


    Zur Lösung deines Problems:
    Du musst deine Methoden nicht im Source-, sondern im Header-File definieren.
    Ob du diese jetzt direkt unter die Deklaration in der Klasse schreibst oder als Out-Of-Line darunter ist egal.

    Dieser Thread driftet in die falsche Richtung.
    Wir haben hier eine Diskussion, in der es genau darum geht, welche Programmiersprache denn besser ist als die andere.
    Da der Threadersteller aber ohnehin gebannt ist und seine Frage jeglichem Sinn davon läuft, schließe ich hier.


    MfG


    ~ Closed ~