COERCE_DOUBLE的含义
在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的含义相关推荐
- Java Calendar.add()方法的使用,参数含义。指定时间差。
cal.add()方法中的参数含义: 第一个参数如果是1则代表的是对年份操作,2是对月份操作,3是对星期操作,5是对日期操作,11是对小时操作,12是对分钟操作,13是对秒操作,14是对毫秒操作. 第 ...
- 通俗理解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 ...
- 三维刚体变化中Rcw,tcw的含义
高翔博士的<视觉SLAM十四讲>中,介绍Tcw指从世界坐标w到c的变换矩阵.但研一学机器人学的时候,讲T12的含义是,坐标系2相对于坐标系1的变换.于是一脸懵逼.昨天想了一晚上,有了一 ...
- 在建工程费用化处理_未确认融资费用和未实现融资收益的含义和区别
在融资的过程中,可能会涉及到未确认融资费用和未实现融资收益的概念.那这两者分别是什么含义呢?又有什么区别?下面大家和小编一起来看看两者之间的关系,希望能够帮助到大家. 未实现融资收益是指未收到租金并未 ...
- inum在linux中含义,linux
Linux 1. 用户,应用层(图形界面),Shell层(Shell层),内核层(系统调用),硬件 2.X Window系统(协议)特点:独立与操作系统 ,网络特性(可以选择语言),源代码免费 3. ...
- 龙格-库塔法(runge-kutta)matlab代码及含义,龙格-库塔法(Runge-Kutta)matlab代码及含义...
龙格-库塔法(Runge-Kutta)matlab代码及含义 龙格-库塔法(Runge-Kutta) 数值分析中,龙格-库塔法(Runge-Kutta)是用于模拟常微分方程的解的重要的一类隐式或显式迭 ...
- java中数组的含义_数组
数组(Array)是有序的元素序列.[1] 若将有限个类型相同的变量的集合命名,那么这个名称为数组名.组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量.用于区分数组的各个元素的数 ...
- 记java关键词_Java关键词及含义
关键字 含义 abstract 表明类或者成员方法具有抽象属性 assert 断言,用来进行程序调试 boolean 基本数据类型之一,声明布尔 ...
- 理解YOLOv2训练过程中输出参数含义
转载自https://blog.csdn.net/dcrmg/article/details/78565440 原英文地址: https://timebutt.github.io/static/und ...
最新文章
- 修改ecshop的100种技巧
- Remove PyPhantomJS. · f6c29b1 · ariya/phantomjs
- 软件构架实践读书笔记二
- Istio 网关之南北向流量管理(内含服务网格专家亲自解答)
- myFocus制作焦点图
- 旧金山站线上峰会24h倒数
- 英文文章如何进行略读
- ASP.NET Core MVC – Tag Helper 组件
- 微软 azure_在Microsoft Azure上运行Eclipse MicroProfile
- Linux 如何安装 SRPM 包(源代码 rpm 软件包,以 .src.rpm 为后缀名)/rpm 格式的源码软件包/源码包
- react.lazy 路由懒加载_Vue面试题: 如何实现路由懒加载?
- 安装mysql5.7出现问题_安装mysql5.7.29遇到的问题
- 【Flink】flink keyby 在 subtask 中分配不均的研究
- python棋盘放麦粒求和递归_Python递归调用实现数字累加的代码
- asp.net中获取全文图片地址的方法
- spring 事物管理器
- 手机桌面便签怎么绑定手机号?
- 等了15年,这本编程巨著终于出版了!
- python 图片打水印 透明图片合并
- 中国微团·国京酒业:白酒进入人体后