当前位置: 首页 > news >正文

网站广告销售怎么做网站续费续的是什么钱

网站广告销售怎么做,网站续费续的是什么钱,seo优化广告,旅游网站怎样做宣传文章目录 前言问题代码混淆存在的问题Java类文件加密存在的问题虚拟化保护存在的问题AOT编译存在的问题 Java应用的打包混淆器类加载与类加密Bootstrap Class LoaderExtension Class LoaderSystem Class Loader自定义ClassLoaderprotector4j 加壳采用Golang打包Java程序xjar 参… 文章目录 前言问题代码混淆存在的问题Java类文件加密存在的问题虚拟化保护存在的问题AOT编译存在的问题 Java应用的打包混淆器类加载与类加密Bootstrap Class LoaderExtension Class LoaderSystem Class Loader自定义ClassLoaderprotector4j 加壳采用Golang打包Java程序xjar 参考链接 前言 自从Java诞生以来其字节码容易被反编译的问题就为程序员所诟病。由此也诞生了不少Java混淆工具和加壳软件。 最关键的一个问题采用import语句的类能否被URLClassLoader加载机制替换掉也就是一个jar包中如果我将一部分class移走这部分class采用自定制的ClassLoader加载是否可行如果可行那我将这部分class通过golang写的server输出就差不多解决了一半的被破解问题。 问题 代码混淆存在的问题 由于JVM字节码的高语义性使得期极为容易被分析与阅读使用动态调试的方式可以很容易分析出其运行逻辑而动态调试工具的编写并不是一件十分复杂的事情因此混淆并不是一种可靠的保护方案。 Java类文件加密存在的问题 由于JVM附加机制的存在所有未脱离普通JVM运行的所谓加密代码都可以使用附加工具轻松读取因此这是一种最无效的保护方案。 普通的JVM都带有附着自制用户可以使用jhsdb这类工具附着到JVM进程对其内存数据进行查看和分析并且这些内存数据还是按照源文件中的数据结构被妥善组织好的这也可以理解为JVM自带的一种后门机制。下面这篇文章介绍了如何使用JVM附着机制读取并保存内存中的类文件信息。https://protector4j.com/articles/cracking-encrypted-java-applications-jhsdb/ 除了可以使用JDK自带的jhsdb工具之外还可以使用阿里巴巴的Arthas对运行中的Java进程进行分析。 虚拟化保护存在的问题 虚拟化保护是强度最高的一种代码保护方式但是由于期对性能的严重影响因此无法应用到程序中的全部代码而只能保护关键代码其他代码仍然有暴露的风险而以其他部分代码来切入口就可以获取到虚拟化部分代码的功能信息。 AOT编译存在的问题 AOT编译配置难度大编译难度大编译失败概率高即使编译成功代码逻辑也仅是由原来的字节码表示转换为机器代码表示其本身的运行逻辑仍然存在并没有进行特别的保护如果能够了解其本身的编译与运行机制仍然能够逆向还原出可读性的代码。 Java应用的打包 exe4jlaunch4jJSmooth: 已经过时了jpackageJDK自带的打包工具Installer工具Inno Setup、NSIS(https://sourceforge.net/projects/nsis/) 混淆器 代码混淆是最早应用于Java代码保护的方案也是一个最直接的方案。代码混淆通常有下面四种方法 包名、类名、变量名转换控制结构改变如控制流平坦化、添加不可变谓词等字符串混淆或加密添加无用代码 代码混淆可以大幅降低反编译代码的可读性提升静态分析的难度但是无论如何进行代码混淆程序的运行逻辑是不会改变的。 JVM字节码上是一种语义很清晰明确且极为阅读的中间代码对于被混淆的class文件即使无法还原成可读的Java源代码仍然可以在字节码层面进行分析由于Java字节码的高语义性这个过程其实还是比较容易的。 下面是一些常见的开源的和商业的混淆工具 ProGuard is a popular open-source GPL-licenced bytecode optimizer and file shrinker for Java and Kotlin. It claims to make these applications up to 90% smaller and 20% faster. It also provides some minimal obfuscation by renaming classes, fields and methods. Android Studio uses ProGuard automatically. ProGuard一款shrinker压缩检测和删除没有使用的类字段方法和属性, optimizer优化对字节码进行优化并且移除无用指令, obfuscator混淆使用a,b,c等无意义的名称对类字段和方法进行重命名, and preverifier审核在Java平台上对处理后的代码进行预检工具。缩短进程检测并删去未运用的类、字段、办法和特点。优化器 进程优化字节码并删去未运用的指令。混杂进程运用简短无意义的称号重命名剩余的类、字段和办法。最后的预验证进程将预验证信息增加到类中这是 Java Micro Edition 和 Java 6 及更高版别所必需的。yGuard is another commonly used open-source obfuscator.ZKM(Zelix KlassMaster) is a full featured commercial Java obfuscator. It shrinks and obfuscates both code and string constants.Allatori is a commercial second generation Java obfuscator. 第二代Java混淆器。所谓第二代混淆器不仅仅能进行字段混淆还能实现流混淆。DashO Java and Android Obfuscator is a commercial second generation Java obfuscator. DashO-Pro是第三代的Java混淆器obfuscator、压缩机compactor、优化工具和水印工具watermarker)。它能有效保护和防止Java程序被反编译和篡改是Java代码保护的理想选择。DashO-Pro除了为Java代码提供领先的代码保护外它还将应用程序的大小缩减到原文件的70%。如果您正在找寻为您的Java程序提供反编译保护、提高运行速度和减少程序体积的办法那么我们推荐您使用DashO。DashO是一个Java和Android的混用程序它提供企业级应用的加固和屏蔽大大降低了知识产权盗窃、数据盗窃、盗版和篡改的风险。分层混淆加密水印自动失效反调试反篡改反仿真器反挂钩反根设备解决方案为世界各地的应用程序提供保护。Stringer Java Obfuscation Toolkit is a commercial Java obfuscator supporting up to Java 13. There is an easy-to-read introductory article with extra links on bytecode obfuscation on the OWASP Foundation’s website. Another good introductory article on obfuscation techniques is on the DashO website. 名称License地址yGuardLGPLhttp://www.yworks.com/products/yguardProGuardGPLv2https://www.guardsquare.com/en/proguardFacebook ProGuard分支GPLv2https://github.com/facebook/proguardDashOCommercialhttps://www.preemptive.com/products/dashoAllatoriCommercialhttp://www.allatori.comStringerCommercialhttps://jfxstore.comJava AntidecompilerCommercialhttp://www.bisguard.com/help/java/Zelix KlassMasterCommercialhttp://www.zelix.com 类加载与类加密 先来了解一下Java类加载器的基本常识。三种调用会导致JVM加载一个类: new一个对象、Class.forName()、classLoader.loadClass()而在文件头import语句只是声明不会导致类加载。 Bootstrap Class Loader Bootstrap class loader serves as the parent of all the other ClassLoader instances. This bootstrap class loader is part of the core JVM and is written in native code. 不同平台有不同的实现。 It’s mainly responsible for loading JDK internal classes, typically rt.jar and other core libraries located in the $JAVA_HOME/jre/lib directory. Extension Class Loader The extension class loader is a child of the bootstrap class loader, and takes care of loading the extensions of the standard core Java classes so that they’re available to all applications running on the platform. The extension class loader loads from the JDK extensions directory, usually the $JAVA_HOME/lib/ext directory, or any other directory mentioned in the java.ext.dirs system property. System Class Loader The system or application class loader, on the other hand, takes care of loading all the application level classes into the JVM. It loads files found in the classpath environment variable, -classpath, or -cp command line option. It’s also a child of the extensions class loader. 自定义ClassLoader java -Djava.system.class.loader com.test.YourCustomClassLoader com.test.YourMainClass protector4j Protector4J可以通过加密类来保护您的java源代码它通过修改JVM创建了一个自定义的本地ClassLoader。Java类由AES加密并在本地ClassLoader中解密。并且它还引入了一些机制来提高破解的难度。 加密您的代码可以保护您的知识产权并大大提高您的应用程序的安全性。它使得IP盗窃、代码篡改和安全漏洞的发现涉及到昂贵的逆向工程努力而实际上任何人都可以下载并运行一个免费的Java反编译器。 Protector4J也可以帮助您为WindowsLinuxmacOS创建您的Java App的可执行包装器。 VLINX Protector4J is a tool to prevent Java applications from decompilation. Protector4J provides a custom native ClassLoader by modifying the JVM. The Java classes are encrypted by AES and decrypted in the native ClassLoader. 几个特点 私有压缩文档格式: JARX自定义JRE仅支持加载JARX文件禁用JVM的远程附加机制二进制代码级别的保护 JARX文件是protector4j专有存档文件格式它使用与Zip相同的Deflate压缩算法并使用AES加密算法来加密数据。 JARX文件的结构与所有存档文件类型相似由条目组成这些条目以我们的专有方式组织条目的名称和内容使用AES算法进行加密。 由于JARX文件格式并未公开且条目的内容和名称已加密且没有工具可以直接解压和JARX文件因此使用JARX文件不仅可以保护您的类文件的内容还可以保护整个JAR文件的结构即外界甚至无法获取您的类的名称这将使其更难以破解。 加壳 https://gitee.com/chejiangyi/jar-protect 采用Golang打包Java程序 Golang binary-go就是其中一个合适的选择 go get -u github.com/samuelngs/binary-go 安装完之后我们执行 binary -dir ./[静态文件位置] -out binary 就会产生出许多的go文件默认它是以20M为一个进行分拆的。 package mainimport (_ embedfmtosos/exec )//go:embed binary var f []bytefunc main() {_ os.WriteFile(foobar, f, 0755)out, _ : exec.Command(./foobar).Output()fmt.Printf(Output: %s\n, out) }cmd : exec.Command(java, -jar, Astro.jar, 1924 12 12 23 23 23 74.34 34.67) fmt.Println(cmd.Start())xjar xjar的原理是将jar包加密然后执行的时候再加密而密钥存放在外部的go可执行文件中。加密和解密都是由java程序完成。 参考链接 https://github.com/segator/jbinarygo-jdkRun JVM-based code in Go efficientlyhttps://github.com/core-lib/xjarhttps://github.com/lqs1848/AllatoriCrack.githttps://yworks.github.io/yGuard/https://protector4j.com/https://blog.csdn.net/weixin_35569158/article/details/114567793
http://www.w-s-a.com/news/801331/

