Pytanie:
Jak mogę zautomatyzować minigrę hakerską?
badp
2013-07-16 17:51:23 UTC
view on stackexchange narkive permalink

Fallout 3 i Fallout New Vegas mają hakerską minigrę, która jest w zasadzie Mastermind. Masz kilka haseł i cztery próby. Gdy otrzymasz nieprawidłowe hasło, otrzymasz liczbę poprawnie umieszczonych liter. To wszystko.

enter image description here

Jak mogę skutecznie zagrać w tę minigrę bez uciekania się do długopisu i papieru i zgadywania lub tabel ze znanymi poprawnymi hasłami?

Nawiasem mówiąc, to pytanie nie jest specyficzne dla F: NV. Dokładnie ta sama minigra, z dokładnie tymi samymi rozwiązaniami, istnieje w Fallout 3.
@sanmai Jak argumentował użytkownik galacticninja, to pytanie dotyczy w szczególności automatyzacji, a nie optymalizacji lub efektywnej gry.
Sześć odpowiedzi:
Colin D
2013-07-16 18:29:15 UTC
view on stackexchange narkive permalink

Użyj triku ze nawiasami, aby usunąć fałszywe wpisy i odświeżyć próby odgadnięcia.

http://www.gamershell.com/faqs/fallout3hackingguide/1.0/

[II.7] Sztuczka z nawiasami klamrowymi

Ukryty w bloku kodu możesz znaleźć coś, co lubię nazywać „sztuczką nawiasową”. Sztuczka z nawiasami klamrowymi to zbiór tych przypadkowych znaków interpunkcyjnych, które pojawiają się między słowami zamkniętymi w dowolnym nawiasie. W powyższym bloku kodu jest jeden ukryty.

Druga kolumna bloku kodu i trzeci wiersz zawiera ten wiersz:

0xFA10% '% {. @@ } #? | +

Sztuczka z nawiasami w tej linii to:

{. @@}

Każdy terminal ma szansę na wykonanie sztuczek z nawiasami, ale nie każdy terminal będzie miał jeden. Niektórzy mogą nawet mieć wiele sztuczek. Aby stwierdzić, czy znalazłeś sztuczkę z nawiasami klamrowymi, wystarczy najechać kursorem na nawias otwierający. Jeśli wszystko się zaświeci, gratulacje, znalazłeś to!

Sztuczka z nawiasami może znajdować się między kilkoma różnymi typami nawiasów:

< ___> [____] {____} (____ )

Każdy z nich może mieć dowolny możliwy rozmiar w zakresie bloku kodu i może obejmować wiele linii.

Sztuczka z nawiasami nigdy nie zawiera możliwego hasła.

Odkryłem, że najlepszym sposobem na przeszukanie bloku kodu pod kątem sztuczek jest po prostu najechanie kursorem na każdy znak, a jeśli coś, co nie jest słowem, zapala się, to znalazłeś.

Teraz, gdy już wiesz, jak wyglądają i jak łatwo je znaleźć, prawdopodobnie chcesz wiedzieć, dlaczego ich potrzebujesz.

Po kliknięciu mają one losową szansę na podjęcie kolejnej próby lub usunięcie możliwość z bloku kodu.

Najlepszym momentem na użycie jednego z nich jest pozostały 3 próby, więc nie próbuj używać słowa, które usuwa z bloku, zanim to zrobi.

blockquo te>

Powinienem wspomnieć, że przewodnik z linkami / cytowany dotyczy Fallouta 3, ale sztuczka jest nadal dostępna w Fallout: New Vegas.

