吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3668|回复: 3
收起左侧

[分享] 字符串比较函数末尾的neg sbb inc 指令

[复制链接]
女萝岩 发表于 2020-3-18 23:29
本帖最后由 女萝岩 于 2020-3-18 23:38 编辑

IDA中看到一段代码,是比较字符串相等的。
push dword ptr[esp+4]
call CString:compare
neg   eax           
sbb     eax, eax
inc     eax
retn    4
看到这段代码我是蒙比的,每个字母都认识,连在一起却不知道什么意思,其实根本原因就是对neg sbb指令以及它们对标志位的影响不熟悉造成的。
查了下资料才搞懂了。
neg eax是得到eax的相反数,neg(5)=-5 ,neg(-5)=5,neg(0)=0,并且neg影响CF标志位,当eax>0  neg eax cf1,当eax<0时,neg eax cf1,eax==0时,neg eax  cf0

sbb  eax,eax
dst=eax-eax-CF
也就是说不管eax是正数还是负数
neg eax
sbb eax,eax之后eax的值都是-1,最后inc eaxeax0
eax0的时候
neg eax
sbb eaxeax
之后eax的值是0,最后inc eax eax1
最终实现了两个字符串不相等的时候返回0,相等的时候返回1.















免费评分

参与人数 3吾爱币 +7 热心值 +3 收起 理由
Hmily + 5 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
HopeTF + 1 + 1 谢谢@Thanks!
Lucifer_BW + 1 + 1 热心回复!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

shj2k 发表于 2020-3-21 14:23
比较常见的代码,对初学者很有用
Aa654057112 发表于 2020-3-22 15:26
libaogui2022 发表于 2022-12-18 13:20
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-24 16:18

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表