ahoj,
pochopim este naco je NOP v exploitoch, ale ma aj nejaky "kaly" zmysel? cital som, ze prekladace tym zarovnavaju kod, ale naco?
ja to vidim len ako stratu casu pre procesor:) vysvetli mi to prosim niekto?
Fórum › Assembler
Naco je NOP?
Nejsem na dane tema odbornik a nemam naladu to poranu hledat. Ja to znam napriklad z proudoveho zpracovani instrukci. Pokud nasledujici instrukce pouziva jako data pro vypocet vysledek te predchozi, tak v dobe nacitani te druhe instrukce neni jeste znam vysledek te predchozi (to je dano tim proudovym zpracovanim). Proto se tam zacnou hazet NOPy a ceka se na vysledek (a treba kdyz neni forwarding, tak si ta instrukce celkem pocka). Dalsi situace s podobnymi duvody jsou treba skoky.
Procesor pracuje rýchlejšie, ak pristupuje k zarovnaným dátam a kódu, napr. na adresy, ktoré sú násobkami 4, 8, 16. Takže práve naopak, čas tým získaš :) Niektoré SSE inštrukcie dokonca vyžadujú, aby boli dáta zarovnané na adresy deliteľné 16. V kóde sa zarovnávajú vstupy do procedúr a a v kritickom kóde aj ciele vetvenia/skokov.
NOP je taky perfektní pro crackování programů nebo hledání chyb. Když máš v hotovém EXE nebo COM instrukci, kterou chceš zrušit bez toho, abys musel překompilovat program, tak tuto instrukci v hexadecimálním editoru přepíšeš instrukcí NOP.
Přidej příspěvek
Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku
×Vložení zdrojáku
×Vložení obrázku
×Vložení videa
Uživatelé prohlížející si toto vlákno
Podobná vlákna
Naco je subor __init__.py ? — založil Tom@sQo
Blender -naco je tu toto? — založil black evil
Naco je v maine *argv[]? — založil Tom@sQo
Výpis dat z jedné tabulky pod sebe — založil TominoS
Pomoc s jednym query — založil dalaman