| 为OICQ820添加显示IP地址和端口号的功能 |
|
| 作者:未知 文章来源:网络收集 点击数: 更新时间:2006-3-29 15:59:14
|
| 特别申明:本文所述的内容仅供研究交流之用,如用作非法用途或修改不当,一切后果自负! 注意:只适合OICQ 0820版本
我们的目标是去掉广告显示,并且在广告的位置上显示目标对象的IP地址和端口号。我们应该怎么下手呢,好的,慢慢跟我来!
经过对Oicq目录结构的分析,发现目录AD和广告有关。其一是广告的英文简写就是AD,其二是其中的图片文件就是我们在广告中看到的。 试着删除该目录之后,呵呵,广告消逝了。但是下次进入Oicq之后,程序会自动新建这个目录,并且重新下载广告文件。既然程序读取不到广告文件广告就会消失,那么就人 工让它读不到咯。用Soft-ice把断点设置在CreateFileA上,这个API调用一般是用来打开一个文件或者设备的。在Sice截到断点后,查看是即将打开的那些文件,从而判断是 否是我们要修改的地方。具体修改方法详见“打开广告文件的程序段”。
广告是去掉了,但是在广告区域上点击鼠标,浏览器仍然会打开广告链接,看来我们还需要对程序作更完善的修改。好了,既然点击广告会出现 浏览器,那一定是运行了一个程序。一般打开运行浏览器程序的有两种方法,一是调用COM接口,二是调用普通的运行程序的API函数。第一种方法技术难度较高,一般程序很 少采用。所以直接用Sice把断点设置在几个和运行程序有关的API函数上,比如ShellExecuteA,WinExec等等。好了,程序在ShellExecuteA处中断,也就是只要避过这个API函 数就行咯。呵呵,顺着程序往上找合适的修改位置,会发现USER32.PtInRect函数的调用,经过分析,发现它是用作判断鼠标点击是否在特定区域内的。搞定,只要使它判断总 是在区域外,就不会执行到ShellExecuteA那儿去了。发送消息窗口和回复窗口的广告点击的程序在不同的位置,也就说在两个地方,这两个地方都要修改,原理也都是一样。 具体修改方法详见“发送消息窗口点击广告的程序段”和“回复消息窗口点击广告的程序段”。(我们为了实现在点击鼠标后出现IP地址和端口号,在发送消息窗口添加了一 个有关显示的程序入口,我将在后面讲解)。
这下广告真的是去除了,既不能看到,也不能点进去了。呵呵,开始我们的下一步目标,显示IP地址和端口号!!!
过去要想知道Oicq上朋友的IP地址只有借助民间的一些小工具程序或者采用包监听程序,后者专业要求比较高,而且辨别率低,也不方便。一些 小程序的确很管用,但是毕竟没有把这个功能直接做到Oicq程序上方便和可靠,利用Oicq内部的很多数据和结构能获得很多我们平常不容易获得的信息。但是毕竟只有二进制 汇编代码,没有源程序,程序的分析难度和工作量可想而知。经过令人难以想象多次数的死机和重起,以及极其艰辛的设置断点跟踪调试分析工作……(以下省略5201314字) ,终于粗略的获得了我们感兴趣的数据结构指针以及它相关调用的位置。这段时间是我最郁闷的时候,想起那段毫无人性的工作,就像已经过上幸福生活的老同志回忆起49年 以前悲惨生活般的胆战心惊且心有余悸……(以下省略520字)。还好我挺过来了,终于在0042513D处找到了需要的指针地址。只要利用这个指针就能获得目标对象的IP地址 以及端口号。我们需要做的就是把这些信息显示在以前的广告位置。
又是一项艰巨的任务放在我的面前,还好我有坚定的信念、丰富的临床经验以及对成功喜悦的企盼,还有对聊天MM住址的渴望,我一定会珍惜, 不能像周星星一样期望再来一次……(再次省略若干,以免挨鸡蛋)。
言归正传,既然获得了关键的数据指针,那可以说我们已经成功了90%了,接下来的就是显示出来而已。但这也需要反复的试验和修改。让我们 好好来回味一下这一过程:
首先,要实现新的功能毫无疑问需要添加代码和数据,以及执行一定的API函数,所以需要找到适当的方法添加代码到原程序之中。完美的方法就 是作一个外壳添加程序,在原程序中添加所需要的段(数据段,程序段),以及添加Import表表项,以用于新的API函数的地址定位,还要修改PE文件头中的各项相关信息,这 就是病毒的做法。这无疑非常的复杂和繁琐,有兴趣的同学可以参见我以前的文章“关于95下可执行 [1] [2] [3] [4] [5] [6] [7] [8] 下一页
|
|
[ 收藏此页到: 天天|和讯|博采|ViVi|狐摘|我摘|天极 ] 文章录入:kinda 责任编辑:kinda |
|
上一篇文章: OICQ99cBulid0820消息框的广告窗口除去方法两则 下一篇文章: Netcaptor5.5浏览器右上角广告窗口的去除方法 |
| 【字体:小 大】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口】 |