2020年5月

今天进某moba网游的时候好死不死,竞技中突然蓝屏,还来回蓝了3遍。
查了一圈没有确定具体原音,处理了两个嫌疑因素

蓝屏截屏幕
QQ截图20200531014153.jpg

usbport.sysKMODE_EXCEPTION_NOT_HANDLED 的方向查找原因没什么收获。拔掉了电脑上不必要的usb设备,对解决症状无帮助。
也有来自微软的技术反馈指这个是显卡驱动的问题..我认为不可信。

1. Windows update 补丁KB4556799

由于没有发现设备管理器上的驱动异常(最近驱动没有更新),监控传感器温度也没有异常不是散热问题。首先怀疑的是最近更新的windows补丁,查找最近一次在 5月27日下载,的编号 补丁
查了一下,果然有奇怪的报导 相关链接 ,虽然症状并未完全一致,但十分可疑。在确认过更新的内容没有大的影响后卸载,重启。

2. 万恶腾讯的注入TDI后门 QqGameMasterControl

这个只是排查系统日志过程中的顺便发现,在每次蓝屏重启后会附带一条这样的驱动兼容性警告。不查不知道,一查...还真是老流氓了
相关链接。 跟着文章的说明卸载这个毒瘤后。再次重启了计算机。

QQ截图20200531013723.jpg

目前在观察中,但愿之后不再出现类似的蓝屏

比vmess和ss简单,不需要进行base64编码,因此 二维码可以做的非常的小

明文格式:协议 :// 秘钥 @ 域名 : 端口

具体举例说就是:

trojan://password123@domain.net:443

对应生成的QR是(不用试了,这个不是有效的链接)
sampletrojanqr.JPG

手贱尝试在运行frps 的主机上尝试安装BBR 修改导致系统无法重启。脑一抽 重灌了 ubuntu-18

然后才发现我在上面还跑着好几个其他应用,其中一个就是给博客转发的 frps

重新部署的时候引发大混乱
用一键部署脚本安装了 trojan (真香!) ,自带了 一个nginx。

原本以为全部流量是先渠道nginx然后做反向代理的

没想到竟然是
trojan:443 -> 反向 nginx:80

难怪在 nginx.conf 里找半天没有看到 ssl的设置,加上反向指向 frps.https 也不成功各种问题

让三个应用共享443端口可把我愁坏了。

最后的方案是

nginx:80 -> vhost反向 frp.http:非80
nginx:80 -> 默认 www
trojan: 非443 -> nginx:80
frp.https: 独占 443

终于不打架了,安逸。

再怀缅一下挂掉的服务: praysatoshi.top ... 我会尽快把你恢复的
最后的最后,舔多一口:trojan ...啊~真香。

纯技术研究,不深究行为目的。

运行了几个python后台守护进程,需要重启的时候不能简单 killall python 很容易会误杀其他服务
所以备忘以下的脚本

已验证有效

#!/bin/sh

function PidFind()  
{
    PIDCOUNT=`ps -ef | grep $1 | grep -v "grep" | grep -v $0 | awk '{print $2}' | wc -l`;  

    if [ ${PIDCOUNT} -gt 1 ] ; then  
        echo "There are too many process contains name[$1]"  
    elif [ ${PIDCOUNT} -le 0 ] ; then  
        echo "No such process[$1]!"  
    else  
        PID=`ps -ef | grep $1 | grep -v "grep" | grep -v ".sh" | awk '{print $2}'` ;  
        echo "Find the PID of this progress!--- process:$1 PID=[${PID}] ";  

        echo "Kill the process $1 ...";          
        kill -9  ${PID};  
        echo "kill -9 ${PID} $1 done!";  
    fi  
}
#查找并kill掉 带有 newdoc.daemon 名称的进程
PidFind newdoc.daemon

#restart daemon
/path/to/startscript/chkdaemon.sh

当搜索结果不唯一时,脚本也会拒绝执行杀进程

参考文:https://jingyan.baidu.com/article/b7001fe1a5dbc40e7382dd75.html

备忘,当对一个有唯一索引字段的表做插入操作INSERT INTO 时做遇到冲突则更新的逻辑ON DUPLICATE KEY UPDATE
想知道此时是否仍然能够获取到 操作的行的id值db.lastrowid

sql = "INSERT INTO `mTable`(`id`, `tfsn`)  " \
          "VALUES(%s, %s) " \
          "ON DUPLICATE KEY UPDATE `tfsn`=VALUES(`tfsn`);"

vals = (id, tfsn)

try:
    db.execute(sql, vals)

    new_cid = db.lastrowid
    print("tfid:", tfid) #如果触发了update 可以获得id值?

结论是,能,也可能不。
当触发update 有内容变更时,可以获得 id值;
当update的内容新旧完全一致前后没有变化的话,mysql会认为没有任何行被更新。所以返回的 id 会是0