Archive for the ‘技术’ Category

郁闷的cookie

不多说,上聊天记录:

总结一下:
一个站点的页面如果调用另一个站点的页面设cookie,该站点的cookie中是没有该cookie的。所以本地的页面,或者架了服务器host没配,都是这种情况哦?

shop.xxx.com的登录页应该是在shop.xxx.com这个站点上,它请求verify2.xxx.com去获取验证码,并设cookie,为什么就能设呢?
shop.xxx.com和verify2.xxx.com这不也是垮站点cookie?
本地页面和verify2.xxx.com为什么就不能设cookie成功呢?
xxx.com   那应该是
这个一样就可以
原来如此,浏览器只认一级域名
而不管服务器是不是分布的

javascript 中cookie的存储,获取cookie,删除cookie的方法。

IObjectSafety IObjectSafetyImpl

浏览器与ActiveX控件交互时会弹出警告,去掉它必须实现IObjectSafety接口。当一个ActiveX实现了该接口时就是声明了它是安全的,那么用户因为使用此控件造成的损失应该由此控件厂商承担,所以还是谨慎的好。

关于IObjectSafety的更多资料,参考:

再谈IObjectSafety

ATL中实现IObjectSafety接口,只需要继承IObjectSafetyImpl即可,详细资料参考:

如何为初始化 IObjectSafety 标记 ATL 控件安全

这篇参考资料的ATL版本比较低,但大体是对的,在新的ATL中有如下地方需要改动:

继承时使用:public IObjectSafetyImpl<CXLSafeEditWrap, INTERFACESAFE_FOR_UNTRUSTED_CALLER | INTERFACESAFE_FOR_UNTRUSTED_DATA>

COM MAP中使用:COM_INTERFACE_ENTRY(IObjectSafety)

VMware的杯具

Win7下使用VMware 6是个杯具,因为网络环境很难配,而且会出现各种各样的问题。无奈,不挣扎了,卸载,准备装VMware 7。

卸载VMware 6更是一个杯具,因为VMware有键盘相关的驱动,卸载后重启,发现键盘失效了!!!

百度之,发现遇到这类问题的人不少,解决方案就是去掉VMware的键盘驱动:

VMware卸载后键盘失灵的解决方案

VMWare安装、卸载异常导致键盘失灵(代码19)

杯具的是我没有外接键盘,更杯具的是我开机有密码!!!这样,连Win7系统都登录不上去,怎么修改注册表?

好吧,只能使用WinPE试试了:

老毛桃winpe_U盘装系统图解

利用WINPE修改本机系统注册表

修改完毕,键盘可以使用了,装上VMware 7虚拟机也能上网了,希望下次卸载7的时候不会出现这问题……(::>_<::)

aliedit

最近有需要研究下支付宝的密码控件,即aliedit。谷歌百度之,发现还有驱动级别的(::>_<::)。自己动手,丰衣足食。
先看下支付宝的登录源码,其中有这样一段:alipay

OK,载体是一个ActiveX控件。不用浏览器安装这个ActiveX控件,直接从官网上下载aliedit.exe。
使用Universal Extractor将安装包解包,发现其中只有dll,看来并没有网上所说的驱动了(后面使用工具反复找也没找到驱动模块的痕迹)。
在Ring3的aliedit是如何处理键盘消息并防止被hook键盘消息的呢?
使用spy++捕捉支付宝页面的键盘消息,发现就只有aliedit控件处的键盘消息是无法捕捉到的,怀疑也是hook。
于是用工具找找hooks看,出于意料的是QQ管家、spy++等的hooks都被检查出来了,aliedit却没有(囧rz),只能看看其内部实现了。

直接用IDA打开发现IDA报警告,分析出的代码含UPX节,可能是加壳了。PEiD查壳果然,用UPX脱之,不费力。
在IDA的Imports中果然找到了SetWindowsHookEx和UnhookWindowsHookEx的引用,主要就是分析引用它们的例程了,分别是offset 0x936D和offset 0x93BC。

.text:100093A1 push 0 ; dwThreadId
.text:100093A3 push eax ; hmod
.text:100093A4 push offset fn ; lpfn
.text:100093A9 push 0Dh ; idHook
.text:100093AB call ds:SetWindowsHookExA

是一个全局的低级键盘钩子,奇怪的是我用工具没找到它的踪影——要么应该在工具中列出该钩子,要么在运行aliedit之后运行的进程中会有aliedit.dll模块。

IDA具体的分析如下:aliedit.idb(附件太大就不传了)

这里我只说说为什么会找不到aliedit的钩子。
先用OD附加打开了支付宝登录页面的IE,查看--->可执行模块中找到aliedit.dll的路径(C:\WINDOWS\system32\aliedit\2.5.0.3\aliedit.dll),用脱壳后的文件替换,然后再如上附加。
查看--->可执行模块中找到aliedit.dll的基址(07780000),查看--->内存中找到aliedit.dll的基址处,在代码节下断,然后运行。程序很快就会在aliedit.dll的领空断下来。
在0778936D(引用SetWindowsHookEx的例程)和077893BC(引用UnhookWindowsHookEx的例程)处下断,运行,总结:
aliedit控件获得焦点时会SetWindowsHookEx,反之,失去焦点时会UnhookWindowsHookEx。注意这里是aliedit控件,不是整个alipay的页面或IE。
这就解释了为什么用一般工具找不到它的hook了。

补充一个调用aliedit的测试页面:aliedit_test.html

连连看算法

强烈推荐:怎么写连连看 之 连连看算法

无觅相关文章插件,快速提升流量