易语言的fiddler与奇易模块的分析

本文是我早期在封装fiddler模块之前,对奇易模块的一些思考过程,探索为什么有些电脑安装证书会导致程序崩溃。

可以肯定的是,在易语言圈,先有奇易模块大胆探索了fiddlercore.dll 的API,并在开源大赛中发布了模块源码,才有了我后来探索的方向。

开发者“诺离”采用c++,对fiddlercore进行重新封装,并生成一个efd.dll的文件,该文件使得易语言可以直接使用DLL方式间接调用fiddlercore,以实现抓包和监听网络消息。

但是他可能自身技术问题,代码质量不高,导致抓包时间过久会闪退、安装的证书过期、以及在部分win7、win10系统无法正常安装证书、崩溃等情况。

学习该作者的思路,用Reflector 反编译efd.dll 搜索关键字:

InitFiddler()  在函数中后面再分析 Send_os 和 Recv_os

鉴于此,经查询资料得知,FiddlerCore是Telerik 公司对外公开的一个dll文件,是由.NET开发,官方DEMO:https://github.com/telerik/fiddler-core-demos

官方提供了2个dll,一个是基于.net framework4.0 适合在windows系统

另一个是基于.net core2.1 和 .net standard2.0 可部署到mac、linux等系统上。

民间DEMO:https://github.com/chenj-m/fiddlercoreCapture

这个demo是一个较为不错的入门demo,除了对于receive接收对象没有做监听以外,正常抓取http和https的send数据包。

因项目需要,一些银行类网页,在易语言的浏览框、浏览器支持库中都无法正常加载密码输入框IE插件,导致只能采用偏门办法fiddler抓包获取登录cookie。

所以目前对fiddler要求不算太高,前期使用奇易模块在本机测试正常可抓取,而换客户和其他电脑,则涉及到证书安装问题,导致无法正常抓取。

所以基于民间DEMO和fiddler提供的.NET4 DLL,自己用vs写一个dll,以COM形式供易语言调用,主要实现fiddler的证书安装和卸载,经测试,可以在其他系统使用,且安装证书成功后,奇易模块可正常抓包。

注意

Fiddler提供的dll文件,不能被改名,必须是以FiddlerCore4.dll完整文件名存在,不然会报错且无法被调用

计划:

目前易语言生态,对于fiddler的资料还停留在2018年,也就是这个“诺离”作者的公开研究。在有机会的情况下,能否使用.NET4 而非C++重新编写一套fiddler模块。

隐藏内容,您需要满足以下条件方可查看
End

探索历程

首先,关于公开C#编写的dll中函数问题(也就是想不用COM对象调用),这种可操作性为0.1,因为C#的语言是基于.NET框架,也就是编译出来的东西,都是没办法独立运行的,国外有人基于反编译,把C#的函数用静态类+特性的形式标记,然后再转成c++代码,但是因为缺乏维护,或多或少转成的dll会有各种糟糕的体验,比如崩溃,所以,暂时别想了,易语言调用C#dll,就老老实实的用COM。

关于C++调用C#dll,可行性是有的,据说是可以打包C# dll,然后编译一个大体积的标准win32dll,这种dll是可以脱离.NET框架,能直接被易语言调用。

但是具体C++如何写,还需要时间探索。

关于现阶段,对fiddlercore的探索,首先易语言这边诺离作者,也就是奇易模块,对于fiddler证书研究有偏差,导致他模块出现问题。

Fiddlercore这边,可能自身也没说明白,根据探索,正确使用fiddler的方式是:

隐藏内容,您需要满足以下条件方可查看
End
至此完成,可以正常使用奇易模块,虽然搞不懂为什么。

第三步和第四步,在win7和win10需要反过来,win7需要先信任证书,win10需要先安装证书,不然网页提醒不安全,鬼知道为什么。

人已赞赏
雕技术

Table of Contents Plus 如何隐藏文章目录,只显示侧边栏小工具?

2020-10-7 16:48:38

雕技术

如何删掉古登堡上传图片自带的<figure>标签?

2020-10-14 20:44:48

免责声明本文中提到的资源均来自于互联网,仅供个人学习交流,若您喜欢本文可附上原文链接随意转载。
版权人申诉:我要申诉
0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索