在IDA反汇编的时候,遇到如下代码

  v8 = COERCE_DOUBLE(strtoull(&v25, (char **)&v22, 16));v9 = COERCE_DOUBLE(strtoull(&v23, (char **)&v22, 16));

那么COERCE_DOUBLE表示什么意思呢?其实是一个强制类型转换,相当于*(double *) & (strtoull(&v23, (char **)&v22, 16))

COERCE_TYPE(x)相当于 *(TYPE *)&x

其它相关宏定义

// first unsigned macros:
#define LOBYTE(x)   (*((_BYTE*)&(x)))   // low byte
#define LOWORD(x)   (*((_WORD*)&(x)))   // low word
#define LODWORD(x)  (*((_DWORD*)&(x)))  // low dword
#define HIBYTE(x)   (*((_BYTE*)&(x)+1))
#define HIWORD(x)   (*((_WORD*)&(x)+1))
#define HIDWORD(x)  (*((_DWORD*)&(x)+1))
#define BYTEn(x, n)   (*((_BYTE*)&(x)+n))
#define WORDn(x, n)   (*((_WORD*)&(x)+n))
#define BYTE1(x)   BYTEn(x,  1)         // byte 1 (counting from 0)
#define BYTE2(x)   BYTEn(x,  2)
#define BYTE3(x)   BYTEn(x,  3)
#define BYTE4(x)   BYTEn(x,  4)
#define BYTE5(x)   BYTEn(x,  5)
#define BYTE6(x)   BYTEn(x,  6)
#define BYTE7(x)   BYTEn(x,  7)
#define BYTE8(x)   BYTEn(x,  8)
#define BYTE9(x)   BYTEn(x,  9)
#define BYTE10(x)  BYTEn(x, 10)
#define BYTE11(x)  BYTEn(x, 11)
#define BYTE12(x)  BYTEn(x, 12)
#define BYTE13(x)  BYTEn(x, 13)
#define BYTE14(x)  BYTEn(x, 14)
#define BYTE15(x)  BYTEn(x, 15)
#define WORD1(x)   WORDn(x,  1)
#define WORD2(x)   WORDn(x,  2)         // third word of the object, unsigned
#define WORD3(x)   WORDn(x,  3)
#define WORD4(x)   WORDn(x,  4)
#define WORD5(x)   WORDn(x,  5)
#define WORD6(x)   WORDn(x,  6)
#define WORD7(x)   WORDn(x,  7)

相关参考

IDA decompiler macro: What is the purpose of COERCE_FLOAT and COERCE_UNSIGNED_INT macros in the Hex Rays decompiled code below?
https://github.com/nihilus/hexrays_tools/blob/master/code/defs.h

COERCE_DOUBLE的含义相关推荐

  1. Java Calendar.add()方法的使用,参数含义。指定时间差。

    cal.add()方法中的参数含义: 第一个参数如果是1则代表的是对年份操作,2是对月份操作,3是对星期操作,5是对日期操作,11是对小时操作,12是对分钟操作,13是对秒操作,14是对毫秒操作. 第 ...

  2. 通俗理解tf.nn.conv2d() tf.nn.conv3d( )参数的含义 pytorhc 卷积

    20210609 例如(3,3,(3,7,7))表示的是输入图像的通道数是3,输出图像的通道数是3,(3,7,7)表示过滤器每次处理3帧图像,卷积核的大小是3 x 7 x 7. https://blo ...

  3. 三维刚体变化中Rcw,tcw的含义

      高翔博士的<视觉SLAM十四讲>中,介绍Tcw指从世界坐标w到c的变换矩阵.但研一学机器人学的时候,讲T12的含义是,坐标系2相对于坐标系1的变换.于是一脸懵逼.昨天想了一晚上,有了一 ...

  4. 在建工程费用化处理_未确认融资费用和未实现融资收益的含义和区别

    在融资的过程中,可能会涉及到未确认融资费用和未实现融资收益的概念.那这两者分别是什么含义呢?又有什么区别?下面大家和小编一起来看看两者之间的关系,希望能够帮助到大家. 未实现融资收益是指未收到租金并未 ...

  5. inum在linux中含义,linux

    Linux 1.  用户,应用层(图形界面),Shell层(Shell层),内核层(系统调用),硬件 2.X Window系统(协议)特点:独立与操作系统 ,网络特性(可以选择语言),源代码免费 3. ...

  6. 龙格-库塔法(runge-kutta)matlab代码及含义,龙格-库塔法(Runge-Kutta)matlab代码及含义...

    龙格-库塔法(Runge-Kutta)matlab代码及含义 龙格-库塔法(Runge-Kutta) 数值分析中,龙格-库塔法(Runge-Kutta)是用于模拟常微分方程的解的重要的一类隐式或显式迭 ...

  7. java中数组的含义_数组

    数组(Array)是有序的元素序列.[1] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数 ...

  8. 记java关键词_Java关键词及含义

    关键字          含义 abstract      表明类或者成员方法具有抽象属性 assert          断言,用来进行程序调试 boolean      基本数据类型之一,声明布尔 ...

  9. 理解YOLOv2训练过程中输出参数含义

    转载自https://blog.csdn.net/dcrmg/article/details/78565440 原英文地址: https://timebutt.github.io/static/und ...

最新文章

  1. 修改ecshop的100种技巧
  2. Remove PyPhantomJS. · f6c29b1 · ariya/phantomjs
  3. 软件构架实践读书笔记二
  4. Istio 网关之南北向流量管理(内含服务网格专家亲自解答)
  5. myFocus制作焦点图
  6. 旧金山站线上峰会24h倒数
  7. 英文文章如何进行略读
  8. ASP.NET Core MVC – Tag Helper 组件
  9. 微软 azure_在Microsoft Azure上运行Eclipse MicroProfile
  10. Linux 如何安装 SRPM 包(源代码 rpm 软件包,以 .src.rpm 为后缀名)/rpm 格式的源码软件包/源码包
  11. react.lazy 路由懒加载_Vue面试题: 如何实现路由懒加载?
  12. 安装mysql5.7出现问题_安装mysql5.7.29遇到的问题
  13. 【Flink】flink keyby 在 subtask 中分配不均的研究
  14. python棋盘放麦粒求和递归_Python递归调用实现数字累加的代码
  15. asp.net中获取全文图片地址的方法
  16. spring 事物管理器
  17. 手机桌面便签怎么绑定手机号?
  18. 等了15年,这本编程巨著终于出版了!
  19. python 图片打水印 透明图片合并
  20. 中国微团·国京酒业:白酒进入人体后

热门文章

  1. AD20常用快捷键汇总
  2. neo4j--Cypher语法练习(WITH、 FOREACH、Aggregation、UNWIND、UNION、CALL)
  3. 19年全国电赛 H题电磁炮硬件电路+可控硅
  4. 模仿斗地主玩法实现扑克牌的分发
  5. 基于区块链的知识共享框架-Aletheia
  6. 猿人学web端爬虫攻防大赛赛题解析_第四题:雪碧图、样式干扰
  7. 树莓派GPIO 基础(二)
  8. LBS 是什么服务?
  9. Android Killer(反编译工具)技巧
  10. Windows 2000/xp/2003 常用补丁下载