社区
新手乐园
帖子详情
关于HIDWORD 取 高位的问题
天涯倦客
2011-11-08 09:24:12
#include <conio.h>
#include <stdio.h>
#include <windows.h>
int sub_4D27D8(__int64 a1)
{
unsigned int v4;
v4 = *HIDWORD(a1);
}
error C2100: 非法的间接寻址
问题 1 HIDWORD 在哪里 定义的
2 错误如何处理
3 怎么样 取 高位地址
...全文
2754
5
打赏
收藏
关于HIDWORD 取 高位的问题
#include #include #include int sub_4D27D8(__int64 a1) { unsigned int v4; v4 = *HIDWORD(a1); } error C2100: 非法的间接寻址 问题 1 HIDWORD 在哪里 定义的 2 错误如何处理 3 怎么样 取 高位地址
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
天涯倦客
2011-11-08
打赏
举报
回复
[Quote=引用 3 楼 waistcoat06 的回复:]
楼主明显是IDA F5插件搞出来的函数
1.HIDWORD是64位开发用的
#define HIWORD(l) ((WORD)((DWORD_PTR)(l)) >> 16))
#define HIDWORD(l) ((DWORD)(((DWORDLONG)(l) >> 32) & 0xFFFFFFFF))
2.a1的高32位在*下,谁知道访问哪儿去了,如果想取高32……
[/Quote]
反汇编 有1000行 比较累。。
c++有些定义不熟悉。。
悲剧
天涯倦客
2011-11-08
打赏
举报
回复
谢谢上面的两位。。
解决了。。
ida 反汇编出的 函数没有这个定义
定义应该是 #define HIDWORD(x) (*((_DWORD*)&(x)+1))
WaistCoat06
2011-11-08
打赏
举报
回复
楼主明显是IDA F5插件搞出来的函数
1.HIDWORD是64位开发用的
#define HIWORD(l) ((WORD)((DWORD_PTR)(l)) >> 16))
#define HIDWORD(l) ((DWORD)(((DWORDLONG)(l) >> 32) & 0xFFFFFFFF))
2.a1的高32位在*下,谁知道访问哪儿去了,如果想取高32的值把*去了
3.你即使想去a1高32的地址值,也是个栈地址值,貌似没啥用,
__int64 V4 = &al
PS,直接看汇编吧
luciferisnotsatan
2011-11-08
打赏
举报
回复
HIDWORD返回的应该不是一个指针,而你对它解引用(*)。至于HIDWORD哪来的,vs里右键goto看下,代码里哪定义的
// C2100.cpp
int main() {
int r = 0, *s = 0;
s = &r;
*r = 200; // C2100
*s = 200; // OK
}
luciferisnotsatan
2011-11-08
打赏
举报
回复
问题 1 HIDWORD 在哪里 定义的
我还想问呢,自己的代码,不知道HIDWORD哪来的?
LO
WORD
和HI
WORD
函数
最近在做逆向分析题目的时候通过IDA反编译的源码中出现了两个没见过的函数,LO
WORD
和HI
WORD
函数,在网上查找了一会儿,感觉都不太全面,下面是对于这两个函数的一点总结和体会。例如对于十六进制数0xCCDDEEFF,那么HI
WORD
(0xCCDDEEFF)得到的结果就是oxCCDD,正好是一个
word
值.同理LO
WORD
(0XCCDDEEFF)返回的结果就是0xEEFF,也正好是一个
word
值.需要注意的是这是32位中的宏,
取
的值为
word
两字节,如果需要64位的,使用的宏为。
64位整数高低位的数据获
取
与赋值操作探讨
参考本篇->
Win32 HI
WORD
和LO
WORD
宏学习
HI
WORD
和LO
WORD
是用于截
取
四字节变量高低位的宏;
buu题解-[GWCTF 2019]xxor
逆向
[GWCTF 2019]xxor
运行得到666c6100677b72655f6900735f677265610074217d。编写脚本解密,这里v5的值是函数运行完后v5的最终值。也就是说函数只
取
了v6中的低位进行了加密,
高位
不变。得到flag:flag{re_is_great!shift+F12搜索字符串,定位到关键函数。分析sub_400770即存放v7的函数。拖入exeinfo发现是64位无壳程序。根据题目提示本题考查异或运算。
新手乐园
33,322
社区成员
41,775
社区内容
发帖
与我相关
我的任务
新手乐园
C/C++ 新手乐园
复制链接
扫一扫
分享
社区描述
C/C++ 新手乐园
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章