Java安全之jar包调试技巧

Java安全之jar包调试技巧调试程序首先还是创建一个工程,将jar包导入进来调试模式的参数启动中需要加入特定参数才能使用debug模式,并且需要开放调试端口JDK5-8:-agentli

大家好,又见面了,我是全栈君,祝每个程序员都可以多学几门语言。

Java安全之jar包调试技巧

调试程序

首先还是创建一个工程,将jar包导入进来

调试模式的参数

启动中需要加入特定参数才能使用debug模式,并且需要开放调试端口

JDK5-8:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=5005

JDK9+:

-agentlib:jdwp=transport=dt_socket,server=y,suspend=y,address=*:5005

suspend=n表示的是启动Java应用时是否立即进入调试模式,suspend=y表示启动即暂停,suspend=n则表示启动时不需要暂停。address=*:5005表示的是Debug监听的服务地址和端口,根据需求修改,上述配置会监听到0.0.0.0

参数说明

(1) transport

指定运行的被调试应用和调试者之间的通信协议,它由几个可选值:

dt_socket:主要的方式,采用 socket 方式连接
dt_shmem:采用共享内存方式连接,仅支持 Windows 平台(暂未验证)
(2) server

当前应用作为调试服务端还是客户端,默认为 n。

如果你想将当前应用作为被调试应用,设置该值为 y;如果你想将当前应用作为客户端,作为调试的发起者,设置该值为 n。

(3) suspend

当前应用启动后,是否阻塞应用直到被连接,默认值为 y。

在大部分的应用场景,这个值为 n,即不需要应用阻塞等待连接。一个可能为 y 的应用场景是,你的程序在启动时出现了一个故障,为了调试,必须等到调试方连接上来后程序再启动。

(3) address

暴露的调试连接端口,默认值为 8000。

(4) onthrow

当程序抛出设定异常时,中断调试。

(5) onuncaught

当程序抛出未捕获异常时,是否中断调试,默认值为 n。

(6) launch

当调试中断时,执行的程序。

(7) timeout

该参数限定为 java -agentlib:jdwp=… 可用,单位为毫秒ms。

当 suspend = y 时,该值表示等待连接的超时;当 suspend = n 时,该值表示连接后的使用超时。

Java安全之jar包调试技巧

IDEA配置远程调试
Java安全之jar包调试技巧

下断点后能直接停下来。

class文件夹调试

其实也比较简单,只需要将他打包成一个jar包或者是war包,然后执行如上操作就好了。

cd src
jar -cvf test.jar *

总的来说调试还是比较重要,其实不仅仅是jar包的调试,比如还有Spring Boot(Spring Boot以jar包启动调试与上面类似)、Tomcat、weblogic这些。假设条件允许情况下,做一些审计时候,比如war包,也可以采用远程调试的方式进行审计。会更简单快捷定位一些。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/119884.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • vue.js单页应用_vue嵌入第三方页面

    vue.js单页应用_vue嵌入第三方页面今天我们看看VUE怎么开发单页面应用,VUE提供了脚手架vue-cli,通过这个可以很轻松的创建VUE单页面应用,1.创建VUE项目  首先确保电脑上安装了NODE.JS, 在创建项目的目录下,打开CMD命令行,执行脚手架命令,安装脚手架cli. #全局安装vue-cli,一定要在全局模式下安装vue-cli,否则无法使用vue命令npminstall-gvue…

    2022年10月13日
    0
  • Android快速开发之appBase——(1).appBase介绍「建议收藏」

    转载请注明本文出自JFlex的博客(http://blog.csdn.net/jflex/article/details/46430555),请尊重他人的辛勤劳动成果,谢谢!Android快速开发之appBase——(1).appBase介绍一直想写博客,苦于自己的文笔实在不行,在CSDN潜水了好几年,中间差不多3年没有写过博客。原因有二:1、文笔差;2、没时间。今年开始,时间充裕了,开始计划练练

    2022年4月3日
    47
  • 异步fifo简介_异步fifo时序

    异步fifo简介_异步fifo时序一、概述在大规模ASIC或FPGA设计中,多时钟系统往往是不可避免的,这样就产生了不同时钟域数据传输的问题,其中一个比较好的解决方案就是使用异步FIFO来作不同时钟域数据传输的缓冲区,这样既可以使相异时钟域数据传输的时序要求变得宽松,也提高了它们之间的传输效率。此文内容就是阐述异步FIFO的设计。二、设计原理2.1结构框图如上图所示的同步模块synchronizetowr…

    2022年8月13日
    5
  • sublime text3怎么批量查找替换文件夹中的字符

    sublime text3怎么批量查找替换文件夹中的字符

    2021年9月24日
    133
  • 差分数组详解[通俗易懂]

    差分数组详解[通俗易懂]题目:来先看一道裸题,有n个数。m个操作,每一次操作,将x~y区间的所有数增加z;最后有q个询问,每一次询问求出x~y的区间和。思路:很明显,直接用前缀和无法快速满足这个操作,所以我们就用到了查分数组。设a数组表示原始的数组;设d[i]=a[i]-a[i-1](1<i≤n,d[1]=a[1]);设f[i]=f[i-1]+d[i](1<i≤n,f[1]=d[1]=a[1]);设sum[i…

    2022年6月9日
    35
  • python爬虫scrapy框架_nodejs爬虫框架

    python爬虫scrapy框架_nodejs爬虫框架叮铃铃!叮铃铃!老师:“小明你的梦想是什么?”,沉思了一下小明:“额额 我想有车有房,自己当老板,媳妇貌美如花,还有一个当官的兄弟”老师:“北宋有一个人和你一样···”;哈喽!大家好!请叫我布莱恩·奥复托·杰森张;爬虫部分!一提到爬虫,好多人先想到python没错就是那个py交易的那个,这货所为是什么都能干上九天揽月下五洋捉鳖无处不出现它的身影鄙人对它也是不得不折

    2022年9月17日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号