- (亲测有效)Spring Boot项目Jar包加密,防止反编译
福气满满爸
springbootjar后端
场景最近Java项目要求部署到客户服务器上,但担心泄露源码。要求对正式环境的启动包进行安全性处理,防止客户通过反编译获取源代码。方案一(不建议使用,不在此详细述说,如需要详细教程可留言)使用proguard实现代码混淆:混淆只是把类名、方法名、参数名替换成a、b、c等字母,实际处理逻辑没有改动。方案二(不建议使用,springboot项目麻烦)使用JVMTi加密解密:使用此种加密方式还需要对spr
- JVMTI 在安卓逆向工程中的应用
烬柒小云
androidpython开发语言
JVMTI在安卓逆向工程中的应用JVMTI在安卓逆向工程中扮演着重要角色,尤其是在分析和修改Java层应用行为时。以下是其核心应用场景、实现方式及典型工具:一、核心应用场景1.动态代码注入与hook通过JVMTI可以在运行时修改或拦截Java方法,实现:方法执行监控:记录方法调用参数、返回值、执行时间。行为篡改:修改方法逻辑(如绕过签名校验、破解会员限制)。内存数据窃取:获取加密密钥、用户敏感信息
- 认识一下jvmti(很厉害的)
烬柒小云
安卓逆向javajvmjava开发语言
JVMTI详解:Java虚拟机工具接口一、JVMTI概述JVMTI(JavaVirtualMachineToolInterface)是Java虚拟机(JVM)提供的一套原生编程接口,用于实现Java程序的调试、性能分析、监控和诊断等工具。它是JVM工具生态(如调试器、Profiler、内存分析工具)的基础,允许开发者通过本地代码(如C/C++)与JVM进行交互,获取运行时数据或控制程序执行流程。二
- 怎么通过 jvmti 去 hook java 层函数
烬柒小云
安卓逆向javajava开发语言
使用JVMTI手动实现AndroidJava函数Hook要通过JVMTI手动实现AndroidJava函数Hook,需要编写Native层代码并注入到目标进程中。以下是详细步骤和示例:一、核心实现原理JVMTI提供两种主要Hook方式:MethodEntry/Exit事件:监听方法调用前后的事件字节码修改:在类加载时动态修改方法字节码下面介绍如何通过JVMTIAgent实现这两种方式。二、实现步骤
- java tomcat 远程调试_JAVA(TOMCAT)远程调试
健康和谐男哥
javatomcat远程调试
当我们的项目部署到远程机器(开发环境和部署环境在不同的jvm下)中,而远程机器的数据和本地有可能不一样,这个时候我们可能需要连接到远程机器进行调试。为了解决这一问题,JAVA为我们提供了Java平台调试架构(JavaPlatformDebuggerArchitecture,简称JPDA),JPDA由Java虚拟机后端和调试平台前端组成,两者之间通过socket进行通信。一、Java虚拟机后端(被调
- Java调试原理(JPDA、JDI)
藤原千花的败北
网络安全java开发语言网络安全
文章目录1.调试原理1.1基本概念1.2工作原理2.JDPA2.1简介2.2流程分析3.jdb案例4.在IDEA中调试的原理5.总结参考1.调试原理调试(Debugging)的核心原理是通过控制程序执行流程和监控程序状态,允许开发者逐步运行代码、观察变量、分析逻辑错误。回想我们的调试过程,主要是两个功能步骤:设置断点源码与内存中字节码/指令的映射断点的添加时机和实现方式取决于具体的调试机制和语言环
- tomcat远程debug调试
多多云开
jvmjvmtomcatdebug
tomcat远程debug功能:linux环境,tomcat81、修改startup.shvimstartup.sh在最末尾处添加exec"$PRGDIR"/"$EXECUTABLE"jpdastart"$@"2、修改catalina.shvimcatalina.sh在CATALINA_OPTS中添加"-Xdebug-Xrunjdwp:transport=dt_socket,address=800
- 远程调试代码
Statham_Jessie
远程debug调试java代码日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试。生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试。整体过程是通过修改远程服务JAVA_OPTS参数,然后本地通过Eclipse或IDEA等工具调试。下面简单介绍下理论。理论JPDA(JavaPlatformDebuggerArchitecture)是Java平台调试体系结构的缩写。由3
- BTrace的使用
谁说咖啡不苦
简介BTrace可以动态地向目标应用程序的字节码注入追踪代码所依赖的技术:JavaComplierApi、JVMTI、Agent、Instrumentation+ASMBTrace安装新建环境变量:BTRACE_HOME,下载Release来使用。简单的使用packagecom.songshuang.btrace;importcom.sun.btrace.annotations.*;importc
- Thread相关学习之四 - ThreadStatus
AlanKim
javaClasses.hpp中对ThreadStatus的定义不过在jvm中,javaClasses.hpp中有一个枚举定义,如下://JavaThreadStatusforJVMTIandM&Muse.//ThisthreadstatusinfoissavedinthreadStatusfieldof//java.lang.Threadjavaclass.enumThreadStatus{NE
- java jdwp如何关闭_JVM 技术详解:Java 平台调试体系(JDWP)简介
何嵬嵬
javajdwp如何关闭
Java平台调试体系(JavaPlatformDebuggerArchitecture,JPDA),由三个相对独立的层次共同组成。这三个层次由低到高分别是Java虚拟机工具接口(JVMTI)、Java调试连接协议(JDWP)以及Java调试接口(JDI)。模块层次编程语言作用JVMTI底层C获取及控制当前虚拟机状态JDWP中间层C定义JVMTI和JDI交互的数据格式JDI高层Java提供JavaA
- 【漏洞复现】JDWP远程命令执行漏洞
ps_x
漏洞复现验证JDWPRCEdebug
0x01简介JPDA(JavaPlatformDebuggerArchitecture):即Java平台调试体系架构。Java虚拟机设计的专门的API接口供调试和监控虚拟机使用。JPDA按照抽象层次,又分为三层,分别是:JVMTI(JavaVMToolInterface):虚拟机对外暴露的接口,包括debug和profile。JDI(JavaDebugInterface):Java库接口,实现了J
- java JDWP调试接口任意命令执行漏洞
TaibaiXX1
javalinux安全dockerandroid
点击"仙网攻城狮”关注我们哦~不当想研发的渗透人不是好运维让我们每天进步一点点简介JDWP(JavaDEbuggerWireProtocol):即Java调试线协议,是一个为Java调试而设计的通讯交互协议,它定义了调试器和被调试程序之间传递的信息的格式。说白了就是JVM或者类JVM的虚拟机都支持一种协议,通过该协议,Debugger端可以和targetVM通信,可以获取目标VM的包括类、对象、线
- JPDA
stypace
JAVAJPDAJVMTIJDWPJDI
1java平台调试的特点java平台的调试,与其他平台有很大的区别。以C/C++的调试为例,目前比较流行的调试工具是GDB和微软的VisualStudio自带的debugger首先,必须编译一个“debug”模式的程序,这个会比“release”模式的程序大很多其次,在调试过程中,debugger将会深层介入程序的运行,获取运行时的信息,并将这些信息返回。这种介入对运行的效率和内存占用都有一定的需
- JDWP 远程命令执行漏洞
Brucetg
渗透测试
0x01.Java调试体系JPDA简介JPDA(JavaPlatformDebuggerArchitecture):即Java平台调试体系架构。Java虚拟机设计的专门的API接口供调试和监控虚拟机使用JPDA按照抽象层次,又分为三层,分别是:JVMTI(JavaVMToolInterface):虚拟机对外暴露的接口,包括debug和profile。JDWP(JavaDebugWireProtoc
- java 框架调试_JAVA 调试框架(JPDA)简介
Bot Trump
java框架调试
JPDA是一个多层的调试框架,包括JVMDI、JDWP、JDI三个层次。JAVA虚拟机提供了JPDA的实现。其开发工具作为调试客户端,可以方便的与虚拟机通讯,进行调试。Eclipse正是利用JPDA调试JAVA应用,事实上,所有JAVA开发工具都是这样做的。SUNJDK还带了一个比较简单的调试工具以及示例。JVMDI定义了虚拟机需要实现的本地接口JDWP定义了JVM与调试客户端之间的通讯协议调试客
- JDWP 协议及实现
SofterICer
工具javaide开发语言
什么是JDWP?JDWP是JavaDebugWireProtocol的缩写,它定义了调试器(debugger)和被调试的Java虚拟机(targetvm)之间的通信协议。JDWP协议介绍这里首先要说明一下debugger和targetvm。Targetvm中运行着我们希望要调试的程序,它与一般运行的Java虚拟机没有什么区别,只是在启动时加载了AgentJDWP从而具备了调试功能。而debugge
- Android逆向系列--JDWP协议
Tasfa
Android逆向分析androidjava开发语言
Android逆向系列--JDWP协议背景简介使用源码调用参考背景经常会遇到各种各样需要使用jdwp知识的场景,比如调试Java源码、比如抓帧等等,这些关联知识点通常都会极其复杂,如果不能很好的了解jdwp协议的相关知识,那么做进一步的逆向将极其困难,本文将对jdwp进行详细的介绍和使用介绍。简介JDWP(JavaDebugWireProtocol)即JAVA调试器无线协议,它定义了调试器(Deb
- 深入 Java 调试体系,第 3 部分: JDWP 协议及实现
killmice
java
深入Java调试体系,第3部分:JDWP协议及实现虞俊杰,软件工程师,IBM徐睿智,软件工程师,IBM简介:JPDA(JavaPlatformDebuggerArchitecture)是Java平台调试体系结构的缩写,通过JPDA提供的API,开发人员可以方便灵活的搭建Java调试应用程序。JPDA主要由三个部分组成:Java虚拟机工具接口(JVMTI),Java调试线协议(JDWP),以及Jav
- JDWP 简介
SofterICer
工具javaide开发语言
Java平台调试体系(JavaPlatformDebuggerArchitecture,JPDA),由三个相对独立的层次共同组成。这三个层次由低到高分别是Java虚拟机工具接口(JVMTI)、Java调试连接协议(JDWP)以及Java调试接口(JDI)。模块层次编程语言作用JVMTI底层C获取及控制当前虚拟机状态JDWP中间层C定义JVMTI和JDI交互的数据格式JDI高层Java提供JavaA
- Java JVM远程调试
一码胜千言
示例在5005端口上开启远程调试java-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005-jartarget/ai-parter-server-0.0.1-SNAPSHOT.jar
- tomcat 开启jpda远程调试
Lisong
TOMCAT开放远程调试端口方法1、WIN系统,在catalina.bat里:SETCATALINA_OPTS=-server-Xdebug-Xnoagent-Djava.compiler=NONE-Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=8899Linux系统,在catalina.sh里:CATALINA_OPTS="-se
- frostmourne
阿里极风
1、快速入门产品简介使用场景诊断内存泄露诊断方法性能重现误吞的异常数据订正字节码增强快速开始系统支持2、原理&设计相关技术instrumentjnijvmtijavassistjline系统架构HowtoattachSystemArchitecture功能扩展拓展点拓展口开发部署构建开发环境工程目录结构依赖的三方库TOLIST3、命令详解helpcdclearclosefindgcinvokels
- 基于JDK8的SpringBoot-2.7.6应用程序的jar包能直接通过java -jar 命令运行的原因
mister-big
springjavaspringbootjar
文章目录前言一、JAR是什么?二、嵌套JAR1.java官方不支持嵌套jar读取和加载2.嵌套“shade”jar方案3.SpringBoot的解决方案三、SpringBoot的ExecutableJars1.核心支持模块(spring-boot-loader)2.运行调试工具(JDWP)2.1.保姆级IDEA添加JDWP远程调试示例3.运行调试(java-jar)3.1.JAR启动入口:org.
- JPDA框架和JDWP协议
SofterICer
eSEjavaide
前言在逆向开发中,一般都需要对目标App进行代码注入。主流的代码注入工具是Frida,这个工具能稳定高效实现java代码hook和native代码hook,不过缺点是需要使用Root设备,而且用js开发,入门门槛较高。最近发现一种非Root环境下对DebugApp进行代码注入的方案,原理是利用Java调试框架,通过调试器与目标虚拟机之间通讯,实现对虚拟机进程的修改。JPDA框架和JDWP协议Jav
- idea对服务器正在运行的代码进行debug操作
liaozk_c
日常工作总结intellij-idea服务器pycharm
前言在开发过程中,常常会遇到在本地环境运行正常,但是部署到服务器环境运行就异常;本文解决的问题是怎么对服务器代码进行debug操作,帮助我们更好的找出原因准备工作保证本地代码和服务器运行的代码一致开始1、在idea配置远程debug启动2、停止服务器正确运行的jar3、通过下面命令重启jar包服务注意更换jar包名字和端口号nohupjava-Xdebug-agentlib:jdwp=transp
- word转pdf
半日孤独
1.功能实现使用poi对进行word文件进行解析处理,使用aspose进行pdf转换aspose下载路径:https://pan.baidu.com/s/1vJWgYAAaHpnXmyKhZa4ljg提取码:jdwp注:如果导入了easyExcel,则只需要导入一部分poi(关于doc文件的解析),防止版本不一致的问题2.导入依赖org.apache.poipoi-ooxml3.17org.apa
- tomcat
一码胜千言
配置项目路径server.xmldebug启动,远程端口8000catalina.batjpdastart启动catalina.batrun
- IDEA远程调试和调试本地war包
chace_tse
1、远程调试JPDA概念JPDA(Javaplatformdebuggerarchitecture)是java平台调试架构的简称,由java虚拟机后端和调试平台前端组成。1、java虚拟机提供了java调试功能;2、调试平台通过调试交互协议向java虚拟机请求服务,以对在虚拟机中运行的程序进行调试。idea配置方法1、启动tomcat的jpda支持启动tomcat的时候,不能只用默认启动方法./c
- java远程debug(idea)
芸尚非
javaintellij-idea开发语言
1、启动java服务java-agentlib:jdwp=transport=dt_socket,address=5005,server=y,suspend=n-jarxxx.jar2、idea开启远程debug
- ztree设置禁用节点
3213213333332132
JavaScriptztreejsonsetDisabledNodeAjax
ztree设置禁用节点的时候注意,当使用ajax后台请求数据,必须要设置为同步获取数据,否者会获取不到节点对象,导致设置禁用没有效果。
$(function(){
showTree();
setDisabledNode();
});
- JVM patch by Taobao
bookjovi
javaHotSpot
在网上无意中看到淘宝提交的hotspot patch,共四个,有意思,记录一下。
7050685:jsdbproc64.sh has a typo in the package name
7058036:FieldsAllocationStyle=2 does not work in 32-bit VM
7060619:C1 should respect inline and
- 将session存储到数据库中
dcj3sjt126com
sqlPHPsession
CREATE TABLE sessions (
id CHAR(32) NOT NULL,
data TEXT,
last_accessed TIMESTAMP NOT NULL,
PRIMARY KEY (id)
);
<?php
/**
* Created by PhpStorm.
* User: michaeldu
* Date
- Vector
171815164
vector
public Vector<CartProduct> delCart(Vector<CartProduct> cart, String id) {
for (int i = 0; i < cart.size(); i++) {
if (cart.get(i).getId().equals(id)) {
cart.remove(i);
- 各连接池配置参数比较
g21121
连接池
排版真心费劲,大家凑合看下吧,见谅~
Druid
DBCP
C3P0
Proxool
数据库用户名称 Username Username User
数据库密码 Password Password Password
驱动名
- [简单]mybatis insert语句添加动态字段
53873039oycg
mybatis
mysql数据库,id自增,配置如下:
<insert id="saveTestTb" useGeneratedKeys="true" keyProperty="id"
parameterType=&
- struts2拦截器配置
云端月影
struts2拦截器
struts2拦截器interceptor的三种配置方法
方法1. 普通配置法
<struts>
<package name="struts2" extends="struts-default">
&
- IE中页面不居中,火狐谷歌等正常
aijuans
IE中页面不居中
问题是首页在火狐、谷歌、所有IE中正常显示,列表页的页面在火狐谷歌中正常,在IE6、7、8中都不中,觉得可能那个地方设置的让IE系列都不认识,仔细查看后发现,列表页中没写HTML模板部分没有添加DTD定义,就是<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3
- String,int,Integer,char 几个类型常见转换
antonyup_2006
htmlsql.net
如何将字串 String 转换成整数 int?
int i = Integer.valueOf(my_str).intValue();
int i=Integer.parseInt(str);
如何将字串 String 转换成Integer ?
Integer integer=Integer.valueOf(str);
如何将整数 int 转换成字串 String ?
1.
- PL/SQL的游标类型
百合不是茶
显示游标(静态游标)隐式游标游标的更新和删除%rowtyperef游标(动态游标)
游标是oracle中的一个结果集,用于存放查询的结果;
PL/SQL中游标的声明;
1,声明游标
2,打开游标(默认是关闭的);
3,提取数据
4,关闭游标
注意的要点:游标必须声明在declare中,使用open打开游标,fetch取游标中的数据,close关闭游标
隐式游标:主要是对DML数据的操作隐
- JUnit4中@AfterClass @BeforeClass @after @before的区别对比
bijian1013
JUnit4单元测试
一.基础知识
JUnit4使用Java5中的注解(annotation),以下是JUnit4常用的几个annotation: @Before:初始化方法 对于每一个测试方法都要执行一次(注意与BeforeClass区别,后者是对于所有方法执行一次)@After:释放资源 对于每一个测试方法都要执行一次(注意与AfterClass区别,后者是对于所有方法执行一次
- 精通Oracle10编程SQL(12)开发包
bijian1013
oracle数据库plsql
/*
*开发包
*包用于逻辑组合相关的PL/SQL类型(例如TABLE类型和RECORD类型)、PL/SQL项(例如游标和游标变量)和PL/SQL子程序(例如过程和函数)
*/
--包用于逻辑组合相关的PL/SQL类型、项和子程序,它由包规范和包体两部分组成
--建立包规范:包规范实际是包与应用程序之间的接口,它用于定义包的公用组件,包括常量、变量、游标、过程和函数等
--在包规
- 【EhCache二】ehcache.xml配置详解
bit1129
ehcache.xml
在ehcache官网上找了多次,终于找到ehcache.xml配置元素和属性的含义说明文档了,这个文档包含在ehcache.xml的注释中!
ehcache.xml : http://ehcache.org/ehcache.xml
ehcache.xsd : http://ehcache.org/ehcache.xsd
ehcache配置文件的根元素是ehcahe
ehcac
- java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderL
白糖_
javaeclipsespringtomcatWeb
今天学习spring+cxf的时候遇到一个问题:在web.xml中配置了spring的上下文监听器:
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
随后启动
- angular.element
boyitech
AngularJSAngularJS APIangular.element
angular.element
描述: 包裹着一部分DOM element或者是HTML字符串,把它作为一个jQuery元素来处理。(类似于jQuery的选择器啦) 如果jQuery被引入了,则angular.element就可以看作是jQuery选择器,选择的对象可以使用jQuery的函数;如果jQuery不可用,angular.e
- java-给定两个已排序序列,找出共同的元素。
bylijinnan
java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class CommonItemInTwoSortedArray {
/**
* 题目:给定两个已排序序列,找出共同的元素。
* 1.定义两个指针分别指向序列的开始。
* 如果指向的两个元素
- sftp 异常,有遇到的吗?求解
Chen.H
javajcraftauthjschjschexception
com.jcraft.jsch.JSchException: Auth cancel
at com.jcraft.jsch.Session.connect(Session.java:460)
at com.jcraft.jsch.Session.connect(Session.java:154)
at cn.vivame.util.ftp.SftpServerAccess.connec
- [生物智能与人工智能]神经元中的电化学结构代表什么?
comsci
人工智能
我这里做一个大胆的猜想,生物神经网络中的神经元中包含着一些化学和类似电路的结构,这些结构通常用来扮演类似我们在拓扑分析系统中的节点嵌入方程一样,使得我们的神经网络产生智能判断的能力,而这些嵌入到节点中的方程同时也扮演着"经验"的角色....
我们可以尝试一下...在某些神经
- 通过LAC和CID获取经纬度信息
dai_lm
laccid
方法1:
用浏览器打开http://www.minigps.net/cellsearch.html,然后输入lac和cid信息(mcc和mnc可以填0),如果数据正确就可以获得相应的经纬度
方法2:
发送HTTP请求到http://www.open-electronics.org/celltrack/cell.php?hex=0&lac=<lac>&cid=&
- JAVA的困难分析
datamachine
java
前段时间转了一篇SQL的文章(http://datamachine.iteye.com/blog/1971896),文章不复杂,但思想深刻,就顺便思考了一下java的不足,当砖头丢出来,希望引点和田玉。
-----------------------------------------------------------------------------------------
- 小学5年级英语单词背诵第二课
dcj3sjt126com
englishword
money 钱
paper 纸
speak 讲,说
tell 告诉
remember 记得,想起
knock 敲,击,打
question 问题
number 数字,号码
learn 学会,学习
street 街道
carry 搬运,携带
send 发送,邮寄,发射
must 必须
light 灯,光线,轻的
front
- linux下面没有tree命令
dcj3sjt126com
linux
centos p安装
yum -y install tree
mac os安装
brew install tree
首先来看tree的用法
tree 中文解释:tree
功能说明:以树状图列出目录的内容。
语 法:tree [-aACdDfFgilnNpqstux][-I <范本样式>][-P <范本样式
- Map迭代方式,Map迭代,Map循环
蕃薯耀
Map循环Map迭代Map迭代方式
Map迭代方式,Map迭代,Map循环
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年
- Spring Cache注解+Redis
hanqunfeng
spring
Spring3.1 Cache注解
依赖jar包:
<!-- redis -->
<dependency>
<groupId>org.springframework.data</groupId>
<artifactId>spring-data-redis</artifactId>
- Guava中针对集合的 filter和过滤功能
jackyrong
filter
在guava库中,自带了过滤器(filter)的功能,可以用来对collection 进行过滤,先看例子:
@Test
public void whenFilterWithIterables_thenFiltered() {
List<String> names = Lists.newArrayList("John"
- 学习编程那点事
lampcy
编程androidPHPhtml5
一年前的夏天,我还在纠结要不要改行,要不要去学php?能学到真本事吗?改行能成功吗?太多的问题,我终于不顾一切,下定决心,辞去了工作,来到传说中的帝都。老师给的乘车方式还算有效,很顺利的就到了学校,赶巧了,正好学校搬到了新校区。先安顿了下来,过了个轻松的周末,第一次到帝都,逛逛吧!
接下来的周一,是我噩梦的开始,学习内容对我这个零基础的人来说,除了勉强完成老师布置的作业外,我已经没有时间和精力去
- 架构师之流处理---------bytebuffer的mark,limit和flip
nannan408
ByteBuffer
1.前言。
如题,limit其实就是可以读取的字节长度的意思,flip是清空的意思,mark是标记的意思 。
2.例子.
例子代码:
String str = "helloWorld";
ByteBuffer buff = ByteBuffer.wrap(str.getBytes());
Sy
- org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1, column 1
Everyday都不同
$转义el表达式
最近在做Highcharts的过程中,在写js时,出现了以下异常:
严重: Servlet.service() for servlet jsp threw exception
org.apache.el.parser.ParseException: Encountered " ":" ": "" at line 1,
- 用Java实现发送邮件到163
tntxia
java实现
/*
在java版经常看到有人问如何用javamail发送邮件?如何接收邮件?如何访问多个文件夹等。问题零散,而历史的回复早已经淹没在问题的海洋之中。
本人之前所做过一个java项目,其中包含有WebMail功能,当初为用java实现而对javamail摸索了一段时间,总算有点收获。看到论坛中的经常有此方面的问题,因此把我的一些经验帖出来,希望对大家有些帮助。
此篇仅介绍用
- 探索实体类存在的真正意义
java小叶檀
POJO
一. 实体类简述
实体类其实就是俗称的POJO,这种类一般不实现特殊框架下的接口,在程序中仅作为数据容器用来持久化存储数据用的
POJO(Plain Old Java Objects)简单的Java对象
它的一般格式就是
public class A{
private String id;
public Str