首页
社区
课程
招聘
[求助]请教下,这几句代码的真正含义
发表于: 2014-10-20 12:34 3507

[求助]请教下,这几句代码的真正含义

2014-10-20 12:34
3507
这是一个看雪教材(加密解密)中的例子,是关于网络验证的...
一段代码凭自己的理解做了分析,但总觉得有疑惑,想请老师们帮忙看下
相关代码如下

            push   0
            call      _time                                ;  C函数time()
            add     esp,4

            push   eax
            call      sub_401D70                     ;  srand()
            add     esp,4

            call      _rand                                ;  rand()

            and     eax,800000FFh                 ; 对所得的随机数%256,结果保留符号位?

            jns      short loc_401558              ;结果为正,则跳转

            dec     eax                                    ;如下三行代码不明白
            or       eax,0FFFFFF00h                 ;这里不是太理解,先是负数减一,再加一,不知道
            inc      eax                                    ;什么原因这样做,
                                                                ;or指令在这里什么用处?
                                                                ;保留最地位字节,其它字节设置FF???
loc_401558:
            ..................
            ..................

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 0
支持
分享
最新回复 (2)
雪    币: 22
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
请各位能给我指导一下,谢谢大家......
2014-10-20 12:35
0
雪    币: 102
活跃值: (54)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
I think:
and     eax,800000FFh                 ; 后
eax= 800000xxh 或 000000xxh
后面将800000xxh转成补码负数形式.inc,dec处理80000000h的特殊情况.
2014-10-20 13:24
0
游客
登录 | 注册 方可回帖
返回
//