这是wireshark抓包的基本用法,使用DApp的IP进行过滤: DApp区块链 | wireshark抓包
今天跟学长交流了一下,发现只使用DApp的IP进行过滤会缺少很多流量包
- DApp通讯概念图
- 注意事项
- 抓包方案
- 日志
在用户使用DApp时候,多个主体会进行通讯,涉及到很多个ip:
ps: 此图可能有错误,欢迎指出。因为有部分是我根据自己理解加上去的qaq 并未画出所有交互箭头,只画了部分之前不太了解、现在方便理解抓包间IP的关系
- 钱包不属于区块链,而是跟DApp差不多性质的东西,是区块链的一种应用
- DApp可以理解为淘宝,钱包可以理解为支付宝。每当付钱买东西时,淘宝跳转支付宝页面进行支付,而淘宝不能与用户直接交易
- 抓包抓不到钱包和区块链交互的数据,抓不到DApp和区块链交互的数据
- 基于进程抓包:如基于chrom进程抓包,会捕获到chrom浏览器访问网站产生的所有流量
- 点击跳转地方,产生新页面则会产生流量。文字网站流量较少,图片、视频网站流量较多
- 包处理成流后数目会很少,因为一条流上可能就几百个包
- 浏览器有不可避免噪声流量,使用极简浏览器,如GitHub上初学者写的QT浏览器demo,尽量减少广告、更新检查等流量
- MetaMask钱包有单独的IP地址
- 钱包和DApp不通讯
总体思想是基于浏览器进程抓包,浏览器里只开这一个网站。为了尽量减少广告等噪声影响,使用极简浏览器,即初学者用QT写的简单demo
- 了解QT并在GitHub上搜索简单浏览器demo(需要成品,太简单不行)
- 用 QPA 抓一部分包实验(快的抓3-4w,慢的抓1-2w;抓20个DApp)
- 补全20个可抓包的DApp
- 简单了解:QT是跨平台的图形化开发框架,可以开发浏览器、APP、控制台、服务器等
- 下载QT参考1 (推荐下5.9以上的,安了5.14,2G好大啊) 下载QT参考2 如何下载QT的视频及简介 | 精品
- 刚开始 简单QT浏览器demo运行失败,原因是: 其一,没有设置环境变量path。需要把所用编辑器(mingw或msvc)的include目录及tools/mingw目录加入,还要加上gcc.exe的,qtcreator的 其二,没有选择正确编译器。Qtwebenginewidgets模块好像只能由msvc编译,我查找了mingw的目录没有这个模块,如果no suitable case可能是没配编译器或者编译器不可用(在option里加上cmake的路径就行了,因为cmake不是QTCreator下载时自装的,需自己配置其所在路径) 其三,缺少main文件。main.cpp这个所有QT项目都是相同的,自己手动加上就行
- QT项目可以通过直接双击.ui设计ui界面,而右键->转到槽跳到代码界面补全,会通过ui->等方式;或者直接写代码,最后直接显示界面
- .pro最前面需手动加这两行,用于识别qt自带的一些模块
QT += core gui webenginewidgets
greaterThan(QT_MAJOR_VERSION, 4): QT += widgets
- qmake有专用控制台:
qmake -project //生成pro文件
//在pro文件中添加两行
qmake -makefile //类似生成对源文件的运行命令的脚本
mingw32-make //编译
-
简单QT浏览器demo用不了,原因是: 其一不能保存test1.exe,只能每次运行弹出窗口 其二虽然test1.exe可以在任务管理器中看到,但是未被监测为进程,不能基于进程抓包 其三最重要的,这个简单的小程序不能打开多个窗口,即没有标签页,如果点击会弹出新窗口的按钮它就不动了,只能点击不弹出新页面的窗口
-
有时候qtcreator点左下角绿色三角不显示exe文件了,或者单击左栏->项目后想配置编译器环境,却发现全是灰色不可用状态,这时候关掉窗口重新打开或者控制台qmake -project就正常了。感觉qtcreator多少有点不稳定,有时用它创建qt项目左栏都显示不了完整项目(没识别.h和.cpp文件),有时候双击pro文件也打不开完整的项目,再多来几下hhh就好了
-
GitHub唯一带.ui用UI写代码的,参考UI界面画法
-
QT4和5区别很大,注意所下项目的QT版本可能运行不了,这里汇总了一些4和5的区别,可参考判断是该项目是QT4还是QT5并了解区别
-
第二节视频介绍了QT界面中UI组件的作用
-
发现一些简单浏览器上钱包插件没法用,现在找基于Chrome内核的简单浏览器
还有一点比较有感慨,博客太过零散,大家记录的都是自己感兴趣的点、且都存在知识的断续性,当然我的博客也是这样。因为我们大多数人不是专门经营博客的,而是用它记录一些日常bug及学习日志以便日后查找。所以,在入门一个领域(笼统地阔达地讲),我觉得直接看视频,遇到一些bug再辅助博客是最好的。且动态视频能表达出的操作细节要远多于文字博客。当然,paper最好开始要看一看原文的