IDA 反汇编插件有时会生成 OFSUB 这个宏,它的作用是测试两个数相减是否溢出,返回溢出标志位。

// ofsub.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//#include <iostream>
using namespace std;typedef          char    int8;
typedef   signed char    sint8;
typedef unsigned char    uint8;
typedef          short   int16;
typedef   signed short   sint16;
typedef unsigned short   uint16;
typedef          int     int32;
typedef   signed int     sint32;
typedef unsigned int     uint32;
typedef __int64          int64;
typedef __int64          sint64;
typedef unsigned __int64 uint64;// sign flag
template<class T> int8 __SETS__(T x)
{if (sizeof(T) == 1)return int8(x) < 0;if (sizeof(T) == 2)return int16(x) < 0;if (sizeof(T) == 4)return int32(x) < 0;return int64(x) < 0;
}// overflow flag of subtraction (x-y)
template<class T, class U> int8 __OFSUB__(T x, U y)
{if (sizeof(T) < sizeof(U)){U x2 = x;int8 sx = __SETS__(x2);return (sx ^ __SETS__(y)) & (sx ^ __SETS__(x2 - y));}else{T y2 = y;int8 sx = __SETS__(x);return (sx ^ __SETS__(y2)) & (sx ^ __SETS__(x - y2));}
}int main()
{int res;unsigned char c1 = 0x80;unsigned char c2 = 0x01;res = __OFSUB__(c1, c2); // -128 - 1 溢出了cout << res << endl;c1 = 0x7F;c2 = 0x01;res = __OFSUB__(c1, c2); // 127 - 1 没溢出cout << res << endl;
}

IDA __OFSUB__ 测试相关推荐

  1. iPhone设置中的“开发者”选项

    iOS上的开发者选项,这个功能从iOS系统刚开始时就已经存在了.想要打开这个功能,我们需要满足一定的条件,首先你需要将iPhone和一台Mac电脑相连接,然后在Mac上打开Xcode开发工具,此时你i ...

  2. CTF--2016中国西安西电华山杯网络安全技能大赛之crackme6

    Crackeme6 write up(help me) 0x01 为了照顾水平技术差异化,本题解答对大神来说,有些繁琐.(大神可以忽略飘过) 方便一部分逆向新手学习. 0x02 命令行行程序上图显示崩 ...

  3. D-Link DIR-859的RCE漏洞 CVE-2019–17621

    一.模拟运行固件 二.程序调试 三.漏洞分析 四.执行exp,获取shell 一.模拟运行固件 1.环境搭建 使用attifyos 中的环境进行模拟时可能会出现各种问题,后来自己搭建环境,可以正常运行 ...

  4. 0x01 D-Link路由器漏洞研究分享

    0x0 简介 D-Link DIR-816 A2是中国台湾友讯(D-Link)公司的一款无线路由器.攻击者可借助 "datetime" 参数中的shell元字符利用该漏洞在系统上执 ...

  5. 脱壳系列—— 揭开so section加密的美丽外衣

    i春秋作家:HAI_ 0×00 前言 对so的加密,https://bbs.pediy.com/thread-191649.htm大神的帖子里已经很详细的说明了.当然加密不是我们研究的重点,如何搞掉这 ...

  6. ida android sign加密,最右sign-v2签名算法追踪及逆向还原

    原标题:最右sign-v2签名算法追踪及逆向还原 本文为看雪论坛优秀文章 看雪论坛作者ID:尐进 本篇文章应该于N个月前就写了,由于拖延症一直拖到现在. 其实一直打算写一系列逆向实战,比如某音.某手. ...

  7. IDA Pro 数据库文件、函数窗口、结构体窗口

    打开IDA Pro自带测试exe:见此: https://blog.csdn.net/bcbobo21cn/article/details/102578262 将生成如下图几个用于IDA Pro 辅助 ...

  8. IDA Pro 反汇编窗口基本操作

    反汇编窗口也叫IDA-View窗口. 反汇编窗口有两种显示格式:默认的基于图形的视图,面向文本的列表视图. 在打开的反汇编窗口中,可以使用空格键在图形视图与列表视图之间切换. 图形视图将一个函数分解成 ...

  9. IDA Pro7.0使用技巧总结使用

    文章目录 声明 一些二进制工具 C++filt: PE tools: string: strip: IDA目录结构 常用快捷键 常用设置 拍摄快照 菜单栏常用设置 自动添加反汇编注释 常用操作 创建数 ...

最新文章

  1. 倒排索引原理_搜索引擎都在用的倒排索引——原理与实现
  2. MySQL数据库基础(五)——SQL查询
  3. 教你遇事最有水平的处理方法
  4. 嵌入式工作笔记0005---嵌入式发展和组成
  5. linux用qt实现聊天,linux下的Qt开发双人聊天服务器编写
  6. 剑指offer面试题[22]-栈的压入、弹出序列
  7. java 装配_spring Java显示装配
  8. 最新python爬取喜马拉雅音频_Python爬虫实战案例之爬取喜马拉雅音频数据详解
  9. 企业全面运营管理沙盘模拟心得_企业运营沙盘模拟心得体会
  10. Javo 基础 流的分类
  11. 降级降薪去 Amazon ——左耳朵
  12. 动画云渲染【渲染101】渲染小提示
  13. 可恶的零宽空格—ZWSP
  14. linux主机motd和命令审计
  15. 微信小程序加载第三方字体
  16. BinaryWriter
  17. js根据身份证号码判断性别
  18. 100个python算法超详细讲解:个人所得税
  19. 无人机生态环境监测、图像处理与GIS数据分析
  20. 高德地图发布全国美食地图:火锅最受欢迎

热门文章

  1. Py之pyserial:Python的pyserial库的简介、安装、使用方法之详细攻略
  2. Py之Queue:python库之Queue的简介、安装、使用方法之详细攻略
  3. DL之DNN优化技术:利用Batch Normalization(简介、入门、使用)优化方法提高DNN模型的性能
  4. CV之OD:计算机视觉之目标检测(Object Detection)方向的简介、使用方法、案例应用之详细攻略
  5. 朴素贝叶斯分类器(Navie Bayesian Classifier)中的几个要点(一)
  6. 个性化背词软件 更新ing(9-4)
  7. 重构手法之简化函数调用【1】
  8. python3安装scrapy问题解决
  9. springmvc学习笔记(10)-springmvc注解开发之商品改动功能
  10. 状态压缩 HDU 1565