早上被java几个配置环境绕昏了,
太多假的下载了,坑啊。。。。。。。
教训:还是得找点击量多的,小的不要搞了。。。。。。
今天复习了一波汇编,学了点ida操作(学的乱七八糟就不写了)
练习环境:
xp3
32bit
od
王爽的书上是16位,只能起到引导作用,已经不实用了,也就是说学完了那本之后连入门都不算,只能说了解了个大概。
32位系统下:
寄存器:
比16位的前面多了一个E;
如IP–>EIP
但其实,也可以用IP表示。
那有什么区别呢?
举个例子:
EIP:11111111
IP: 1111
EAX:12345678
AX: 5678
AL: 78
AH: 56
在OD中的寄存器界面中:
可以改变几个计数寄存器的值,
但不能修改EIP的值,
EIP的值只能在进程那个窗口中修改,
用CTRL+G
跑到要修改的界面上面去,
右键设为新IP
颜色标志:
最左边的小块上面的
颜色,
灰底黑字就是正在处于位置,
反正就是那个与其他不一样的那个。
用那个来判断是否成功转IP了。
标志寄存器:
同样只有 0,1两个结果
O :溢出标志
操作溢出了就会改变
-==
一个小点:
修改完程序后,再次打开,修改处会变成灰色,可以用CTRL+A变为正常颜色。
-==
P (CS) :
计算对应存在的数(二进制形式)中1的个数。
偶数就为1
奇数就为0
Z (DS) 常见于cmp中
某计算结果为0时成立。
为0时就为1
反之为0
S标志 符号标志(FS)
首位符号位:
负数就为1
正数为0
C:
进位标志:
就类似小学学的满十进一。
按照进制看就欧克