Modyfikowanie prędkości, z jaką przebiega proces (Cheat Engine alternatywa jako Flash Game Speed ​​Hack)

20

W systemie Windows istnieje narzędzie do gier Flash o nazwie Cheat Engine, które może przyspieszyć / spowolnić proces o wartość X, dzięki czemu czas potrzebny na wykonanie zadania w grze jest szybszy lub wolniejszy niż w prawdziwym świecie. Jest to szczególnie przydatne w przypadku gier opartych na czasie, które powodują, że musisz poczekać X czasu na ukończenie budynku, żniwa na ukończenie itp. Dotyczy to również gier, w których potrzebujesz, aby działały wolniej, abyś mógł bronić przed kilkoma wrogami (gry Zombie itp.) lub grami, których trudność polega na tym, jak szybko można coś ukończyć.

Ale to nie ogranicza się do internetowych gier Flash. Cheat Engine może także przyspieszać / zmniejszać inne gry (Half-Life, Quake 3 itp.).

Czy jest na to sposób w Ubuntu?

Oto opcja SPEED HACK , o której mówię, używając narzędzia „Cheat Engine” w systemie Windows i jest to opcja, że ​​99,99% użytkowników Cheat Engine używa Cheat Engine do:

wprowadź opis zdjęcia tutaj

Powinienem wspomnieć, że nie szukam metody, aby zatrzymać proces co milisekundę (jak spowolnienie przeglądarki Firefox lub Chrome zamiast spowolnienia gry Flash). Na przykład spowolnienie Firefoksa nie działałoby, ponieważ spowalnia również wszystko inne, więc nie byłby to hakowanie szybkościowe, a bardziej spowolnienie całego procesu, w tym wszystkich działań użytkownika. Zasadniczo wszystko byłoby takie samo, tylko wolniejsze. To samo dotyczy przyspieszenia procesu.

Szukam sposobu, aby to zrobić w przypadku gier Flash opartych na sieci Web i / lub gier emulowanych przez Wine.

Luis Alvarado
źródło
1
Myślę, że ten problem będzie występował, dopóki nie pojawi się „Cheat Engine for Linux”.
Luis Alvarado,
jakieś sześć miesięcy później, czy jest jakaś odpowiedź na to pytanie (nie liczę priorytetu procesu jako odpowiedzi ... ponieważ i tak nie działa)?
Yanick Rochon
nic o tym nie wiem, ale po przeczytaniu przyszła mi do głowy myśl, dlaczego nie naśladować flashowania i dodać automatyzacji, może nawet sztucznej inteligencji, aby przewidzieć zmiany, nie pytaj mnie „jak”, bo jak powiedziałem, nie mam pojęcia, jak zrobić to się zdarza

Odpowiedzi:

3

Krótka odpowiedź, nie. Nie ma 2x przycisku do planowania procesu. Najlepsze, co możesz zrobić, to użyć cgroups do tego, co Cię interesuje, aby uzyskać więcej czasu procesora, kosztem innego procesu. Jeśli musiałem zgadywać, powodem, dla którego speedhack nawet działa, jest to, że robi to biznes, manipulując środowiskiem wykonawczym Flash lub po prostu nazywając go maszyną wirtualną. Nie chodzi o to, że przyspiesza program, zmienił podstawowe parametry, na których opiera się cała maszyna wirtualna. Przypuszczam, że to samo byłoby możliwe z czymś takim jak Java lub Python.

No cóż, myślę, że będziesz musiał nadal oszukiwać Farmville na Windowsie. Wstyd.

ppetraki
źródło
3

Mogą one pomóc spowolnić procesy, ale nie przyspieszyć ich ...

1) SIGSTOP i SIGCONT:

killKomenda może wydać STOP, a CONTsygnały do procesu z danym PID. Użyłem go wcześniej do „wstrzymywania” i „ograniczania” skryptów Pythona i działa dobrze w tym celu.

Oto przykład w skrypcie bash (przekaż PID odpowiedniego procesu jako parametr wiersza poleceń):

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

Te sny (w sekundach) musiałyby spaść do znacznie mniejszej ilości, aby zmniejszyć szarpnięcie, ale dłuższy interwał czyni to bardziej oczywistym dla testów.

Gdy będziesz zadowolony z określonego przedziału czasowego, możesz dostosować współczynnik snu za pomocą zmiennej.

2) Inną możliwością ograniczenia przepustowości jest „cpulimit”:

sudo apt-get install cpulimit

Aby ograniczyć firefox do 30% CPU:

cpulimit -e firefox -l 30
laher
źródło
Czy nie byłoby to w rzeczywistości przeciwieństwem tego, o co pyta?
Uri Herrera
1
Odpowiadałem na część o „grach, w których musisz je spowolnić, abyś mógł ukończyć trudny poziom”
laher
1

