感受微软外包项目(二)

原创 2008年10月03日 22:36:00

HOOK API

         端午假期一过,我们就开始展开最初的项目预研工作,第一步当然是API HOOK。关于如何实现WinAPI HOOK,有无数的技术文档可以借鉴,但基本的技术实现差不多都需要一个额外的独立服务进程,这样做的好处是简单,但使得目标应用关联于一个预先启动的EXE文件,因此给人以不自然的感觉,此外,一旦服务进程崩溃则会带来很严重的问题,因此这个想法可以用来实验,但最终是不可取的方案。

         MSN而言,目前有两款非常出色的Shell,一款是著名的MSN Shell,另外一款也许是一位出生在法国的加拿大人开发的MSN PlusMSN Shell通过提供一个CRYPTNET.dll副本来实现API HOOK,而MSN Plus则采取了类似的技术(MSN Plus提供了msimg32.dll副本)。如果我们安装了这两个Shell,我们会在MSN安装目录这发现这些动态链接库副本,而MSN原本需要的对应动态链接库存在于Windows/System32系统文件夹之中,有兴趣的朋友可以直接对照相关的原件与副本,看看他们的区别(用Visual Studio提供的实用程序DEPENDS.EXE即可)。从结果上看,MSN ShellMSN Plus之间也许是彼此借鉴了,至于谁借鉴了谁,我们无从考证,但从这两款软件的这些特征上看无疑给我们以启发,但Office Communicator毕竟与MSN有极大的区别,因此我们必须选择合适的DLL才可能实现类似的效果。以上的分析归根结底是希望实现一种HOOK API的途径,同时确保这个实现途径不会影响其他进程,也不依赖其他进程。那么选择什么库作为入口点呢?

         选择一个合适的“DLL”进行合理的替换,也许是一种明智的选择,但候选的dll应该足够简明,这样重新实现对应的副本就会是一件相对容易的工作。MSN Plus选择msimg32.dll的原因可能是因为msimg32.dll的原件很小(4,608 字节),而MSN Shell选择了CRYPTNET.dll则很可能是加密会话的需要。安装了Office Communicator之后,Communicator.exe所在的目录中仅包含有限的几个dll库,我们选择了RTMPLTFM.dll,这个库仅包含了4个输出函数,尽管这个库的尺寸比较大(5.07M)。

         一旦原理分析清楚,具体的实现工作就踏实了许多。具体的实现工作在第一天的试验中就有了结果,当微软的朋友打电话给我的时候,我们已经顺利的实现了第一步预想的工作,如图所示:

(通过HOOK LoadResource/FindResource/SizeofResourceAPI函数,我们很快在OC上创建了新UI元素)

这部分工作是由骆归具体实现的,至于我仅仅提出了原始的构想。

来北大软微两个月后的感想

来这后,一直觉得还不够了解,所以一直没动笔总结一下,现在已经过了两个月了,暂且把现在的感想记录一下吧。 1.学习氛围浓厚,同学自我驱动能力强。学院小小的图书馆每天爆满,去晚了就没位置了,大部分人没课...
  • b515463036
  • b515463036
  • 2013年11月05日 23:30
  • 1951

软件外包项目管理的全流程全过程解析

软件外包的宏观流程 众所周知,经济全球化的浪潮已经席卷全球:我们生活的这个星球正在变得越来越小,远隔千山万水,操着不同语言的人们可以在几分钟内以各种方式互相认识并展开合作;与此同时,通信技术和互联网技...
  • zhurui536
  • zhurui536
  • 2013年10月16日 23:01
  • 2889

支付宝和微信移动支付的个人总结

今天在看了移动支付的文档,对整个流程都有了自己的理解,在这里记录下来自己的总结 一、支付宝支付 1、先说前期准备,关键就是要生成一对公钥和私钥,这个看官方文档,现在官方有个自动生成工具,其实挺方便的 ...
  • qq_28746251
  • qq_28746251
  • 2016年06月24日 19:08
  • 1526

微软外包项目

  • 2008年02月13日 12:35
  • 682KB
  • 下载

这些年,我做外包项目的一些感受

这些年,在工作之余,自己接了一些外包项目。因为所有工作都是在工作八小时之外完成,所以,每天基本上工作14小时以上。如果你身体不是很好,我个人建议最好不要兼职做项目外包,这个是挺累的。毕竟,这些年,经常...
  • qbg19881206
  • qbg19881206
  • 2013年09月04日 11:31
  • 6114

程序员如何工作之余接到外包项目

  • 2014年06月19日 12:47
  • 16KB
  • 下载

人事外包项目

  • 2006年07月07日 14:28
  • 1KB
  • 下载

对日软件外包项目书规定

  • 2008年02月25日 12:48
  • 498KB
  • 下载

软件外包项目管理的全流程全过程解析

  • 2013年04月17日 08:50
  • 300KB
  • 下载

选择时间日历控件DatePickerDialog(从外包项目中挖出来整理的)源码

  • 2016年10月11日 16:14
  • 908KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:感受微软外包项目(二)
举报原因:
原因补充:

(最多只允许输入30个字)