Skip to content

Commit d5e5455

Browse files
authored
Update README.md
1 parent 950464e commit d5e5455

File tree

1 file changed

+20
-31
lines changed

1 file changed

+20
-31
lines changed

README.md

Lines changed: 20 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -24,31 +24,28 @@
2424

2525
`SinkFinder` 内置了常见的`Java` 代码`Web`漏洞`sink` 点,高危组件调用`sink` 点,通过`Idea` 自身的`Problem` 模块进入,通过此模块你可以快速收集项目中的`Sink` 点:
2626

27-
![image-20250331010159751](./img/image-20250331010159751.png)
27+
<img src="./img/image-20250331010159751.png" alt="Sink收集界面" width="50%" />
2828

2929
`Sink` 收集完毕后,双击即可跳转到代码所在位置:
3030

31-
![image-20250331010358550](./img/image-20250331010358550.png)
31+
<img src="./img/image-20250331010358550.png" alt="Sink跳转演示" width="50%" />
3232

3333
#### 反编译
3434

3535
反编译模块和原来目前没有更改,在列表中选择要反编译的`jar` 包后,点击`Run` 即可反编译回源代码(目前没有做任何优化、失败率高)。
3636

37-
![](./img/image-20250331010458737.png)
37+
<img src="./img/image-20250331010458737.png" alt="反编译界面" width="35%" />
3838

3939
#### 代码分析
4040

4141
本次更新的最大内容是代码分析模块,通过此模块你可以快速查找一个方法的调用路径,下面逐步介绍功能:
4242

43-
![image-20250331010441318](./img/image-20250331010441318.png)
43+
<img src="./img/image-20250331010441318.png" alt="代码分析界面" width="50%" />
4444

4545
首先是功能区,`Generate CallGraph` 按钮用于生成项目的调用图,旁边的**下拉菜单**用来选取调用图的**构建范围**,如果你选择了`Entire` 则会对整个项目进行构建,如果你选择了`Selected Module` 那么在你点击`Generate CallGraph` 的时候就会弹出一个窗口用来选择构建范围。
4646

47-
![](./img/image-20250331010933308.png)
48-
49-
除了这种方式构建图之外,你还可以使用右键点击某一个方法的形式进行图构建:
50-
51-
![image-20250331123256112](./img/image-20250331123256112.png)
47+
<img src="./img/image-20250331010933308.png" alt="模块选择" width="50%" />
48+
<img src="./img/image-20250331123256112.png" alt="右键菜单" width="50%" />
5249

5350
在构建图之前,你应该看到了界面上的两个复选框,这两个框分别代表:
5451

@@ -58,7 +55,7 @@
5855

5956
一般情况下,如果你的代码量不是很大并且电脑内存充足,建议全都选上。
6057

61-
![image-20250331123349918](./img/image-20250331123349918.png)
58+
<img src="./img/image-20250331123349918.png" alt="复选框说明" width="50%" />
6259

6360
隐藏窗口:
6461

@@ -72,33 +69,31 @@
7269

7370
`@Override,@xxx` 用这个参数可以查找到所有拥有`Override`注解和`xxx`注解的方法。
7471

75-
![](./img/image-20250331124009118.png)
72+
<img src="./img/image-20250331124009118.png" alt="隐藏窗口" width="50%" />
7673

7774
使用示例:
7875

79-
![image-20250331124429606](./img/image-20250331124429606.png)
76+
<img src="./img/image-20250331124429606.png" alt="搜索示例" width="50%" />
8077

8178
搜索路径:
8279

8380
当你完成了图的构建之后(进度条可能会因为你的工具窗口太窄而无法显示,你可以选择将工具窗口拖出来作为一个独立的窗口使用),就可以使用搜索功能进行搜索:
8481

8582
搜索有三种方式,第一种是如果你想要查找指定两个方法的调用路径,只需要将起始方法作为`ROOT`,将结束方法作为`SINK`然后点击`Search` 就可以快速搜索,搜索结果进行双击就能跳转到代码对应的位置(有可能不准确):
8683

87-
![image-20250331124823202](./img/image-20250331124823202.png)
84+
<img src="./img/image-20250331124823202.png" alt="路径搜索" width="50%" />
8885

