一切太假丶 发表于 2017-4-7 13:10

好东西 谢谢楼主分享

tianzhiya 发表于 2017-4-7 13:41

多谢楼主分享,学习了

antiboy 发表于 2017-4-7 13:44

过来学习学习了,支持支持你

a260967星星 发表于 2017-4-7 14:36

haier8917 发表于 2017-4-7 14:49

Sxsheng 发表于 2017-4-7 10:46
认真看了您的教程,讲的很详细,就是有一点不明白,教程中所讲的标志位是怎么回事?感觉很重要的东西

是的,标志位的确重要,大致的说来就是程序在运算或者比较重对运算结果的一种标识,=下我们可以用我们学习的数学运算来理解,注意:::只玩爆破,不玩算法的情况下需要注意3中标识为(ZF,CF,SF)
ZF,零标志位,运算的结果为0后置1
CF,借进位标志位,运算结果在有借(进)的时候置为1(注意::看其最高位决定)
SF,符号标志位,计算的结果在符号计算的情况下,如果数值为负则为1
注意::::这个SF符号位很多的人不明白是怎么回事,比如为什么0却大于FFFF???,我在这里解释一下::程序以字节为单位进行计算(或者以2字节,4字节,8字节.。。。依次递增),如果16进制的最高位大于8,则为负,符号位置1,否则,置0(FFFF的最高位为F,大于8,为负数,0是永远大于负数的)下面举几个数学例子看看计算结果的变化:::(注意,是十六进制输的计算哦)
00-45   结果为BB(标志位变化::因为其结果不为0,而且不够减(有借进),结果的最高位为B>8,所以结论::零标志位为0,借进位标志1,符号标志位1    即:Z=0,C=1,S=1)
45-00   结果为45(标志位变化::因为其结果不为0,而且够减(无借进),结果的最高位为4<8,所以结论::零标志位为0,借进位标志0,符号标志位0    即:Z=0,C=0,S=0)
45-45   结果为0(标志位变化::因为其结果为0,而且够减(无借进),结果的最高位为0<8,所以结论::零标志位为1,借进位标志0,符号标志位0    即:Z=1,C=0,S=0)

这里的说明一个问题:::到底是几个字节得看他的参数,比如只是一个字节,就只能只是al,ah,bl,bh.....或者用byte来表明
二个字节,只能是ax,bx,cx......或者用word来表明
四个字节,只能是eax,ebx,ecx......或者用dword来表明,
下面举三个例子,数据一样但编程方式(注意AX和EAX的区别)不一样造成的后果:::(着重看C,Z,S标志位的变化)
例1:::::
MOV EAX,0X0                              ;;;EAX置0
MOV AX,D234
TEST AX,AX          (Z=0,C=0,S=1)   ;;;这段代码的作用::修改标志位代码,也可以理解为判断AX是否为0
ADD AX,3311       (Z=0,C=1,S=0)
例2:::::
MOV EAX,0X0                              ;;;EAX置0
MOV AX,D234
TEST EAX,EAX      (Z=0,C=0,S=0)   ;;;这段代码的作用::修改标志位代码,也可以理解为判断EAX是否为0
ADD AX,3311       (Z=0,C=1,S=0)
例3:::::
MOV EAX,0X0                              ;;;EAX置0
MOV AX,D234
TEST AX,AX          (Z=0,C=0,S=1)   ;;;这段代码的作用::修改标志位代码,也可以理解为判断AX是否为0
ADD EAX,3311   (Z=0,C=0,S=0)

shlgh 发表于 2017-4-7 14:49

看看是怎么弄的

googls 发表于 2017-4-7 15:09

来学习新知识喽!非常感谢楼主分享!

rdcgm 发表于 2017-4-7 15:09

看看怎么说

疯子888 发表于 2017-4-7 15:15

第二重??、什么鬼?

harlanchou 发表于 2017-4-7 15:36

haier8917 发表于 2017-4-7 10:55
你好,程序已搞定,你看看功能方面正常不,我空了录视频

大神,我好像找到突破点了,麻烦你帮忙看看,思路是否正确,谢谢!
https://www.52hb.com/thread-32242-1-1.html
页: 1 2 [3] 4 5 6 7 8 9 10 11 12
查看完整版本: 今天我来说说逆向神功第二重暂停大法的运用