Sugerowałbym kilka rzeczy. Jeśli rzeczywiście jest to farmville / coś granego w sieci (jak sugeruje ppetraki), uważam, że jedną z dróg jest przejście drogą fatmonkey (jest to platforma umożliwiająca uruchamianie wszystkich skryptów opartych na javascript, aby umożliwić bardziej zaawansowane dostosowywanie na wszystkich poziomach przeglądarki / renderowania strony). Nie mniej, przeczytałem wszystkie inne odpowiedzi bardzo szybko i, co zaskakujące, nikt nie wspomniał o Winie http://www.winehq.org/documentation .

Mówiąc dokładniej, jeśli normalne wino nie działa (co udało mi się sprawić, że działa, najlepiej wypróbować wersję 32-bitową), cała nadzieja nie jest stracona, ponieważ brzmi to jak idealny kandydat na rozszerzenie / dodatek Wine „esque program” „Wine-Hacks” zachęca użytkownika do przejścia przez proces instalacji różnych programów spełniających określone wymagania / etc ... (jest to bardzo łatwa droga, jeśli tradycyjna konfiguracja wina nie działa ). Jest to interesująca sytuacja i ważne jest, aby pamiętać, że linux ogólnie daje użytkownikowi znacznie większą platformę do dostosowywania i dostrajania różnych procesów / wątków / itp. Na wszystkich poziomach ... Jednak duża ilość odczytu zazwyczaj pochodzi z to. W perspektywie niższego poziomu można, jeśli gra korzysta z komunikacji międzyprocesowej, dostosować prędkość gniazd ('vmstat' / '

Ale patrząc na twój obraz i sam pobierając aplikację, rozumiem, jak działa aplikacja, a także fakt, że czyta fragmenty pamięci i skanuje adresy pamięci / etc ... wymyka się temu, że robi to bardzo dobrze , podkręcanie komunikacji pamięci / międzyprocesowej na niskim poziomie (jednak idąc tą drogą stworzyłbyś własną hacką wersję „Cheat-Engine”, można to bardzo łatwo zrobić za pomocą gdb (gcc-debugger, programista / narzędzie bezpieczeństwa, ponieważ wykonywanie tego typu zadań jest częstą częścią pracy programisty, aby lepiej ocenić, jak działa aplikacja / jej ogólna wydajność., działa podobnie w bardziej ograniczonym zakresie). Wystarczy użyć innego narzędzia do kontroli pamięć / sekwencjonowanie komunikacji na poziomie gniazd. Scenariusz Wine zadziała i wypróbowałem go krótko (jednak niewiesz, w którą grę celujesz, lol !!).

Podsumowując, abyśmy byli pewni, jednym ze sposobów byłoby ponowne ładowanie procesów / wątków procesów (zadań) w Linuksie / i lokalizowanie różnych adresów pamięci oraz bitów używanych w komunikacji międzyprocesowej / gniazdowej za pomocą narzędzi / lub debuggera ( już wspomniane). Następnie inny bardziej podstawowy sposób, który wykorzystywałby logikę „Cheat-engine”, samego w środowisku innym niż Windows, poprzez zainstalowanie go z Wine, gdy Wine uruchamia aplikację i zarządza nią w procesach / wątkach wewnątrz, więc jest tak jak jeśli program jest uruchamiany w samym systemie Windows. Program Wine znajduje się we wszystkich dystrybucjach specyficznych dla Ubuntu, które widziałem („apt-get” / „aptitude”, aby zainstalować Wine). Dodatkowo, innym narzędziem do debugowania / ulepszania gier opartych na Flashu / etc ... jest Flashbug (wariant firebug, podobnie jak Greasemonkey jest używany w Mozilli) Powodzenia i na zdrowie !!

William Franklin
źródło
Będziesz potrzebował całego stosu zainstalowanego z WINE - przeglądarką działającą w WINE (chyba że gra będzie działać na zewnątrz), Flash Player dla Windows i hack Flash Speed ​​(plus oczywiście plik SWF) Co do GreaseMonkey - to nie będzie praca. JS i Flash to zupełnie inne technologie.
Piskvor,
Dobrze, że są to zupełnie różne technologie, ale nie wprowadziłem tego rozróżnienia, flash (rzeczywiście zastrzeżona wtyczka) jest pokazany przez osadzenie w DOM i oczywiście można w niektórych przypadkach wykorzystać te zdarzenia, w których javascript w pełni interfejsy jako sposób na osiągnięcie celu, aby wpłynąć na flash, ponieważ czasami flash jest nawet osadzony w javascript. O ile nie wycofały w3 / whatwg specyfikacji wszystkich stron, jest wynikiem wykonania opartego na zdarzeniu. Wykonywanie zdarzeń jest racją bytu javascript (ECMA w dawnych czasach szkolnych), FYI: 80% + skrypty fatmonkey to kody do gier.
William Franklin
Masz rację co do tego, czym jest JS, skąd pochodzi i jak działa; ale dopóki obiekt blob Flash nie ujawni interfejsu do zmiany prędkości gry (bardzo mało prawdopodobne), po prostu nie możesz do tego użyć JS - nie ma „wbudowanej” kontroli takiej interakcji. Jestem świadomy skryptów cheatowych GM; zauważ, że wszystkie z nich są skierowane na część JS / DOM i / lub interakcję Flasha z JS - a nie działanie samego obiektu blob Flash.
Piskvor