8986
第二种方式是如果你不知道起点,只想找到某一个方法的调用链/位置的时候,单独输入`SINK` 也可以进行查找:
9087

91-
![image-20250331124952438](./img/image-20250331124952438.png)
88+
<img src="./img/image-20250331124952438.png" alt="单独Sink搜索" width="50%" />
9289

9390
第三种方法是,当你在程序中发现了一个有趣的方法,并想查找所有能够调用到该方法的路径时,可以通过右键菜单中的`Search as sink` 进行搜索,点击后会自动将你选中的方法名填写到`SINK`搜索框中并自动运行搜索:
9491

95-
![image-20250331125202792](./img/image-20250331125202792.png)
92+
<img src="./img/image-20250331125202792.png" alt="右键搜索" width="50%" />
9693

9794
所有的结果折叠可以用`回车` 展开或重新折叠,所有的节点都可以双击跳转到指定的位置。
9895

99-
100-
101-
<img src="/home/springkill/.config/Typora/typora-user-images/image-20250401025726431.png" alt="image-20250401025726431" style="zoom: 33%;" />检测`log4j` 示例
96+
<img src="./img/image-20250401025726431.png" alt="log4j检测示例" width="50%" />
10297

10398
#### 展示界面
10499

@@ -110,19 +105,16 @@
110105

111106
`MethodNode`用来展示当前的调用图中有多少节点,以及下方会展示使用了多少内存,是否有提示信息或者报错信息等内容。
112107

113-
![image-20250331125415889](./img/image-20250331125415889.png)
108+
<img src="./img/image-20250331125415889.png" alt="初始界面" width="50%" />
114109

115110
`Search Results`界面用来展示搜索结果:
116111

117-
<img src="./img/image-20250331125928270.png" alt="image-20250331125928270" style="zoom:10%;" />图标用来表示搜索路径
118-
119-
<img src="./img/image-20250331130037060.png" alt="image-20250331130037060" style="zoom:10%;" />图标用爱表示方法声明,也就是方法被定义的位置
112+
<img src="./img/image-20250331125928270.png" alt="搜索路径图标" width="5%" /> 图标用来表示搜索路径 </br>
113+
<img src="./img/image-20250331130037060.png" alt="方法声明图标" width="5%" /> 图标用来表示方法声明,也就是方法被定义的位置 </br>
114+
<img src="./img/image-20250331130128343.png" alt="方法调用图标" width="5%" /> 用来表示方法的调用 </br>
115+
<img src="./img/image-20250331130217321.png" alt="新建对象图标" width="5%" /> 用来展示对象的新建,当前版本也用来表示隐藏窗口中的方法的搜索结果</br>
116+
`文件图标` 当前版本用来表示一个接口中的方法或者抽象类中的方法被实现或重写 </br>
120117

121-
<img src="./img/image-20250331130128343.png" alt="image-20250331130128343" style="zoom:10%;" />用来表示方法的调用
122-
123-
<img src="./img/image-20250331130217321.png" alt="image-20250331130217321" style="zoom:10%;" />用来展示对象的新建,当前版本也用来表示隐藏窗口中的方法的搜索结果
124-
125-
`文件图标` 当前版本用来表示一个接口中的方法或者抽象类中的方法被实现或重写
126118

127119
## 注意&功能开发
128120

@@ -175,11 +167,8 @@
175167

176168
## 授权
177169

178-
关于当前版本的授权问题,可联系公众号:阿呆攻防进行获取,也可以添加我的个人微信(微信号:SpringKill_)进行交流,如果你认为这个项目对你有帮助,请点个小小的Star和Follow鼓励一下我吧~
179-
180-
<img src="./img/image-20250401204010387.png" alt="image-20250401204010387" style="zoom:50%;" />
170+
关于当前版本的授权问题,可联系公众号:卫界安全-阿呆攻防进行获取,也可以添加我的个人微信(微信号:SpringKill_)进行交流,如果你认为这个项目对你有帮助,请点个小小的Star和Follow鼓励一下我吧~
181171

182172
## 结语
183173

184174
林地生长于漫宿墙外。每一个研习诸史的人都知道,漫宿无墙。
185-

0 commit comments

Comments
 (0)