用Intellij IDEA调试Java项目是研究Java安全的必备技能点,之前在其他地方分享过相关方法,这次在土司也分享一下,省点复活币 。

以 https://github.com/frohoff/ysoserial 为例,下载源码,然后用Intellij IDEA打开。如果这个项目里面包含了pom.xml文件,说明这个是用maven打包的项目,这时候Intelliy IDEA会自动根据其中的配置下载依赖。如果依赖有问题,你可以手工点击菜单里的Files - Project Structure,然后配置Libraries:

依赖弄好了,我们需要干一件事,就是找找整个项目里有哪些入口点(其实就是主类和main函数)。这个其实可以在maven的配置文件里找到,比如ysoserial的主类在这里配置的:

maven-assembly-plugin就是一个用来打包项目的插件,可以把依赖、类文件什么的都打包在一起。这里的mainClass的值是 ysoserial.GeneratePayload ,这个就是主类。

根据这个配置,打开文件src/main/java/ysoserial/GeneratePayload.java,看到其中的main函数了吗,如图1。点左边的小箭头,里面有个debug,这就是调试了。

点击之后发现下面只会打印usage,因为你这会没加任何参数。所以,我们打开Debug Configurations:

修改Program arguments,加上运行时的命令行参数即可:

调试,可见我在CommonsCollections1这个gadget的代码里下拉个断点,这里已经成功断下,command的值是id:

调试任何Java的项目其实都大同小异,找主类,然后设置运行的参数,点击debug的按钮,调试就开始了。之后按F8是单步运行,F7是进入函数内部单步运行,一步步地跟进,就能够分析与挖掘漏洞了。

java 使用 idea 调试 ysoserial相关推荐

  1. HarmonyOS之JS/Java跨语言调试

    在 HarmonyOS 应用开发中,通常会涉及到使用 JS 和 Java 语言同时开发的场景,一般使用 JS 来开发应用的 UI,使用 Java 开发应用的逻辑,JS FA 调用 Java PA.针对 ...

  2. 安卓* 系统级 Java*/C++ 代码调试

    1 简介 应用开发人员当前可通过安卓* SDK 来设计和构建安卓应用项目,并使用 Eclipse* 进行调试. 但是它并没有提供相应的功能来调试系统级 Java*/C++ 代码,该代码位于安卓代码库中 ...

  3. java -jar 远程调试_java笔记:远程调试

    远程调试是说,我们可以通过idea或eclipse的调试器连接到另一台计算机的java进程进行调试(例如断点,单步执行什么的),如果一个问题在本地无法重现,那么远程调试就是很好的应对方法. 首先,远程 ...

  4. 手机调试java代码_【奇技淫巧】Intellij IDEA调试ysoserial等Java项目的方法

    maven-assembly-plugin就是一个用来打包项目的插件,可以把依赖.类文件什么的都打包在一起.这里的mainClass的值是 ysoserial.GeneratePayload ,这个就 ...

  5. java安全(六)java反序列化2,ysoserial调试

    给个关注?宝儿! 给个关注?宝儿! 给个关注?宝儿! 关注公众号:b1gpig信息安全,文章推送不错过 ysoserial 下载地址:https://github.com/angelwhu/ysose ...

  6. Java 10个调试技巧

    调试不仅可以查找到应用程序缺陷所在,还可以解决缺陷.对于Java程序员来说,他们不仅要学会如何在Eclipse里面开发像样的程序,更需要学会如何调试程序.本文介绍了Java程序员必知的10个调试技巧, ...

  7. android java 调试工具_调试应用  |  Android 开发者  |  Android Developers

    Auto 如果您希望 Android Studio 自动为您要调试的代码选择最合适的选项,请选择此调试类型.例如,如果您的项目包含任何 C 或 C++ 代码,Android Studio 会自动使用 ...

  8. Java debugger模式调试

    说明:文章来自https://segmentfault.com/a/1190000007340818 本文参考了网上一些debug的教程,又在自己实践的基础上增加和改进了很多技巧.以上所有教程都是在d ...

  9. java远程debug调试tomcat

    JVM原理 众所周知,Java由于引入了虚拟机JVM,拥有了很好的跨平台和安全性,.java文件由Javac编译成.class文件也叫字节码文件,字节码文件由JVM执行,并由翻译器翻译成各个机器认识的 ...

最新文章

  1. sqlite数据库测试类基本使用
  2. Android中ListView的使用以及使用适配器设置数据源
  3. call和ret(f)指令
  4. android UI进阶之仿iphone的tab效果(二)
  5. java 求集合真子集_【同步练习】高一高中数学必修1集合的关系与元素性质
  6. SCPPO(二十):系统统一身份认证的改造之路
  7. linux下建立无线wifi------简单实用!
  8. 系统分析和设计方法之可行性分析和系统方案建议
  9. 虚拟机装Win7 x64
  10. 类的继承------C++
  11. 卡方 python_用Python进行卡方分析
  12. mysql 获取两个月前的日期
  13. 企业微信号自定义菜单
  14. 了解 Tornado 框架
  15. WebGL简易教程——目录
  16. 利用MOS管和稳压二极管来做保护电路
  17. JAVA组件设计原则(二)原则一:精准解决共性问题(摘自《java组件设计》)
  18. unity之跳一跳(完整版)
  19. 网络 | NAT、SNAT、DNAT
  20. 栈和队列OJ练习——栈实现队列,队列实现栈

热门文章

  1. FLEX中Sequence实例教程. 顺序执行的效果.
  2. mysql 多表 三表 删除_mysql 多表join查询索引优化
  3. 5G NGC — ETSUN(I-SMF/I-UPF)拓扑增强
  4. Go 语言编程 — defer 关键字
  5. 分享一个现代的,免费的,简单而有效的编辑器Vis
  6. 全球可持续发展标准化城市联盟首个海外会议基地落户杭州
  7. tls 流量画像——直接使用图像处理的思路探索,待进一步观察
  8. 邮箱的正则表达式验证总结经验
  9. 数据库数据用Excel导出的3种方法
  10. Linux的shell scripts