[C++] Tracer segments dans un processus!

    Publicités

Users Who Are Viewing This Thread (Total: 0, Members: 0, Guests: 0)

Status
Not open for further replies.

moi4567

Membre
Dec 18, 2012
72
1
434
hl2.exe
Salut tous le monde :)

Hier j'ai ressorti un projet d'ESP en C++ et il ne me reste "plus qu'à" tracer les rectangles de l'ESP. Après quelques heures de recherches je n'ai pas trouvé de façon fiable de tracer ces lignes (toutes les solutions que j'ai trouvé ne fonctionnent pas) :non:.

En ce qui concerne la façon dont injecter le code dans le processus j'ai aussi fait des recherches et arrêtez moi si je me trompe, il faudrait trouver un noeud de scène pour y injecter les lignes de l'ESP... Je n'en suis pas sur (c'est bien pour ça que je demande ^^).

En résumé:
- Auriez-vous une fonction permetant de tracer des segments.
- Ma solution proposé pour l'injection de code est elle viable?
:hein:

Merci d'avance ;)
 

moi4567

Membre
Dec 18, 2012
72
1
434
hl2.exe
Salut tous le monde :)

Je crois avoir trouvé ce qu'il me fallait cependant je n'arrive pas à l'utiliser ^^'
Dans mes recherches j'en suis arrivé à la conclusion que la fonction FillRect serrait la plus adaptée, j'essaie donc de tracer un solide sur une fenêtre de démineur toute bête mais rien ne s'affiche et je ne vois pas l'erreur dans mon code. Quelqu'un vois le problème? :hein:

Code:
#include <iostream>
#include <Windows.h>

using namespace std;

int main()
{
    /* RECHERCHE FENETRE */
    HWND win_exist;
    do
    {
        win_exist = FindWindow(0, "Démineur");
    }while(win_exist == 0);
    HDC HDC_Desktop = GetDC(win_exist);
    cout << "Demineur ===> " << HDC_Desktop << endl;

    /* TRACE RECTANGLE */
    RECT rect = {100, 100, 100, 100};
    HBRUSH brush = CreateSolidBrush(RGB(0, 0, 0));
    FillRect(HDC_Desktop, &rect, brush);

    return 0;
}
 

Cyrion

._.
V
Ancien staff
Jul 8, 2010
2,524
2
944
www.bufferoverflow.fr
Il faut passer par la SDK de DirectX pour dessiner sur la pluspart des jeux.
Aussi il te faut la position et la position des membres de l'ennemi pour bien positionner disons , la barre de vie , le nom , etc ..
 

Nayres

Membre Banni
Apr 15, 2012
3,431
0
341
Quelque part.
Salut tous le monde :)

Je crois avoir trouvé ce qu'il me fallait cependant je n'arrive pas à l'utiliser ^^'
Dans mes recherches j'en suis arrivé à la conclusion que la fonction FillRect serrait la plus adaptée, j'essaie donc de tracer un solide sur une fenêtre de démineur toute bête mais rien ne s'affiche et je ne vois pas l'erreur dans mon code. Quelqu'un vois le problème? :hein:

Code:
#include <iostream>
#include <Windows.h>

using namespace std;

int main()
{
    /* RECHERCHE FENETRE */
    HWND win_exist;
    do
    {
        win_exist = FindWindow(0, "Démineur");
    }while(win_exist == 0);
    HDC HDC_Desktop = GetDC(win_exist);
    cout << "Demineur ===> " << HDC_Desktop << endl;

    /* TRACE RECTANGLE */
    RECT rect = {100, 100, 100, 100};
    HBRUSH brush = CreateSolidBrush(RGB(0, 0, 0));
    FillRect(HDC_Desktop, &rect, brush);

    return 0;
}

Essaye plutôt en D3D
 

ragnarock

Membre actif
Mar 22, 2010
194
0
917
Salut,

c'est peut-être le rect dans lequel tu dessines qui n'est pas de la bonne taille.

RECT rect = {100, 100, 100, 100};
ça va te créer un rectangle avec comme haut gauche (100;100) et bas droite (100;100), donc il n'est pas visible.
essaye avec des coordonnées différentes pour ses 2 points.
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!

Edit: tu peux chopper le rectangle d'une fenêtre via la fonction Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!
 
Last edited:

moi4567

Membre
Dec 18, 2012
72
1
434
hl2.exe
Bien bonjour à vous et merci :)
Désolé pour ma réponse tardive, c'est un peux la galère en ce moment ^^'

Il faut passer par la SDK de DirectX pour dessiner sur la pluspart des jeux.
Aussi il te faut la position et la position des membres de l'ennemi pour bien positionner disons , la barre de vie , le nom , etc ..

Je préfère essayer de passer par les fonctions de bases pour des questions de portabilités. Après si je ne m'en sort pas je prendrais les fonctions DirectX :)
Et en ce qui concerne les infos des joueurs, j'ai déjà tous mes pointeurs (Nom, Equipe, X, Y, Z et Vie) ;).

