有一年多没回论坛混了....好吧,这次回来,依然大赠送,不像上次教写外挂那样分开了,大家都觉得麻烦.
(虽然上次中途砍了)
这次我直接用附件上代码..帖子就简单的说明一下好了.
感谢大家的围观...
用iat hook链接浏览器,截获浏览器的收发数据,稍作修改即可对接收到的数据做置换修改
执行环境:windowsxp sp3~win7 sp1全操作系统(基于nt的估计都可以,没去测试更多)
软件环境:ie6,ie7,ie8,ie9,所有ie内核的浏览器(包含什么360浏览器,qq浏览器,遨游浏览器,这些基于ie内核的全部货色)
上面仅限32位版本...
调试手记:
某天,我打开了虚拟机,开了个ie6浏览器...然后开始数据包截取...让我感觉无言的是用工具截的各种无奈.
然后用od加载了浏览器,对send和recv下断...其实思路和处理方式很简单..就是将http的发送请求头替换成
明文获取,然后收取数据,当然了,ie的数据接收是每个外链异步处理的,这里就需要对数据send时把socket的
句柄保存下来作为recv的参照,等待接收数据包含</html>或连接结束时将数据保存到文件中.
函数说明:
InitGetHttp proc _infilename,_outfilename
_infilename是过滤的输入host列表,_outfilename是数据输出路径 我把它写成dll,这个是导出函数
某些代码被我注释掉了,具体请看源代码.
明眼人应该一眼就能看出,这段代码其实有点小bug的.字符判断方面..呵呵..
至于效率.呃,这个...还可以吧.如果把代码预申请内存的话速度会更猛,虽然现在这样也感觉不到延迟.
错误判断的话,个人觉得没必要写了.汇编写代码的好处就是只要全代码
都执行一次没出现问题的话它也就不会出现问题了.(硬件除外,内存不足那些就别说了)
别问我为什么只能截取text部分数据,因为代码写了过滤,具体参考函数_SetRecvData.
PS:调试中发现的变态处理,某些系统中ie6的wininet.dll,send recv函数居然是动态获取的,害我把GetProcAddress也给hook上了.
最近在测试之前编写的专用于游戏反外挂的保护外壳,其实别以为用驱动保护就很nb,其实写驱动保护还不如多点在ring3下做多点
的校对更实用,这个是我的个人经验啊......
驱动保护:最多只能做下内存,进程,权限的过滤.
ring3保护:这个才是真理,当然得针对内存补丁做优先处理了.
反调试?太浮云了.系统是别人的,别人修改系统文件你根本检测不能.
[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)