| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1262 人关注过本帖
标题:问一个Win32转Win64的问题
只看楼主 加入收藏
acone
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-8-25
结帖率:20%
收藏
已结贴  问题点数:10 回复次数:3 
问一个Win32转Win64的问题
我前两年用IDA Pro反编译了一个软件,用来在自己的程序里读取那个软件的数据(数据采用了他们私有的压缩算法),并且重新编译成功,当时是在WIN32环境下。现在想把它再编译成64位的,却出现了一个重要的问题,就是把地址型变量强制转换成其他变量的问题,例如IDA反编译的语句中有很多这样的语句:int v14 = (int)&v7[v12 + 171];这一句是把地址变成整形,在32位环境下,int和地址都是32位的,因此强制转换没有发生差错,但是在64位环境下,地址是64位的,int型仍是32位的,强制转换时就出错了。问一下有什么好的办法可以解决这个问题吗?
搜索更多相关主题的帖子: 软件 
2017-01-12 09:58
吹水佬
Rank: 16Rank: 16Rank: 16Rank: 16
等 级:版主
威 望:451
帖 子:10538
专家分:42927
注 册:2014-5-20
收藏
得分:5 
地址值最好用 unsigned long,全包了。
2017-01-12 10:37
acone
Rank: 1
等 级:新手上路
帖 子:28
专家分:0
注 册:2007-8-25
收藏
得分:0 
谢版主了,问题是这是IDA自己生成的代码,另外还有一个数组,里面存储的是地址。有什么好的办法能够顺利转到64位吗?
2017-01-12 11:52
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9007
专家分:53942
注 册:2011-1-18
收藏
得分:5 
IDA Pro 反编译的代码你就直接用了,没根据其代码整理一下?
如果这样的话,你只能找 IDA Pro 的作者了,我们改不了 IDA Pro。

BTW:根据C标准,除了指针外,只有 intptr_t 和 uintptr_t 可以无损的保存地址信息。
2017-01-12 12:17
快速回复:问一个Win32转Win64的问题
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.014691 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved