首页
社区
课程
招聘
[旧帖] [原创][分享]WinCE下的API Hook工具包带源码 0.00雪花
发表于: 2010-2-2 01:46 2318

[旧帖] [原创][分享]WinCE下的API Hook工具包带源码 0.00雪花

2010-2-2 01:46
2318
win32下可以用detour等工具实现API HOOK。
但是这套技术到wince (windows mobile)上就不成了,因为系统文件是在只读的ROM里,系统函数也不同,连全局钩子都被简化好多,而且还是未公开的API。最重要的是用的ARM而不是X86指令集。

这个APIHOOK的原理是使用platform builder提供的一些API。既然是写驱动程序的,当然要能进到kernal mode,能够到别人的进程里去读写。
使用的API甚至是官方可以查到的SetProcPermissions等。

我在这里解释一下关键函数:
SetProcPermissions设置当前线程的地址访问权限,如果设置成0xFFFFFFFF 就可以访问整个系统的全部地址了
MapPtrToProcess把一个指针映射到指定进程中
PerformCallBack4,这个好像是未公开的API。就是在另一个进程里运行自己的函数。
SetKMode,就是进入内核模式。但这个函数在wince6中就取消了,幸好微软的WM7计划一拖再拖,目前为止所有WM手机还都支持这个SetKMode。WM6用的是CE5.2的内核

进到别人进程以后,就可以用类似detour的办法修改函数入口了。

理论归理论,自己实现一番还是有点麻烦的。这个是荷兰的willem大虾以前写的,把注册表函数,GDI函数,message queue,deviceiocontrol,数据库等等勾到并且用NKvDbgPrintf输出,用DEBUG终端可以看到

使用方法是编译makefile, 生成一个exe文件,是dll的loader,一个DLL,用来放到目标进程里去的。loadhook unloadhook两个函数,就顾名思义啦。

最后,就跟写CE驱动程序一样,一定要把它们用privillaged ceritificate数字签名,你可以用development certificate
毕竟是内核的东西,一定要特权签名才可以用。

据说smartphone的安全级别很高,用不了。我没有smartphone就没试过。不过安全策略是可以在注册表里修改的。

最后,API HOOK有啥用呢?有人可能想到来电防火墙一类,我建议不要用这等牛刀。应该有系统接口函数,甚至你可以写自己的dialer,最多用子类化就足够了。
我的用途是在破解时IDA pro无法跟踪跨进程驱动的时候,用这个可以取得目标进程的数据。当然对于一般WM的程序,IDA PRO足够了。
再有就是像屏幕取词一类的应用吧,好像还没有人做出来,MDICT虽然有取词,但不好用,简直没法用。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 0
支持
分享
最新回复 (3)
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
最近正在搞这个东西,hook wince api,多谢楼主啊
2010-8-6 14:39
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
具体怎么编译啊?求解释
2010-8-6 14:44
0
雪    币: 88
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
太高深了,我啥时能入门哦,唉~~~~
2010-8-6 17:51
0
游客
登录 | 注册 方可回帖
返回
//