目录
1.6、附加调试器
简介:
要了解和攻击浏览器扩展, 反编译是最全面可靠的方法
对于包含成成上万行代码、功能复杂的大型组件而言, 观察组件的执行过程, 并将其中的方法和类与界面中的关键功能进行关联, 往往会很困难。
采用附加调试器可以处理上面的困难,还可以避免在解释和反编译经过模糊处理的字节码时遇到的问题。只需要执行某项关键功能并更改其行为, 以消除在组件中实施的控件, 即可达到特定目的
由于调试器在字节码级别运行, 可以使用调试器轻松控制并了解组件的执行过程。如果可以通过反编译获得源代码, 就可以在特定的代码行设置断点, 并通过观察组件在执行过程中采用的代码路径来判定通过反编译获得的信息是否正确。
JavaSnoop
虽然针对所有浏览器扩展技术的高效调试器尚不成熟, 但Java applet能够为调度提供有效支持。JavaSnoop是目前最高效的调度器之一,JavaSnoop是一款Java调试器, 它能够与Jad集成, 以用于反编译源代码、在应用程序中跟踪变量,并在方法中设置断点来查看和修改参数。JavaSnoop可用于直接钩住“ 在浏览器中运行的Java applet,并可用于篡改方法的返回值
注:在加载目标applet之前, 最好首先运行JavaSnoop,JavaSnoop将取消Java安全策略设置的限制, 以便于针对目标执行操作。在Windows中, JavaSnoop通过向系统中的所有Java程序授予各种权限来取消眼制,在执行操作后, 要确保完全关闭JavaSnoop并恢复相关权限
JSwat
是另一个Java调试工具, 该工具提供大量配置选项。在包含许多类文件的大型项目中, 最好是反编译、修改并重新编译关键的类文件, 然后使用JSwat将其“热包装” 到正在运行的应用程序中。要使用JSwat需要使用JDK中的appletviewer工具启动一个applet, 然后将JSwat连接到该applet。
Silverlight Spy
处理Silverlight对象时,可以使用Silverlight Spy工具监视组件在运行时的执行情况。在将相关代码路径关联到用户界面中的事件时、该工具可提供很大的帮助。
1.7、本地客户端组件
简介:
一些应用程序需要在用户的计算机中执行基于浏览器的VM沙盒内无法执行的操作。
客户端安全控制,此类功能:
验证用户是否装有最新的病毒扫描器
验证代理服务器设置及其他企业配置是否有效
集成智能卡读取器
分析:
这些操作需要使用本地代码组件, 这些组件将集成本地应用程序功能和Web应用程序功能。本地客户端组件一般通过ActiveX控件传送。ActiveX控件是在浏览器沙盒以外运行的定制浏览器扩展。
由于没有对应的中间字节码, 相比于其他浏览器扩展, 解译本地客户端组件要困难得多。在避开客户端控件时采用的方法对于本地客户端组件仍然适用,需要采用不同的工具
常用工具:
OllyDbg
是一个可用于遍历本地可执行代码、设置断点, 并在磁盘上或在运行时对可执行文件应用补丁的Windows调试器
IDAPro
是一个反汇编程序, 它可以将大量平台上的本地可执行代码反汇编成人类可读的汇编代码