作者: 我是小三 博客: http://www.cnblogs.com/2014asm/ 由于时间和水平有限,本文会存在诸多不足,希望得到您的及时反馈与指正,多谢! 工具环境: windwos10.IDEA 目录 : 为什么需要保护?保护后性能如何? 市面上常见的解决方案 整体加密保护方案架构 class文件格式与反汇编引擎浅析 LLVM IR介绍 技术实现细节分析 总结 0x00:为什么需要保护?保护后性能如何? 1.为什么须要保护? 由于Java的指令集比较简单而通用,较容易得出程序的语义信…
Java Jar 包加密 一.缘由 Java的 Jar包中的.class文件可以通过反汇编得到源码.这样一款应用的安全性就很难得到保证,别人只要得到你的应用,不需花费什么力气,就可以得到源码. 这时候就需要对jar进行加密处理. 二.技术&工具 XJar GitHub:https://github.com/core-lib/xjar 码云:https://gitee.com/core-lib/xjar?_from=gitee_search maven集成 XJar GitHub:https://…
由于项目要求(虽然我觉得代码没什么机密可言...),写好的jar包需要做一定加密处理 这里提供两种办法,一种奇葩,一种通用 1. 直接修改jar文件: 具体步骤: 在代码中插入一段不会运行的到的代码 private class Invalid{ private Invalid() { } } 使用eclipse打包文件,右键export > java > JAR file > finish 使用解压软件打开jar包.记事本打开...$Invalid.class文件,去掉里面的d # 最好…
Java 开发语言以其安全性高.代码优化.跨平台等特性,迅速取代了很多传统高级语言,占据了企业级网络应用开发等诸多领域的霸主地位.特别是近年来大数据.互联网+.云计算技术的不断发展,Java 开发语言更具有不可替代的地位. 不过,Java 最突出的跨平台优势使其要以中间代码的形式运行在虚拟机环境中,因此 Java 代码反编译要比其他开发语言更容易实现,并且反编译的代码经过优化后几乎可与源代码相媲美.为了避免出这种情况,保护软件知识产权,有一种叫做 Java 混淆器的工具被开发出来. 但 Java…
Springboot中IDE支持两种打包方式,即jar包和war包 打包之前修改pom.xml中的packaging节点,改为jar或者war    在项目的根目录执行maven 命令clean package -Dmaven.test.skip=true,即可打包,如下 命令执行成功后,在target目录下即可看到打包好的文件 提示:若打的包为jar包,可通过java -jar guns-xxx.jar来启动Guns系统…
前言 jar包相信大家都很熟悉,是通过打包java工程而获得的产物,但是jar包是有一个致命的缺点的,那就是很容易被反编译,只需要使用jd-gui就可以很容易的获取到java源码. 如果你想要防止别人反编译做逆向工程,那么对jar包进行一次加密就是一项很重要的工作了. 如何对jar包进行加密呢?其实没有想象中的那么困难,有一款开源工具已经提供了较为完善的加密方案,这款开源工具的名字叫做xjar. 接下来我们就看一下使用xjar工具给jar包加密有多么的容易. 基础环境准备 现在假设你的项目是一个…
摘要:在本文中,回顾了TypeScript中几个最有用的类型保护,并通过几个例子来了解它们的实际应用. 本文分享自华为云社区<如何在TypeScript中使用类型保护>,作者:Ocean2022. 类型保护是一种TypeScript技术,用于获取变量类型信息,通常使用在条件块语句中.类型守卫是返回布尔值的常规函数,接受一个类型并告诉TypeScript是否可以缩小到更具体的类型.类型保护具有唯一的属性,可以确保测试的值是根据返回的布尔值设置的类型. TypeScript使用了一些内置的Java…
Java 代码编译后生成的 .class 中包含有源代码中的所有信息(不包括注释),尤其是在其中保存有调试信息的时候.所以一个按照正常方式编译的 Java .class 文件可以非常轻易地被反编译.通常情况下,反编译可以利用现有的工具jd-gui.exe或者jad.exe. (这两个反编译工具在我的资源里有下载: jd-gui.exe: http://download.csdn.net/detail/dianacody/7760019: jad.exe: http://download.csdn…
原总结注册表debug调试dump转储文件windbgprocdump 前言 今天,向大家介绍几种可以抓取应用程序转储文件的工具及基本使用方法.更详细的用法,请参考每个工具对应的帮助文档.如果你还不清楚什么是转储文件,不知道什么时候需要转储文件,请参考转储文件系列文章的第一篇 —— 转储文件知多少. 各种抓取转储文件的工具 有很多工具都可以抓取转储文件.我列举几个常用的工具并简单介绍使用方法. 任务管理器 任务管理器是唾手可得的抓取转储文件的工具.按住 Ctrl + Shift + Esc 即可…
懒人方案 网盘: 链接:https://pan.baidu.com/s/1x4OB1IF2HZGgtLhd1Kr_AQ提取码:glx7 网盘内是已生成可用工具,下载可以直接使用,使用前看一下READ.txt文件. 注意:此加密工具会把Class完全加密,jd-gui-1.4.0只能反编译出jar结构,但是看不到class文件源码! Maven依赖 <?xml version="1.0" encoding="UTF-8"?> <project xml…
chexagon/redis-session-manager: A tomcat8 session manager providing session replication via persistence to redishttps://github.com/chexagon/redis-session-manager jcoleman/tomcat-redis-session-manager: Redis-backed non-sticky session store for Apache…
右键项目-properties-java build path(左侧菜单)-选择libraries 有两种方式,导入jar包实际上就是建立一种链接,并不是copy式的导入 一.导入外部包,add external jars...,这种只是与jar包的绝对路径建立链接,并不会拷贝到项目中. 二.导入包,add jars...,这种需要你事先把jar包拷贝到项目中,通过选择项目下的jar,与jar包的相对路径建立链接. 两种方式下导入的包,jar包名称前面的图标会有区别.另外,如果jar包名称前面的…
转载自:http://blog.csdn.net/wzq294328238/article/details/48054525                    通常我们将Spark任务编写后打包成jar包,使用spark-submit进行提交,因为spark是分布式任务,如果运行机器上没有对应的依赖jar文件就会报ClassNotFound的错误.  下面有三个解决方法: 方法一:spark-submit –jars 根据spark官网,在提交任务的时候指定–jars,用逗号分开.这样做的缺…
右键项目-properties-java build path(左侧菜单)-选择libraries 有两种方式,导入jar包实际上就是建立一种链接,并不是copy式的导入 一.导入外部包,add external jars...,这种只是与jar包的绝对路径建立链接,并不会拷贝到项目中. 二.导入包,add jars...,这种需要你事先把jar包拷贝到项目中,通过选择项目下的jar,与jar包的相对路径建立链接. 两种方式下导入的包,jar包名称前面的图标会有区别.另外,如果jar包名称前面的…
随着软件开发分工趋于精细,前后端开发分离成为趋势,前端同事负责前端页面的展示及页面逻辑处理,服务端同事负责业务逻辑处理同时通过API为前端提供数据也为前端提供数据的持久化能力,考虑到前后端同事开发工具和习惯的不同,必然需要将前后端项目进行独立,再者考虑到网站访问速度的问题,需要将静态资源部署到CDN服务器上这样项目分离也成为了必然.然而项目分离部署分离带来的问题就是跨域请求的问题,本例对比较流行的两种跨域访问方式(Jsonp和CORS)进行讨论. 一.简要介绍 1.1.JSONP JSONP是利…
在日常的开发过程中,我们可能会遇到这样一种需求,在指定高度内显示table,超过高度时表格出滚动条. 让我们带着这个问题,一起来探讨吧! <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml" ng-app="app"> <head> <title></title> <link href="../css/bootstrap.css…
eclipse maven 这也太坑.. ..右键单击该项目 在这里,当地仓库子项目jar新增可以成功启动tomcat... ( maven项目年初进口eclipse他们是正常的. 当...的时候webapp项目运营MavenClean这个问题出现后的文件夹) 版权声明:本文博客原创文章.博客,未经同意,不得转载.…
问题描述: Plugin org.apache.maven.plugins:maven-clean-plugin:2.5 or one of its dependencies could not be resolved: Failed to read artifact descriptor for org.apache.maven.plugins:maven-clean-plugin:jar:2.5: Could not transfer artifact org.apache.maven.pl…
VC++连接MySQL数据库 常用的方式有三种:ADO.mysql++,mysql API ; 本文只讲述ADO的连接方式. 为什么要使用连接池? 对于简单的数据库应用,完全可以先创建一个常连接(此连接永远不关闭,直接数进程退出),但是这样做至少会引起两个问题:(1)资源竞争,多个数据库请求操作不能同时进行,后一请求必须要等到前一请求完成后才能进行:(2)多线程情况下容易出现混乱,甚至出现资源异常释放.还有一种方法,就是使用数据库时创建连接,使用完后关闭连接回收资源.这种方式在数据库操作频繁的情…
在配置Java + Robotframework时遇到的问题“Missing artifact com.sun:tools:jar” 1. 先检查一下eclipse或STS中的JDK路径配置是否正确(打开window-->preferences-->java-->installed jres 页面的窗口) 2. 在eclipse安装路径下找到eclipse.ini或STS.ini,将其文件打开,在文件中找到“-vmargs”,在“-vmargs”之前添加下面代码.其中 D:\tools\…
每行开头结尾都要有一个空格(半角的) 例子如下: Manifest-Version: 1.0 Class-Path: lib/mongo-java-driver-2.11.4.jar lib/guava-11.0.2.jar lib/spark-examples-1.5.2-hadoop2.4.0.jar Main-Class: tong.mongo.loction.MdbFind2 注:最后一行必须有一个空行 参考链接: Manifest.MF文件中指定类路径classpath…
使用maven构建项目时,如果项目中有log4j的依赖,在运行程序时可能会出现在同一个类中log4j-over-slf4j.jar和 slf4j-log4j12.jar冲突的问题: 项目报错内容为: Exception in thread "main" java.lang.ExceptionInInitializerError    at org.apache.log4j.LogManager.getLogger(LogManager.java:44)    at org.slf4j.…
HttpClient在Web调用中具有广泛的应用,而为它添加默认请求头是我们经常遇到的需求,本文介绍4种为HttpClient添加默认请求头的方式. 第一种方式 直接在创建的HttpClient对象的DefaultRequestHeaders集合中添加报头. class Program { static Task Main()=> SendAsync1(); private static async Task SendAsync1() { var httpClient = new HttpCli…
1.确认maven是否正正常安装,是否配置了环境变量,可以通过命令 mvn -version 看是否显示maven的版本信息. 2.检查maven的setting.xml配置文件中本地仓库位置配置是否正确(主要是仓库位置是否存在),以及镜像配置(是否指定相应的中央仓库)是否正确. 本地仓库位置配置: <localRepository>D:\devTool\meavn\rep\ideaRepository</localRepository> 镜像mirror配置(注意:如果http协…
var combobox_json = [{ "combobox_value" : "GDLB01", "combobox_name" : "选项1" }, { "combobox_value" : "GDLB02", "combobox_name" : "选项1" }, { "combobox_value" : "G…
{ https://www.cnblogs.com/YZFHKMS-X/p/11864496.html }…
前言 在分析一个 jar 包时发现他把关键类采用了运行时使用 classloader 的方式加载了.懒得分析算法了,可以使用 jdk 自带的工具 dump 出需要的class. 正文 从运行的java进程里dump出运行中的类的class文件的方法,所知道的有两种 用agent attatch 到进程,然后利用 Instrumentation和 ClassFileTransformer就可以获取 到类的字节码了. 使用 sd-jdi.jar里的工具 本文介绍的就是使用 sd-jdi.jar 来d…
java项目开发中,最终生成的jar,大概可分为二类,一类是一些通用的工具类(不包含main入口方法),另一类是可直接运行的jar包(有main入口方法),下面主要讲的是后者,要让一个jar文件可直接运行,通常有几下三种方式: 动工之前,先搭一个项目架子便于后面分析: 项目结构图: 这是一个gradle项目(当然,也可以换成ant项目或maven项目,这不重要),里面有二个模块,my-jar的DemoApp里提供了main入口方法,通常一个可运行的java项目,都会依赖其它一些jar包,所以另一…
转载请注明出处:http://blog.csdn.net/qq_26525215 本文源自[大学之旅_谙忆的博客] 今天用IDEA,需要导入一个Jar包,因为以前都是用eclipse的,所以对这个idea还不怎么上手,连打个Jar包都是谷歌了一下. 但是发现网上谷歌到的做法一般都是去File –> Project Structure中去设置,有没有如同eclipse一样简便的右键添加方法呢. 然后自己摸索了一下,找到了. 以阿里大于的依赖包为例子,因为正好是我遇到要导入的Jar包. 先说下第一种…
Maven打jar包的三种方式 不包含依赖jar包 该方法打包的jar,不包含依赖的jar包,也没有指定入口类. <build> <plugins> <plugin> <!-- 指定项目编译时的java版本和编码方式 --> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <…