1. 首页 > 电脑手机 >

tods中文叫什么 tods属于什么档次

tods 旗下一个鞋子的品牌,鞋身有个h的标志叫什么牌子?

2.安全地潜入Windows内部,良好地兼容Windows的各个版本

在时装世界里,高调的品牌有其喧闹璀璨的排场,但低调亦自有低调的趣味,各有各惊喜。意国品牌Tod's家族旗下的Hogan,正是后者,虽然只有二十多年历史,却已成功跻身优质皮具之列。其新推的摇鼓主题系列 Hogan新思维 ,相信已成为女士们今季的心水猎物,而刚开幕的九龙新店,更可进一步满足品牌“粉丝”。

tods中文叫什么 tods属于什么档次tods中文叫什么 tods属于什么档次


tods中文叫什么 tods属于什么档次


◎主 演 杰瑞米·艾恩斯 Jeremy Irons .... Brom

这个品牌叫做Hogan。

是这个吗??? 这可不是tods 一些山寨货色吧~~

求救谁知道Win9x下Hook系统Api三种以上

"陷阱"技术探秘——动态Windows技术的分析

(加入日期:2001-4-12 点击数:4682)

【对此文发表评论】 【编程爱好者】 【保存文章至硬盘】 【打印文章】

一、发现了什么?

笔者多年来一直从事Windows下的软件开发工作,经历了Windows 2.0 、 3.0 、3.1 ,直至Windows 95、NT的成长过程,也遍历了长青窗口、长城窗口、DBWin、CStar、RichWin等多个Windows产品。从现在看来,影响也最为成功的,当推四通利方的RichWin;此外,中文之星CStar与RichWin师出一门,其核心技术自然也不多。其对外宣传采用独特的"陷阱"

技术即动态修改Windows代码,一直是笔者感兴趣的地方。

EXEHDR是Microsoft Visual C++开发工具中很有用的一个程序,它可以检查NE(New-Exe cutable)格式文件,用它来分析RichWin的WSENGINE.DLL或CStar的CHINESE.DLL,就会发现与众不同的两点(以CStar

C:\CSTAR>exehdr chinese.dll /v

..................................

6 type offset target

BASE 060a seg 2 offset 0000

PTR 047e imp GDI.GETCHARABCWIDTHS

PTR 059b imp GDI.ENUMFONTFAMILIES

PTR 0451 imp DISPLAY.14 ( EXTTEXTOUT )

PTR 0415 imp KEYBOARD.4 ( TOASCII )

PTR 04ba imp KEYBOARD.5 ( ANSITOOEM )

PTR 04c9 imp KEYBOARD.6 ( OEMTOANSI )

PTR 04d8 imp KEYBOARD.134( ANSITOOEMBUFF )

PTR 05f5 imp USER.430 ( LSTRCMP )

PTR 04e7 imp KEYBOARD.135( OEMTOANSIBUFF )

PTR 0514 imp USER.431 ( ANSIUPPER )

PTR 0523 imp USER.432 ( ANSILOWER )

PTR 05aa imp GDI.56 ( CREATEFONT )

PTR 056e imp USER.433 ( ISCHARALPHA )

PTR 05b9 imp GDI.57 ( CREATEFONTINDIRECT )

PTR 057d imp USER.434 ( ISCHARALPHANUMERIC )

PTR 049c imp USER.179 ( GETSYSTEMMETRICS )

PTR 0550 imp USER.435 ( ISCHARUPPER )

PTR 055f imp USER.436 ( ISCHARLOWER )

PTR 0532 imp USER.437 ( ANSIUPPERBUFF )

PTR 0541 imp USER.438 ( ANSILOWERBUFF )

PTR 05c8 imp GDI.69 ( DELETEOBJECT )

PTR 058c imp GDI.70 ( ENUMFONTS )

PTR 04ab imp KERNEL.ISDBCSLEADBYTE

PTR 05d7 imp GDI.82 ( GETOBJECT )

PTR 048d imp KERNEL.74 ( OPENFILE )

PTR 0460 imp GDI. ( GETTEXTEXTENT )

PTR 05e6 imp GDI.92 ( GETTEXTFACE )

PTR 046f imp GDI.350 ( GETCHARWIDTH )

PTR 0442 imp GDI.351 ( EXTTEXTOUT )

PTR 0604 imp USER.471 ( LSTRCMPI )

PTR 04f6 imp USER.472 ( ANSINEXT )

PTR 0505 imp USER.473 ( ANSIPREV )

PTR 0424 imp USER.108 ( GETMESSAGE )

PTR 0433 imp USER.109 ( PEEKMESSAGE )

35 relocations

(括号内为笔者加上的对应Windows API函数。)

,在数据段中,发现了重定位信息。

第二,这些重定位信息提示的函数,全都与文字显示输出和键盘、字符串有关。也就是说Windows,必须修改这些函数。

在这非常特殊的地方,隐藏着什么呢?毋庸置疑,这与众不同的两点,对打开"陷阱"技术之门而言,不是金钥匙,也是敲门砖。

二、Windows的模块调用机制与重定位概念

为了深入探究"陷阱"技术,我们先来介绍Windows的模块调用机制。

Windows的运行分实模式、标准模式和增强模式三种,虽然这几种模式各不相同,但其核心模块的调用关系却是完全一致的,见图一。

主要的三个模块,有如下的关系:

·KERNEL是Windows系统内核,它不依赖其它模块。

·GDI是Windows图形设备接口模块,它依赖于KERNEL模块。

·USER是Windows用户接口服务模块,它依赖于KERNEL、GDI模块及设备驱动程序等所有模块。

这三个模块,实际上就是Windows的三个动态链接库。KERNEL有三种系统存在形式:Kern el.exe(实模式)、Krnl286.exe(标准模式)、Krnl386.exe(386增强模式);GDI模块是Gdi.ex

e;USER模块是User.exe。虽然文件名都以EXE为扩展名,但它们实际都是动态链接库。

<>

图1 Windows的模块调用机制

同时,几乎所有的API函数都隐藏在这三个模块中。用EXEHDR对这三个模块分析,就可列出一大堆大家所熟悉的Windows API函数。

以GDI模块为例,运行结果如下:

C:\WINDOWS\SYSTEM>exehdr gdi.exe

Exports:

rd seg offset name

............

351 1 923e EXTTEXTOUT exported, shared data

56 3 19e1 CREATEFONT exported, shared data

............

一个Windows执行程序对调用API函数或对其它动态库的调用,在程序装入内存前,都是一些不能定位的动态链接;当程序调入内存时,这些远调用都需要重新定位,重新定位的依据就是重定位表。在Windows执行程序(包括动态库)的每个段后面,通常都跟有这样一个重定位表。重定位包含调用函数所在模块、函数序列号以及定位在模块中的位置。

例如,用EXEHDR /v 分析CHINESE.DLL得到:

6 type offset target

..........

PTR 0442 imp GDI.351

..........

就表明,在本段的0442H偏移处,调用了GDI的第351号函数。如果在0442H处是0000:FFFF ,表示本段内仅此一处调用了GDI.351函数;否则,表明了本段内还有一处调用此函数,调用的位置就是0442H处所指向的内容,实际上重定位表只含有引用位置的链表的链头。那么,GDI.

351是一个什么函数呢?用EXEHDR对GDI.EXE作一分析,就可得出,在GDI的出口(Export)函数中,第351号是ExtTextOut。

这样,我们在EXEHDR这一简单而非常有用的工具帮助下,已经在Windows的浩瀚海洋中畅游了一会,下面让我们继续深入下去。

三、动态Windows原理

我们知道,传统的Windows的方法,是要直接修改Windows的显示、输入、打印等模块代码,或用DDK直接开发"中文设备"驱动模块。这样不仅工作量大,而且,系统的完备性很难保证,性能上也有很多限制(早期的长青窗口就是如此),所以只有从内核上修改Windows核心代码才是最的办法。

从Windows的模块调用机制,我们可以看到,Windows实际上是由包括在KERNEL、GDI、US ER等几个模块中的众多函数支撑的。那么,修改其中涉及语言文字处理的函数,使之能适应中文需要,不就能达到目的了吗?

因而,我们可以得出这样的结论:在自己的模块中重新编写涉及文字显示、输入的多个函数,然后,将Windows中对这些函数的引用,改向到自己的这些模块中来。修改哪些函数才能完成,这需要深入分析Windows的内部结构,但CHINESE.DLL已明确无误地告诉了我们,在其数据段的重定位表中列出的引用函数,正是CStar修改了的Windows函数!为了验证这一思路,

我们利用RichWin作一核实。

用EXEHDR分析GDI.EXE,得出ExtTextOut函数在GDI的代码段6139H偏移处(不同版本的Windows其所在代码段和偏移可能不一样)。然后,用HelpWalk(也是Microsoft

Visual C+ +开发工具中的一个)检查GDI的Code1段,6139H处前5个字节是 B8 FF 05 45 55,经过运行Ri chWin 4.3

for Internet后,再查看同样的地方,已改为 EA 08 08 8F 3D。其实反汇编就知道,这5个字节就是 Jmp 3D8F:0808,而句柄为0x3D8F的模块,用HelpWalk能观察正是RichWin

的WSENGINE.DLL的代码段( 模块名为TEXTMAN)。而偏移0808H处 B8 B7 3D 45 55 8B E C 1E,正是一个函数起始的地方,这实际上就是RichWin所重改写的ExtTextOut函数。退出Ri

chWin后,再用HelpWalk观察GDI的Code1代码段,一切又恢复正常!这与前面的分析结论完全吻合!那么,下一个关键点就是如何动态修改Windows的函数代码,也就是Windows的核心——"陷阱"技术。

四、"陷阱"技术

讨论"陷阱"技术,还要回到前面的两个发现。发现之二,已能解释为修改的Windows函数,而发现之一却仍是一个迷。

数据段存放的是变量及常量等内容,如果这里面包含有重定位信息,那么,必定要在变量说明中将函数指针赋给一个FARPROC类型的变量,于是,在变量说明中写下:

FARPROC FarProcFunc=ExtTextOut;

果然,在自己程序的数据段中也有了重定位信息。这样,当程序调入内存时,变量FarPro cFunc已是函数ExtTextOut的地址了。

要直接修改代码段的内容,还遇到一个难题,就是代码段是不可改写的。这时,需要用到一个未公开的Windows函数AllocCStoDSAlias,取得与代码段有相同基址的可写数据段别名,

其函数声明为:

WORD FAR PASCAL AllocCStoDSAlias(WORD code_sel);

参数是代码段的句柄,返回值是可写数据段别名句柄。

Windows中函数地址是32位,高字节是其模块的内存句柄,低字节是函数在模块内的偏移。将得到的可写数据段别名句柄锁定,再将函数偏移处的5个字节保留下来,然后将其改为转向替代函数(用

EA Jmp):

(lpStr+wOffset) =0xEA;

//源程序 relocate.c

#include <WINDOWS.H>

#include <dos.h>

BOOL WINAPI MyExtTextOut(HDC hDC, int x, int y, UINT nInt1, const RECTFARl

pRect,LPCSTR lpStr, UINT nInt2, int FAR lpInt);

WORD FAR PASCAL AllocCStoDSAlias(WORD code_sel);

typedef struct tagFUNC

{FARPROC lpFarProcReplace; //替代函数地址

FARPROC lpFarProcWindows; //Windows函数地址

BYTE bOld; //保存原函数字节

LONG lOld; //保存原函数接后的四字节长值

}FUNC;

FUNC Func={MyExtTextOut,ExtTextOut};

//Windows主函数

int PASCAL WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdL

ine,int nCmdShow){

HANDLE hMemCode; //代码段句柄

WORD hMemData; //相同基址的可写数据段别名

WORD wOffset; //函数偏移

LPSTR lpStr;

LPLONG lpLong;

char lpNot[96];

hMemCode=HIWORD((LONG) Func.lpFarProcWindows );

wOffset=LOWORD((LONG) Func.lpFarProcWindows );

wsprintf(lpNot,"函数所在模块句柄 0x%4xH,偏移 0x%4xH",hMemCode,wOffset);

MessageBox(NULL,lpNot,"提示",MB_OK);

//取与代码段有相同基址的可写数据段别名

hMemData=AllocCStoDSAlias(hMemCode);

lpStr=GlobalLock(hMemData);

lpLong=(lpStr+wOffset+1 );

//保存原函数要替换的头几个字节

Func.bOld=(lpStr+wOffset);

Func.lOld=lpLong;

(lpStr+wOffset)=0xEA;

lpLong=Func.lpFarProcReplace;

GlobalUnlock(hMemData);

MessageBox(NULL,"改为自己的函数","提示",MB_OK);

//◎主 演 严正花将保留的内容改回来

hMemData=AllocCStoDSAlias(hMemCode);

lpStr=GlobalLock(hMemData);

lpLong=(lpStr+wOffset+1 );

(lpStr+wOffset)=Func.bOld;

lpLong=Func.lOld;

GlobalUnlock(hMemData);

MessageBox(NULL,"改回原Windows函数","提示",MB_OK);

return 1;

}//自己的替代函数

BOOL WINAPI MyExtTextOut(HDC hDC, int x, int y, UINT nInt1, const RECT FAR

lpRect, LPCSTR lpStr, UINT nInt2, int FAR lpInt){

BYTE NameDot[96]={

0x09, 0x00, 0xfd, 0x08, 0x09, 0x08, 0x09, 0x10, 0x09, 0x20,

0x79, 0x40, 0x41, 0x04, 0x47, 0xfe, 0x41, 0x40, 0x79, 0x40,

0x21, 0x00, 0x02, 0x00, 0x01, 0x04, 0xff, 0xfe, 0x00, 0x00,

0x1f, 0xf0, 0x10, 0x10, 0x10, 0x10, 0x1f, 0xf0, 0x00, 0x00,

0x7f, 0xfc, 0x40, 0x04, 0x4f, 0xe4, 0x48, 0x24, 0x48, 0x24,

0x4f, 0xe4, 0x40, 0x0c, 0x10, 0x80, 0x10, 0xfc, 0x10, 0x88,

0x11, 0x50, 0x56, 0x20, 0x54, 0xd8, 0x57, 0x06, 0x54, 0x20,

0x55, 0xfc, 0x54, 0x20, 0x55, 0xfc, 0x5c, 0x20, 0x67, 0xfe,

0x00, 0x20, 0x00, 0x20, 0x00, 0x20

};

HBITMAP hBitmap,hOldBitmap;

HDC hMemDC;

BYTE far lpDot;

int i;

for ◎字 幕 中文 ( i=0;i<3;i++ )

{lpDot=(LPSTR)NameDot+i32;

hMemDC=CreateCompatibleDC(hDC);

hBitmap=CreateBitmap(16,16,1,1,lpDot);

SetBitmapBits(hBitmap,32L,lpDot);

hOldBitmap=SelectObject(hMemDC,hBitmap);

BitBlt(hDC,x+i16,y,16,16,hMemDC,0,0,SRCCOPY);

DeleteObject(hBitmap);

}return TRUE;

}//模块定义文件 relocate.def

NAME RELOCATE

EXETYPE WINDOWS

CODE PRELOAD MOVEABLE DISCARDABLE

DATA PRELOAD MOVEABLE MULTIPLE

HEAPSIZE 1024

EXPORTS

五、结束语

本文从原理上分析了称为"陷阱"技术的动态Windows方法,介绍了将任一Windows函数调用改向到自己指定函数处的通用方法,这种方法可以拓展到其它应用中,如多语种显示、不同内码制式的切换显示等。

\头头你看够了吗?不够我再去拉点过来。

金山词霸的屏幕取词是什么原理

◎字 幕 中文字幕

一.基础知识

首先想编这种程序需要一些基础知识。

会用Vc++,包括16/32位。

精通Windows API特别是GDI,KERNEL部分。

懂汇编语言,会用soft调试程序,因为这种程序用soft调试。

二.基本原理

TextOut

ExtTextOut

......

其中DrawText最终是用ExtTextOut实现的。

所以Windows的所有字符输出都是由调用TextOut和ExtTextOut实现的。因此,如果你可以修改这两个函数的入口,让程序先调用你自己的一个函数再调用系统的字符输出,你就可以得到Windows所有输出的字符了。

到了Windows95时代,原理基本没变,但是95比3.x要复杂。开始的时候,一些在windows3.x下编写的取词软件仍然可以是使用。但是后来出了个IE4,结果很多词典软件就因为不支持IE4而被淘汰了,但同时也给一些软件创造了机会,如金山词霸。其实IE4的问题并不复杂,只不过它的输出的是unicode字符,是用TextOutW和ExtTextOutW输出的。知道了这一点,只要也截取就可以了。不过实现方法复杂一点,以后会有详细讲解。现在又出了个IE5,结果词霸也不好用了,微软真是#^@#$%$&^&#@#@..........

我研究后找到了一种解决办法,但还有些问题,有时会取错,正在继续研究,希望大家共同探讨。

另外还有WindowsNT,原理也是一样,只是实现方法和95下完全不同。

三.技术要点

要实现取词,主要要解决以下技术问题。

1.截取API入口,获得API的参数。

3.计算鼠标所在的单词和字母。

4.如果你在Window95下,做32位程序,还涉及Windows32/16混合编程的技术。

今天先到这里吧!准备一份soft for 95/98和金山词霸,让我们先来分析一下别人是怎么做的。

欢迎与我联系

E-Mail:yeedong@163

主题 屏幕取词技术系列讲座(二)

作者 亦东

很抱歉让大家久等了!

我看了一些人的回帖,发现很多人对取词的原理还是不太清楚。

首先我来解释一下hook问题。词霸中的确用到了hook,而且他用了两种hook其中一种是Windows标准hook,通过SetWindowHook安装一个回调函数,它安装了一个鼠标hook,是为了可以及时响应鼠标的消息用的和取词没太大关系。

另一种钩子是API钩子,这才是取词的核心技术所在。他在TextOut等函数的开头写了一个jmp语句,跳转到自己的代码里。

你用soft看不到这个跳转语句是因为它只在取词的一瞬间才存在,平时是没有的。

你可以在TextOut开头设一个读写断点

bpm textout

再取词,就会找到词霸用来写钩子的代码了。

/

所以我在次强调,想学这种技术一定要懂汇编语言和熟练使用soft.

