首页
社区
课程
招聘
[分享]金山快译的原理实现--全局钩子勾住textout
发表于: 2013-9-8 16:58 14926

[分享]金山快译的原理实现--全局钩子勾住textout

2013-9-8 16:58
14926

大家可能都对金山快译可以将英文软件翻译成中文软件的功能感到惊奇
其实就是全局钩子勾住textout函数

钩子头文件如下

void __declspec(dllexport) WINAPI InstallHook(BOOL,DWORD); 
BOOL WINAPI UnInstallHook(); 
LRESULT CALLBACK GetMsgProC(int code,WPARAM wParam,LPARAM lParam); 
void WINAPI HookOneAPI(LPCTSTR pszCalleeModuleName,PROC pfnOriginApiAddress, 
        PROC pfnDummyFuncAddress,HMODULE hModCallerModule); 
BOOL WINAPI HookAllAPI(LPCTSTR pszCalleeModuleName,PROC pfnOriginApiAddress, 
        PROC pfnDummyFuncAddress,HMODULE hModCallerModule); 
BOOL WINAPI UnhookAllAPIHooks(LPCTSTR pszCalleeModuleName,PROC pfnOriginApiAddress, 
         PROC pfnDummyFuncAddress,HMODULE hModCallerModule); 
BOOL WINAPI H_TextOutA(HDC, int, int, LPCSTR, int); 
BOOL WINAPI H_TextOutW(HDC, int, int, LPCWSTR, int); 
BOOL WINAPI H_ExtTextOutA(HDC, int, int, UINT, CONST RECT *,LPCSTR, UINT, CONST INT *); 
BOOL WINAPI H_ExtTextOutW(HDC, int, int, UINT, CONST RECT *,LPCWSTR, UINT, CONST INT *); 

[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

收藏
免费 5
支持
分享
最新回复 (18)
雪    币: 100
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
快二十年前的技术了,不过lz精神可嘉
2013-9-8 18:31
0
雪    币: 1283
活跃值: (46)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
就是屏幕取词吧。。
2013-9-9 08:37
0
雪    币: 242
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
说烂了,当年csdn老大蒋TAO的得意之处。
2013-9-9 12:46
0
雪    币: 602
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
好久的资料啦
2013-9-9 15:53
0
雪    币: 207
活跃值: (26)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
6
被发现啦~
2013-9-9 18:05
0
雪    币: 680
活跃值: (68)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
7
mark之
2013-9-10 08:28
0
雪    币: 14
活跃值: (88)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
mark!
2013-9-10 20:35
0
雪    币: 174
活跃值: (620)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
9
确实是老技术,不过lz用来研究也挺好的,对于正解原理不错
2013-9-11 11:33
0
雪    币: 4
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
10
mark一下
2013-9-13 09:12
0
雪    币: 74
活跃值: (748)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
11
mark
2013-9-13 09:18
0
雪    币: 211
活跃值: (33)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
mark
2013-9-13 11:09
0
雪    币: 11
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
奇怪,我写test.exe安装钩子(dll以静态方式加载),InstallHook(TRUE, 0);,居然没啥反应,我用360任务管事器查看了下只有test.exe有dll,其它进程都没加载上。而且没任何反应,,谁试过没?
2013-9-13 11:58
0
雪    币: 6
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
昨天看一本老书的时候就看到了。。。没想到今天一上网也是。。。真巧。。。
2013-9-13 15:10
0
雪    币: 137
活跃值: (13)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
mark
2013-9-20 14:23
0
雪    币: 5649
活跃值: (3767)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
16
不是屏幕取词,你下一个金山快译试试就知道了。他可以把英文软件变成中文的。屏幕取词好像也用到了textout
2013-9-26 20:18
0
雪    币: 257
活跃值: (67)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
17
路过,来围观一下
2013-9-26 20:37
0
雪    币: 3496
活跃值: (749)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
下来实验一下。。
2014-3-15 14:19
0
雪    币: 77
活跃值: (48)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
mark
2014-3-15 16:35
0
游客
登录 | 注册 方可回帖
返回
//