Milyen útmutatót tudtok, hogy az assembly-t megértsem?
A lényeg, hogy a gépi kódot max assemblyre lehet visszafordítani.
Na ezt a nyelvet akarom megtanulni.
Ilyenek vannak benne, hogy EAX, rsd, rax.
Ha van programozói előéleted, akkor az utasításokat talán nem nehéz kitalálni, főleg ha elolvasol egy assembly gyorstalpalót. Viszont ha mélyen akarod megérteni, akkor először a processzor működését kell megértened, ahhoz viszont kellenek alap algebrai és némi elektronikai ismeretek is, szóval a kérdés az, hogy milyen ismereteid vannak ez ügyben?
Különben a processzor alapfelépítését ezekből tanulmányozhatod:
11: Az általad linkelt anyagokban semmilyen infó nincs benne a processzor alapfelépítéséről. Max. bemutatja,hogy milyen processzorokat gyárt az Intel és az AMD és mik a lényeges különbségek. De az x86-os architektúráról semmit nem ír.
Itt van egy egésezn használható oldal: [link]
Itt találtam egy egészen kezelhető, rövid összefoglalót az Intel processzorok architektúrájáról, és utasításkészletéről. Most csak átfutottam az első kb. 100 oldalt, de nagyon világosan fogalmaz, és teljesen jól leír mindent amire szükséged lehet.
Amit cheat engine kidob(browse memory region alatt), az függ a processzor típusától?
Elvégre a programokat nem úgy töltjük, hogy ez csak amd-n amaz meg csak intelen fut.
Kb annyit értek a programozáshoz, hogy egy magas szintű programnyelv gépi kódot generál,amit vissza lehet fejteni assembly re, egy hardverközeli nyelvre.
A cheat engine, a gépi kódból, visszafejti assembly-ig gondolom, szerintem a kód amit kidob nem processzorspecifikus, talán.
A diszasszemblált kód és a browse memory kód között mi a különbség?
Meg kell nézni a program doksijában. Egyébként a "visszafordított" kód az nagyon processzor függő. Egy jó assembler fordító esetén vannak már "kísérletek" a kevésbé proci függőkre (pl. amit az előbb írtam, hogy elágazást tudsz betenni attól függően, hogy Intel vagy AMD procin fut a program és ezt valamennyire kezelik), de az egész assembly nyelv az arról szól, hogy minden "körítés" nélkül a procit programozod. Pár könnyítés azért van (pl. makrók, szimbolumok, cimkék stb. használata). Egy visszafordított kód esetén pl. egy
cimke:
Utasitas 1
Utasitas 2
Utasitas 3
JR cimke
Helyett azt fogod látni
Utasitas 1
Utasitas 2
Utasitas 3
JR -3 (ha mindhárom utasítás 1 byteos)
Pl. ilyenkor kell ismerjed az összes utasítást, hogy melyik hány byteos hogy a -3 byte relatív ugrást ki tud számolni, hogy hova ugrik vissza a kódban. Jobb disassemblerek erre adnak mindenféle megoldást (pl. zárójelbe oda írja az "abszolut" címet és akkor vissza tudod nézni, hogy valóban hova ugrik vissza).
És hasonlók. Hogy a te programod mit és hogyan fordít vissza nem tudom, és mivel letölteni sem tudtam a vírusírtom tiltakozik minden olyan oldal ellen ahonnan le tudom tülteni, ki se tudom próbálni.
Olyanra gondolok, hogy a disassemblalt kód lehet pl. egy EXE fájl vagy DLL amit oda adok a programnak és fordítja vissza, a browse memory meg az lehet amikor egy futó program memóriájába nézünk bele. De ez csak tipp, az általános szóhasználat alapján.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!