/

至于从cjktl95中dump出来的未公开函数是和Windows32/16混合编程有关的,以后我会提到他们。

我先来讲述取词的过程,

0 判断鼠标是否在一个地方停留了一段时间

1 取得鼠标当前位置

2 以鼠标位置为中心生成一个矩形

3 挂上API钩子

4 让这个矩形产生重画消息

5 在钩子里等输出字符

6 计算鼠标在哪个单词上面,把这个单词保存下来

7 如果得到单词则摘掉API钩子,在一段时间后,无论是否得到单词都摘掉API钩子

8 用单词查词库,显示解释框。

很多步骤实现起来都有一些难度,所以在可以做一个完善的取词词典的人屈指可数。

其中0,1,2,7,8比较简单就不提了。

先说如何挂钩子:

所谓钩子其实就是在WindowsAPI入口写一个JMP XXXX:XXXX语句,跳转到自己的代码里。

步骤如下:

1.取得Windows API入口,用GetProcAddress实现

2.保存API入口的前五个字节,因为JMP是0xEA,地址是4个字节

3.写入跳转语句

这步最复杂

Windows的代码段本来是不可以写的,但是Microsoft给自己留了个后门。

有一个未公开函数是AllocCsToDsAlias,

UINT WINAPI ALLOCCSTODSALIAS(UINT);

你可以取到这个函数的入口,把API的代码段的选择符(要是不知道什么是选择符,就先去学学保护模式编程吧)传给他,他会返回一个可写的数据段选择符。这个选择符用完要释放的。用新选择符和API入口的偏移量合成一个指针就可以写windows的代码段了。

这就是取词技术的最核心的东东,不止取词,连外挂中文平台全屏都是使用的这种技术。现在知道为什么这么简单的几句话却很少知道了吧?因为太多的产品使用他,太多的公司靠他赚钱了。

这些公司和产品有:中文之星,四通利方,南极星,金山词霸,实达铭泰的东方快车,roboword,译典通,即时专家等等等等。。。。还有至少20多家小公司。他们的具体实现虽然不同,但大致原理是相同的。

我这些都是随手写的,也没有提纲之类的东西,以后如果有机会我会整理一下,大家先凑合着看吧!xixi...

?主题 关于屏幕取词的讨论(三)

作者 亦东

让大家久等,很抱歉,前些时候工作忙硬盘又坏了,太不幸了。

这回来点真格的。

咱们以截取TextOut为例。

下面是代码:

//截取TextOut

typedef UINT (WINAPI ALLOCCSTODSALIAS)(UINT);

ALLOCCSTODSALIAS AllocCsToDsAlias;

BYTE NewValue[5];//保存新的入口代码

BYTE OldValue[5];//API原来的入口代码

unsigned char Address=NULL;//可写的API入口地址

UINT DsSelector=NULL;//指向API入口的可写的选择符

WORD OffSetEntry=NULL;//API的偏移量

BOOL bHookAlready = FALSE; //是否挂钩子的标志

BOOL InitHook()

{HMODULE hKernel,hGdi;

hKernel = GetModuleHandle("Kernel");

if(hKernel==NULL)

return FALSE;

AllocCsToDsAlias = (ALLOCCSTODSALIAS)GetProcAddress(hKernel,"AllocCsToDsAlias");//这是未公开的API所以要这样取地址

if(AllocCsToDsAlias==NULL)

return FALSE;

hGdi = GetModuleHandle("Gdi");

if(hmGdi==NULL)

return FALSE;

FARPROC Entry = GetProcAddress(hGdi,"TextOut");

if(Entry==NULL)

return FALSE;

OffSetEntry = (WORD)(FP_OFF(Entry));//取得API代码段的选择符

DsSelector = AllocCsToDsAlias(FP_SEG(Entry));//分配一个等同的可写的选择符

Address = (unsigned char)MK_FP(DsSelector,OffSetEntry);//合成地址

NewValue[0]=0xEA;

((DWORD)(NewValue+1)) = (DWORD)MyTextOut;

OldValue[0]=Address[0];

((DWORD)(OldValue+1)) = ((DWORD)(Address+1));

}BOOL ClearHook()

{if(bHookAlready)

HookOff();

FreeSelector(DsSelector);

}BOOL HookOn()

{if(!bHookAlready){

for(int i=0;i<5;i++){

Address[i]=NewValue[i];

}bHookAlready=TRUE;

}}

BOOL HookOff()

{if(bHookAlready){

for(int i=0;i<5;i++){

Address[i]=OldValue[i];

}bHookAlready=FALSE;

}}

//钩子函数,一定要和API有相同的参数和声明

BOOL WINAPI MyTextOut(HDC hdc,int nXStart,int nYStart,LPCSTR lpszString,UINT cbString)

{BOOL ret;

HookOff();

ret = TextOut(hdc,nXStart,nYStart,lpszString,cbString);//调原来的TextOut

HookOn();

return ret;

}上面的代码是一个最简单的挂API钩子的例子,我要提醒大家的是,这段代码是我凭记忆写的,我以前的代码丢了,我没有编译测试过

因为我没有VC++1.52.所以代码可能会有错。

建议使用Borland c++,按16位编译。

如果用VC++1.52,则要改个选项

在VC++1.52的Option里,有个内存模式的设置,选大模式,和"DS!=SS DS Load on Function entry.",切记,否则会系统崩溃。

一.基础知识

首先想编这种程序需要一些基础知识。

会用Vc++,包括16/32位。

精通Windows

API特别是GDI,KERNEL部分。

懂汇编语言,会用soft调试程序,因为这种程序用soft调试。

二.基本原理

在Window

3.x时代,windows系统提供的字符输出函数只有很少的几个。

TextOut

ExtTextOut

......

其中DrawText最终是用ExtTextOut实现的。

所以Windows的所有字符输出都是由调用TextOut和ExtTextOut实现的。因此,如果你可以修改这两个函数的入口,让程序先调用你自己的一个函数再调用系统的字符输出,你就可以得到Windows所有输出的字符了。

