【问题标题】:NPAPI debugging with logging proxy / MitM使用日志代理/MitM 进行 NPAPI 调试
【发布时间】:2012-08-09 19:27:28
【问题描述】:

我正在调试/破解一个 NPAPI 浏览器插件,我想记录/窃听浏览器和插件之间的通信,以确切了解插件在做什么。你知道是否有现成的工具吗?我没有找到。

我的动机是 a) 分析插件并 b) 评估它的安全性。

我认为它通常应该可以作为中间人,即窃听者,它可以 a) 作为浏览器的插件,b) 作为插件的浏览器,并传递所有命令(方法调用)。因此非常简单明了的解决方案。

谢谢

【问题讨论】:

  • 请记住,浏览器/插件通信只是许多 NPAPI 插件所做工作的一小部分。例如,插件中的安全漏洞通常是它们直接调用平台 API 的函数,而不是与浏览器的交互。

标签: debugging proxy npapi man-in-the-middle


【解决方案1】:

我不知道这方面的现有实用程序,但构建起来相对简单。
您基本上只需要注册您的插件而不是原始插件并实现和转发NP_*NPN_*NPP_* 函数。

另一种方法是只跟踪来自浏览器端的调用(通过logging already possible in parts 或只是tracing via symbol server and debugger),但是您可能不得不担心进程内与进程内代码路径的一些差异。进程外插件。

【讨论】:

  • 您的特定插件(但不是通用的)的另一个选项是仅将基于文件的日志记录添加到您的所有 NPN_ 方法;很长一段时间以来,我一直打算构建一个像您描述的那样的工具,但我只是没有时间这样做。
  • @taxilian:我知道他想分析一个第三方插件。
  • 啊;我认为你是对的。我错过了第一次阅读。
  • @taxilian:我认为你的意思是 NPP_ 方法,对吧? NPN_ 在浏览器中,我无法更改。但正如 Georg 指出的那样,我正在分析一个我无法编辑的 3rd 方插件。
  • 其实我是两个意思;如果您设置像 Georg 这样的代理,建议您在这两个地方都登录。但是,所有的 NPN_ 函数只是调用浏览器给你的函数指针的包装器,所以你可以很容易地在包装器中添加日志语句
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-08
  • 2015-09-09
  • 2015-01-11
  • 2013-09-11
  • 2014-03-25
  • 2023-03-09
相关资源
最近更新 更多