相关文章:

  • 在线网站备案站长seo综合查询工具
  • 网站根 html网站建设行业数据
  • 网站公司做的网站有最字设计说明室内设计
  • 在线网站代码生成我想做个百度网站怎么做
  • 网站的建设费用分为长治市建设厅官方网站
  • 做网站都有哪些费用建设免费手机网站
  • 网站 组成代码做网站图片怎么插
  • 2020中国企业500强榜单南宁seo标准
  • 北美购物网站排名烟台专业的网站建站公司
  • 门户网站设计特点营销策划咨询机构
  • 天津做网站就到徽信xiala5中国营销型网站
  • 外汇网站建设制作深圳三站合一网站建设
  • 深圳坂田网站设计公司有哪些学校网站建设管理办法
  • 太原建设银行网站中山营销型网站设计
  • 广东省建设厅官方网站多少钱江苏省江建集团有限公司建设网站
  • 网站开发主流服装网站开发课程设计
  • 在iis里面创建网站wordpress响应式视频
  • 学设计哪个网站好网页设计音乐网站
  • 可以自己做斗图的网站上海模板建站多少钱
  • 山东川畅信息技术有限公司网站建设网站开发任务书
  • 网站排版设计欣赏搭建公司介绍网站
  • 网站弹窗是怎么做的长沙智优营家
  • 手机网站菜单设计模板菜单网站图片素材
  • 浙江网站推广爱企查企业查询入口
  • 公司网站平台vs2012网站开发课程设计
  • 哪些方法可以建设网站做网站失败
  • 龙岗网站建设技术wordpress左右两栏
  • 电子商务网站开发与应用的介绍怎么查询域名是否备案
  • 想做一个自己设计公司的网站怎么做的权威发布型舆情回应
  • 做ppt用的音效网站python基础教程网易