到了Windows95时代,原理基本没变,但是95比3.x要复杂。开始的时候,一些在windows3.x下编写的取词软件仍然可以是使用。但是后来出了个IE4,结果很多词典软件就因为不支持IE4而被淘汰了,但同时也给一些软件创造了机会,如金山词霸。其实IE4的问题并不复杂,只不过它的输出的是unicode字符,是用TextOutW和ExtTextOutW输出的。知道了这一点,只要也截取就可以了。不过实现方法复杂一点,以后会有详细讲解。现在又出了个IE5,结果词霸也不好用了,微软真是#^@#$%$&^&#@#@..........

我研究后找到了一种解决办法,但还有些问题,有时会取错,正在继续研究,希望大家共同探讨。

另外还有WindowsNT,原理也是一样,只是实现方法和95下完全不同。

三.技术要点

要实现取词,主要要解决以下技术问题。

1.截取API入口,获得API的参数。

3.计算鼠标所在的单词和字母。

4.如果你在Window95下,做32位程序,还涉及Windows32/16混合编程的技术。

今天先到这里吧!准备一份soft

for

95/98和金山词霸,让我们先来分析一下别人是怎么做的。

欢迎与我联系

E-Mail:yeedong@163

主题

屏幕取词技术系列讲座(二)

作者

亦东

很抱歉让大家久等了!

我看了一些人的回帖,发现很多人对取词的原理还是不太清楚。

首先我来解释一下hook问题。词霸中的确用到了hook,而且他用了两种hook其中一种是Windows标准hook,通过SetWindowHook安装一个回调函数,它安装了一个鼠标hook,是为了可以及时响应鼠标的消息用的和取词没太大关系。

另一种钩子是API钩子,这才是取词的核心技术所在。他在TextOut等函数的开头写了一个jmp语句,跳转到自己的代码里。

你用soft看不到这个跳转语句是因为它只在取词的一瞬间才存在,平时是没有的。

你可以在TextOut开头设一个读写断点

b在Window 3.x时代,windows系统提供的字符输出函数只有很少的几个。pm

textout

再取词,就会找到词霸用来写钩子的代码了。

/

所以我在次强调,想学这种技术一定要懂汇编语言和熟练使用soft.

/

至于从cjktl95中dump出来的未公开函数是和Windows32/16混合编程有关的,以后我会提到他们。

我先来讲述取词的过程,

判断鼠标是否在一个地方停留了一段时间

1取得鼠标当前位置

2以鼠标位置为中心生成一个矩形

3挂上API钩子

4让这个矩形产生重画消息

5在钩子里等输出字符

6计算鼠标在哪个单词上面,把这个单词保存下来

7如果得到单词则摘掉API钩子,在一段时间后,无论是否得到单词都摘掉API钩子

8用单词查词库,显示解释框。

很多步骤实现起来都有一些难度,所以在可以做一个完善的取词词典的人屈指可数。

其中0,1,2,7,8比较简单就不提了。

先说如何挂钩子:

所谓钩子其实就是在WindowsAPI入口写一个JMP

XXXX:XXXX语句,跳转到自己的代码里。

步骤如下:

1.取得Windows

API入口,用Get

唉.

说简单点就是截获API的TextOut等显示文字的函数,然后发送消息给截获程序.

HOOKAPI的代码网上有都是.

1.判别所指向的控件类型

2.查表得这类控件所需要的字符串在什么属性内

3.提取所需要的字符串

4.检索后台数据库得所需要的结果

我记得是这样的

楼上的真是高人

托德斯属于几线品牌

◎类 别 喜剧/爱情

都是高端品牌。Tods是意大利品牌,高端档次,中文名字叫(Todes)。主要生产皮鞋和皮包,很多名人都会买。在意大利鞋包品牌中比较知名。Aigle是法国知名的户外休闲品牌,总部位于法国巴黎。中文名“艾高”。Aigle定位于高端一线品牌阶层,因此,价格自然不会太低,但面料质量不错。所以两者都属于高端品牌。品牌鞋有很多,一般分为时尚系列和运动系列。运动系列的楼上回复很全。

时尚系列,◎译 名 不后悔/绝不后悔也分国内品牌和品牌;

常见品牌:百丽、天图、达芙妮、红蜻蜓、回力(亲民品牌)

品牌通常包括古奇古驰,威登,阿玛尼阿玛尼,菲拉格慕,ECCO艾布,范思哲范思哲和巴利博柏利。

tods属于什么档次

编程爱好者光盘期火热出炉,大量精彩开发工具和资料。

tods属于档次。

tods是一个来源于意大利的时尚品牌,中文名称为“托德斯”,是一个属于品档次的品牌,也是世界十大品牌之一。该品牌创立于1970年,Tods的品牌风格多为经典简约的设计,鞋子舒适度高,包包的设计实用百搭,经典中又透露出满满的高级感。

旗下1.20为例):生产的产品涵盖了鞋履、包袋、配饰、成衣等,比较知名的产品是皮鞋和皮包,“豆豆鞋”是其品牌中的经典产品,包包甚至被称之为“世界上最实用最完美的皮具”,拥有许多忠实的消费者和品牌拥护者,许多明星、名媛等都使用Tods的产品。

品牌历史:

上世纪初在意大利马尔凯大区费尔莫省附近的Casette D’Ete成立的Tods最初只是一家小鞋厂,直到上世纪40年代由Dorino Della Valle先生发展成为规模庞大的,他的儿子Diego Della Valle先生,是Tods现任兼行政总裁。2000年11月6日,Tods在米兰证券市场正式上市。

what is the todsy

DeleteDC(hMemDC);

四通利方(RichWin)、中文之星(CStar)是大家广为熟知的Windows产品,"陷阱"技术即动态修改Windows代码,一直是其对外宣称的过人技术。本文从Windows的模块调用机制与重定位概念着手,介绍了"陷阱"技术的实现,并给出了采用"陷阱"技术动态修改Windows代码的示例源程序。你好!

what is the todsy

什么是今天

expanded their enrollment since

今天是什么

tods属于哪个档次

0x09, 0x20, 0x09, 0x20, 0x09, 0x10, 0x09, 0x4e, 0x51, 0x84,

tods属于◎导 演 诹访敦彦 Suwa Nobuhiro / 韦斯·克雷文 Wes Cren档次。

