https://chacker.pl/
Polecenie xor wykonuje bitową logiczną fuankcję „wyłączną lub” (XOR), na przykład 11111111 XOR 11111111 = 00000000. Dlatego jedną z opcji jest użycie wartości XOR, wartości do wyzerowania lub wyczyszczenia rejestru lub lokalizacji pamięci. Innym powszechnie używanym operatorem bitowym jest AND. Moglibyśmy wykonać bitową operację AND, aby określić, czy konkretny bit w rejestrze lub lokalizacji pamięci jest ustawiony, czy nie, lub aby określić, czy wywołanie funkcji takiej jak malloc zwraca wskaźnik do fragmentu, a nie do wartości null. Można to osiągnąć za pomocą asemblera, takiego jak test eax, eax po wywołaniu malloc. Jeśli wywołanie malloc zwróci wartość null, wówczas operacja testowa ustawi „flagę zerową” w rejestrze FLAGS na 1. Ścieżka, po której następuje instrukcja skoku warunkowego, taka jak jnz, po tym teście, może być oparta na wyniku ORAZ operacja. Poniżej przedstawiono, jak będzie to wyglądało w złożeniu:
![](https://chacker.pl/blogz/wp-content/uploads/2024/03/1-4-300x89.png)