171231 逆向-64位系统

1625-5 王子昂 总结《2017年12月31日》 【连续第457天总结】
A. x64程序和逆向
B.

64位系统


CPU

32位时代,Intel主导着技术主流(x86),AMD则生成x86的兼容芯片
而到了64位时代,Intel最初发布的芯片IA-64是与HP合作的,它的指令集、寄存器都与x86完全不同。因此无法与x86直接兼容,只能通过模拟器来间接兼容(但速度慢)
后来AMD发布了AMD64,支持兼容IA-32,于是大受欢迎。
Intel没办法,只能向AMD购买了许可,发布了兼容AMD64的EM64T(后来改名为Intel64)。通常说的x64就是Intel64和AMD64的合称。

家用电脑和服务器常用x64,而大型服务器和超级计算器中则使用IA-64。

OS

64位操作系统兼容32位,原理是微软提供的WOW64(Windows On Windows 64)机制

数据模型

LLP64数据模型中,为了兼容32位使用的ILP32数据模型,仅将指针Pointer改为了8字节,即64位。其余short\int\long\longlong的大小都没有变动

Win32API

在64位Windows中,现有的Win32API几乎可以照搬使用,这使得开发人员不用熟悉新增的API,非常方便。

WOW64

64位Windows中,64位应用程序会加载kernel32.dll(64位), ntdll.dll(64位);
而32位应用程序则会加载WOW64中的kernel32.dll(32位), ntdll.dll(32位)
WOW64会将程序的请求(API调用)重定向到64位的kernel32.dll和ntdll.dll上

Created with Raphaël 2.1.0 用户 程序 32位应用程序 kernel32.dll(32bit) ntdll.dll(32bit) WOW64 Native kernel32.dll(64bit) Native ntdll32.dll(64bit) 用户模式 ------------ 内核模式 Native Ntoskml.exe(64bit) 64位应用程序 yes no

文件夹结构

在Windows64位中,分为System32文件夹和SysWOW64文件夹
System32是64位专用的
SysWOW64则是32位专用的

但当调用GetSystemDirectory()API取得系统文件夹时,64位会正常返回System32文件夹,而32位则会返回一个名为System32,内容为SysWOW64的值
这是因为WOW64在中间截获了API调用,并重定向至SysWOW64

注册表

32位进程请求访问HKLM\SOFTWARE下的键时,WOW64会将其重定向到HKLM\SOFTWARE\Wow6432Node下的键

但注册表无法完全分离为32位和64位两部分,因此有时会出现共用的情况
因此当进行逆向时需要自行查看API的具体说明

C. 明日计划
看书

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值