Ponad 200 godzin i nigdy tego nie zauważyłem!
Więc na tym zrzucie ekranu „ZGRUPOWANE” i „ZYSKUJĄCE” nie mogło być, prawda?
@badp Myślę, że wszystkie słowa są poprawnymi domysłami, ale jeśli istnieją nawiasy, które pasują po obu stronach słowa, nie zostaną one zarejestrowane jako dopasowane. Jednak nigdy nie wiedziałem / nie użyłem / nie potrzebowałem tego niuansu sztuczki podczas gry.
-1 nie zautomatyzowane. Zgodnie z komentarzami OP w mojej odpowiedzi, ta odpowiedź nie stanowi „automatycznego” rozwiązania łamigłówki hakerskiej. Zgodnie z uwagami PO, odpowiedź ta zasługuje więc na negatywną opinię. Przepraszam.
Muszę się zgodzić z @BonGart. Nie jest to zautomatyzowane i jest po prostu powtórzeniem podanych reguł gry.
Nie odpowiada na pytanie w tytule, ale odpowiada na pytanie w treści: `` Jak mogę skutecznie grać w tę minigrę bez uciekania się do długopisu i papieru, zgadywania lub tabel ze znanymi poprawnymi hasłami? ''. Jest to przydatne (podpowiedź na przyciskach głosowania w górę iw dół), ponieważ powiadamia ludzi o przeoczonej mechanice gry.
Dietrich Epp
2013-07-17 00:23:19 UTC
view on stackexchange narkive permalink

Już to zautomatyzowałem. Mój solver jest dostępny pod adresem: http://moria.us/fallout3/terminal.html

Uwaga: jest to aplikacja jednostronicowa, więc możesz po prostu zapisać solver na dysk twardy jako plik HTML i uruchom go stamtąd.

Samouczek

Załóżmy, że znajdziesz słowa RAMBO, DUMBO, MAMBA, BRICK, TANKS. Śmiało i wprowadź je do solwera.

 [del] RAMBO -0- -1- -2- -3- -4-3 ruchy [del] DUMBO -0- -1- -2- -3- -4- 3 ruchy [del] MAMBA -0- -1- -2- -3- -4- 2 ruchy [del] BRICK -0- -1- -2- -3- -4- 3 ruchy [del] ZBIORNIKI -0- -1- -2- -3- -4-3 ruchy 

W prawej kolumnie widać, że niektóre słowa są oznaczone jako „2 ruchy”, a niektóre słowa są oznaczone jako „3 ruchy”. Ta kolumna jest trochę trudna do wyjaśnienia, ale pokazuje maksymalną liczbę wymaganych ruchów niezbędnych do rozwiązania łamigłówki w następujących warunkach:

  1. Wybierasz to słowo następne, i

  2. Później grasz doskonale.

Więc możesz zobaczyć, że jeśli wybierzesz MAMBA, będzie musiał odgadnąć co najwyżej dwa słowa, aby znaleźć właściwe słowo.

Załóżmy, że wybierasz MAMBA i masz 2 prawidłowe pozycje. Kliknij -2- obok MAMBA:

 [del]  RAMBO  -0- -1- -2- -3- -4- [del] DUMBO -0- -1- -2- -3- -4-1 ruchy [del]  MAMBA  -0- -1- [2] -3- -4- [del]  CEGŁA  -0- -1- -2- -3- -4- [del]  ZBIORNIKI  -0- -1- -2- -3- -4- 

Słowo musi brzmieć DUMBO (co jest drugim ruchem).

Podczas rozgrywki w Fallout 3 zauważyłem, że duża liczba terminali zawierała głównie słowa „5 ruchów” z być może jedno lub dwa słowa „4 ruchy”. Oznacza to, że używając tego narzędzia, możesz grać doskonale i za każdym razem pokonać te terminale ... ale bez tego narzędzia przerwałbym po trzech nieudanych próbach zgadywania.

Wszystko, co musisz zrobić, to kliknąć słowo z małą liczbą ruchów.

Więcej informacji

Możesz zobaczyć, dlaczego MAMBA jest najlepsza, klikając wszystkie liczby obok MAMBA. Bez względu na to, co klikniesz, pozostanie tylko jedno słowo (lub zero).