tods是一个来源于意大利的时尚品牌,中文名称为“托德斯”,是一个属于品档次的品牌,也是世界十大品牌之一。该品牌创立于1970年,Tods的品牌风格多为经典简约的设计,鞋子舒适度高,包包的设计实用百搭,经典中又透露出满满的高级感。

旗下生产的产品涵盖了鞋履、包袋、配饰、成衣等,比较知名的产品是皮鞋和皮包,“豆豆鞋”是其品牌中的经典产品,包包甚至被称之为“世界上最实用最完美的皮具”,拥有许多忠实的消费者和品牌拥护者,许多明星、名媛等都使用Tods的产品。

品牌历史:

上世纪初在意大利马尔凯大区费尔莫省附近的Casette D’Ete成立的Tods最初只是一家小鞋厂,直到上世纪40年代由Dorino Della Valle先生发展成为规模庞大的,他的儿子Diego Della Valle先生,是Tods现任兼行政总裁。2000年11月6日,Tods在米兰证券市场正式上市。

TODs是意大利牌子算品吗

至此,读者已能从Windows纷繁复杂的系统中理出一些头续来。下面,再引入一个重要概念——重定位。

TODs不算是品。

TODs也叫做豆豆鞋,豆豆鞋的由来,源自其鞋底和鞋后跟上的133颗橡胶小粒,就像是一颗颗的小豆豆。其外形设计时尚优雅,简约轻便。主要针对消费群体为白领及中高消费水平的人群。

的豆豆鞋鞋底鞋帮是整块的皮,打好洞嵌上豆豆后,再与鞋面手工缝合在一起。两块皮料间上一种特殊的胶水,撑上模具,送到80度左右的炉里去烘一天后,在送到一个冷箱里冷却,以使皮料定型后又回到弹性程度。

扩展资料:

TOD'S 的传奇是关于简单的意大利皮具的传奇,二十年来他们只有皮底、胶底、软底三款 moccasins便鞋及 D Bag、Eight Bag 两款皮包。

但就是这样的简单却吸引到了戴安娜王妃、摩纳哥公主卡洛琳、沙朗.斯通、哈里森.福特、汤姆.汉克斯、迈克.道格拉斯等的名媛。

不管面对明星还是贵族里的新11月21日《魔法奇缘》生力量,TOD'S 都能够让人贴近生活又不失身份地舒适着,尤其适合旅途休闲时光。不管在好莱坞还是纽约上流,TOD'S所代表的就是“最又舒适的鞋子”与“最简单但经典的皮包”。

现在有什么电影

毛舜筠

中文:

◎中文 名 爱情呼叫转移

◎片 名 Call For Love

◎年 代 2007

◎国 家

◎类 别 喜剧

◎语 言 普通话

◎导 演 张建亚 Jianya Zhang

◎主 演 徐峥 Zheng Xu

刘仪伟 Yiwei Liu

宁静 Jing Ning

白冰 Bing Bai

伊能静 Annie Shizuka Inoh

车永莉 Yongli Che

沈星 Xing Shen

小宋佳 Jia Song

范冰冰 Bingbing Fan

姜宏波 Yihong Jiang

秦海璐 Hailu Qin

黄圣依 Shengyi Huang

龚蓓苾 Beibi Gong

瞿颖 Ying Qu

◎片 名 It’a.Wonderful.Life

◎中文 名 心想事成

◎年 代 2007

◎国 家

◎类 别 喜剧

◎语 言 普通话

◎导 演 郑中基

◎主 演 郑中基 梁家辉

谷德昭

苏玉华

阎青

方力申

◎译 名 调包

◎片 名 Change You

◎年 代 2007

◎国 家

◎语 言 普通话

◎导 演 潘欣欣

◎主 演 范文芳

吴奇隆

◎译 名 奇迹的夏天

◎片 名 My Football Summer

◎年 代 2006

◎地 区

◎类 别 纪录

◎语 言 普通话

◎导 演 杨力州 Lizhou Yang

张荣吉 Rongji Zhang

◎译 名

◎片 名 Curse of the Golden Flower

◎年 代 2006

◎国 家

◎类 别 动作/剧情/冒险/爱情

◎语 言 普通话

◎导 演 张艺谋 Yimou Zhang

◎主 演 周润发 Yun-Fat Chow ..... 大王

巩俐 Li Gong ..... 王后

刘烨 Ye Liu ..... 太子

周杰伦 Jay Chou ..... 杰王子

李曼 Man Li ..... 蒋娥

倪大宏 Dahong Ni ..... 太医

陈瑾 Jin Chen

秦俊杰 Junjie Qin ..... 小王子

◎译 名 雀神Ⅱ(呖咕呖咕对对碰)

◎片 名 Bet To Basic 2

◎年 代 2007

◎国 家

◎导 演 麦子善

◎主 演 黄子华

李灿琛

张达明

李彩华

◎译 名 师奶唔易做

◎片 名 My Mother Is A Belly Dancer

◎年 代 2006

◎地 区

◎类 别 剧情

◎语 言 粤语

◎导 演 李公乐 Kung-Lok Lee

◎主 演 刘德华 Andy Lau ..... Cameo

林家栋 Ka Tung Lam ..... Mr. Wong

田蕊妮 Kristal Tin ..... Mrs. Wong

Wing-Hong Cheung

林子聪 Chi Cg Lam ..... Cameo

汤镇业 Ken Tong ..... Mr. Lee

覃恩美 Amy Tan

Amy Chum ..... Mrs. Chan (as Yan-mei Tam)

Monie Tung ..... Cherry

雪梨 Lei Suet ..... Mrs. Lee (as Sydney)

Pasha Umer Hood ..... Pasha

◎译 名 别惹小孩

◎片 名 Bie Re Xiao Hai

◎年 代 2007

◎国 家

◎类 别 喜剧/剧情

◎语 言 普通话

◎导 演 冯海涛 Haitao Feng

◎主 演 潘长江 Changjiang Pan

潘林生 Linsheng Pan

周倜 Ti Zhou

段丽阳 Liyang Duan

◎中文 名 纳妾

◎片 名 Na Qie

◎年 代 2007

◎国 家

◎类 别 喜剧

◎语 言 普通话

◎片 长 108 Min

◎导 演 马军穰

