Debugging 使用日志代理/MitM调试NPAPI

Debugging 使用日志代理/MitM调试NPAPI,debugging,proxy,npapi,man-in-the-middle,Debugging,Proxy,Npapi,Man In The Middle,我正在调试/破解一个NPAPI浏览器插件,我想记录/窃听浏览器和插件之间的通信,以确切了解插件在做什么。你知道有没有现成的工具吗?我没有找到 我的动机是a)分析插件,b)评估插件的安全性 我认为,作为中间人,也就是说,一个有线窃听器,它可以充当a)浏览器的插件,b)浏览器的插件,只需传递所有命令(方法调用)。因此,这是一个非常简单明了的解决方案 谢谢我不知道有这样的实用程序,但它的构建相对简单。 你基本上只需要注册你的插件而不是原来的插件,实现并转发NP.*,NPN.*和NPP.*函数 另一种方

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

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

我认为,作为中间人,也就是说,一个有线窃听器,它可以充当a)浏览器的插件,b)浏览器的插件,只需传递所有命令(方法调用)。因此,这是一个非常简单明了的解决方案


谢谢

我不知道有这样的实用程序,但它的构建相对简单。
你基本上只需要注册你的插件而不是原来的插件,实现并转发
NP.*
NPN.*
NPP.*
函数


另一种方法是从浏览器端(通过或仅通过)跟踪调用,但您可能需要担心进程内插件和进程外插件的代码路径存在一些差异。

我不知道是否有用于此的现有实用程序,但它的构建相对简单。
你基本上只需要注册你的插件而不是原来的插件,实现并转发
NP.*
NPN.*
NPP.*
函数


另一种方法是从浏览器端(通过或仅通过)跟踪调用,但您可能需要担心进程内插件和进程外插件的代码路径存在一些差异。

您的特定插件的另一种选择(但不是通用的)是仅将基于文件的日志添加到所有NPN_uuu方法中;很长一段时间以来,我一直想建立一个你描述的工具,但我就是没有时间这么做。@taxilian:我知道他想分析一个第三方插件。啊;我想你是对的。我第一次没读到。@taxilian:我想你是指NPP方法,对吧?NPN在浏览器中,我无法更改。但正如Georg所指出的,我正在分析一个我无法编辑的第三方插件;如果你像Georg建议的那样设置了一个代理,你会想在这两个地方都登录。然而,所有的NPN_uuu函数都只是调用浏览器提供给您的函数指针的包装器,因此您可以轻松地在包装器中添加日志语句。您的特定插件的另一个选项(但不是通用的)是只向所有NPN_uuu方法添加基于文件的日志记录;很长一段时间以来,我一直想建立一个你描述的工具,但我就是没有时间这么做。@taxilian:我知道他想分析一个第三方插件。啊;我想你是对的。我第一次没读到。@taxilian:我想你是指NPP方法,对吧?NPN在浏览器中,我无法更改。但正如Georg所指出的,我正在分析一个我无法编辑的第三方插件;如果你像Georg建议的那样设置了一个代理,你会想在这两个地方都登录。然而,所有的NPN_uu函数只是调用浏览器提供给您的函数指针的包装器,因此您可以轻松地在包装器中添加日志语句。请记住,浏览器/插件通信只是许多NPAPI插件所做工作的一小部分。例如,插件中的安全漏洞通常是它们直接调用平台API的函数,而不是与浏览器的交互。请记住,浏览器/插件通信是许多NPAPI插件所做工作的一小部分。例如,插件中的安全漏洞通常是它们直接调用平台API的函数,而不是与浏览器的交互。