Essaye plutôt en D3D

Même réponse qu'à Cyrion, j'aimerais vraiment pouvoir le faire avec les fonctions de base mais je garde ça sous le coude :)

Salut,

c'est peut-être le rect dans lequel tu dessines qui n'est pas de la bonne taille.

RECT rect = {100, 100, 100, 100};
ça va te créer un rectangle avec comme haut gauche (100;100) et bas droite (100;100), donc il n'est pas visible.
essaye avec des coordonnées différentes pour ses 2 points.
Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!

Edit: tu peux chopper le rectangle d'une fenêtre via la fonction Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris!

J'ai changé les coordonnées en {100,100,200,200} mais même topo, rien ne s'affiche. J'ai utilisé la fonction que tu m'as passé pour récupérer la position de la fenêtre, j'ai essayé en adaptant les coordonnées en conséquences mais ça ne fonctionne pas non plus :/.

Je continu à chercher, je doit passer à côté de quelque chose de tous bête...
 

ragnarock

Membre actif
Mar 22, 2010
194
0
917
Salut,

En faite faut pas tenir compte de la fonction GetWindowRect, qui retourne le rectangle de la fenêtre par rapport aux coords de tout l'écran, elle ne servait à rien dans ton cas, désolé^^

J'ai essayé, et le rectangle se dessine bien en utilisant la fonction Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! et non pas GetDC pour obtenir le device context. par contre je pige pas trop la différence entre les 2 ...

Et pas oublier d'appeler un Ce lien n'est pas visible, veuillez vous connecter pour l'afficher. Je m'inscris! après avoir use ton DC.
 

moi4567

Membre
Dec 18, 2012
72
1
434
hl2.exe
Alleluiaaaaaa... Ca marche :majorette:

Effectivement avec GetWindowDC ça fonctionne... Je ne comprend pas non plus pourquoi... Enfin bon, ça marche c'est le principal ^^

Par contre je ne suis pas sur d'avoir bien compris la fonction ReleaseDC. D'après la doc de microsoft ça permet de "laisser la place" à une autre application... C'est ça où je suis à côté de la plaque? :o
 

moi4567

Membre
Dec 18, 2012
72
1
434
hl2.exe
Thank, je vois ;)

J'ai un petit "soucie" au niveau du taux de rafraîchissement (je pense que ça viens de là). A chaque IPS mes box s'efface de la fenêtre ce qui donne un effet de clignotement qui est pas top. En sois c'est pas un drame mais si tu sais comment régler ça je dit pas non :D
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Thank, je vois ;)

J'ai un petit "soucie" au niveau du taux de rafraîchissement (je pense que ça viens de là). A chaque IPS mes box s'efface de la fenêtre ce qui donne un effet de clignotement qui est pas top. En sois c'est pas un drame mais si tu sais comment régler ça je dit pas non :D
Ton code s'applique un certains nombre de fois par seconde ?
Si oui, active la synchro verticale et cale le sur la fréquence de ton écran.
 

moi4567

Membre
Dec 18, 2012
72
1
434
hl2.exe
J'ai pas de chiffre précis à te donner, hé fait juste une boucle qui se répète le plus vite possible. Mais ton idée est vraiment pas bête :) je sais pas exactement comment on code ça mais je vais me pencher la dessus. Merci :)
 

Evaelis

La Voix de la Sagesse
V
Ancien staff
Apr 28, 2010
22,949
468
1,699
Valhalla
Sinon ton code devrait ptete hook la création de l'image, comme ça à chaque call de la fonction tes box se redessinent
 

moi4567

Membre
Dec 18, 2012
72
1
434
hl2.exe
J'avais déjà essayé sans succès mais c'est vrai qu'en y repensant c'est peut être la meilleur méthode, enfin les plus simple tous cas. Faut juste que je trouve comment faire ^^'
Je pense que je vais tester les deux méthodes pour comparer :) à première vu la solution de hook les formes parait largement moins pesant pour le processeur.
 

moi4567

Membre
Dec 18, 2012
72
1
434
hl2.exe
Hum... C'est vrai que j'ai pas pensé à ça lorsque j'ai commencé à coder...

J'ai regardé vite fait les fonctions DirectX et c'est vrai que ça a l'air bien plus pratique (et bien plus large en possibilité) que les fonctions basiques... Enfin après tout est possible mais je compte pas passer ma vie à coder ce genre de chose ^^'.

Donc au final je pense que tôt ou tard je passerais par DirectX...
 

Nayres

Membre Banni
Apr 15, 2012
3,431
0
341
Quelque part.

Cyrion

._.
V
Ancien staff
Jul 8, 2010
2,524
2
944
www.bufferoverflow.fr
Oui effectivement , il y a beaucoup de gens qui ont crée leur propre petite librairie de fonction Directx simplifié.

Donc évidemment en passant par là , c'est moins long que d'apprendre comment faire à partir du SDK de directx. :mdr1:
 
Status
Not open for further replies.