随便说两句

这是ssj的个人网站

平时喜欢扯扯淡

记录生活中的经历

分享自己学到的东西

偶尔画点画

随时有可能更换ip或域名,不过这个域名还能使用到19年11月

(19年11月24日更新:已经换新的域名了)

20年9月10日更新:再次更换新域名,原来的.win后缀容易被ban。不过之前的域名还有2个月才过期,能用来干啥呢?

P6Can项目开发记录 (6)

从4月1日开始,我就一直在摸鱼,这几天我的MacBook一直放在包里没拿出来开过,代码自然也是一行没动。不过好在目前的开发进展还算可观,SSA转换的开发已经完成,过程内与过程间分析的开发也有了不错的效果。不过现在我又遇到了一个比较麻烦的问题——include的处理。单文件分析的开发进展目前还算顺利,但多文件的分析我还没想好该怎么做。月底就要交论文了,代码最晚也得在月中之前完成,希望能赶得及。

继续阅读“P6Can项目开发记录 (6)”

P6Can项目开发记录 (5)

在上回的记录中,我提到我会为了保证进度而暂时搁置某些部分的开发,其中就包括SSA的转换。但我在做污点分析部分的开发的过程中发现,对于同一个变量的多次赋值的情况不太好分析,尤其是在出现分支的情况,所以把IR转换成SSA形式还是一个不可缺少的步骤,这样后续的分析也会更方便一些。在我意识到这个问题之后,我就放下了正在开发的污点分析的部分,而是先进行SSA部分的开发,这一部分比我想象的难不少,两周过去了,现在还没做完。

继续阅读“P6Can项目开发记录 (5)”

P6Can项目开发记录 (4)

寒假已经结束两周了,不仅在寒假期间完全没写代码也没查阅相关资料,开学这两周里代码也没写几行,惭愧……上次的记录中也讲到了开发进度受阻的问题,所以最近代码写得少真不是我在划水,至于资料的查阅也是看得越多越迷茫,众说纷纭,不知道接下来该怎么做。距离答辩还有2个月不到,所以这个项目现阶段可能没法按照我之前规划的那么完整,能够在ddl之前做出一定的完成度就不错了。现在,直接快进到污点分析。
继续阅读“P6Can项目开发记录 (4)”

P6Can项目开发记录 (3)

这一周以来好像没做到什么东西,一方面是自己前两天都在划水,另一方面是最近的开发进展有点受阻,代码没写几行,资料查阅了不少,但还是有些困惑。好像这一周的进度就只有构建了函数间的树状嵌套关系以及生成CFG。本来计划的SSA转换以及CG的构建都没能完成,上周提到的include问题也暂时搁置了。明天就要回家了,过年在家期间没准会一直划水,希望开学后还能跟上进度。

继续阅读“P6Can项目开发记录 (3)”

P6Can项目开发记录 (2)

在上一篇开发记录中,我确定了项目开发的大概思路,即(1) 使用PHP-Parser[1]生成AST,(2) 基于AST生成IR,(3) 由IR转换为CFG,(4) 对CFG进行污点分析。在这一个星期里,我进行了IR生成的开发,完成了对一小部分类型的语句的IR生成。还有很多类型的语句生成没有写到,不过基于目前已经完成的部分,可以先尝试进行CFG转换与污点分析部分的开发,这也是我对于下周的计划。这一阶段还没涉及代码审计,属于编译原理的范畴,我主要参考了龙书[2]以及斯坦福大学的Compilers(CS143)课程[3]。

继续阅读“P6Can项目开发记录 (2)”

P6Can项目开发记录 (1)

我的本科毕业设计课题是做一个自动化的PHP项目代码审计工具,我将它命名为P6Can(PHP Security Scanner)。由于我之前对这类工具的了解甚少,低估了它的开发难度,给自己挖了个不知道怎么填上的坑。预计最终效果也不会很好,尽力而为吧,希望能够顺利通过答辩。这周是项目开始开发的第一周,写一个开发记录,以后应该也会经常更新。

继续阅读“P6Can项目开发记录 (1)”

《泽塔奥特曼》完结——剧情与打戏完美的令和佳作

泰迦完结仿佛还是不久前的事儿,转眼泽塔也完结了,这一年过得还挺快。本来以为泽塔的质量会受到疫情的影响,但没想到这一部出乎意料的好。泰迦在剧情和特摄方面给我们带来了不少新鲜的东西,而泽塔则是把这带到了一个新的高度。

继续阅读“《泽塔奥特曼》完结——剧情与打戏完美的令和佳作”