栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java代码审计基础知识、反编译、idea使用技巧

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java代码审计基础知识、反编译、idea使用技巧

一、反编译 1. Fernflower Fernflower 可以很轻松的实现 jar 的完整反编译,执行如下命令即可:  java -jar fernflower.jar jarToDecompile.jar decomp/  其中  jarToDecompile.jar  是需要反编译的 jar 文件, decomp  是反编译后的  class文件 所存放的目录。需要注意的是  Fernflower  如遇无法反编译的情况可能会生成空的 java 文件! GitHub - fesh0r/fernflower: Unofficial mirror of FernFlower Java decompiler (All pulls should be submitted upstream) 图形化界面: https://github.com/MountCloud/JavaDecompileTool-GUI 2. JD-GUI JD-GUI  是一个带 GUI 的反编译工具,在  JD-GUI  的菜单中点击  File –> Save All Sources  即可反编译 jar。 3. IDEA IDEA 默认就支持 jar 包反编译,同时还支持 class 文件名 ( ⇧⌘F )、类方法名称 ( ⇧⌘O ) 搜索。 4. Bytecode-Viewer FernFlower  提供了 GUI 版本 Bytecode-Viewer, Bytecode-Viewer  提供了直接反编译的  class 、 jar 、 zip 、 apk 、 dex  功能,直接拖拽 jar 就可以直接对整个 jar 进行反编译了。 5.CodeReviewTools 通过正则搜索、批量反编译特定Jar包中的class名称 GitHub - Ppsoft1991/CodeReviewTools: 通过正则搜索、批量反编译特定Jar包中的class名称 二、反编译项目结构 1、反编译后的文件格式 -com     -公司名         -项目名             -controller             -dao             -... -META-INF         xxxx.properties         ......等等文件 2、放到idea对应文件
  • idea创建maven项目
-src     -main         -java             将第1步的com整个文件复制到当前目录         -resources             将第1步的除com的其他文件夹以及文件都放到这个静态目录下 -lib     将反编译之前的jar包中整个lib包里面的所有lib包放到这个目录下 3、lib包中附带需要反编译的jar包情况
  • 先查找当前项目中lib包下需要反编译的jar包,批量选中
  • 通过上面的图形化界面:https://github.com/MountCloud/JavaDecompileTool-GUI工具,将选中的lib包拖到工具里。
  • 然后再当前文件夹下会产生每个jar包反编译后的zip包,通过类型排序,删除原本的jar文件,然后选中所有zip文件解压缩到当前文件夹下,一个zip一个文件夹。
  • 然后回到idea中,会发现lib包下的文件夹,通过文件—项目结构—模块,再这里将lib包下的文件夹选中然后标记为源。就可以既搜索内容,同样可以实现跳转。
三、IDEA使用技巧 1. 自定义范围搜索
  • IDEA 的搜索快捷键是 : ⇧⌘F , 使用 IDEA 提供的搜索功能可以非常快速的定位漏洞点信息。
2. 标记搜索
  • 搜索快捷键:  ⌘O ,标记搜索支持 类名 、 方法名 搜索( 包括class或jar文件 中的方法也支持搜索)。
3. Java 调用链搜索
  • 当我们审计代码的时候发现某个方法或类有漏洞时我们需要定位到漏洞的请求地址 (触发点),复杂业务系统往往会让我们很难定位到漏洞的触发点。借助 IDEA 的方法调用链搜索功能就可以很轻松的找出方法的调用链和触发点。
  • 选择 类或者方法名 –>  右键 –> Find Useages  或者使用快捷键 ⌥F7
4.显示类继承关系
  • 某些类实现的非常复杂,继承和实现了非常多的类,比较影响我们分析业务,这个时候我们可以在 某个类的空白处右键->Diagrams->Show Diagram或者使用快捷键 ⌥⇧⌘U
  • 点击 左上角的小图标F、M❤、M、P、I分别会展示详细的:成员变量、构造方法、方法、属性、内部类
  • 如果想显示多个类的继承关系,可以将任意类文件拖拽到右图就会生成多类之间的继承关系,如Tomcat中的HttpServletRequest类和ApplicationHttpRequest类都实现了HttpServletRequest接口,那么拖拽到一起就可以看到它们俩之间的如下关联关系:
5. jar文件反编译
  • IDEA反编译jar文件也是非常的方便,只需把jar包丢到任意目录,然后右键->Add as library就可以了。
6.类/资源文件热更新
  • IDEA中默认不会将修改的文件和资源自动同步到 Web Server或者 SpringBoot,需要我们手动设置当类文件或资源文件发生修改后同步更新。
  • Web容器热更新:
  • SpringBoot热更新:
7.ctrl+F12 查看文件结构 8.ctrl+H   层次结构 查看类的继承关系之类的。 9.shift+shift 查找任何内容,可搜索类、资源、配置项、方法等,还能搜索路径 10.Alt + F7或者右击方法—查看用法 查找类或方法在哪被使用
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/1002851.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号