Cheat Engine
Reading time: 10 minutes
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na π¬ kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter π¦ @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.
Cheat Engine ni programu muhimu ya kutafuta mahali ambapo thamani muhimu zimehifadhiwa ndani ya kumbukumbu ya mchezo unaoendelea na kuzibadilisha.
Unaposhusha na kuendesha, unapata mafunzo ya jinsi ya kutumia chombo hiki. Ikiwa unataka kujifunza jinsi ya kutumia chombo hiki, inashauriwa kukamilisha mafunzo hayo.
Unatafuta nini?
Chombo hiki ni muhimu sana kutafuta mahali ambapo thamani fulani (kawaida ni nambari) imehifadhiwa katika kumbukumbu ya programu.
Kawaida nambari huhifadhiwa katika 4bytes lakini unaweza pia kuzikuta katika double au float formats, au unaweza kutaka kutafuta kitu tofauti na nambari. Kwa sababu hiyo, unahitaji kuwa na uhakika kuwa unachagua unachotaka kutafuta:
Pia unaweza kuashiria aina tofauti za tafutizi:
Unaweza pia kuangalia kisanduku ili kusitisha mchezo wakati wa kuskania kumbukumbu:
Hotkeys
Katika Edit --> Settings --> Hotkeys unaweza kuweka hotkeys tofauti kwa madhumuni tofauti kama kusitisha mchezo (ambayo ni muhimu sana ikiwa kwa wakati fulani unataka kuskania kumbukumbu). Chaguzi nyingine zinapatikana:
Kubadilisha thamani
Mara tu unapokuwa umeipata wapi thamani unayo tafuta (zaidi kuhusu hii katika hatua zinazofuata) unaweza kuibadilisha kwa kubofya mara mbili, kisha kubofya mara mbili kwenye thamani yake:
Na hatimaye kuweka alama ili kupata mabadiliko yafanyike katika kumbukumbu:
Mabadiliko kwa kumbukumbu yatakuwa yamewekwa mara moja (kumbuka kuwa hadi mchezo usitumie thamani hii tena, thamani haitawekwa upya katika mchezo).
Kutafuta thamani
Hivyo, tunaenda kudhani kuwa kuna thamani muhimu (kama maisha ya mtumiaji wako) unayotaka kuboresha, na unatafuta thamani hii katika kumbukumbu)
Kupitia mabadiliko yanayojulikana
Tukidhani unatafuta thamani 100, unafanya scan ukitafuta thamani hiyo na unapata coincidences nyingi:
Kisha, unafanya kitu ili thamani ibadilike, na un asitisha mchezo na kufanya scan ya next:
Cheat Engine itatafuta thamani ambazo zilipita kutoka 100 hadi thamani mpya. Hongera, umepata anwani ya thamani uliyokuwa unatafuta, sasa unaweza kuibadilisha.
Ikiwa bado una thamani kadhaa, fanya kitu ili kubadilisha tena thamani hiyo, na fanya "next scan" nyingine ili kuchuja anwani.
Thamani isiyojulikana, mabadiliko yanayojulikana
Katika hali ambapo hujui thamani lakini unajua jinsi ya kuifanya ibadilike (na hata thamani ya mabadiliko) unaweza kutafuta nambari yako.
Hivyo, anza kwa kufanya scan ya aina "Unknown initial value":
Kisha, fanya thamani ibadilike, onyesha jinsi thamani ilibadilika (katika kesi yangu ilipungua kwa 1) na fanya next scan:
Utawasilishwa na thamani zote ambazo zilibadilishwa kwa njia iliyochaguliwa:
Mara tu unapokuwa umepata thamani yako, unaweza kuibadilisha.
Kumbuka kuwa kuna mabadiliko mengi yanayowezekana na unaweza kufanya hatua hizi mara nyingi kadri unavyotaka ili kuchuja matokeo:
Anwani ya Kumbukumbu ya Nasibu - Kutafuta msimbo
Hadi sasa tumefundishwa jinsi ya kupata anwani inayohifadhi thamani, lakini ni uwezekano mkubwa kwamba katika utekelezaji tofauti wa mchezo anwani hiyo iko katika maeneo tofauti ya kumbukumbu. Hivyo, hebu tujifunze jinsi ya kila wakati kupata anwani hiyo.
Kwa kutumia baadhi ya hila zilizotajwa, pata anwani ambapo mchezo wako wa sasa unahifadhi thamani muhimu. Kisha (ukisitisha mchezo ikiwa unataka) fanya right click kwenye anwani iliyopatikana na uchague "Find out what accesses this address" au "Find out what writes to this address":
Chaguo la kwanza ni muhimu kujua sehemu za msimbo zinazotumia anwani hii (ambayo ni muhimu kwa mambo zaidi kama kujua wapi unaweza kubadilisha msimbo wa mchezo).
Chaguo la pili ni maalum zaidi, na litakuwa na msaada zaidi katika kesi hii kwani tunavutiwa kujua kutoka wapi thamani hii inaandikwa.
Mara tu unapochagua moja ya chaguzi hizo, debugger itakuwa imeunganishwa na programu na dirisha jipya bila maudhui litajitokeza. Sasa, cheza mchezo na badilisha thamani hiyo (bila kuanzisha upya mchezo). Dirisha linapaswa kuwa limejaa na anwani zinazobadilisha thamani:
Sasa kwamba umepata anwani inayobadilisha thamani unaweza kubadilisha msimbo kwa mapenzi yako (Cheat Engine inakuwezesha kuibadilisha kwa NOPs haraka):
Hivyo, sasa unaweza kuibadilisha ili msimbo usiathiri nambari yako, au uathiri kila wakati kwa njia chanya.
Anwani ya Kumbukumbu ya Nasibu - Kutafuta kiashiria
Kufuata hatua zilizopita, pata wapi thamani unayovutiwa nayo iko. Kisha, kwa kutumia "Find out what writes to this address" pata anwani ipi inaandika thamani hii na ubofye mara mbili ili kupata mtazamo wa disassembly:
Kisha, fanya scan mpya ukitafuta thamani ya hex kati ya "[]" (thamani ya $edx katika kesi hii):
(Ikiwa kadhaa zinaonekana unahitaji mara nyingi anwani ndogo zaidi)
Sasa, tumepata kiashiria ambacho kitakuwa kinabadilisha thamani tunayotaka.
Bofya kwenye "Add Address Manually":
Sasa, bofya kwenye kisanduku cha "Pointer" na ongeza anwani iliyopatikana katika kisanduku cha maandiko (katika hali hii, anwani iliyopatikana katika picha ya awali ilikuwa "Tutorial-i386.exe"+2426B0):
(Kumbuka jinsi "Anwani" ya kwanza inajazwa kiotomatiki kutoka kwa anwani ya kiashiria unayoingiza)
Bofya OK na kiashiria kipya kitaundwa:
Sasa, kila wakati unabadilisha thamani hiyo unakuwa unabadilisha thamani muhimu hata kama anwani ya kumbukumbu ambapo thamani hiyo iko ni tofauti.
Uingizaji wa Msimbo
Uingizaji wa msimbo ni mbinu ambapo unatia kipande cha msimbo katika mchakato wa lengo, na kisha kuhamasisha utekelezaji wa msimbo ili upite kupitia msimbo wako ulioandikwa (kama kukupa alama badala ya kuziondoa).
Hivyo, fikiria umepata anwani inayopunguza 1 kwa maisha ya mchezaji wako:
Bofya kwenye Onyesha disassembler ili kupata msimbo wa disassemble.
Kisha, bofya CTRL+a ili kuanzisha dirisha la Auto assemble na uchague Template --> Code Injection
Jaza anwani ya maagizo unayotaka kubadilisha (hii kawaida hujaza kiotomatiki):
Kigezo kitaundwa:
Hivyo, ingiza msimbo wako mpya wa assembly katika sehemu ya "newmem" na ondoa msimbo wa asili kutoka kwa "originalcode" ikiwa hutaki utekelezwe. Katika mfano huu, msimbo uliotiwa utaongeza alama 2 badala ya kupunguza 1:
Bofya kwenye execute na kadhalika na msimbo wako unapaswa kuingizwa katika programu ukibadilisha tabia ya kazi hiyo!
Vipengele vya Juu katika Cheat Engine 7.x (2023-2025)
Cheat Engine imeendelea kubadilika tangu toleo la 7.0 na vipengele kadhaa vya kuboresha maisha na offensive-reversing vimeongezwa ambavyo ni muhimu sana wakati wa kuchambua programu za kisasa (na sio michezo pekee!). Hapa kuna mwongozo wa uwanja wa muhtasari wa nyongeza ambazo huenda ukatumia wakati wa kazi za red-team/CTF.
Maboresho ya Pointer Scanner 2
Pointers lazima iishe na offsets maalum
na slider mpya ya Deviation (β₯7.4) inapunguza sana matokeo ya uwongo unapofanya skani tena baada ya sasisho. Tumia pamoja na kulinganisha ramani nyingi (.PTR
β Compare results with other saved pointer map) ili kupata pointer ya msingi inayodumu kwa dakika chache tu.- Kifunguo cha kuchuja kwa wingi: baada ya skani ya kwanza bonyeza
Ctrl+A β Space
ili kuweka alama kila kitu, kishaCtrl+I
(geuza) ili kuondoa alama kwenye anwani ambazo zimeshindwa skani tena.
Ultimap 3 β Intel PT tracing
Tangu 7.5 Ultimap ya zamani ilirejelewa juu ya Intel Processor-Trace (IPT). Hii inamaanisha sasa unaweza kurekodi kila tawi ambalo lengo linachukua bila hatua moja moja (mode ya mtumiaji pekee, haitasababisha vifaa vingi vya kupambana na debug).
Memory View β Tools β Ultimap 3 β check Β«Intel PTΒ»
Select number of buffers β Start
Baada ya sekunde chache, simamisha kukamata na bonyeza-kulia β Hifadhi orodha ya utekelezaji kwenye faili. Changanya anwani za tawi na kikao cha Find out what addresses this instruction accesses
ili kupata maeneo ya juu ya mantiki ya mchezo kwa haraka sana.
Mifano ya jmp
/ auto-patch ya byte 1
Toleo la 7.5 lilianzisha stub ya JMP byte moja (0xEB) ambayo inasakinisha mhandisi wa SEH na kuweka INT3 kwenye eneo la awali. Inazalishwa kiotomatiki unapofanya Auto Assembler β Template β Code Injection kwenye maagizo ambayo hayawezi kupachikwa na kuruka kwa uhusiano wa byte 5. Hii inafanya "hooks" za "tight" kuwa na uwezekano ndani ya taratibu zilizopakizwa au zilizopangwa kwa ukubwa.
Stealth ya kiwango cha Kernel na DBVM (AMD & Intel)
DBVM ni hypervisor ya Aina-2 iliyojengwa ndani ya CE. Mifumo ya hivi karibuni hatimaye iliongeza support ya AMD-V/SVM ili uweze kuendesha Driver β Load DBVM
kwenye mwenyeji wa Ryzen/EPYC. DBVM inakuwezesha:
- Kuunda alama za kuvunja zisizoonekana kwa ukaguzi wa Ring-3/anti-debug.
- Kusoma/kandika maeneo ya kumbukumbu ya kernel yanayoweza kubadilishwa au kulindwa hata wakati dereva wa hali ya mtumiaji umekataliwa.
- Kufanya upitishaji wa shambulio la wakati bila VM-EXIT (mfano: uliza
rdtsc
kutoka kwa hypervisor).
Kidokezo: DBVM itakataa kupakia wakati HVCI/Memory-Integrity imewezeshwa kwenye Windows 11 β izime au uanzishe mwenyeji wa VM maalum.
Urekebishaji wa mbali / wa jukwaa tofauti na ceserver
CE sasa inatoa upya kamili wa ceserver na inaweza kuunganishwa kupitia TCP kwa malengo ya Linux, Android, macOS & iOS. Tawi maarufu linajumuisha Frida ili kuunganisha uhandisi wa dynamic na GUI ya CE β bora unapohitaji kupachika michezo ya Unity au Unreal inayotembea kwenye simu:
# on the target (arm64)
./ceserver_arm64 &
# on the analyst workstation
adb forward tcp:52736 tcp:52736 # (or ssh tunnel)
Cheat Engine β "Network" icon β Host = localhost β Connect
Kwa ajili ya daraja la Frida angalia bb33bb/frida-ceserver
kwenye GitHub.
Vitu vingine vya kuzingatia
- Patch Scanner (MemView β Tools) β inagundua mabadiliko yasiyotarajiwa ya msimbo katika sehemu zinazoweza kutekelezwa; muhimu kwa uchambuzi wa malware.
- Structure Dissector 2 β drag-an-address β
Ctrl+D
, kisha Guess fields ili kujitathmini kiotomatiki C-structures. - .NET & Mono Dissector β msaada bora wa mchezo wa Unity; piga simu kwa njia moja kwa moja kutoka kwenye CE Lua console.
- Big-Endian custom types β skana/edit ya mpangilio wa byte iliyogeuzwa (inayofaa kwa emulators za console na buffers za pakiti za mtandao).
- Autosave & tabs kwa AutoAssembler/Lua windows, pamoja na
reassemble()
kwa uandishi wa maagizo ya mistari mingi.
Maelezo ya Usanidi & OPSEC (2024-2025)
- Msimamizi rasmi umefungwa na InnoSetup ad-offers (
RAV
n.k.). Daima bonyeza Decline au tengeneza kutoka chanzo ili kuepuka PUPs. AVs bado zitabainicheatengine.exe
kama HackTool, ambayo inatarajiwa. - Madereva ya kisasa ya kupambana na udanganyifu (EAC/Battleye, ACE-BASE.sys, mhyprot2.sys) yanagundua daraja la CE hata wakati limepewa jina jipya. Endesha nakala yako ya kurudi nyuma ndani ya VM inayoweza kutumika au baada ya kuzima mchezo wa mtandao.
- Ikiwa unahitaji tu ufikiaji wa hali ya mtumiaji chagua
Settings β Extra β Kernel mode debug = off
ili kuepuka kupakia dereva usio na saini wa CE ambao unaweza BSOD kwenye Windows 11 24H2 Secure-Boot.
Marejeleo
- Cheat Engine 7.5 release notes (GitHub)
- frida-ceserver cross-platform bridge
- Cheat Engine tutorial, complete it to learn how to start with Cheat Engine
tip
Jifunze na fanya mazoezi ya AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Jifunze na fanya mazoezi ya GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Jifunze na fanya mazoezi ya Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Support HackTricks
- Angalia mpango wa usajili!
- Jiunge na π¬ kikundi cha Discord au kikundi cha telegram au tufuatilie kwenye Twitter π¦ @hacktricks_live.
- Shiriki mbinu za hacking kwa kuwasilisha PRs kwa HackTricks na HackTricks Cloud repos za github.