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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • 小树311_森林小道

    小树311_森林小道原题链接森森开了一家快递公司,叫森森快递。因为公司刚刚开张,所以业务路线很简单,可以认为是一条直线上的N个城市,这些城市从左到右依次从0到(N−1)编号。由于道路限制,第i号城市(i=0,⋯,N−2)与第(i+1)号城市中间往返的运输货物重量在同一时刻不能超过C​i​​ 公斤。公司开张后很快接到了Q张订单,其中j张订单描述了某些指定的货物要从S​j​​ 号城市运输到T​j​​ 号城市。这里我们简单地假设所有货物都有无限货源,森森会不定时地挑选其中一部分货物进行运输。安全起见,这些货物不会在中

    2022年8月9日
    5
  • 多重共线性:python计算VIF以及使用vif做因子独立性检验的方法「建议收藏」

    多重共线性:python计算VIF以及使用vif做因子独立性检验的方法「建议收藏」转自:https://blog.csdn.net/ab1112221212/article/details/100133066多重共线性在python中的解决方法本文将讨论多重共线性的相关概念及利用python自动化消除多重共线性的方法,以供参考,欢迎拍砖线性模型与非线性模型关于线性模型与非线性模型的定义,似乎并没有确切的定论,但是个人认为建模首先得清楚地认识样本,样本有线性可分与线性不可分两种,所谓是否线性可分,是指是否存在一条直线(或平面)将样本分开。上图中y=0和y=1的样本可以由一

    2022年6月5日
    205
  • windows如何在局域网下共享文件(传输文件、修改文件)

    windows如何在局域网下共享文件(传输文件、修改文件)前些天在了解Git版本控制的时候,看到了“局域网下可以共享文件(阅读or修改)”。发现自己之前都没了解过这个,虽然用着GitHub却对其来源的变化不甚了解。于是就动手操作了一下windows如何在局域网下共享文件。对,还有一些局域网下的传输软件。但我还没有去了解,所以在这里先不说了。什么是局域网局域网(LocalAreaNetwork,LAN),又称内网。指覆盖局部区域(如办公室…

    2022年5月4日
    208
  • pytest重试_pytest失败重跑

    pytest重试_pytest失败重跑安装:pip3installpytest-rerunfailures重新运行所有失败用例要重新运行所有测试失败的用例,请使用–reruns命令行选项,并指定要运行测试的最大次数:$py

    2022年7月29日
    4
  • APACHE REWRITE ? 匹配问号的写法[通俗易懂]

    APACHE REWRITE ? 匹配问号的写法

    2022年3月3日
    36
  • 人工智能:智能优化算法

    人工智能:智能优化算法**人工智能:智能优化算法优化问题是指在满足一定条件下,在众多方案或参数值中寻找最优方案或参数值,以使得某个或多个功能指标达到最优,或使系统的某些性能指标达到最大值或最小值。优化问题广泛地存在于信号处理、图像处理、生产调度、任务分配、模式识别、自动控制和机械设计等众多领域。优化方法是一种以数学为基础,用于求解各种优化问题的应用技术。各种优化方法在上述领域得到了广泛应用,并且已经产生了巨大的经济效益和社会效益。实践证明,通过优化方法,能够提高系统效率,降低能耗,合理地利用资源,并且随着处理对象规模的增加

    2022年5月22日
    62

发表回复

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

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