Jeśli wybierzesz inne słowo, takie jak RAMBO, nadal możesz mieć dwie możliwości do wyboru. Na przykład, jeśli wybierzesz RAMBO, ale pozostaną 3 pozycje, otrzymasz:

 [del]  RAMBO  -0- -1- -2- [3] -4- [ del] DUMBO -0- -1- -2- -3- -4- 2 ruchy [del] MAMBA -0- -1- -2- -3- -4-2 ruchy [del]  CEGŁA  s> -0- -1- -2- -3- -4- [del]  ZBIORNIKI  -0- -1- -2- -3- -4- 

Jak to działa

„Wyświetl źródło” działa dobrze, to wszystko w JavaScript. Jeśli dobrze pamiętam, rekurencyjnie oblicza maksymalną liczbę niezbędnych ruchów, badając sytuacje typu „co jeśli wybierzesz DUMBO i masz 3 poprawne”. Funkcja maxmoves () jest tam, gdzie się znajduje.

badp
2013-07-16 17:51:23 UTC
view on stackexchange narkive permalink

Jeśli masz kopię Pythona 3 leżącą w pobliżu, możesz to zrobić w mgnieniu oka.

Po pierwsze, przepisz hasła w tablicy takiej jak ta. (Nie wpisuj znaków >>> ).

  >>> hasła = ["kryjówka", "przepływ", "koc", "handel", "zakaz "," odejście "," studia "," szermierka "," bitwy "," komora "," imprezy "," przewoźnik "," płonący "," różny "," pracujący "," bicie "," wzmianka ", "chcąc"]  

Możemy sprawdzić poczytalność i upewnić się, że wszystkie hasła są takie same:

  Lista >>> (mapa (len, hasła) ) [7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7, 7]  

Teraz musimy sprawdzić, ile liter jest takich samych między dowolnymi dwoma hasłami. Jest to jedna linijka:

  >>> def distance (a, b): return sum (1 for al, bl in zip (a, b) if al == bl) if a! = b else -1  

Jeśli hasła są faktycznie takie same, zwracamy -1 zamiast 7, więc możemy zignorować te przypadki.

Teraz potrzebujemy tylko kodu wybierz hasła, które mają tyle pasujących znaków, ile mówi nam gra. To kolejna jedna linijka. Dajesz mu listę haseł, które wypróbowałeś i nie zadziałało oraz ile znaków było poprawnych.

  >>> def refine (kandydaci, błędne_pw, dopasowania): result = list (x dla x w kandydatach, jeśli odległość (x, błędne_pw) == pasuje) zwraca wynik  

Więc powiedzmy, że hasło „płynie” i uzyskałeś 1 znak. Auć. Następnie użyj tego, co zdefiniowaliśmy w ten sposób:

  >>> passwords = refine (passwords, "flowing", 1); hasła ['ogólne', 'studia', 'strony', 'przewoźnik', 'wzmianka']  

OK, a co powiesz na "studia" ... nie, 3 prawidłowe litery. / p>

  >>> passwords = refine (hasła, "badania", 3); passwords ['party']  

O, spójrz, to musi być hasło!


Jak więc możemy zautomatyzować wybór haseł z puli? To, co możemy zrobić, to przyjrzeć się każdej opcji i zobaczyć, w najgorszym przypadku, ile haseł pozostawia nam. Następnie możemy wybrać tę z najmniejszą liczbą pozostałych opcji w najgorszym przypadku. To hasło jest tym, które zapewnia najlepszą gwarancję zmniejszenia pola.

Ten kod sprawdza każde hasło z każdym innym hasłem z każdym innym hasłem, aby znaleźć najlepszego kandydata.

  def get_next_guess (hasła): oceny = {} dla kandydata w hasłach: wyniki = [] reszta = (x dla x w hasłach, jeśli x! = kandydat) for correct_pw w pozostałej części: no_alternatives = len ( doprecyzuj (reszta, kandydat, odległość (kandydat, poprawne_pw))) wyniki.append (no_alternatives) wyniki [kandydat] = maks (wyniki) zwróć min (oceny, klucz = lambda x: oceny [x])  