◎主 演 葛优、

傅彪、

陶红

◎译 名 门

◎片 名 The Door

◎年 代 2007

◎国 家

◎类 别 惊悚

◎语 言 普通话

◎导 演 李少红

◎主 演 陈坤

杨幂

黄觉

林申

◎译 名 落叶归根

◎片 名 Getting Home

◎年 代 2007

◎国 家

◎类 别 喜剧

◎语 言 普通话

◎导 演 张杨

◎主 演 赵本山

宋丹丹

郭德纲

孙海英

午马

刘金山

胡军

郭涛

夏雨

廖凡

张笛

◎译 名 生日快乐

◎片 名 Happy Birthday

◎年 代 2007

◎地 区

◎类 别 爱情

◎语 言 普通话

◎导 演 马楚成

◎主 演 刘若英

古天乐

曾宝仪

周俊伟

谭俊彦

外文:

◎译 名 我爱巴黎

◎片 名 Paris Je Taime

◎年 代 2006

◎国 家 美国/德国/列支敦士登/瑞典

◎类 别 爱情

◎语 言 法语

◎主 演 斯蒂夫·巴塞米 St Buscemi

杰拉尔·德帕迪约 Gérard Depardieu

伊利亚·伍德 Elijah Wood

◎片 名 Babel

◎中文 名 通天塔/火线交错/巴别塔

◎年 代 2006

◎国 家 美国

◎类 别 剧情/惊悚

◎语 言 英语

◎导 演 阿加多·冈萨雷斯·伊纳里多 Alejandro González I?árritu

◎主 演 布拉德·皮特 Brad Pitt .... Richard

凯特·布兰切特 Cate Blanchett .... Susan

小克利夫顿·克林斯 Clifton Collins Jr. ....

◎译 名 意念空间

◎片 名 The Room

◎年 代 2006

◎国 家 美国

◎类 别 剧情

◎语 言 英语

◎导 演 Giles Daoust

◎主 演 Pascal Duquenne .... Alex

Maximilien Jouret-Maron .... Benjamin

Henri Luyckx .... John

◎译 名 年度人物

◎片 名 Man Of The Year

◎年 代 2006

◎国 家 美国

◎类 别 爱情/喜剧/剧情

◎导 演 巴里·莱文森 Barry Levinson

◎主 演 杰夫·戈德布拉姆 Jeff Goldblum

罗宾·威廉姆斯 Robin Williams

克里斯托弗·沃肯 Christopher Walken

·琳妮 Laura Linney

◎译 名 立餐师列传

◎片 名 Tachiguishi Retsuden

◎年 代 2006

◎国 家 日本

◎类 别 动画/喜剧

◎语 言 日语

◎导 演 押井守

◎主 演 吉祥寺怪人

兵藤まこ

石川光久

川井宪次

河森正治

◎译 名 龙骑士

◎片 名 Eragon

◎年 代 2006

◎国 家 美国

◎类 别 动作/奇幻/冒险/家庭

◎语 言 英语

◎导 演 Stefen Fangmeier

约翰·马尔科维奇 John Malkovich .... King Galbatorix

罗伯特·卡莱尔 Robert Carlyle .... Durza

吉蒙·休斯 Djimon Hounsou .... Ajihad

艾伦·阿姆斯特朗 Alun Armstrong .... Uncle Garrow

Jaymes Butler .... Warrior

ágnes Bánfalvy .... Old Woman

Caroline Chikezie .... Nasuada

Christopher Egan .... Roran

希艾娜·盖尔利 Sienna Guillory .... Arya

◎中文 名 恋爱刺客

◎片 名 John Tucker Must Die

◎年 代 2006

◎国 家 美国

◎语 言 英语

◎导 演 贝蒂·托马斯 Betty Thomas

◎主 演 杰西·麦特卡尔菲 Jesse Metcalfe .... John Tucker

布丽特妮·斯诺 Brittany Snow .... Kate Spencer

阿莎缇·道格拉斯 Ashanti .... Heather

索菲亚· Sophia Bush .... B

◎译 名 亚瑟和他的迷你王国

◎片 名 Arthur and the Invisibles

◎年 代 2006

◎国 家 法国/美国

◎类 别 动画/幻想/家庭

◎语 言 普通话

◎导 演 吕克·贝松 Luc Besson

◎主 演 罗伯特·德尼罗 Robert De Niro

查兹·帕尔明特瑞 Chazz Palminteri ..... The Trel Agent (vo: English version)

让-保罗·卢弗 Jean-Paul Rouve ..... Arthur\'s father (vo: French version)

塞吉·卡斯特里图 Sergio Caslitto ..... Le chef de gare (French version) (vo)

艾米利奥·艾斯特维兹 Emilio Estz ..... Ferryman (vo: English version)

史奴比狗狗 Snoop Dogg ..... Max (vo)

麦当娜 Madonna ..... Princess Selenia (vo)

◎原 名 Casino Royale

◎译 名 007系列之皇家场

◎导 演 马丁·坎贝尔 Martin Campbell

◎演 员 Michael G. Wilson ..... Chief of Pol (uncredited)

周采芹 Tsai Chin ..... Madame Wu

加斯帕·克里斯滕森 Jesper Christensen ..... Mr. White

爱娃·格林 Eva Green ..... Vesper Lynd

杰弗里·怀特 Jeffrey Wright ..... Felix Leiter

Jürgen Tarrach ..... Schultz

John Chancer ..... Pol Commander

吉安卡罗·吉安尼尼 Giancarlo Giannini ..... Mathis

◎类 型 动作/冒险/惊悚

◎片 长 144分钟

◎上 映 2006年

◎国 家 美国/英国

◎译 名 无间道风云

◎片 名 The Departed

◎年 代 2006

◎国 家 美国

◎类 别 惊悚/剧情/犯罪

◎语 言 英语

◎导 演 马丁·西科塞斯 Martin Scorsese

◎主 演 莱昂纳多·迪卡普里奥 Leonardo DiCaprio .... Billy Costigan

马特·达蒙 Matt Damon .... Colin Sullivan

杰克·尼科尔森 Jack Nicholson .... Frank Coslo

马丁·西恩 Martin Sheen .... Queenan

