关于java加壳和代码混淆

  在C中,进行代码加密,首要经过加壳的方法。所谓加壳,即是先将程序代码加密,然后用特定的程序加载器,将代码解密后加载进内存,这样能够在避免代码的反编译,当然,有加壳东西,也有解壳东西,尽管不能100%避免crack,但仍然给代码增加一层有力的维护。

  然而在Java中,维护代码是件很困难的工作,由于class文件十分标准,很容易反编译,且反编译后的代码明晰可读。常见的维护办法是运用代码混淆器,打乱class和function以及变量的姓名,能够搅扰反编译后的代码的可读性。尽管简略提高了代码的安全性,但还仅仅适当于未加壳的C程序。

  java能够加壳吗?曾经我以为这是不能够的,由于动态加载代码这样的内存等级的操作,java无法做到,除非运用JNI(JavaNativeInterface),调用自个编写的C代码,在C代码中完成动态加载java代码。可是,C如何加载java代码呢?这需要对JVM适当的知道。所以其时的我以为这是不能够的。

  然而,最近接触的一些常识告诉我——java也能够加壳!!

  1.URLClassLoader。用URLClassLoader能够在java程序的运转时间,再将文件夹或许jar加入到classpath中,这个特性事实上即是动态加载。既然能够动态加载class的文件夹或许jar,为何不能够加载加密后的classes呢,将classes用自个的方法加密,在URLClassLoader调用时,运用自个的方法解密。不即是达到了加壳的目的了吗?不过解密的代码放在何处是个疑问,即是说解壳器的代码暴露在外,仍是很风险的。

  2.javassist。这实在是一个十分奇特的新技能,我是在学习Tapestry5时首次遇到这个包的,他能够动态创立java字节码,乃至能够修正你现已写好的函数,比如你的getter和setter,仅仅简略的读取和赋值,你能够在Runtime用他修正你的getter和setter,让你的getter和setter每次调用时都能够触发某些代码。凭借这项奇特的技能,必定能够完成更强壮的动态加载,加壳也就有了能够。

转载于:https://blog.51cto.com/smallant/1541060

关于java加壳和代码混淆相关推荐

  1. java 代码加壳,关于java加壳和代码混淆

    在C中,进行,首要经过加壳的方法.所谓加壳,即是先将程序代码加密,然后用特定的程序加载器,将代码解密后加载进内存,这样能够在避免代码的反编译,当然,有加壳东西,也有解壳东西,尽管不能100%避免cra ...

  2. JAVA加壳保护之JarProtector的使用小记

    JAVA加壳保护之JarProtector的使用小记 一.关于JarProtector JarProtector 工具下载链接 二.使用过程小记 1.工具下载&工具搭建 2.工具使用 3.工具 ...

  3. java加壳工具_加壳工具 - virbox加密空间站 - OSCHINA - 中文开源技术交流社区

    Virbox Protector Standalone 加壳工具可直接对dll文件进行加壳,防止代码反编译,更安全,更方便. 产品简介 Virbox Protector Standalone提供了强大 ...

  4. Java后端知识之代码混淆-避免反编译工具获取原码

    java, 代码混淆, 编译, 反编译 本文是向大家介绍java后端小知识,它能够实现编译后的class代码加密,能够避免使用反编译工具获取源码. 本文介绍java代码编译成class后,怎么避免用反 ...

  5. java中rpn_java – RPNCalculator代码混淆

    好.开始了.我已经修改了你的程序了一点点.以下是修改程序时出现的问题. 1.任何类中都没有"writeOutput()方法.因此我不得不删除那段代码. 2.必须引入while循环才能使其成为 ...

  6. PowerShield (软件加壳工具) PB混淆加密大师

    PB如何防反编译? 用PBKiller.exe 能看到pb编译出来pbd和dll里面完整的代码. 试试PB防反编译powershield V1.0, 对exe所在的pbd混淆,其他的pbd中的代码. ...

  7. Android App Bundle混淆加密加壳加固保护的解决方案(过Google App上架审核)

    Android AAB简介和AAB包格式 AAB即Android App Bundle,是Google官方发布的一种新的App包格式,可以有效缩减App大小,提升用户安装和更新App的体验.在Goog ...

  8. 加壳学习系列(二)-壳代码

    壳代码 一.Shell.dll的源码和二进制文件信息 1.1 壳代码 shell.h shell.cpp start函数 1.2 加壳器代码 入口函数 InitPE 拷贝shell.dll中的壳代码 ...

  9. 加壳器第二部分,加壳器

    1加壳器代码概述 为了软件的方便使用,这里我采用了mfc框架进行编写,其大致过程如下: 1.将加壳程序读入内存(因为要增加区段用于存放壳代码,并加密代码段) 2.加载壳代码 3.对一系列参数进行初始化 ...

  10. 【逆向】UPX工具使用及加壳

    加壳常用的工具: https://www.52pojie.cn/thread-165931-1-1.html 下载UPX加壳脱壳工具: http://upx.sourceforge.net/ UPX使 ...

最新文章

  1. hive mysql 远程_ubuntu中为hive配置远程MYSQL database
  2. Mac下布置appium环境
  3. 运用shell,python自动下载linux系统运维
  4. 串口服务器接入232显示乱码,串口服务器出现乱码时如何处理,解决方案
  5. 10.3 广州集训 Day2
  6. Spring Cloud Config采用数据库存储配置内容【Edgware+】
  7. 【CSS3】将截断的文字可选的显示出来
  8. VBA如何打开html文件6,VBA程序中如何自动打开网页
  9. BSD socket编程学习
  10. python怎么在图片上写字_Python在图片中添加文字的两种方法
  11. C#数据流:文件流、内存流、网络流
  12. SQL错误Duplicate column name 'NAME'名字重复应使用别名
  13. Linux服务器CPU压力测试(本人亲测)
  14. python透视表画图_如何用Python实现透视表?
  15. SNARK超详细解释,从GGPR13到Groth16
  16. DuerOS的零编程技能实现
  17. python win10 桌面_实战 | Python批量提取Win10锁屏壁纸
  18. 不同路径(一个机器人位于一个 m x n 网格的左上角)
  19. zabbix3.0 安装方法,一键实现短信、电话、微信、APP 告警
  20. 未来几年GPT/大模型如何影响软件研发?

热门文章

  1. java判断读到末尾_Java 中的运算符和流程控制
  2. python mvc框架django搭建项目_Django笔记1:基础:创建虚拟主机和新项目
  3. python很有用吗_Python之父:为什么操作符很有用?
  4. python分布式任务调度_Python开源任务调度框架介绍
  5. python的map函数和reduce_python函数_map()、filter()和reduce()
  6. 配置多个git账号_Git ssh配置(Mac)
  7. Tomcat8.0之后GET请求不需要再设置中文乱码问题
  8. adb shell按键操作(input keyevent)
  9. 第四次作业3 四则运算试题生成
  10. 新入职我们应该注意些什么?