HIDEIT之PEDIY
【文章标题】: HIDEIT之PEDIY
【文章作者】: wusha
【软件名称】: HIDEIT
【保护方式】: 无壳
【编写语言】: Microsoft Visual C++ 4.x
【使用工具】: PEID 0.95 Olldbg1.10 lordpe
【操作平台】: XP sp3
【软件介绍】: 非常好用的一个隐藏窗口的小工具
【作者声明】: 只是感兴趣,没有其他目的。失误之处敬请诸位大侠赐教!
--------------------------------------------------------------------------------
【详细过程】
1、起因:
最近在公司偷偷用PUTTY建立SSH来访问外网,可又担心被人发现,所以翻出以前的一个非常好用的隐藏窗口的小工具HIDEIT,并设置成启动后在系统托盘,但有一次explorer.exe崩溃,结果HIDEIT就不见了,但进程还在,被它隐藏的窗口也没办法正常恢复出来了(强制结束HIDEIT进程可以恢复所有窗口,但感觉不爽),所以就想动动手术
2、分析:
首先查找资料,在创建任务栏时,系统会以字符TaskbarCreated注册一个全局消息,并向所有顶级窗口广播该消息,因此在exporer.exe重建任务栏时,只要我们的程序捕捉到该消息,重建托盘图标即可,当然首先我们必须知道该消息的ID,这个需要使用函数RegisterWindowMessage函数,原型如下
UINT RegisterWindowMessage(
LPCTSTR lpString // message string
); 因为系统已经注册了该消息,所以我们调用函数返回的是该消息的唯一ID
重建托盘图标需要调用函数Shell_NotifyIcon,原型如下
BOOL Shell_NotifyIcon( DWORD dwMessage,
PNOTIFYICONDATA lpdata
);
查看程序的输入表,这两个函数都已经有了,所以不用另外添加了
3、开始PEDIY:
首先用lordpe查看节信息,发现.text节剩余空间很小,只有17200-17196=4个字节,所以必须要添加新节,如.wei,大小为200h
如图
保存后运行报错“不是有效的win32程序”,查资料了解到还需要更改文件大小,于是用winhex在文件末尾追加了512字节0,重新运行正常
使用OD载入程序,使用消息断点来到消息处理函数0040CC12处
注意:上传附件及图片大小不得大于30M。
⚠️ 版权声明:
本博客所有内容(含教程、源码、工具)仅供个人技术学习与研究交流使用,严禁商用、倒卖、二次分发及非法用途。
未经作者书面授权,任何组织或个人不得转载、复制或用于其他平台,违者将追究相关责任。
