上等兵
- 注册时间
- 2017-2-14
- 金币
- 109 个
- 威望
- 1 个
- 荣誉
- 0 个
累计签到:2 天 连续签到:0 天 [LV.20]漫游旅程
|
发表于 2019-3-26 08:54
代码放到github上面了
https://github.com/seaving/advertisement_implanted
qianchen目录是路由器上的代码:
QC:植入代码
qc_wifidog: 弹窗代码 支持https
qc_dump:抓取用户上网数据代码,流量详细统计
qc_httpd: 路由器web管理
monitor: 守护植入程序的进程
init: 初始化进程
apctl:共享参数的管理进程
ssh: 各个进程间通信的中转桥梁
--------------------------
我设计的固件是路由器开机后只会有一个init程序在设备中,其他所有程序不再设备中,当路由器连接上网,init将会从服务器下载插件包,其他进程都将在这个插件包中被启动,插件包保存在内存中的,设备断电后,插件包自然丢失,这样设计,我初衷是想设备的插件能被后台可控,没有鉴权的路由器是无法获取到插件的,插件包中有start.sh脚本,init只需要负责执行start.sh脚本,所以如果插件或者有其他启动逻辑要处理的话,开发人员只需要在start.sh中进行逻辑编写,之后把start.sh打包到插件包中,因此不需要对init进程改动。
同时,市面上有很多产品型号的路由器,插件并不能兼容所有型号的路由器,其实准确的说应该是交叉编译工具版本是一致的路由器,尽管路由器型号不同,也能兼容运行,那么因此compile.sh编译脚本起到了作用,编译脚本将会打包各个型号的路由器插件,根据交叉编译工具的版本来进行对插件包的版本命名,所有路由器下载插件包的时候将会判断插件包的版本号,从而知道该插件包的编译工具版本与自身的版本是否一致。
qianchen目录下的子目录都有complile.sh小编译脚本,在qianchen目录下也有一个compile.sh大编译脚本,小编译脚本用来编译当前目录的程序,大编译脚本用来编译以及打包所有目录的代码,在调试中,如果想单独编译程序,可以直接到该程序目录中去执行编译,如果想发布版本,则直接执行大编译脚本。
关于广告植入,JS代码在qianchen的上一级目录中“广告植入用的js脚本”目录,由于涉及到的东西较多,我就不一一说了,具体可以咨询我的QQ。
仅作为学习交流使用! |
|