Codename: Ideal

//名词
API Hook:通过特定的手段拦截API调用,修改API功能
x64:微软对x86 64bit技术的简称,这个是基于AMD的说法,后来Intel为了和AMD64兼容,制定了所谓EM64T标准,在二进制上是兼容的
 
 
//历史
2005.09.12 Setup Microsoft Windows Xp 64bit edition…
2005.09.12 Setup Microsoft Visual Studio 2005 Beta 2…
2005.09.19 Setup Compuware DriverStudio 64bit with null modem cable
2005.09.22 Setup Intel C++ EM64T Compiler
 
//主题
Powerword 的64位之路
目前的屏幕取词,基本上是完全硬编码到32位x86平台的。很多人认为API Hook是一个很简单的事情,事实并非如此。业余挂接一个API和把这个技术应用在商业软件中,技术跨度远比想象中的大。例如采用何种方式注入代码,Hook的时机,是静态还是动态,针对特殊软件的特殊处理,广泛的硬件兼容性,都是要考虑的问题。
 
自2002年开始,计算机世界的软硬件发生了一些貌似和词霸无关的变化,IE5、DEP、64bit。而一切都让屏幕取词这个用起来很自然的功能,实现起来却愈加困难。
 
随着64位平台的崛起,新一轮的洗牌已经开始。有些言论说64位普及还需以时日,理由便是32位平台替换掉16位平台用了近10年的时间。然则我要说,技术的发展是有加速度的,个人计算机的内存从640k增长到16MB用了多少年?从16MB到2G又用了多少年?我们不能把头扎在沙土堆里任凭物换星移。
 
64位屏幕取词研究,已经进行了一段时间了。以API Hook技术而论,无疑微软走在最前沿,Detours 2.0早已实现了64位API Hook,但它的源代码授权费用却也让国内的软件厂商乍舌:10,000 $。国外某Delphi API Hook论坛上有位仁兄说得好:“On my god!”
 
目前拦在路上的技术问题大致有以下这么多:
开发工具:VC++ 2005 64bit不支持内联汇编,这个用Intel的EM64T编译器可以解决。
代码移植:可以说现有的代码,内核基本上是硬编码到 32位x86的,所有的内联汇编需要重写或者另寻他路;所有的指针计算需要扩展;内存块对齐需要重新设计;内置的反汇编器需要升级到x64。
 
所有的问题目前正在或者已经被解决,有些事情还是要亲自去做,空想是不能解决问题的。

VAX and SoftICE

最新的 Visual Assist X 和 SoftICE不兼容
 
开着SoftICE就安装不了Visual Assist X,也用不了
 
当然,据官方解释,只要开着内核调试器就会这样。

在程序中避免DEP

对于需要做某些事情的程序来说,新型CPU带来的DEP(数据执行保护)是一个噩梦。
 
以往,我们可以new一块内存,把代码(编译好的或者是手工构造的)复制进去,然后可以用指针直接从那块内存的开始来运行(其实就是改一下EIP……)。
 
可是CPU有了DEP则不同,从SoftICE里面可以看到,当执行到那块内存的第一条指令的时候,硬件异常出现了……程序无条件跳转到系统异常处理过程,Win32 GetLastError 返回14007(在活动的激活上下文中没有找到任何查找密钥。)
 
-.-凸   微软给的这叫什么提示……
 
如何解决呢,其实很简单,十分的简单,超级的简单!
 
DWORD dwOldProtect;
VirtualProtect( m_pMem, dwMemSize, PAGE_EXECUTE_READWRITE, &dwOldProtect);
 
世界清静了……
 
 
 
 

Raystorm Original SoundTrack

今天找到了梦寐以求的Raystorm Original SoundTrack……
神曲!神曲!想当年放学后去玩 Raystorm 的日子……
某人曾说因为最后一关的音乐过于好听,以至于沉醉其中,通关未果  orz
 
附上目录
Raystorm [OST]
Original SoundTrack data
Composer: Tamayo Kawamoto
Arranged by: Kuniaki Haishima
Publisher: Zuntata Records
Release Date: October 11, 1996
/ Tracks:
1.] Cycloid (Attract Demo)
2.] Origin (Throw A Coin)
3.] Ooparts (Player Select) – Full Take
4.] Geometric City (Area 1)
5.] Aquarium (Area 2)
6.] Muddling Through (Area 3)
7.] Juggler (Boss 1)
8.] Catharsis (Area 4)
9.] Luminescence (Area 5) – Full Take
10.] Metaphar (Boss 2) – Full Take
11.] Toxoplasma (Area 6)
12.] Slaughter Hour (Area 7)
13.] Molecular Clock (Boss 3)
14.] Hard Number (Stage Clear)
15.] Heart Land (Area 8)
16.] Intolerance (Last Boss)
17.] Ceramic Heart (Ending Staff Roll)
18.] Endless Stairs (Name Entry)
19.] Dead Air (Game Over)
20.] Aquarium (Haishima Arrange)
21.] Toxoplasma (Haishima Arrange)
22.] Coeur de Ceramique (Piano & Quartet Arrange)
23.] Intolerance (Orchestra Arrange)
TIME: 1:13:44.

How Debuggers Work 整理进展

How Debuggers Work 整理工作,文字校对已经完成40%

还有排版工作

头大阿