Citat:
Ursprungligen postat av
FlexibelHottentott
Botter man
Om du inte kan programmera sen innan så rekommenderar jag att du använder C#. Finns ganska mycket kod online för läsa/skriva minne och för att simulera input etc. i C#. Att göra det i C/C++ är coolare dock
Vill du lära dig att använda decompilers, disassemblers och debuggers så kolla här (OBS, ganska tungt):
https://crackmes.one/
Förövrigt:
Decompiler = Försöker översätta maskinkoden till något högnivåspråk (oftast C/C++?). Decompilern kan omöjligen veta hur programmet var skrivet från början så den gör det så gott det går. Hjälper om man har en debugfil med till programmet. Vet inte hur mycket det ger för att göra bottar dock, känns mer användbart vid cracking.
Disassemblers = Översätter maskinkoden till assemblerkod.
Debugger = Används för att läsa och skriva i ett programs minne när det är igång. Brukar hänga ihop med disassemblers.
Jag brukar köra Ghidra som decompiler/disassembler. x64dbg som disassembler/debugger. Samt Cheat Engine som debugger.
Men det är roligare och enklare att
börja med Cheat Engine så jag rekommenderar att du börjar med något äldre 2D-spel.
T.ex. något simpelt du kan göra:
Starta något gammalt 2D-spel och hooka upp Cheat Engine.
Om du t.ex. har ammunition i spelet, säg 55 st, så kan du söka i Cheat Engine efter 55 som värde och så listar den alla minnesadresser med värdet 55. Du kan få 100 000 st matchningar så se till att du nu har 54 st ammunition istället i spelet. Då kan du filtrera din gamla sökning i Cheat Engine efter det som blivit 55 -> 54 och då få betydligt mindre matchningar. Sen kan du repetera det tills du har några rader kvar bara. Då kan du testa att ändra några av matchningarna i Cheat Engine till säg 200 st, och sen kolla om det ändrades i spelet. Men detta är ju mer åt trainers-hållet än bottar.
Förövrigt så är det är viktigt att du förstår innebörden av datatyper när du håller på med Cheat Engine.
Onlinespel brukar ha skydd som bannar en om man hookar upp t.ex. Cheat Engine. Nyare spel brukar även ha någon form av kod-obfuscation. Det är väl någon form av komprimering som sedan "packas upp" så fort man startar spelet. Kan fortfarande debugga det vid körning.
Någon skrev tidigare att man inte kan dekompilera C++-program. Det brukar väl främst vara om det kompilerades med -O3 vilket inte många är.
Nu har jag minimal erfarenhet av det här, men när man gör bottar så tycker jag att det svåraste är:
- Hitta "bas"-pekare och offsets till minnesadresser. Säg att du hittade minnesadressen för din ammunition tidigare. Om du startar om spelet så kommer den adressen peka på något annat, troligtvis skräp. Du behöver alltså hitta en pekare som pekar mot en annan pekare som pekar mot ... som pekar mot din ammunition. Sen offsets också o.s.v. Exempel:
https://www.ownedcore.com/forums/wor...-pointers.html - Simulera input. Jag har inte så bra koll men tror spel brukar använda sig av DirectInput och XInput (nyare). Dom som använder sig av DirectInput kan man simulera knapptryck till enkelt tror jag. XInput är väldigt krångligt.
Läsvärt:
https://en.wikipedia.org/wiki/Decompiler
https://en.wikipedia.org/wiki/Disassembler
https://en.wikipedia.org/wiki/Debugger
För Cheat Engine så finns det mycket på Youtube. För att simulera input så rekommenderar jag dig till att ta det senare för det är verkligen ett helvete