/advertisement_implanted

路由器(openwrt/lede)和手机(android)广告植入方案,后台+终端+广告

Primary LanguageC

advertisement_implanted

路由器(openwrt/lede)和手机(android)广告植入方案,后台+终端+广告

qianchen文件夹下是 路由器端的源码方案

qianchen目录是路由器上的代码:

QC: 植入代码
qc_wifidog: 弹窗代码 支持https
qc_dump:抓取用户上网数据代码,流量详细统计
qc_httpd: 路由器web管理
monitor: 守护植入程序的进程
init: 初始化进程
apctl:共享参数的管理进程
ssh: 各个进程间通信的中转桥梁

大概流程:

1.	开机运行init进程,当设备上网,init将会从服务器鉴权接入
2.	鉴权成功的设备将得到下载插件的许可,其他进程以插件的形式启动,插件包保存在内存中的,掉电丢失
3.	插件下载成功后,init进程将校验并解包,通过执行start.sh脚本启动插件
4.	start.sh脚本会对设备中出厂程序进行升级更新(前提是有新版本程序的话),比如init进程,qc_wifidog进程以及更新web等
5.	start.sh更新完成后则启动各个进程
6.	apctrl优先被启动,该进程进行设备参数的获取以及初始化等操作,获取到的公共参数将存放到共享内存中
7.	随后启动ssh进程,该进程主要负责各个进程的通信中转桥梁
8.	接着qc_http,qc_wifidog,qc_dump,也随之启动,分别是本地web服务,认证服务,实时数据抓包和分析
9.	最后启动monitor进程,该进程用于守护QC进程,monitor启动后第一时间将会检测QC进程状态,若QC未在执行态,则启动QC
10.	QC进程主要用于对http以及https相关流量劫持以及流量分析和篡改,QC启动会立刻向后台下载JS代码到内存中,该JS代码用于注入到用户终端

兼容性:

1.	通过交叉编译工具版本判断平台兼容性
2.	支持openWRT,Padavan路由器以及android手机
3.	路由器硬件配置:
	- 内存:>= 64MB
	- Flash:>= 8MB
	- 基本要求:支持openWRT或Padavan

编译:

1.	各个程序目录下都有complile.sh编译脚本用于编译当前的程序
2.	qianchen目录下也有complile.sh用于一键编译所有进程,也可编译指定进程,并自动打包

JS代码:

1.	关于广告植入,JS代码在qianchen的上一级目录中“广告植入用的js脚本”目录
2.	QC进程负责把JS代码送到用户终端,JS代码则在用户终端上实现广告模板的植入和显示以及行为监控等操作
3.	绕过浏览器等APP或插件的广告拦截功能,提高广告抵达成功率
4.	根据JS上传的网页数据,后台通过关键词,标题,词频等分析下发符合网页场景的广告
5.	根据后台下发过来的广告模板类型,做相应的注入操作

广告模板:

1.	后台支持广告模板编辑和创建,广告模板作为html的div节点
2.	广告模板支持:
	- 底部悬浮广告
	- 顶部悬浮广告
	- 交互式广告
	- 嵌入式广告
	- 新闻类弹窗广告

植入效果图:

1.	参考效果图目录

技术文档:

1.	参考文档目录,里面有对一些技术细节进行说明

本项目为本人主导,由本人及其他三位兄弟姐妹设计和开发,目录结构有点凌乱,请见谅,仅作为学习交流使用!

QQ And WeChat ID:31427227