IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langages de programmation Discussion :

acces aux données d'un autre programme?


Sujet :

Langages de programmation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Par défaut acces aux données d'un autre programme?
    bonjour,

    je cherche a accéder aux variables utilisées par programme a fin de les utiliser dans mon programme pour qu'il puisse réagir en fonction de ces variable.

    je ne peut pas modifier le programme qui détient les données que je souhaite connaître et je pensait donc passer par la mémoire pour les récupérer. le hic, c'est que je ne voit pas trop comment savoir ou sont stockées ces données dans la mémoire.

    y'aurait il un moyen de les localiser? ou un autre moyen de récupérer ces données?

    toutes les idées sont les bienvenues, merci

  2. #2
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 234
    Par défaut
    Salut bebaijhi,

    J'espère que tu n'as pas l'intention de faire du hacking .

    Soit. On peut utiliser des pointeurs dans un langage comme C pour aller lire des informations en mémoire. Mais les OS modernes ont un système de protection d'espaces mémoire. Normalement, un programme ne devrais pas pouvoir accéder à l'espace mémoire d'un autre programme. Mais ce serais chose possible en basculant du mode utilisateur vers le mode superviseur (j'en dis pas plus).

    Voici un article de blog qui explique comment on peut essayer de retrouver l'emplacement de données en mémoire.

    http://codexlive.wordpress.com/

  3. #3
    Membre Expert

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Par défaut
    Tu peux jeter un coup d'oeil à CheatEngine...

    http://www.cheatengine.org/download.php

    Tu peux télécharger les sources en Delphi. Tu as même des tutoriels qui t'expliquent comment localiser l'adresse d'une variable.

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Par défaut
    Jimalexp tu dis que les os modernes ne permettent pas la lecture des données en memoire, j''aurai peut etre plus de chance avec linux?

    merci a vous deux pour vos reponses.
    j'irai faire un tour sur les sites que vous m'avez fournit.

    ++

  5. #5
    Membre Expert

    Profil pro
    Leader Technique
    Inscrit en
    Juin 2005
    Messages
    1 756
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Leader Technique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 756
    Par défaut
    Citation Envoyé par bebaijhi Voir le message
    Jimalexp tu dis que les os modernes ne permettent pas la lecture des données en memoire, j''aurai peut etre plus de chance avec linux?
    C'est exactement le contraire. Unix/Linux doit t'interdire d'aller tapper dans l'espace mémoire d'un autre processus. Pour autant que je saches, les process sont complètement hermétiques et ne peuvent communiquer entre eux que par l'intermédiaire des IPC et objets spécifiquement prévus pour cet usage.

    Par contre sous Windows, tu peux sans problèmes accéder à la mémoire d'un autre processus. Par contre il faut en faire la demande explicitement à l'OS (pas question de faire un débordement lors d'une lecture ou écrire depuis un pointeur).
    Il suffit d'appeler ReadProcessMemory, en ayant appelé OpenProcess avant pour obtenir le handle du processus voulu.
    CheatEngine est entièrement basé sur ce principe.

  6. #6
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Par défaut
    Citation Envoyé par Franck SORIANO Voir le message
    C'est exactement le contraire. Unix/Linux doit t'interdire d'aller tapper dans l'espace mémoire d'un autre processus. Pour autant que je saches, les process sont complètement hermétiques et ne peuvent communiquer entre eux que par l'intermédiaire des IPC et objets spécifiquement prévus pour cet usage.
    ah! ok, je pensais que du fait que unix soit configurable il etait peut-etre plus permissif. mais je me suis tromper.

    ducoup je vai rester sous windows, j'avoue que je bloque avec tes "openprocess" et "readaccesmemory". c'est le genre de truck que je n'ai jamais utilisé, y'aurait'il un moyen de s'initier a ça? une doc simplifiée? un tuto?

    sinon le principe de CheatEngine m'interresse, c'est a peut pres ce que mon programme aurait besoin de faire a la différence pres que j'ai juste besoin de pouvoir lire les informations. j'aurai pu m'inspirer du code source du CE mais c'est du delphi ( il me semble ) et je connait pas dutout, je programme en C/C++.

    en tout cas merci pour tes infos je fait des recherches pour essayer de comprendre comment ça marche tout ça.

  7. #7
    Membre confirmé
    Inscrit en
    Septembre 2008
    Messages
    234
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 234
    Par défaut
    Citation Envoyé par bebaijhi Voir le message
    Jimalexp tu dis que les os modernes ne permettent pas la lecture des données en memoire, j''aurai peut etre plus de chance avec linux?
    Que nenni. Sans partir dans le didactique, Linux est une adaptation de Unix sur PC et c'est justement sur cet OS que la protection mémoire est apparue histoire d'isoler les espaces mémoire occupé par de multiples utilisateurs.

    J'ajouterais que la philosophie Linux en terme de sécurité est de fermer toutes les portes et de laisser à l'administrateur le soin de les ouvrir.

    Sinon, pour précises les choses, le principe derrière le mécanisme de protection mémoire est d'isoler la mémoire utilisée par un logiciel (voire un processus ?) pour éviter qu'un les informations soient écrasées par un autre logiciel/process qui a perdu les pédales.

    Citation Envoyé par bebaijhi Voir le message
    j'aurai pu m'inspirer du code source du CE mais c'est du delphi ( il me semble ) et je connait pas dutout, je programme en C/C++.
    Un bon programmeur dois pouvoir faire la transition entre langages. Bien souvent, il n'y que la syntaxe qui change. Les principes devraient rester les mêmes sauf si on passe du procédural à l'objet.

    Autrement, tu va devoir creuser sur le site de Microsoft pour essayer de comprendre comment certaines choses fonctionnent dans Windows. La programmation OS c'est une véritable spécialisation.

  8. #8
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2008
    Messages
    308
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Finance

    Informations forums :
    Inscription : Février 2008
    Messages : 308
    Par défaut
    Oulah, je sens que je vais en passer du temps devant mon PC! le temps d'apprendre le Delphi et de lire toute la doc de Windows et je pourrais songer a continuer mon programme

    je suis toujours a la recherche de bonnes idées ou informations donc n'hésitez pas a poster ou me contacter.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 4
    Dernier message: 15/02/2015, 10h03
  2. Conseil programmation - Accès aux données avec EF
    Par Dan972 dans le forum Entity Framework
    Réponses: 3
    Dernier message: 21/08/2012, 08h55
  3. [Débutant] Accès aux données d'un formulaire dans un autre
    Par Coicatak dans le forum Windows Forms
    Réponses: 4
    Dernier message: 18/04/2012, 16h41
  4. Accéder aux données d'un autre programme
    Par id_rima dans le forum Débuter
    Réponses: 1
    Dernier message: 03/06/2010, 00h25
  5. [TDataModule] Intérêt de séparer les accès aux données?
    Par Cornell dans le forum Bases de données
    Réponses: 5
    Dernier message: 05/09/2003, 16h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo