Cod*_*ggo 0 memory assembly reverse-engineering intel xor
我正在研究一个我很着迷的主题,逆向工程.但是我遇到了一点速度碰撞.我知道按位运算符xor以及它对这些位的作用,但是当我在反汇编程序中查看它时,它似乎无法正常工作.我正在处理的一小段代码是:
MOV EAX, 0040305D
XOR DWORD PTR [EAX], 1234567
之前的XOR已经发生,驻留在该位置的数目0040305D是1234或31323334十六进制(它被表示为ASCII,因为它是从用户输入取和它牢固地驻留如31323334在存储器中).当我在互联网上查找xor计算器以检查以确保我在纸上完成所有操作时,我得到xor计算的结果为30117653十六进制.但是当我在反汇编程序中运行该操作时,它用56771035替换了EAX中保存的内存位置.
刚刚发生了什么?我在这里错过了什么吗?我检查了许多计算器的xor计算,我无法得到56771035的答案.有人可以帮我一把,告诉我我做错了什么吗?
-担
显示的数字全部为十六进制,您忘记使用正确的字节序.如果用户输入为ascii 1234,则表示内存包含字节31 32 33 34.由于x86是小端,因此操作数1234567是字节序列67 45 23 01.执行xor操作我们得到56 77 10 35你看到的字节序列.