维拉·法梅加 Vera Farmiga .... Madeleine

马克·沃尔伯格 Mark Wahlberg .... Dignam

◎片 名 No Regret

◎年 代 2006

◎国 家 韩国

◎类 别 剧情

◎语 言 韩语

◎导 演DrawText 李宋熙

◎主 演 再民-李汉(电视剧)

苏民-李英勋(短篇电影 )

◎译 名 勾引罗宾

◎片 名 Seducing Mr Perfect

◎年 代 2006

◎国 家 韩国

◎类 别 爱情/剧情/喜剧

◎语 言 韩语

◎片 长 1:49:06

◎导 演 金相宇

丹尼尔·海尼

◎译 名 成名/声名狼藉

◎片 名 Infamous

◎年 代 2006

◎国 家 美国

◎类 别 传记/剧情

◎语 言 英语

◎导 演 道格拉斯·麦克格拉斯 Douglas McGrath

◎主 演 托比·琼斯 Toby Jones

桑德拉·布洛克 Sandra Bullock

格温妮丝·帕特洛 Gwyn Paltrow

丹尼尔·克雷格Daniel Craig

◎译 名 一级戒备

◎片 名 The Sentinel

◎年 代 2006

◎国 家 美国

◎类 别 犯罪/剧情/惊悚

◎语 言 英语/导评

◎导 演 克拉克·约翰逊 Clark Johnson

◎主 演 迈克尔·道格拉斯 Michael Douglas .... Pete Garrison

基夫·萨瑟兰 Kiefer Sutherland .... Did Breckinridge

◎译 名 潘神的迷宫/奇幻迷宫

◎片 名 Pans Labyrinth

◎年 代 2006

◎国 家 墨西哥/西班牙/美国

◎类 别 爱情/剧情//幻想/惊悚

◎语 言 英语

◎导 演 吉勒摩·迪特洛(Guillermo del Toro)

◎主 演 道格·琼斯 Doug Jones

亚历克斯·安克吕罗 Alex Angulo

伊万娜·巴克尔诺 Ivana Baquero

◎译 名 泰国大盗/泰国神偷

◎片 名 Thai Thief

◎年 代 2006

◎国 家 泰国

◎类 别 喜剧/动作

◎语 言 泰语

◎导 演 Pisuth Praesaeng-Iam

◎主 演 Todsa Rottakij

Tun Tanakorn

◎译 名 父辈的旗帜

◎片 名 Flags Of Our Fathers

◎年 代 2006

◎国 家 美国

◎类 别 动作/剧情

◎语 言 英语

◎导 演 克林特·伊斯特伍德 Clint Eastwood

◎主 演 梅勒尼·莱恩斯基 Melanie Lynskey .... Pauline Harnois

罗伯特·帕特里克 Robert Patrick .... Colonel Chandler Johnson

巴里·佩珀 Barry Pepper .... Sgt. Mike Strank

◎译 名 仙履奇缘3:时间魔法

◎片 名 Cinderella III A Twist in Time

◎年 代 2007

◎国 家 美国

◎类 别 卡通/家庭/奇幻

◎语 言 英语

◎导 演 弗兰克·尼森 Frank Nissen

◎主 演 Christopher Daniel Barnes .... Prince (Vo)

Susan Blakeslee .... Stepmother (Vo)

柯瑞·伯顿 Corey Burton .... Gus (Vo)

詹尼弗·哈尔 Jennifer Hale .... Cinderella (vo)

这是我收集的最多的了~~~有兴趣就看看~~都挺好看的

蛛侠3 今年5月4日

加勒比海盗3 今年5月25日

还有一些大片的上映时间:

月19日

《搭车人》

1月26日

《史诗电影》

2月14日

《共谱恋曲》

2月16日

《面骑士》

3月2日《十二宫》

3月9日《三百士》

3月23日《忍者神龟》

3月30日

《拜见罗宾逊一家》

4月6日

《刑房》

4月13日

《完美陌生人》

《人犯》

5月4日《蜘蛛侠3》

《幸运神》

5月11日《惊变28周》

5月18日《怪物史莱克3》

5月25日《加勒比海盗3》

6月8日《冲浪企鹅》

《旅社2》《十三罗汉》

6月15日《神奇四侠2》

6月22日《冒牌天神2》

6月29日《虎胆龙威4》

《料理鼠王》

7月4日《变形金刚》

7月13日

《哈利·波特与凤凰社》

7月20日

《我盛大的同志婚礼》

7月27日《辛普森一家》

8月3日

《波恩的通牒》

8月10日《尖峰时刻3》

8月17日《致命拜访》

8月24日《重见天日》

8月31日《万圣节》

9月7日

《穿越苍穹》

9月14日

《千疮百孔》

9月21日

《生化危机3:灭绝》

10月5日《黄金时代》

10月12日《决斗犹马镇》

10月19日

《没有青春的青春》

10月26日

《电锯惊魂4》

11月2日《美国黑帮》

《一只小蜜蜂》

11月9日《刺杀神枪侠》

11月16日《战狼》

《食物大战》

12月7日《黑暗物质》

12月14日《我是传奇》

12月21日《宝藏2》

《异形大战掠食者2》

《见美国版》

12月28日《查理的》

在现代工业领域里,出现了各式各样的锅 ,它们有着各式各样的形状,也有着各式各样的锅盖,它们在不同的环境中各自起到不可替代的作用。

大武生,全球热恋,失恋33天,青春期2,追梦DNA,等等....

福尔摩斯,3月26会上映《爱丽丝漫游奇遇记》蒂姆波顿指导,约翰尼德普主演3D

盗梦空间!票房飙升超快!我的好多朋友都在说这个电影。可惜没时间看…

前几天看了一部法国片,翻乐谱的女人,获过什么乱七八糟的奖之类的。挺好玩的一部片子,当然你看了以后也可以骂一句,什么玩意儿

《洛克》还可以,过几天有《木乃伊3》,

《门徒》

《双子神偷》

《新忠烈图》

《夜空》

《爱情呼叫转移》

《心想事成》(2月14号)

《四大金钗》《》、伤城、魔天使、父子。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至836084111@qq.com 举报,一经查实,本站将立刻删除。

联系我们

工作日:9:30-18:30,节假日休息