代码审计,想必搞安全的同学再熟悉不过了,和标题中的IDE 插件有什么关系呢?莫不是标题党?
偶然挖洞闲暇时,发现了陌陌安全SRC的一个公告SAST开源,赶紧去撸一波源码,最终以看不懂为由挂机了。因此我决定从IDE插件开发学起,撸光它的码子。安全行业难能可贵的是开源精神,谢谢大厂。有请今天的主角momo-code-sec-inspector-java。大家可以先看着源码,看不懂了我们在来看看我下面的从0到1学开发插件。
像我这种小白,一般官方文档都是先不看,百度、bing、google一遍,看看有没有大神的教程系列,到最后基本上没有一个很全的文章。要么时间比较老,要么照着搭环境却起不来。后面我将带着大家一步一步的来,保证你能突破开发环境的这一步,并且弄懂momo安全开源SAST规则,让自己的代审功力提升。
序号 | 软件名 | 备注 |
---|---|---|
1 | idea 2020.1.4 community | 下载页面 |
2 | JDK | 百度云链接密码:9k19 |
3 | momo 开源代码 | git clone地址 |
下一步大法,我就不详细截图了
安装也是下一步到底就OK了
1. 新建项目
选择gradle创建项目,gradle创建项目便于插件开发依赖管理,关键它支持intellij platform plugin
如果JDK你安装没问题,这里的project SDK会自动选择1.8
2. 填好项目名,点击finish
3. 等待gradle创建项目框架
此时它在下载需要的IDEA的源码沙箱,以便于我们调试时,启动idea沙箱,网上有看到过教程离线导入这个IDEA的文件,不建议这样搞,非常麻烦且容易出错,为了避免后续bug存在,请等待10-30分钟
项目结构图片
点击启动后,可能还会下载一些依赖,请耐心等待。下载后的目录一般默认在用户目录下
通过gradle启动
通过快捷工具栏启动
启动后会自动打开一个idea 这个是自动下载的沙箱版本和安装的是隔离的
组件类型 | 描述 | 接口 | plugin.xml加载配置元素 |
---|---|---|---|
ApplicationComponet | 在idea启动时候初始化,整个IDEA只有一个实例 | ApplicationComponet | <application-components> |
ProjectComponent | idea会为每一个Project实例创建对应级别的Component | ProjectComponent | <project-components> |
ModuleComponet | idea会为每一个已经加载的Project中的每一个模块(module)创建Module级别的component | ModuleComponet | <module-componets> |
先搞个和代码审计无关的插件,便于大家理解并提起你的兴趣,(#^.^#)
idea启动弹窗,人生鸡汤
1.在src/main/java下创建我们的pacage
2.新建一个applicationComponent的class文件
MyChickenSoul.java
这个文件是用来在启动时要做的事情,创建的类继承ApplicationComponent,然后重写initComponent ***
3.创建一个对话框
4.创建httpUtils
作用:请求公网免费鸡汤接口,额外使用的模块为httpclient,fastjson
5.导入额外jar包依赖
在build.gradle添加依赖,如何找到gradle依赖的?在Maven仓库搜索
发现没有生效?点一下reload即可自动下载
6.plugin.xml 配置
添加application-component,将MyChickenSoul添加到配置文件。
7.启动插件
有可能乱码的情况,我们可以在build.gradle配置文件最下方添加如下配置
本文目录一览: 1、《疾速追杀》系列三部曲的世界观是什么? 2、有黑客帝国中的男、女演员(尼欧、崔尼蹄、还有那个光头的人)他们的个人资料吗 3、《疾速追杀》三部曲 名字是什么? 4、黑客帝...
说起西式快餐,很多人也存在着一些疑虑,干巴巴的,也没有什么营养啊,有没有达到卫生标准啊。这些问题一直是消费者比较在意的话题。艾力克炸鸡汉堡坚持做美味又健康的炸鸡汉堡,坚持以人为本,当然这个人就是被称为...
编辑导读:产物的口试题目往往涉猎很广,发散性很强。本文作者为我们分享了一个产物口试题目标典型,而且以网易云为例,从自身履历出发,分享了本身的一些想法和看法,但愿可以或许对各人有所辅佐。 最近碰着一个...
都什么年月了,都是在讲直通车、超等推荐、钻展、抖音等等推广方法了,你此刻还讲标题,是不是太老套了?是不是都抓不住重点了? 正面答复标题上的问题,不管是什么年月,只要尚有搜索在,那么标题优化一直都是重点...
京腾计划是什么?京腾计划的合作模式 对于广告主来说,品效合一是营销的终极目标 。但长期以来品牌广告和效果广告都是相互割裂的 ,这一方面是由于企业内部分工造成,另一方面是由于过去媒体与渠道之间难以逾越...
北京海淀区商务接待模特预约【丁妍】 今日给大伙儿共享的內容是“北京海淀区商务接待模特预约【丁妍】”,我是丁妍,来源于汉沽区,2020年31岁,做为岗位:商务陪游,我喜爱我的岗位:商务陪游。三圍:胸60...