web-dev-qa-db-fra.com

Modification de la vitesse d'exécution d'un processus (alternative à Cheat Engine sous forme de piratage de jeu flash)

Dans Windows, il existe un outil pour les jeux Flash appelé Cheat Engine qui permet d’accélérer/ralentir un processus de X fois, ce qui rend le temps nécessaire à une tâche dans un jeu plus rapide ou plus lent monde réel. Ceci est particulièrement utile pour les jeux basés sur le temps qui vous font attendre un laps de temps X pour qu'un bâtiment soit terminé, une récolte pour être complétée, etc. Cela s'applique également aux jeux pour lesquels vous avez besoin d'aller plus lentement afin que vous puissiez se défendre contre plusieurs ennemis (jeux de zombies, etc.) ou des jeux dont la difficulté réside dans la rapidité avec laquelle on peut accomplir quelque chose.

Mais cela ne se limite pas aux jeux Flash basés sur le Web. Cheat Engine peut également accélérer/réduire d'autres jeux (Half-Life, Quake 3, etc.).

Y a-t-il un moyen de faire cela dans Ubuntu?

Voici l'option SPEED HACK à laquelle je me réfère en utilisant l'outil "Cheat Engine" de Windows. Il s'agit en fait de l'option selon laquelle 99,99% des utilisateurs de Cheat Engine utilisent Cheat Engine pour:

enter image description here

Je devrais mentionner que je ne cherche pas de méthode pour suspendre le processus toutes les millisecondes (comme pour ralentir Firefox ou Chrome au lieu de ralentir le jeu Flash). Par exemple, ralentir Firefox ne fonctionnerait pas puisqu'il ralentirait tout le reste, donc ce ne serait pas un piratage de vitesse, mais plutôt un ralentissement général du processus, y compris toutes les actions de l'utilisateur. Fondamentalement, tout serait pareil, juste plus lent. La même chose vaut pour accélérer le processus.

Je cherche un moyen de le faire pour les jeux Flash basés sur le Web et/ou les jeux émulés par Wine.

20
Luis Alvarado

Réponse courte, non. Il n'y a pas de bouton 2x pour la planification des processus. Le mieux que vous pouvez faire est d'utiliser cgroups pour ce qui vous intéresse pour obtenir plus de temps processeur, au détriment d'un autre processus. Si je devais deviner, la raison pour laquelle speedhack fonctionne, c'est même parce que c'est une activité qui consiste à manipuler le moteur d'exécution Flash ou à l'appeler simplement une machine virtuelle. Ce n’est pas qu’elle accélère le programme, mais bien les paramètres fondamentaux sur lesquels repose le VM. Je suppose que la même chose serait possible avec quelque chose comme Java ou Python.

Oh bien, je suppose que vous devrez continuer à tricher sur Farmville sous Windows. La honte.

3
ppetraki

Celles-ci pourraient aider à ralentir les processus, mais pas à les accélérer ...

1) SIGSTOP et SIGCONT:

La commande kill peut émettre un STOP et un CONT signaux à un processus avec un pid donné. Je l'ai déjà utilisé pour "mettre en pause" et "limiter" les scripts python, et cela fonctionne très bien à cette fin.

Voici un exemple dans un script bash (transmettez le PID du processus correspondant en tant que paramètre de ligne de commande):

PID=$1
while true; do 
    sleep 0.5
    kill -s STOP $PID
    sleep 0.5
    kill -s CONT $PID
done

Ces temps de sommeil (en secondes) devraient être réduits au minimum pour réduire les saccades, mais l'intervalle plus long le rend plus évident pour les tests.

Une fois que vous êtes satisfait d’un intervalle particulier, vous pouvez régler le ratio de sommeil avec une variable.

2) Une autre possibilité, pour l'étranglement, est "cpulimit":

Sudo apt-get install cpulimit

Pour limiter Firefox à 30% d'UC:

cpulimit -e firefox -l 30
3
laher

Je suggérerais une ou deux choses. S'il s'agit bien de farmville/quelque chose qui se joue sur le net (comme l'a suggéré ppetraki), je crois qu'une solution consiste à passer par la route greasemonkey (c'est une plate-forme permettant l'exécution de tous les scripts basés sur JavaScript qui permet des ajustements plus avancés à tous les niveaux. du navigateur/rendu de page.). Pas moins, j'ai lu très rapidement toutes les autres réponses et, chose surprenante, personne n'a mentionné Wine http://www.winehq.org/documentation .

Plus précisément, si le vin normal ne fonctionne pas (ce que j'ai pu faire fonctionner, mieux vaut essayer 32 bits), tout espoir n'est pas perdu, car cela semble être un candidat idéal pour l'extension/le complément de Wine. Le programme 'esque' Wine-Hacks 'invite l'utilisateur à se familiariser avec l'installation de divers logiciels répondant à des exigences particulières/etc ... (ceci est une avenue très facile, si la configuration de vin traditionnelle ne fonctionne pas ). Ceci est une situation intéressante, et il est important de rappeler que linux en général donne à l'utilisateur une plate-forme beaucoup plus grande à personnaliser, et Tweak les divers processus/threads/etc à tous les niveaux ... Cependant, une grande quantité de lecture provient généralement de il. Sur un niveau inférieur, on pourrait, si le jeu utilise une communication interprocessus, modifier les vitesses sur les sockets (les commandes 'vmstat'/'top'/'' ps '/' ss 'ne sont qu'un petit arsenal de ce que Linux propose) eux-mêmes, et bien que la courbe d’apprentissage et la facilité d’utilisation soient aussi réduites, ces outils sont un point de départ pour l’analyse de l’activité/de la gestion de la mémoire au niveau du processus.

Mais en regardant votre image et en téléchargeant l'application moi-même, je comprends mieux le fonctionnement de l'application et le fait qu'elle lit des morceaux de mémoire et balaye des adresses mémoire/etc ... cela lui échappe très bien. , en peaufinant la communication mémoire/interprocess à un niveau bas (cependant, si vous empruntiez cet itinéraire, vous créeriez votre propre version hack du "Cheat-Engine", il pourrait très facilement être fait avec un gdb (gcc-debugger, un développeur/L’outil de sécurité, car ces types de tâches font partie du travail courant d’un développeur pour mieux évaluer le fonctionnement de l’application/ses performances globales., agit de la même manière dans un périmètre plus restreint.) Vous utiliseriez simplement un outil différent pour contrôler la mémoire/le séquencement de la communication au niveau des sockets.Non moins, le scénario Wine fonctionnera et j’ai essayé brièvement (cependant, je ne sais pas quel est le jeu ciblé que vous jouez, lol !!).

Pour conclure, pour que tout soit clair, on pourrait ré-agencer les processus/tâches dans Linux/et localiser les différentes adresses de mémoire et les bits utilisés dans la communication interprocess/socket à l’aide d’utilitaires/ou du débogueur ( déjà mentionné). Ensuite, un autre moyen plus simple d'utiliser la logique du "moteur de triche", lui-même dans un environnement autre que Windows, en l'installant avec Wine, car Wine exécute l'application et la gère dans les processus/threads internes. si le programme est exécuté dans Windows même. Le programme Wine est dans toutes les distributions spécifiques à Ubuntu que j'ai vues, "'apt-get'/'aptitude'" pour installer Wine). De plus, un autre outil pour le débogage/ajustement de jeux flash/etc ... est celui de Flashbug (une variante de firebug, tout comme Greasemonkey est utilisé dans Mozilla) Bonne chance et à la vôtre !!

1
William Franklin