To odgaduje „imprezy” natychmiast na moim komputerze, co jest trochę szczęśliwe, ponieważ „bicie” byłoby równie dobrym przypuszczeniem. Zamiast tego spójrzmy na to na zrzucie ekranu, gdzie prawidłowe hasło brzmiało „OCZEKIWANIE”.

  >>> passwords = ["wyczyść", "zgrupowane", "zdobywanie", "marnowanie", " prochowiec ”,„ pozwalający ”,„ zakończenia ”,„ płodny ”,„ szukający ”,„ pewni ”,„ bandyci ”,„ stwierdzający ”,„ chcący ”,„ imprezy ”,„ czekanie ”,„ stacja ”,„ maltaza ” , "monster"] >>> get_next_guess (hasła) 'wanting'>>> #incorrect, 6/7 poprawna>>>, passwords = wanting (passwords); hasła [„marnowanie”, „oczekiwanie”]  

Gdy pozostały dwa hasła, get_next_guess staje się w zasadzie rzutem kostką. Po prostu wypróbuj pierwszą, a potem drugą, a skończysz w trzech próbach, bez ponownego uruchamiania.

(Poza tym zabawa. Wiesz, link udostępniony przez Colina D z listą 12-znakowe hasła? Tamtejszy autor wybrał APPRECIATION . To właściwie najlepsze przypuszczenie! W takim przypadku pozostawia Ci nie więcej niż dwie alternatywy, niezależnie od tego, jakie jest prawidłowe hasło faktycznie jest.)

Więc w zasadzie pozwalasz Pythonowi załatwić za ciebie papierkową robotę?
Brutalne forsowanie jest szybsze.
... Tak, to z pewnością * znacznie * łatwiejsze rozwiązanie. *kaszel kaszel*
Niesamowicie sprytny * i * niesamowicie bezużyteczny. Gratulacje! Chyba zagłosowałeś w górę?
Ty ohydny hackingu.
@LessPop_MoreFizz Nie, mądrym pomysłem byłoby automatyczne obliczenie najlepszego wyboru dla pierwszego przypuszczenia.
-1 nie zautomatyzowane. OP wyraźnie stwierdza, że ​​nie chciał tego robić ręcznie, a ta odpowiedź nadal wymaga kodowania i obsługi procesu ręcznie (i edytowania podczas wprowadzania domysłów). Nie jest więc zautomatyzowany, a po komentarzach OP w mojej odpowiedzi zasługuje na głosy negatywne. Przepraszam.
Głosowanie za zemstą można technicznie uznać za nadużycie przywileju głosowania. Coś, o czym warto pamiętać.
Pomijając głosowanie przeciwko zemście na bok, to rozwiązanie wydaje się być bardzo trudne i nadal wymaga domysłów. Można to poprawić.
Napisałem również skrypt w języku Python, ale wpisujesz słowa po monicie, a wyświetla tabelę z odległościami między słowami. To 90% pracy, potem możesz łatwo złamać układankę. Nie tak zautomatyzowany, jak ten, ale przynajmniej nie musisz wpisywać wielu poleceń i pamiętać składni.
@JackM eh, mógłbym z lenistwa napisać później wersję tego opartą na zachęcie i umieścić ją na gist.github; Najpierw chciałem mieć logikę.
@badp Teraz wszystko, co musisz zrobić, to zrobić zrzut ekranu z aktualnie działającej gry Fallout, uruchomić go przez OCR, przeanalizować go pod kątem prób podania hasła ...
@Tacroy To jest poza zakresem, a ponadto nie działałoby na konsolach: P
@badp Dobry pomysł, powinieneś zamienić go w aplikację na telefon i wykorzystać wbudowany aparat!
-1
@Lyrion Rozwiązanie tej łamigłówki nie _ wymaga_ zgadywania. To wszystko.
Nolonar
2013-07-16 22:35:38 UTC
view on stackexchange narkive permalink

Używam dość prostego, ale zaskakująco wydajnego algorytmu, który można zrobić bez robienia notatek i może doprowadzić do odpowiedzi stosunkowo szybko:

Wyjaśnię mój algorytm krok po kroku -step i używając zrzutu ekranu jako przykładu. W naszym przykładzie założymy, że wynikiem jest WAITING . Aby nie musieć ciągle przewijać w górę, dołączam zrzut ekranu do tej odpowiedzi. Screenshot


Krok 1:

Wybierz pierwszy słowo: CLEANSE , wynik to 0

Krok 2:

Podaj nawiasy ( zobacz odpowiedź @ ColinD), aż albo odzyskałeś utraconą próbę, albo nie ma już nawiasu do użycia (załóżmy, że odzyskałem utraconą próbę na pierwszej parze nawiasów). Powodem, dla którego robimy to w kroku 2, a nie kroku 1, jest to, że zaczynasz hakować z największą możliwą liczbą prób. W tym przypadku nie możesz mieć więcej niż 4 prób.

Krok 3:

Przejdź do następnego słowa GROUPED i porównaj je z poprzednimi słowami próbowałeś. Oba mają wspólne E , ale nie znajdują się one na tym samym miejscu, więc podobieństwo między nimi wynosi 0, co pasuje do naszego potencjalnego rozwiązania; wynik również wynosi 0 ...

Krok 4:

Zakładając, że nie wykorzystałeś wszystkich nawiasów, byłby to idealny moment, aby poszukać kolejnej dodatkowej próby.

Krok 5:

Wypłucz i powtórz. GAINING ma podobieństwo 1 do GROUPED , więc to nie jest nasze słowo. WASTING ma podobieństwo 0 w porównaniu z CLEANSE lub GROUPED ( nie porównujemy WASTING na GAINING , ponieważ go pominęliśmy); tym razem wynik to 6, Yeehaa!!”

Krok 6:

Od tego momentu będzie szybko: szukamy słowa, które różni się od WASTING tylko jedną literą. DUSTERS , LETTING , ENDINGS , FERTILE , SEEKING , CERTAIN , BANDITS , STATING , no, no and no! WANTING , tak !” ; wynik tutaj to znowu 6.

Krok 7:

Odtąd wiemy, że naszym rozwiązaniem jest WA * TING . Zanim przejdziemy dalej, przyjrzyjmy się, ile prób mamy i ile pozostało słów WA * TING . Jeśli pozostała nam tylko 1 próba i więcej niż 1 możliwe rozwiązanie, staramy się znaleźć dodatkową próbę za pomocą nawiasów. W naszym przypadku zostało tylko 1 słowo, WAITING , które jest naszym rozwiązaniem.


W naszym przykładzie wykorzystaliśmy 4 próby (ale odzyskaliśmy 1), więc to była mała szansa.
Zwykle znajdziesz rozwiązanie znacznie szybciej, ponieważ istnieje wiele pomocnych par nawiasów (w naszym przykładzie była tylko 1 para).

Robisz nie potrzebujesz żadnego długopisu ani papieru używającego tego algorytmu, ponieważ GUI już pokazuje, które słowa wypróbowałeś (nie wszystkie, ale przeważnie wystarczające), więc nie musisz ich pamiętać, porównując bieżące słowo z poprzednie.

Zawsze miej oko na liczbę pozostałych prób! Jeśli została tylko 1 próba i nie ma więcej nawiasów do użycia i więcej niż 1 potencjalne rozwiązanie, a potem przestań hakować i spróbuj ponownie.

W związku z tym życzę powodzenia.
Och, i nie próbuj włamać się do mojego komputera, bo byłbym naprawdę smutny jeśli tak

: '- (

„tylko jedną literą”. „WANTING” to 7, a nie 6 liter: P
@badp Byłem trochę zdezorientowany twoim poprzednim komentarzem, ale mimo wszystko znalazłem błąd w mojej odpowiedzi dzięki temu. Po wypróbowaniu "WANTING" lub "WASTING" powiedziałem, że wynik będzie 5, ale tak naprawdę to 6. Czasami potrafię być naprawdę głupi, lol ...
poczekaj na nawiasy, dopóki nie wybierzesz 3. Albo zostanie usunięta wystarczająca liczba niewypałów, aby uzyskać właściwy, albo otrzymasz uzupełnienie zasiłku, co daje Ci ** 7 ** prób uzyskania prawidłowego hasła
user598527
2020-04-06 00:31:33 UTC
view on stackexchange narkive permalink

Zasadniczo możesz zautomatyzować hakowanie za pomocą tego moda na Nexusie.

Dzięki tej modyfikacji hakowanie terminali jest naprawdę prostsze! Możesz wybrać JEDEN z tych esp:

Easier_hacking_5_8: Terminale pokażą 5-8 słów zamiast 5-20 w oryginalnej grze. Lucky_hacking_5: tylko 5 słów możliwości Action_Boy_hacking: tylko 1 słowo możliwości, ja nie chcę tracić na tym swój czas! (bliżej niż starsze opady)

Przy okazji, terminale nadal wymagają umiejętności naukowych.

Wybierz opcję Action_Boy_hacking . Wyłącz lub usuń inne pliki ESP.


Możesz jeszcze bardziej skrócić opóźnienie dzięki poprawkom lStewieAla:

Szybsze przejście hakowania - zmniejsza opóźnienie po pomyślnym zakończeniu hakowanie od 3 do 0,5 sekundy

uwaga:

Wszystkie poprawki są domyślnie wyłączone i muszą być włączone w dostarczonym ini.

Zauważyłem teraz, że to pytanie dotyczy zarówno Fallouta 3, jak i New Vegas.Niedługo zaktualizuję;przynajmniej [ten ostatni mod ma wersję NV] (https://www.nexusmods.com/newvegas/mods/66347).
Bon Gart
2013-07-16 18:29:23 UTC
view on stackexchange narkive permalink

Fakt, że zgadywane hasła są drukowane w prawym dolnym rogu ekranu, tak jak je zgadujesz, znacznie ułatwia proces odgadywania hasła.

Wybierasz jedno. Nawet poprawne uzyskanie 0 liter pomoże Ci wyeliminować kilka haseł. Poszukaj wzorów, zanim zaczniesz zgadywać. Czy istnieje stos słów, które kończą się na „ING”? Jeśli tak, wybierz najpierw jedną z nich. Jeśli nie masz co najmniej 3 liter poprawnie, to wiesz, że WSZYSTKIE słowa kończące się na ING są niewłaściwe.

Jeśli podejdziesz do tego z odpowiednim nastawieniem, nie powinno t wymaga długopisu i kartki papieru lub drugiego komputera z uruchomionym programem. To jest gra w hakowanie. Jeśli naprawdę chcesz to ułatwić, poświęć więcej punktów na naukę lub player.modav science 100

Nie wiem, dlaczego zostałeś odrzucony.
@ChargingPun, ponieważ nie pytałem, jak to zrobić _ ręcznie_ lub _poprzez statystyki / oszukiwanie__. Zakładam, że ktoś już napisał bardzo mały fragment javascript lub coś w tym rodzaju, ponieważ wszystko jest dość łatwe do zaimplementowania.


To pytanie i odpowiedź zostało automatycznie przetłumaczone z języka angielskiego.Oryginalna treść jest dostępna na stackexchange, za co dziękujemy za licencję cc by-sa 3.0, w ramach której jest rozpowszechniana.
Loading...